diff --git a/vertical-pod-autoscaler/deploy/admission-controller-deployment.yaml b/vertical-pod-autoscaler/deploy/admission-controller-deployment.yaml
index 487a32b25e7d6759f4e84d9aee1b2457cecaaca2..1652ddc3fde6328dd06a0bd8c77053356cafd4aa 100644
--- a/vertical-pod-autoscaler/deploy/admission-controller-deployment.yaml
+++ b/vertical-pod-autoscaler/deploy/admission-controller-deployment.yaml
@@ -20,7 +20,7 @@ spec:
         runAsUser: 65534 # nobody
       containers:
         - name: admission-controller
-          image: registry.k8s.io/autoscaling/vpa-admission-controller:1.3.1
+          image: registry.k8s.io/autoscaling/vpa-admission-controller:1.4.0
           imagePullPolicy: IfNotPresent
           env:
             - name: NAMESPACE
diff --git a/vertical-pod-autoscaler/deploy/recommender-deployment-high.yaml b/vertical-pod-autoscaler/deploy/recommender-deployment-high.yaml
index e6a95c9c585bfff8ed1b1e12ea13ce309973c87a..dfff7b4ed4422acd23056de8613ba16e4f9f36be 100644
--- a/vertical-pod-autoscaler/deploy/recommender-deployment-high.yaml
+++ b/vertical-pod-autoscaler/deploy/recommender-deployment-high.yaml
@@ -26,7 +26,7 @@ spec:
         runAsUser: 65534 # nobody
       containers:
       - name: recommender
-        image: registry.k8s.io/autoscaling/vpa-recommender:1.3.1
+        image: registry.k8s.io/autoscaling/vpa-recommender:1.4.0
         imagePullPolicy: Always
         args:
           - --recommender-name=performance
diff --git a/vertical-pod-autoscaler/deploy/recommender-deployment-low.yaml b/vertical-pod-autoscaler/deploy/recommender-deployment-low.yaml
index 827abe2afd7953d3afbb78d25ef568f05b0dc723..cda82f074c9ae72867591ccde3c44bca34771400 100644
--- a/vertical-pod-autoscaler/deploy/recommender-deployment-low.yaml
+++ b/vertical-pod-autoscaler/deploy/recommender-deployment-low.yaml
@@ -26,7 +26,7 @@ spec:
         runAsUser: 65534 # nobody
       containers:
       - name: recommender
-        image: registry.k8s.io/autoscaling/vpa-recommender:1.3.1
+        image: registry.k8s.io/autoscaling/vpa-recommender:1.4.0
         imagePullPolicy: Always
         args:
           - --recommender-name=frugal
diff --git a/vertical-pod-autoscaler/deploy/recommender-deployment.yaml b/vertical-pod-autoscaler/deploy/recommender-deployment.yaml
index 43d1cf8d02609d5e905544e5d7d394411a2cafb8..3c87ea90b631868df8e0bd65a622d54ee31621d6 100644
--- a/vertical-pod-autoscaler/deploy/recommender-deployment.yaml
+++ b/vertical-pod-autoscaler/deploy/recommender-deployment.yaml
@@ -20,7 +20,7 @@ spec:
         runAsUser: 65534 # nobody
       containers:
       - name: recommender
-        image: registry.k8s.io/autoscaling/vpa-recommender:1.3.1
+        image: registry.k8s.io/autoscaling/vpa-recommender:1.4.0
         imagePullPolicy: IfNotPresent
         resources:
           limits:
diff --git a/vertical-pod-autoscaler/deploy/updater-deployment.yaml b/vertical-pod-autoscaler/deploy/updater-deployment.yaml
index 916615d0dab4e33eedf3ca45f078f5cb718a5f58..39b8fb83920e6a8f14e0c83557ec27bec39d4b47 100644
--- a/vertical-pod-autoscaler/deploy/updater-deployment.yaml
+++ b/vertical-pod-autoscaler/deploy/updater-deployment.yaml
@@ -20,7 +20,7 @@ spec:
         runAsUser: 65534 # nobody
       containers:
         - name: updater
-          image: registry.k8s.io/autoscaling/vpa-updater:1.3.1
+          image: registry.k8s.io/autoscaling/vpa-updater:1.4.0
           imagePullPolicy: IfNotPresent
           env:
             - name: NAMESPACE
diff --git a/vertical-pod-autoscaler/docs/flags.md b/vertical-pod-autoscaler/docs/flags.md
index 9a02d64945c7804cc5fc6a860e6f52e0840a1de7..f6f13e44a2ed6cfc31f3dceef1602ba67b0aa10f 100644
--- a/vertical-pod-autoscaler/docs/flags.md
+++ b/vertical-pod-autoscaler/docs/flags.md
@@ -1,7 +1,7 @@
 # Vertical Pod Autoscaler Flags
 This document contains the flags for all VPA components.
 
-To view the most recent _release_ of flags for all VPA components, consult the release tag [flags(1.3.1)](https://github.com/kubernetes/autoscaler/blob/vertical-pod-autoscaler-1.3.1/vertical-pod-autoscaler/docs/flags.md) documentation.
+To view the most recent _release_ of flags for all VPA components, consult the release tag [flags(1.4.0)](https://github.com/kubernetes/autoscaler/blob/vertical-pod-autoscaler-1.4.0/vertical-pod-autoscaler/docs/flags.md) documentation.
 
 > **Note:** This document is auto-generated from the default branch (master) of the VPA repository.
 
diff --git a/vertical-pod-autoscaler/docs/installation.md b/vertical-pod-autoscaler/docs/installation.md
index 4e2e1647c3cb8293776e37da760109cd9e91792c..e768866eade5773253aae77d33ee4ea0cf72c554 100644
--- a/vertical-pod-autoscaler/docs/installation.md
+++ b/vertical-pod-autoscaler/docs/installation.md
@@ -14,21 +14,22 @@ The current default version is Vertical Pod Autoscaler 1.3.1
 
 ## Compatibility
 
-| VPA version     | Kubernetes version |
-|-----------------|--------------------|
-| 1.3.x           | 1.28+              |
-| 1.2.x           | 1.27+              |
-| 1.1.x           | 1.25+              |
-| 1.0             | 1.25+              |
-| 0.14            | 1.25+              |
-| 0.13            | 1.25+              |
-| 0.12            | 1.25+              |
-| 0.11            | 1.22 - 1.24        |
-| 0.10            | 1.22+              |
-| 0.9             | 1.16+              |
-| 0.8             | 1.13+              |
-| 0.4 to 0.7      | 1.11+              |
-| 0.3.X and lower | 1.7+               |
+| VPA version     | Kubernetes version                                              |
+|-----------------|-----------------------------------------------------------------|
+| 1.4.x           | 1.28+ (1.33+ when using `InPlaceOrRecreate` Alpha Feature Gate) |
+| 1.3.x           | 1.28+                                                           |
+| 1.2.x           | 1.27+                                                           |
+| 1.1.x           | 1.25+                                                           |
+| 1.0             | 1.25+                                                           |
+| 0.14            | 1.25+                                                           |
+| 0.13            | 1.25+                                                           |
+| 0.12            | 1.25+                                                           |
+| 0.11            | 1.22 - 1.24                                                     |
+| 0.10            | 1.22+                                                           |
+| 0.9             | 1.16+                                                           |
+| 0.8             | 1.13+                                                           |
+| 0.4 to 0.7      | 1.11+                                                           |
+| 0.3.X and lower | 1.7+                                                            |
 
 ## Notice on CRD update (>=1.0.0)
 
diff --git a/vertical-pod-autoscaler/hack/generate-flags.sh b/vertical-pod-autoscaler/hack/generate-flags.sh
index 32fdaa5b7b63a8919085cacaa9667893c4f999a5..1e8a5274fd3bfa3a6da0a8e7621a4ec4d69606d6 100755
--- a/vertical-pod-autoscaler/hack/generate-flags.sh
+++ b/vertical-pod-autoscaler/hack/generate-flags.sh
@@ -21,7 +21,7 @@ set -o pipefail
 SCRIPT_ROOT=$(realpath $(dirname "${BASH_SOURCE[0]}"))/..
 TARGET_FILE="${SCRIPT_ROOT}/docs/flags.md"
 COMPONENTS=("admission-controller" "recommender" "updater")
-DEFAULT_TAG="1.3.1"
+DEFAULT_TAG="1.4.0"
 
 # Function to extract flags from a binary
 extract_flags() {
diff --git a/vertical-pod-autoscaler/hack/vpa-process-yaml.sh b/vertical-pod-autoscaler/hack/vpa-process-yaml.sh
index e79652bf99d89171423479c80cd23ed18c2a9928..701a87f7589960082540774499e666621c3d7ffe 100755
--- a/vertical-pod-autoscaler/hack/vpa-process-yaml.sh
+++ b/vertical-pod-autoscaler/hack/vpa-process-yaml.sh
@@ -54,7 +54,7 @@ if [ $# -eq 0 ]; then
 fi
 
 DEFAULT_REGISTRY="registry.k8s.io/autoscaling"
-DEFAULT_TAG="1.3.1"
+DEFAULT_TAG="1.4.0"
 
 REGISTRY_TO_APPLY=${REGISTRY-$DEFAULT_REGISTRY}
 TAG_TO_APPLY=${TAG-$DEFAULT_TAG}
diff --git a/vertical-pod-autoscaler/hack/vpa-up.sh b/vertical-pod-autoscaler/hack/vpa-up.sh
index e77e1d4e110df274734e825f9d20a19f4636603c..161ba872b80fcf2c6452f05e94f6619a2c4ea83b 100755
--- a/vertical-pod-autoscaler/hack/vpa-up.sh
+++ b/vertical-pod-autoscaler/hack/vpa-up.sh
@@ -19,7 +19,7 @@ set -o nounset
 set -o pipefail
 
 SCRIPT_ROOT=$(dirname ${BASH_SOURCE})/..
-DEFAULT_TAG="1.3.1"
+DEFAULT_TAG="1.4.0"
 TAG_TO_APPLY=${TAG-$DEFAULT_TAG}
 
 if [ "${TAG_TO_APPLY}" == "${DEFAULT_TAG}" ]; then