From 615e53046a3cf349b7aa01b1f972b97221d5fe25 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Fri, 20 Mar 2026 15:10:03 -0700 Subject: [PATCH 1/4] install/0000_00_cluster-version-operator_03_deployment: Disable 1.35 client-go features [1] lists InOrderInformersBatchProcess, InformerResourceVersion, and WatchListClient as new features in 1.35, and mentions environment variables as a way to turn them off. [2] gives a demonstration, with: $ KUBE_FEATURE_WatchListClient=true go test -v . -run ^TestBasic$ ... $ KUBE_FEATURE_WatchListClient=false go test -v ./pkg/webhooks/validation/controller -run ^TestBasic$ ... Try turning all three off, to see if that recovers the CVO's ability to quickly notice version-... Pod completion [3]. [1]: https://github.com/kubernetes/kubernetes/blob//v1.35.3/staging/src/k8s.io/client-go/features/known_features.go#L79-L105 [2]: https://github.com/kubernetes/kubernetes/issues/135895#issue-3755323258 [3]: https://redhat.atlassian.net/browse/OCPBUGS-78997 --- install/0000_00_cluster-version-operator_30_deployment.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/install/0000_00_cluster-version-operator_30_deployment.yaml b/install/0000_00_cluster-version-operator_30_deployment.yaml index 8a373dcc9d..7074a0bfd2 100644 --- a/install/0000_00_cluster-version-operator_30_deployment.yaml +++ b/install/0000_00_cluster-version-operator_30_deployment.yaml @@ -77,6 +77,12 @@ spec: fieldPath: spec.nodeName - name: CLUSTER_PROFILE value: '{{ .ClusterProfile }}' + - name: KUBE_FEATURE_InOrderInformersBatchProcess + value: "false" + - name: KUBE_FEATURE_InformerResourceVersion + value: "false" + - name: KUBE_FEATURE_WatchListClient + value: "false" # this pod is hostNetwork and uses the internal LB DNS name when possible, which the kubelet also uses. # this dnsPolicy allows us to use the same dnsConfig as the kubelet, without access to read it ourselves. dnsPolicy: Default From 00a67b6b519853ff13214e3503fc9d70fd36036e Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Fri, 20 Mar 2026 21:25:25 -0700 Subject: [PATCH 2/4] install/0000_00_cluster-version-operator_03_deployment: Allow InformerResourceVersion default See if allowing this to default back to true breaks the quick transition into the update. --- install/0000_00_cluster-version-operator_30_deployment.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/install/0000_00_cluster-version-operator_30_deployment.yaml b/install/0000_00_cluster-version-operator_30_deployment.yaml index 7074a0bfd2..240ca6bc85 100644 --- a/install/0000_00_cluster-version-operator_30_deployment.yaml +++ b/install/0000_00_cluster-version-operator_30_deployment.yaml @@ -79,8 +79,6 @@ spec: value: '{{ .ClusterProfile }}' - name: KUBE_FEATURE_InOrderInformersBatchProcess value: "false" - - name: KUBE_FEATURE_InformerResourceVersion - value: "false" - name: KUBE_FEATURE_WatchListClient value: "false" # this pod is hostNetwork and uses the internal LB DNS name when possible, which the kubelet also uses. From 059b82f75ed751c3b7d45ee9900d26699093f61d Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Sat, 21 Mar 2026 08:38:40 -0700 Subject: [PATCH 3/4] install/0000_00_cluster-version-operator_03_deployment: Allow InOrderInformersBatchProcess default See if allowing this to default back to true breaks the quick transition into the update. --- install/0000_00_cluster-version-operator_30_deployment.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/install/0000_00_cluster-version-operator_30_deployment.yaml b/install/0000_00_cluster-version-operator_30_deployment.yaml index 240ca6bc85..5ddf308077 100644 --- a/install/0000_00_cluster-version-operator_30_deployment.yaml +++ b/install/0000_00_cluster-version-operator_30_deployment.yaml @@ -77,8 +77,6 @@ spec: fieldPath: spec.nodeName - name: CLUSTER_PROFILE value: '{{ .ClusterProfile }}' - - name: KUBE_FEATURE_InOrderInformersBatchProcess - value: "false" - name: KUBE_FEATURE_WatchListClient value: "false" # this pod is hostNetwork and uses the internal LB DNS name when possible, which the kubelet also uses. From da1be8c4b6203f1658ca62f1eb7749652fa12f44 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Sat, 21 Mar 2026 11:03:57 -0700 Subject: [PATCH 4/4] pkg/payload/testdata/TestRenderManifest_expected_cvo_deployment: Update fixture Catch up with the previous few commits, that added this environment variable to the install/ directory. --- .../testdata/TestRenderManifest_expected_cvo_deployment.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/payload/testdata/TestRenderManifest_expected_cvo_deployment.yaml b/pkg/payload/testdata/TestRenderManifest_expected_cvo_deployment.yaml index 9c037bdd93..a1fc334005 100644 --- a/pkg/payload/testdata/TestRenderManifest_expected_cvo_deployment.yaml +++ b/pkg/payload/testdata/TestRenderManifest_expected_cvo_deployment.yaml @@ -77,6 +77,8 @@ spec: fieldPath: spec.nodeName - name: CLUSTER_PROFILE value: 'some-profile' + - name: KUBE_FEATURE_WatchListClient + value: "false" # this pod is hostNetwork and uses the internal LB DNS name when possible, which the kubelet also uses. # this dnsPolicy allows us to use the same dnsConfig as the kubelet, without access to read it ourselves. dnsPolicy: Default