Add release notes for 2.4.0
diff --git a/_config.yml b/_config.yml
index a24984a..bc95f3c 100644
--- a/_config.yml
+++ b/_config.yml
@@ -6,6 +6,6 @@
 paginate_path: "blog/page:num"
 permalink: /blog/:categories/:year/:month/:day/:title
 relative_permalinks: false
-latest_version: 2.3.0
-latest_version_date: 2021-03-06
-latest_snapshot: 2.4.0-SNAPSHOT
+latest_version: 2.4.0
+latest_version_date: 2021-09-10
+latest_snapshot: 2.5.0-SNAPSHOT
diff --git a/_includes/navbar.html b/_includes/navbar.html
index e69c185..d1a5138 100755
--- a/_includes/navbar.html
+++ b/_includes/navbar.html
@@ -72,6 +72,7 @@
                     <a href="#" class="dropdown-toggle" data-toggle="dropdown">Release Notes<strong class="caret"></strong></a>
                     <ul class="dropdown-menu">
                         <!-- only keep the release notes for supported versions in this list -->
+                        <li><a href="/releasenotes/2.4.0">2.4.0</a></li>
                         <li><a href="/releasenotes/2.3.0">2.3.0</a></li>
                         <li><a href="/releasenotes/2.2.1">2.2.1</a></li>
                         <li><a href="/releasenotes/2.2.0">2.2.0</a></li>
diff --git a/doap_jclouds.rdf b/doap_jclouds.rdf
index 05d5b49..2c9a5ff 100644
--- a/doap_jclouds.rdf
+++ b/doap_jclouds.rdf
@@ -37,6 +37,13 @@
     <category rdf:resource="http://projects.apache.org/category/library" />
     <release>
       <Version>
+        <name>Apache jclouds 2.4.0</name>
+        <created>2021-09-10</created>
+        <revision>2.4.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
         <name>Apache jclouds 2.3.0</name>
         <created>2021-03-06</created>
         <revision>2.3.0</revision>
diff --git a/releasenotes/2.4.0.md b/releasenotes/2.4.0.md
new file mode 100644
index 0000000..70bd941
--- /dev/null
+++ b/releasenotes/2.4.0.md
@@ -0,0 +1,74 @@
+---
+layout: releasenotes
+title: Release Notes for Version 2.4.0
+date: 2021-09-10 20:00:00
+release_notes: true
+permalink: /releasenotes/2.4.0/
+---
+
+1. [Introduction](#intro)
+1. [Release Highlights](#highlights)
+1. [Known Issues](#knownissues)
+1. [Credits](#credits)
+1. [Test Results](#test)
+
+## <a id="intro"></a>Introduction
+
+Apache jclouds 2.4.0 is a regular release which includes compatibility and bug fixes.
+You can [read the official announcement here](https://s.apache.org/jclouds240). To get started with jclouds, please see the [jclouds installation guide](/start/install/).
+
+## <a id="highlights"></a>Release Highlights
+
+New features in Apache jclouds 2.4.0 include:
+
+* Upgradings Guava, Guice, and GSON dependencies
+
+### Bugs and patches
+
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/JCLOUDS-1569'>JCLOUDS-1569</a>] -         &quot;did not receive expected response code and header&quot; during undeploy request
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/JCLOUDS-1577'>JCLOUDS-1577</a>] -         Running custom image created from MS Marketplace fails because no &quot;Plan Information&quot; is provided
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/JCLOUDS-1580'>JCLOUDS-1580</a>] -         BlobStore.blobMetadata().getUserMetadata() returns empty Map when cloud provider returns lowercase metadata headers
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/JCLOUDS-1581'>JCLOUDS-1581</a>] -         NullPointerException when parsing Cors object for GCE list buckets request
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/JCLOUDS-1582'>JCLOUDS-1582</a>] -         ETag of the object uploaded via multipart upload does not match the CompleteMPU response from the transient blobstore
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/JCLOUDS-1584'>JCLOUDS-1584</a>] -         Deployment API fails when ARM Template deploys for creating Azure VM
+</li>
+</ul>
+
+### New Feature
+
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/JCLOUDS-1516'>JCLOUDS-1516</a>] -         First putblob should be signed with specific region rather than with default region during createcontainer API 
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/JCLOUDS-1558'>JCLOUDS-1558</a>] -         Azureblob Azure AD OAuth2 authentication support
+</li>
+</ul>
+
+### Improvement
+
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/JCLOUDS-1572'>JCLOUDS-1572</a>] -         Update GCS bucket regions
+</li>
+</ul>
+
+The complete list of fixed issues and improvements can be found [here](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12314430&version=12349971).
+
+## <a id="knownissues"></a> Known Issues
+
+## <a id="credits"></a>Credits
+
+jclouds would like to thank everyone who contributed time and effort in order to make this release happen:
+
+* Apache jclouds [PMC](http://people.apache.org/committers-by-project.html#jclouds-pmc) and community for verifying the release.
+* Check out who has been busy on [Open Hub](https://www.openhub.net/p/jclouds/contributors?query=&sort=latest_commit).
+
+## <a id="test"></a>Test Results
+
+Please see the discussion and the vote threads for live test results for 2.4.0:
+
+* RC1 [vote](https://s.apache.org/jclouds240rc1vote) and [discussion](https://s.apache.org/jclouds240rc1discuss) threads.
diff --git a/releasenotes/index.md b/releasenotes/index.md
index da0aab0..68294cd 100644
--- a/releasenotes/index.md
+++ b/releasenotes/index.md
@@ -6,6 +6,7 @@
 
 The Release Notes and Javadocs for every major release of Apache jclouds are listed chronologically below.
 
+* [2.4.0](/releasenotes/2.4.0) | [Javadoc](/reference/javadoc/2.4.x/)
 * [2.3.0](/releasenotes/2.3.0) | [Javadoc](/reference/javadoc/2.3.x/)
 * [2.2.1](/releasenotes/2.2.1) | [Javadoc](/reference/javadoc/2.2.x/)
 * [2.2.0](/releasenotes/2.2.0) | [Javadoc](/reference/javadoc/2.2.x/)