From c6573e756802f169d72da7080a8c300cfd05f1a0 Mon Sep 17 00:00:00 2001 From: Jian Zhang Date: Thu, 4 Dec 2025 10:52:55 +0800 Subject: [PATCH 1/2] UPSTREAM: : enable downstream pdb and update replicas to meet MCO drain --- .../deployment-olmv1-system-catalogd-controller-manager.yml | 2 +- ...nt-olmv1-system-operator-controller-controller-manager.yml | 2 +- helm/olmv1/values.yaml | 2 ++ manifests/experimental-e2e.yaml | 4 ++-- manifests/experimental.yaml | 4 ++-- manifests/standard-e2e.yaml | 4 ++-- manifests/standard.yaml | 4 ++-- openshift/catalogd/manifests-experimental.yaml | 2 +- openshift/catalogd/manifests.yaml | 2 +- openshift/helm/catalogd.yaml | 2 +- openshift/helm/operator-controller.yaml | 2 +- openshift/operator-controller/manifests-experimental.yaml | 2 +- openshift/operator-controller/manifests.yaml | 2 +- 13 files changed, 18 insertions(+), 16 deletions(-) diff --git a/helm/olmv1/templates/deployment-olmv1-system-catalogd-controller-manager.yml b/helm/olmv1/templates/deployment-olmv1-system-catalogd-controller-manager.yml index 092cb7a24..f2d3ad87e 100644 --- a/helm/olmv1/templates/deployment-olmv1-system-catalogd-controller-manager.yml +++ b/helm/olmv1/templates/deployment-olmv1-system-catalogd-controller-manager.yml @@ -12,7 +12,7 @@ metadata: namespace: {{ .Values.namespaces.olmv1.name }} spec: minReadySeconds: 5 - replicas: 1 + replicas: {{ .Values.options.catalogd.deployment.replicas }} strategy: type: RollingUpdate rollingUpdate: diff --git a/helm/olmv1/templates/deployment-olmv1-system-operator-controller-controller-manager.yml b/helm/olmv1/templates/deployment-olmv1-system-operator-controller-controller-manager.yml index 249610244..e34a8d33c 100644 --- a/helm/olmv1/templates/deployment-olmv1-system-operator-controller-controller-manager.yml +++ b/helm/olmv1/templates/deployment-olmv1-system-operator-controller-controller-manager.yml @@ -11,7 +11,7 @@ metadata: name: operator-controller-controller-manager namespace: {{ .Values.namespaces.olmv1.name }} spec: - replicas: 1 + replicas: {{ .Values.options.operatorController.deployment.replicas }} strategy: type: RollingUpdate rollingUpdate: diff --git a/helm/olmv1/values.yaml b/helm/olmv1/values.yaml index cb454f625..e61d87b12 100644 --- a/helm/olmv1/values.yaml +++ b/helm/olmv1/values.yaml @@ -8,6 +8,7 @@ options: enabled: true deployment: image: quay.io/operator-framework/operator-controller:devel + replicas: 2 extraArguments: [] features: enabled: [] @@ -19,6 +20,7 @@ options: enabled: true deployment: image: quay.io/operator-framework/catalogd:devel + replicas: 2 extraArguments: [] features: enabled: [] diff --git a/manifests/experimental-e2e.yaml b/manifests/experimental-e2e.yaml index e536cd72a..76d9c6cc3 100644 --- a/manifests/experimental-e2e.yaml +++ b/manifests/experimental-e2e.yaml @@ -2107,7 +2107,7 @@ metadata: namespace: olmv1-system spec: minReadySeconds: 5 - replicas: 1 + replicas: 2 strategy: type: RollingUpdate rollingUpdate: @@ -2258,7 +2258,7 @@ metadata: name: operator-controller-controller-manager namespace: olmv1-system spec: - replicas: 1 + replicas: 2 strategy: type: RollingUpdate rollingUpdate: diff --git a/manifests/experimental.yaml b/manifests/experimental.yaml index f88debab0..7ce2bf7d8 100644 --- a/manifests/experimental.yaml +++ b/manifests/experimental.yaml @@ -2032,7 +2032,7 @@ metadata: namespace: olmv1-system spec: minReadySeconds: 5 - replicas: 1 + replicas: 2 strategy: type: RollingUpdate rollingUpdate: @@ -2170,7 +2170,7 @@ metadata: name: operator-controller-controller-manager namespace: olmv1-system spec: - replicas: 1 + replicas: 2 strategy: type: RollingUpdate rollingUpdate: diff --git a/manifests/standard-e2e.yaml b/manifests/standard-e2e.yaml index 1aed38ba9..ee1a4f212 100644 --- a/manifests/standard-e2e.yaml +++ b/manifests/standard-e2e.yaml @@ -1795,7 +1795,7 @@ metadata: namespace: olmv1-system spec: minReadySeconds: 5 - replicas: 1 + replicas: 2 strategy: type: RollingUpdate rollingUpdate: @@ -1945,7 +1945,7 @@ metadata: name: operator-controller-controller-manager namespace: olmv1-system spec: - replicas: 1 + replicas: 2 strategy: type: RollingUpdate rollingUpdate: diff --git a/manifests/standard.yaml b/manifests/standard.yaml index 34cc57918..abd79b80c 100644 --- a/manifests/standard.yaml +++ b/manifests/standard.yaml @@ -1720,7 +1720,7 @@ metadata: namespace: olmv1-system spec: minReadySeconds: 5 - replicas: 1 + replicas: 2 strategy: type: RollingUpdate rollingUpdate: @@ -1857,7 +1857,7 @@ metadata: name: operator-controller-controller-manager namespace: olmv1-system spec: - replicas: 1 + replicas: 2 strategy: type: RollingUpdate rollingUpdate: diff --git a/openshift/catalogd/manifests-experimental.yaml b/openshift/catalogd/manifests-experimental.yaml index 4dacdee86..3ead526db 100644 --- a/openshift/catalogd/manifests-experimental.yaml +++ b/openshift/catalogd/manifests-experimental.yaml @@ -834,7 +834,7 @@ metadata: namespace: openshift-catalogd spec: minReadySeconds: 5 - replicas: 1 + replicas: 2 strategy: type: RollingUpdate rollingUpdate: diff --git a/openshift/catalogd/manifests.yaml b/openshift/catalogd/manifests.yaml index 68b6c87f3..6035d89b1 100644 --- a/openshift/catalogd/manifests.yaml +++ b/openshift/catalogd/manifests.yaml @@ -834,7 +834,7 @@ metadata: namespace: openshift-catalogd spec: minReadySeconds: 5 - replicas: 1 + replicas: 2 strategy: type: RollingUpdate rollingUpdate: diff --git a/openshift/helm/catalogd.yaml b/openshift/helm/catalogd.yaml index 1e321bb52..bce2a9ca3 100644 --- a/openshift/helm/catalogd.yaml +++ b/openshift/helm/catalogd.yaml @@ -9,7 +9,7 @@ options: deployment: image: ${CATALOGD_IMAGE} podDisruptionBudget: - enabled: false + enabled: true operatorController: enabled: false openshift: diff --git a/openshift/helm/operator-controller.yaml b/openshift/helm/operator-controller.yaml index ee6276a25..684db71bd 100644 --- a/openshift/helm/operator-controller.yaml +++ b/openshift/helm/operator-controller.yaml @@ -9,7 +9,7 @@ options: deployment: image: ${OPERATOR_CONTROLLER_IMAGE} podDisruptionBudget: - enabled: false + enabled: true catalogd: enabled: false openshift: diff --git a/openshift/operator-controller/manifests-experimental.yaml b/openshift/operator-controller/manifests-experimental.yaml index 6ecb52ff2..be2d33210 100644 --- a/openshift/operator-controller/manifests-experimental.yaml +++ b/openshift/operator-controller/manifests-experimental.yaml @@ -1090,7 +1090,7 @@ metadata: name: operator-controller-controller-manager namespace: openshift-operator-controller spec: - replicas: 1 + replicas: 2 strategy: type: RollingUpdate rollingUpdate: diff --git a/openshift/operator-controller/manifests.yaml b/openshift/operator-controller/manifests.yaml index 091dfe26a..b5a0bca47 100644 --- a/openshift/operator-controller/manifests.yaml +++ b/openshift/operator-controller/manifests.yaml @@ -1053,7 +1053,7 @@ metadata: name: operator-controller-controller-manager namespace: openshift-operator-controller spec: - replicas: 1 + replicas: 2 strategy: type: RollingUpdate rollingUpdate: From 445ad9b03baf9a00be1305ddae069a3285a2f20d Mon Sep 17 00:00:00 2001 From: Jian Zhang Date: Thu, 4 Dec 2025 11:35:48 +0800 Subject: [PATCH 2/2] Update OpenShift manifests with PodDisruptionBudget resources MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Regenerate OpenShift manifests to include PodDisruptionBudget resources for catalogd-controller-manager and operator-controller-controller-manager. These PDBs ensure high availability during cluster upgrades by preventing simultaneous disruption of all controller pods. The manifests now include: - PDB for catalogd with minAvailable: 1 - PDB for operator-controller with minAvailable: 1 - Both standard and experimental feature set annotations 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- openshift/catalogd/manifests-experimental.yaml | 17 +++++++++++++++++ openshift/catalogd/manifests.yaml | 17 +++++++++++++++++ .../manifests-experimental.yaml | 17 +++++++++++++++++ openshift/operator-controller/manifests.yaml | 17 +++++++++++++++++ 4 files changed, 68 insertions(+) diff --git a/openshift/catalogd/manifests-experimental.yaml b/openshift/catalogd/manifests-experimental.yaml index 3ead526db..d0c4a19f8 100644 --- a/openshift/catalogd/manifests-experimental.yaml +++ b/openshift/catalogd/manifests-experimental.yaml @@ -65,6 +65,23 @@ spec: - Ingress - Egress --- +# Source: olmv1/templates/poddisruptionbudget-olmv1-system-catalogd.yml +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: catalogd-controller-manager + namespace: openshift-catalogd + labels: + app.kubernetes.io/name: catalogd + app.kubernetes.io/part-of: olm + annotations: + olm.operatorframework.io/feature-set: experimental +spec: + minAvailable: 1 + selector: + matchLabels: + control-plane: catalogd-controller-manager +--- # Source: olmv1/templates/serviceaccount-olmv1-system-common-controller-manager.yml apiVersion: v1 kind: ServiceAccount diff --git a/openshift/catalogd/manifests.yaml b/openshift/catalogd/manifests.yaml index 6035d89b1..e113d708b 100644 --- a/openshift/catalogd/manifests.yaml +++ b/openshift/catalogd/manifests.yaml @@ -65,6 +65,23 @@ spec: - Ingress - Egress --- +# Source: olmv1/templates/poddisruptionbudget-olmv1-system-catalogd.yml +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: catalogd-controller-manager + namespace: openshift-catalogd + labels: + app.kubernetes.io/name: catalogd + app.kubernetes.io/part-of: olm + annotations: + olm.operatorframework.io/feature-set: standard +spec: + minAvailable: 1 + selector: + matchLabels: + control-plane: catalogd-controller-manager +--- # Source: olmv1/templates/serviceaccount-olmv1-system-common-controller-manager.yml apiVersion: v1 kind: ServiceAccount diff --git a/openshift/operator-controller/manifests-experimental.yaml b/openshift/operator-controller/manifests-experimental.yaml index be2d33210..5a0a2194f 100644 --- a/openshift/operator-controller/manifests-experimental.yaml +++ b/openshift/operator-controller/manifests-experimental.yaml @@ -61,6 +61,23 @@ spec: - Ingress - Egress --- +# Source: olmv1/templates/poddisruptionbudget-olmv1-system-operator-controller.yml +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: operator-controller-controller-manager + namespace: openshift-operator-controller + labels: + app.kubernetes.io/name: operator-controller + app.kubernetes.io/part-of: olm + annotations: + olm.operatorframework.io/feature-set: experimental +spec: + minAvailable: 1 + selector: + matchLabels: + control-plane: operator-controller-controller-manager +--- # Source: olmv1/templates/serviceaccount-olmv1-system-common-controller-manager.yml apiVersion: v1 kind: ServiceAccount diff --git a/openshift/operator-controller/manifests.yaml b/openshift/operator-controller/manifests.yaml index b5a0bca47..2af36dfb3 100644 --- a/openshift/operator-controller/manifests.yaml +++ b/openshift/operator-controller/manifests.yaml @@ -61,6 +61,23 @@ spec: - Ingress - Egress --- +# Source: olmv1/templates/poddisruptionbudget-olmv1-system-operator-controller.yml +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: operator-controller-controller-manager + namespace: openshift-operator-controller + labels: + app.kubernetes.io/name: operator-controller + app.kubernetes.io/part-of: olm + annotations: + olm.operatorframework.io/feature-set: standard +spec: + minAvailable: 1 + selector: + matchLabels: + control-plane: operator-controller-controller-manager +--- # Source: olmv1/templates/serviceaccount-olmv1-system-common-controller-manager.yml apiVersion: v1 kind: ServiceAccount