diff --git a/jsonnet/kube-prometheus/versions.json b/jsonnet/kube-prometheus/versions.json
index 91dede92542b7f6101e6ef2190b248a7b15599c4..b992c171e136d7cb9b7332f046304efd2ff8b48d 100644
--- a/jsonnet/kube-prometheus/versions.json
+++ b/jsonnet/kube-prometheus/versions.json
@@ -6,7 +6,7 @@
   "nodeExporter": "1.3.1",
   "prometheus": "2.35.0",
   "prometheusAdapter": "0.9.1",
-  "prometheusOperator": "0.56.2",
+  "prometheusOperator": "0.56.3",
   "kubeRbacProxy": "0.12.0",
   "configmapReload": "0.5.0",
   "pyrra": "0.4.0"
diff --git a/jsonnetfile.lock.json b/jsonnetfile.lock.json
index 277b1ba5039f6875503cf3cdec20f69b148f1f60..018827b89c886983c71c2c4d4831dff50530343e 100644
--- a/jsonnetfile.lock.json
+++ b/jsonnetfile.lock.json
@@ -18,7 +18,7 @@
           "subdir": "contrib/mixin"
         }
       },
-      "version": "c3bc4116dcd1272c6a1318feadf5ac9739409a12",
+      "version": "ce77d83ee6cd2ea812c0e1336959c3552fc51a80",
       "sum": "zhLYhUNcXNkMRfJhMUX0UiOpi8TOuLmUqJfO9NFKFkg="
     },
     {
@@ -58,7 +58,7 @@
           "subdir": "grafana-builder"
         }
       },
-      "version": "b3cff133f709b4c723358730f491ab6f641eab60",
+      "version": "34d0a9e6c36dfa2433eb5776bf6ea3e749624464",
       "sum": "TieGrr7GyKjURk1+wXHFpdoCiwNaIVfZvyc5mbI9OM0="
     },
     {
@@ -68,8 +68,8 @@
           "subdir": ""
         }
       },
-      "version": "62ad10fe9ceb53c6b846871997abbfe8e0bd7cf5",
-      "sum": "6gD9F29f8T2a71n35Y61P7TBiF5NQuhk4JUwEafsA1E="
+      "version": "3422a511bf8f645e3e684632785b27864ee5dc0c",
+      "sum": "tpgokDM1s/6CL4p+tlq3Nu54r62/kPfGnLUKRgYIC4k="
     },
     {
       "source": {
@@ -78,7 +78,7 @@
           "subdir": "jsonnet/kube-state-metrics"
         }
       },
-      "version": "c02c4cd32fb7d0f792c757c86b267ea633b52117",
+      "version": "d04c7d13aaa0e580c86de131e6f3f5636b5c01e6",
       "sum": "P0dCnbzyPScQGNXwXRcwiPkMLeTq0IPNbSTysDbySnM="
     },
     {
@@ -88,7 +88,7 @@
           "subdir": "jsonnet/kube-state-metrics-mixin"
         }
       },
-      "version": "c02c4cd32fb7d0f792c757c86b267ea633b52117",
+      "version": "d04c7d13aaa0e580c86de131e6f3f5636b5c01e6",
       "sum": "u8gaydJoxEjzizQ8jY8xSjYgWooPmxw+wIWdDxifMAk="
     },
     {
@@ -98,8 +98,8 @@
           "subdir": "jsonnet/mixin"
         }
       },
-      "version": "2f1a5cb9e9198bc10ab41f91b6960b4b2a58d482",
-      "sum": "joc3gM74r0q658bmpfTbeAr0Nce4gTBv0rf3I+2J0rQ=",
+      "version": "64ee359a17a95170ab00a6b56a252f3e9d8cef65",
+      "sum": "GQmaVFJwKMiD/P4n3N2LrAZVcwutriWrP8joclDtBYQ=",
       "name": "prometheus-operator-mixin"
     },
     {
@@ -109,8 +109,8 @@
           "subdir": "jsonnet/prometheus-operator"
         }
       },
-      "version": "2f1a5cb9e9198bc10ab41f91b6960b4b2a58d482",
-      "sum": "Yfmz8Bu7mTu6DTzznXqc5cfVKe5IkE20XJoWNEMvnxQ="
+      "version": "64ee359a17a95170ab00a6b56a252f3e9d8cef65",
+      "sum": "SXi9yFGzP4gN4dRexwNjERw4GUyX/dFBI2AmiEmprJw="
     },
     {
       "source": {
@@ -130,7 +130,7 @@
           "subdir": "docs/node-mixin"
         }
       },
-      "version": "da8b0f694ceadd3013096f6e8671cdd70a98da24",
+      "version": "c6e1a5b74277557045f0620e6d37259a291cb03b",
       "sum": "+ZeoFzdjV7GKrrs0Bf6a+M+QDikd5QhcxTnFRObA0/w="
     },
     {
@@ -140,7 +140,7 @@
           "subdir": "documentation/prometheus-mixin"
         }
       },
-      "version": "af5ea213f79e9cd0fe74e01bca22cb92f7987e43",
+      "version": "57f4aab27d53872b109c8513846765df6b51eb57",
       "sum": "APXOIP3B3dZ3Tyh7L2UhyWR8Vbf5+9adTLz/ya7n6uU=",
       "name": "prometheus"
     },
@@ -151,7 +151,7 @@
           "subdir": "config/crd/bases"
         }
       },
-      "version": "fa1b9be06ea5f174ee839c382ebe196a8f3f238d",
+      "version": "3a58b4ed4f649c9502b8dc3e6bfc5b4159e33b48",
       "sum": "GQ0GFKGdIWKx1b78VRs6jtC4SMqkBjT5jl65QUjPKK4="
     },
     {
@@ -161,7 +161,7 @@
           "subdir": "mixin"
         }
       },
-      "version": "9812db5d88a059f6e77d54105487cb586825cfae",
+      "version": "113f4a234f7eed3daa8ae7da583bfed415808c5e",
       "sum": "/UJrWExMDM89fPfidt1pNLSQOLXsyBpmyp3unRbjaXw=",
       "name": "thanos-mixin"
     },
diff --git a/manifests/kubernetesControlPlane-prometheusRule.yaml b/manifests/kubernetesControlPlane-prometheusRule.yaml
index 09467e86fc7cae2ed89a7382a2598ece1884923e..d4baab42c8f3e90aff17f7ea0ed513716d7995a3 100644
--- a/manifests/kubernetesControlPlane-prometheusRule.yaml
+++ b/manifests/kubernetesControlPlane-prometheusRule.yaml
@@ -30,11 +30,11 @@ spec:
         runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubepodnotready
         summary: Pod has been in a non-ready state for more than 15 minutes.
       expr: |
-        sum by (namespace, pod) (
-          max by(namespace, pod) (
+        sum by (namespace, pod, cluster) (
+          max by(namespace, pod, cluster) (
             kube_pod_status_phase{job="kube-state-metrics", phase=~"Pending|Unknown"}
-          ) * on(namespace, pod) group_left(owner_kind) topk by(namespace, pod) (
-            1, max by(namespace, pod, owner_kind) (kube_pod_owner{owner_kind!="Job"})
+          ) * on(namespace, pod, cluster) group_left(owner_kind) topk by(namespace, pod, cluster) (
+            1, max by(namespace, pod, owner_kind, cluster) (kube_pod_owner{owner_kind!="Job"})
           )
         ) > 0
       for: 15m
@@ -174,7 +174,7 @@ spec:
         runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubecontainerwaiting
         summary: Pod container waiting longer than 1 hour
       expr: |
-        sum by (namespace, pod, container) (kube_pod_container_status_waiting_reason{job="kube-state-metrics"}) > 0
+        sum by (namespace, pod, container, cluster) (kube_pod_container_status_waiting_reason{job="kube-state-metrics"}) > 0
       for: 1h
       labels:
         severity: warning
@@ -209,7 +209,7 @@ spec:
         runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubejobnotcompleted
         summary: Job did not complete in time
       expr: |
-        time() - max by(namespace, job_name) (kube_job_status_start_time{job="kube-state-metrics"}
+        time() - max by(namespace, job_name, cluster) (kube_job_status_start_time{job="kube-state-metrics"}
           and
         kube_job_status_active{job="kube-state-metrics"} > 0) > 43200
       labels:
@@ -488,7 +488,7 @@ spec:
         runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeversionmismatch
         summary: Different semantic versions of Kubernetes components running.
       expr: |
-        count(count by (git_version) (label_replace(kubernetes_build_info{job!~"kube-dns|coredns"},"git_version","$1","git_version","(v[0-9]*.[0-9]*).*"))) > 1
+        count by (cluster) (count by (git_version, cluster) (label_replace(kubernetes_build_info{job!~"kube-dns|coredns"},"git_version","$1","git_version","(v[0-9]*.[0-9]*).*"))) > 1
       for: 15m
       labels:
         severity: warning
@@ -594,7 +594,7 @@ spec:
         runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeaggregatedapierrors
         summary: Kubernetes aggregated API has reported errors.
       expr: |
-        sum by(name, namespace)(increase(aggregator_unavailable_apiservice_total[10m])) > 4
+        sum by(name, namespace, cluster)(increase(aggregator_unavailable_apiservice_total[10m])) > 4
       labels:
         severity: warning
     - alert: KubeAggregatedAPIDown
@@ -604,7 +604,7 @@ spec:
         runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeaggregatedapidown
         summary: Kubernetes aggregated API is down.
       expr: |
-        (1 - max by(name, namespace)(avg_over_time(aggregator_unavailable_apiservice[10m]))) * 100 < 85
+        (1 - max by(name, namespace, cluster)(avg_over_time(aggregator_unavailable_apiservice[10m]))) * 100 < 85
       for: 5m
       labels:
         severity: warning
diff --git a/manifests/prometheusOperator-clusterRole.yaml b/manifests/prometheusOperator-clusterRole.yaml
index 961eaab94ea9968273fa066b9e4f373f6de01589..1c764308c27bdb9976c5105f9141f4aae74d151d 100644
--- a/manifests/prometheusOperator-clusterRole.yaml
+++ b/manifests/prometheusOperator-clusterRole.yaml
@@ -5,7 +5,7 @@ metadata:
     app.kubernetes.io/component: controller
     app.kubernetes.io/name: prometheus-operator
     app.kubernetes.io/part-of: kube-prometheus
-    app.kubernetes.io/version: 0.56.2
+    app.kubernetes.io/version: 0.56.3
   name: prometheus-operator
 rules:
 - apiGroups:
diff --git a/manifests/prometheusOperator-clusterRoleBinding.yaml b/manifests/prometheusOperator-clusterRoleBinding.yaml
index d50ceb26e713bba23d89bcb0172ee39b6e88e3d0..09852546baf9c040a734b4fc9e14dc5aebb57b80 100644
--- a/manifests/prometheusOperator-clusterRoleBinding.yaml
+++ b/manifests/prometheusOperator-clusterRoleBinding.yaml
@@ -5,7 +5,7 @@ metadata:
     app.kubernetes.io/component: controller
     app.kubernetes.io/name: prometheus-operator
     app.kubernetes.io/part-of: kube-prometheus
-    app.kubernetes.io/version: 0.56.2
+    app.kubernetes.io/version: 0.56.3
   name: prometheus-operator
 roleRef:
   apiGroup: rbac.authorization.k8s.io
diff --git a/manifests/prometheusOperator-deployment.yaml b/manifests/prometheusOperator-deployment.yaml
index a11a27acdd8d95eb4eb85a76baf84798d0237f9e..490544e162b2bedc0904cdb6bce8709d150c8c62 100644
--- a/manifests/prometheusOperator-deployment.yaml
+++ b/manifests/prometheusOperator-deployment.yaml
@@ -5,7 +5,7 @@ metadata:
     app.kubernetes.io/component: controller
     app.kubernetes.io/name: prometheus-operator
     app.kubernetes.io/part-of: kube-prometheus
-    app.kubernetes.io/version: 0.56.2
+    app.kubernetes.io/version: 0.56.3
   name: prometheus-operator
   namespace: monitoring
 spec:
@@ -23,14 +23,14 @@ spec:
         app.kubernetes.io/component: controller
         app.kubernetes.io/name: prometheus-operator
         app.kubernetes.io/part-of: kube-prometheus
-        app.kubernetes.io/version: 0.56.2
+        app.kubernetes.io/version: 0.56.3
     spec:
       automountServiceAccountToken: true
       containers:
       - args:
         - --kubelet-service=kube-system/kubelet
-        - --prometheus-config-reloader=quay.io/prometheus-operator/prometheus-config-reloader:v0.56.2
-        image: quay.io/prometheus-operator/prometheus-operator:v0.56.2
+        - --prometheus-config-reloader=quay.io/prometheus-operator/prometheus-config-reloader:v0.56.3
+        image: quay.io/prometheus-operator/prometheus-operator:v0.56.3
         name: prometheus-operator
         ports:
         - containerPort: 8080
diff --git a/manifests/prometheusOperator-networkPolicy.yaml b/manifests/prometheusOperator-networkPolicy.yaml
index 1cb7d0abd07bacefe90e3e36cc9f49a60008d659..d1a2929acb5d1a75ca0c3237c2a7e7d8360e3c91 100644
--- a/manifests/prometheusOperator-networkPolicy.yaml
+++ b/manifests/prometheusOperator-networkPolicy.yaml
@@ -5,7 +5,7 @@ metadata:
     app.kubernetes.io/component: controller
     app.kubernetes.io/name: prometheus-operator
     app.kubernetes.io/part-of: kube-prometheus
-    app.kubernetes.io/version: 0.56.2
+    app.kubernetes.io/version: 0.56.3
   name: prometheus-operator
   namespace: monitoring
 spec:
diff --git a/manifests/prometheusOperator-prometheusRule.yaml b/manifests/prometheusOperator-prometheusRule.yaml
index be8e6293110c5b710c8e991afdabb91e8da0041e..eb44a0719787eae0358b159763e0e3fd3c404ed6 100644
--- a/manifests/prometheusOperator-prometheusRule.yaml
+++ b/manifests/prometheusOperator-prometheusRule.yaml
@@ -5,7 +5,7 @@ metadata:
     app.kubernetes.io/component: controller
     app.kubernetes.io/name: prometheus-operator
     app.kubernetes.io/part-of: kube-prometheus
-    app.kubernetes.io/version: 0.56.2
+    app.kubernetes.io/version: 0.56.3
     prometheus: k8s
     role: alert-rules
   name: prometheus-operator-rules
@@ -77,7 +77,7 @@ spec:
         runbook_url: https://runbooks.prometheus-operator.dev/runbooks/prometheus-operator/prometheusoperatornotready
         summary: Prometheus operator not ready
       expr: |
-        min by(namespace, controller) (max_over_time(prometheus_operator_ready{job="prometheus-operator",namespace="monitoring"}[5m]) == 0)
+        min by (controller,namespace) (max_over_time(prometheus_operator_ready{job="prometheus-operator",namespace="monitoring"}[5m]) == 0)
       for: 5m
       labels:
         severity: warning
diff --git a/manifests/prometheusOperator-service.yaml b/manifests/prometheusOperator-service.yaml
index 65d02ad49237a04e207c540e435b11bd2aaf2a3b..cf10f6dd6b2f9b547bed7001d6a5255f40271caa 100644
--- a/manifests/prometheusOperator-service.yaml
+++ b/manifests/prometheusOperator-service.yaml
@@ -5,7 +5,7 @@ metadata:
     app.kubernetes.io/component: controller
     app.kubernetes.io/name: prometheus-operator
     app.kubernetes.io/part-of: kube-prometheus
-    app.kubernetes.io/version: 0.56.2
+    app.kubernetes.io/version: 0.56.3
   name: prometheus-operator
   namespace: monitoring
 spec:
diff --git a/manifests/prometheusOperator-serviceAccount.yaml b/manifests/prometheusOperator-serviceAccount.yaml
index 0a44e7b1472f9d8087a6eb83883dc252dbfe02cf..4fb065b890144061c91dcdb48ece702c98bf555e 100644
--- a/manifests/prometheusOperator-serviceAccount.yaml
+++ b/manifests/prometheusOperator-serviceAccount.yaml
@@ -6,6 +6,6 @@ metadata:
     app.kubernetes.io/component: controller
     app.kubernetes.io/name: prometheus-operator
     app.kubernetes.io/part-of: kube-prometheus
-    app.kubernetes.io/version: 0.56.2
+    app.kubernetes.io/version: 0.56.3
   name: prometheus-operator
   namespace: monitoring
diff --git a/manifests/prometheusOperator-serviceMonitor.yaml b/manifests/prometheusOperator-serviceMonitor.yaml
index 9ea723d127209f84d7ac82b628b2c95373c0ffc5..ec447385148934c21de541f1576c2d0d3434a64c 100644
--- a/manifests/prometheusOperator-serviceMonitor.yaml
+++ b/manifests/prometheusOperator-serviceMonitor.yaml
@@ -5,7 +5,7 @@ metadata:
     app.kubernetes.io/component: controller
     app.kubernetes.io/name: prometheus-operator
     app.kubernetes.io/part-of: kube-prometheus
-    app.kubernetes.io/version: 0.56.2
+    app.kubernetes.io/version: 0.56.3
   name: prometheus-operator
   namespace: monitoring
 spec:
@@ -21,4 +21,4 @@ spec:
       app.kubernetes.io/component: controller
       app.kubernetes.io/name: prometheus-operator
       app.kubernetes.io/part-of: kube-prometheus
-      app.kubernetes.io/version: 0.56.2
+      app.kubernetes.io/version: 0.56.3
diff --git a/manifests/setup/0podmonitorCustomResourceDefinition.yaml b/manifests/setup/0podmonitorCustomResourceDefinition.yaml
index f3788ef2a5a63983a833eaeddd1bdc557efabe36..4be81a3454e2c31cec58f76a443cea879c26ed2c 100644
--- a/manifests/setup/0podmonitorCustomResourceDefinition.yaml
+++ b/manifests/setup/0podmonitorCustomResourceDefinition.yaml
@@ -39,6 +39,15 @@ spec:
             description: Specification of desired Pod selection for target discovery
               by Prometheus.
             properties:
+              attachMetadata:
+                description: 'Attaches node metadata to discovered targets. Only valid
+                  for role: pod. Only valid in Prometheus versions 2.35.0 and newer.'
+                properties:
+                  node:
+                    description: When set to true, Prometheus must have permissions
+                      to get Nodes.
+                    type: boolean
+                type: object
               jobLabel:
                 description: The label to use to retrieve the job name from.
                 type: string