diff --git a/e2e/run.sh b/e2e/run.sh
index 2d5708778feeeb736668a5efa8e06836a5eea1ff..39d85f072252ac7445d5ce1091e207aebbb6ba0b 100755
--- a/e2e/run.sh
+++ b/e2e/run.sh
@@ -8,7 +8,7 @@ IFS=$'\n\t'
 
 readonly cluster_name="postgres-operator-e2e-tests"
 readonly kubeconfig_path="/tmp/kind-config-${cluster_name}"
-readonly spilo_image="registry.opensource.zalan.do/acid/spilo-13-e2e:0.3"
+readonly spilo_image="registry.opensource.zalan.do/acid/spilo-14-e2e:0.1"
 readonly e2e_test_runner_image="registry.opensource.zalan.do/acid/postgres-operator-e2e-tests-runner:0.3"
 
 export GOPATH=${GOPATH-~/go}
diff --git a/e2e/tests/test_e2e.py b/e2e/tests/test_e2e.py
index 283f6b9450bda75585d45b3951ae90e72100096c..e28e3e0872b6ffae656da72efdeef3b6cf942e27 100644
--- a/e2e/tests/test_e2e.py
+++ b/e2e/tests/test_e2e.py
@@ -11,8 +11,8 @@ from kubernetes import client
 from tests.k8s_api import K8s
 from kubernetes.client.rest import ApiException
 
-SPILO_CURRENT = "registry.opensource.zalan.do/acid/spilo-13-e2e:0.3"
-SPILO_LAZY = "registry.opensource.zalan.do/acid/spilo-13-e2e:0.4"
+SPILO_CURRENT = "registry.opensource.zalan.do/acid/spilo-14-e2e:0.1"
+SPILO_LAZY = "registry.opensource.zalan.do/acid/spilo-14-e2e:0.2"
 
 
 def to_selector(labels):
diff --git a/manifests/complete-postgres-manifest.yaml b/manifests/complete-postgres-manifest.yaml
index 436304d20406eff32fc2e83f98a65e42a1f04fa7..fd3f903a7b0b60fee34ab3ee1fcee079c82792bb 100644
--- a/manifests/complete-postgres-manifest.yaml
+++ b/manifests/complete-postgres-manifest.yaml
@@ -36,7 +36,7 @@ spec:
           defaultRoles: true
           defaultUsers: false
   postgresql:
-    version: "13"
+    version: "14"
     parameters:  # Expert section
       shared_buffers: "32MB"
       max_connections: "10"
diff --git a/manifests/minimal-postgres-manifest-12.yaml b/manifests/minimal-postgres-manifest-12.yaml
index bf62c3793ea90fc0aab46d1fffa54159efad50c4..3f89b765d45e5c24303a3d3b996b0b4a6afd2df7 100644
--- a/manifests/minimal-postgres-manifest-12.yaml
+++ b/manifests/minimal-postgres-manifest-12.yaml
@@ -18,4 +18,4 @@ spec:
   preparedDatabases:
     bar: {}
   postgresql:
-    version: "13"
+    version: "12"
diff --git a/manifests/minimal-postgres-manifest.yaml b/manifests/minimal-postgres-manifest.yaml
index ff96e392bafb1f1ac869552e50fca965cea6295f..f0c5ff4b53b0c387e2b6e368ca5028f9d66974a4 100644
--- a/manifests/minimal-postgres-manifest.yaml
+++ b/manifests/minimal-postgres-manifest.yaml
@@ -18,4 +18,4 @@ spec:
   preparedDatabases:
     bar: {}
   postgresql:
-    version: "13"
+    version: "14"
diff --git a/manifests/standby-manifest.yaml b/manifests/standby-manifest.yaml
index 593f409ecb67d11daa86162561142e2b8ee4c92b..3ba8d6b9dccbcb73fe47ded33e1515a658fb884d 100644
--- a/manifests/standby-manifest.yaml
+++ b/manifests/standby-manifest.yaml
@@ -9,7 +9,7 @@ spec:
     size: 1Gi
   numberOfInstances: 1
   postgresql:
-    version: "13"
+    version: "14"
 # Make this a standby cluster and provide the s3 bucket path of source cluster for continuous streaming.
   standby:
     s3_wal_path: "s3://path/to/bucket/containing/wal/of/source/cluster/"