OCPBUGS-78997: install/0000_00_cluster-version-operator_03_deployment: Disable 1.35 client-go WatchListClient#1355
OCPBUGS-78997: install/0000_00_cluster-version-operator_03_deployment: Disable 1.35 client-go WatchListClient#1355wking wants to merge 7 commits intoopenshift:mainfrom
Conversation
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
WalkthroughThis PR updates the Go toolchain from 1.24.0 to 1.25.0, upgrades dependencies (Kubernetes, OpenShift, Prometheus), and introduces major version-based manifest filtering to the cluster-version operator. The implementation adds a Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~28 minutes ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: wking The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
…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]: kubernetes/kubernetes#135895 (comment) [3]: https://redhat.atlassian.net/browse/OCPBUGS-78997
…rResourceVersion default See if allowing this to default back to true breaks the quick transition into the update.
…InformersBatchProcess default See if allowing this to default back to true breaks the quick transition into the update.
|
181af31 turned off all three, and its run saw a fast transition: $ curl -s https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/pr-logs/pull/openshift_cluster-version-operator/1355/pull-ci-openshift-cluster-version-operator-main-e2e-agnostic-ovn-upgrade-out-of-change/2035135605855227904/artifacts/e2e-agnostic-ovn-upgrade-out-of-change/gather-extra/artifacts/events.json | jq -r '[.items[] | select(.metadata.namespace == "openshift-cluster-version") | (.firstTimestamp // .eventTimestamp // .metadata.creationTimestamp) + " " + (.count | tostring) + " " + (.involvedObject | .kind + " " + .name) + " " + .reason + ": " + .message] | sort[]' | grep 'Pod version-.* Created\|PreconditionsPassed'
2026-03-21T00:31:10Z 1 Pod version--gkm82 Created: Container created
2026-03-21T00:31:11Z 1 Pod version--gkm82 Created: Container created
2026-03-21T00:31:12Z 1 Pod version--gkm82 Created: Container created
2026-03-21T00:31:13Z 1 Pod version--gkm82 Created: Container created
2026-03-21T00:31:14Z 1 Pod version--gkm82 Created: Container created
2026-03-21T00:31:18Z 1 ClusterVersion version PreconditionsPassed: preconditions passed for payload loaded version="4.22.0-0.ci-2026-03-20-232854-test-ci-op-ndty4jri-initial" image="registry.build02.ci.openshift.org/ci-op-ndty4jri/release@sha256:4fdbf520050cfd3b40e7832d0aa20d2629d5cb734c0fd95050fc1f32efe0e477"So 8s for that transition, which is nice and fast. 02778be re-enabled $ curl -s https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/pr-logs/pull/openshift_cluster-version-operator/1355/pull-ci-openshift-cluster-version-operator-main-e2e-agnostic-ovn-upgrade-out-of-change/2035211505875554304/artifacts/e2e-agnostic-ovn-upgrade-out-of-change/gather-extra/artifacts/events.json | jq -r '[.items[] | select(.metadata.namespace == "openshift-cluster-version") | (.firstTimestamp // .eventTimestamp // .metadata.creationTimestamp) + " " + (.count | tostring) + " " + (.involvedObject | .kind + " " + .name) + " " + .reason + ": " + .message] | sort[]' | grep 'Pod version-.* Created\|PreconditionsPassed'
2026-03-21T05:38:46Z 1 Pod version--gwlts Created: Container created
2026-03-21T05:38:46Z 1 Pod version--gwlts Created: Container created
2026-03-21T05:38:47Z 1 Pod version--gwlts Created: Container created
2026-03-21T05:38:48Z 1 Pod version--gwlts Created: Container created
2026-03-21T05:38:49Z 1 Pod version--gwlts Created: Container created
2026-03-21T05:38:53Z 1 ClusterVersion version PreconditionsPassed: preconditions passed for payload loaded version="4.22.0-0.ci-2026-03-21-043032-test-ci-op-hf29b362-initial" image="registry.build02.ci.openshift.org/ci-op-hf29b362/release@sha256:9bdf03c3f3bd6a27c67aa4751eaeb73f807f394af1a5bcb8f74a7c8c458206aa"So 7s, again fast. I'll enable |
|
81ae26c re-enabled $ curl -s https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/pr-logs/pull/openshift_cluster-version-operator/1355/pull-ci-openshift-cluster-version-operator-main-e2e-agnostic-ovn-upgrade-out-of-change/2035380696331063296/artifacts/e2e-agnostic-ovn-upgrade-out-of-change/gather-extra/artifacts/events.json | jq -r '[.items[] | select(.metadata.namespace == "openshift-cluster-version") | (.firstTimestamp // .eventTimestamp // .metadata.creationTimestamp) + " " + (.count | tostring) + " " + (.involvedObject | .kind + " " + .name) + " " + .reason + ": " + .message] | sort[]' | grep 'Pod version-.* Created\|PreconditionsPassed'
2026-03-21T16:45:58Z 1 Pod version--nk2g8 Created: Container created
2026-03-21T16:45:58Z 1 Pod version--nk2g8 Created: Container created
2026-03-21T16:46:00Z 1 Pod version--nk2g8 Created: Container created
2026-03-21T16:46:00Z 1 Pod version--nk2g8 Created: Container created
2026-03-21T16:46:02Z 1 Pod version--nk2g8 Created: Container created
2026-03-21T16:46:05Z 1 ClusterVersion version PreconditionsPassed: preconditions passed for payload loaded version="4.22.0-0.ci-2026-03-21-154745-test-ci-op-w443i41i-initial" image="registry.build02.ci.openshift.org/ci-op-w443i41i/release@sha256:df457662d482698692801a7f73cc92c71b3779ce4a466507f5c5b34752e472ad"So it's just enabling |
|
@wking: This pull request references Jira Issue OCPBUGS-78997, which is valid. 3 validation(s) were run on this bug
The bug has been updated to refer to the pull request using the external bug tracker. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
…te fixture Catch up with the previous few commits, that added this environment variable to the install/ directory.
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
pkg/payload/render.go (1)
290-293: Normalizerelease.Versionbefore semver parsing for consistency withpkg/version/version.go.
semver.Parserejectsv1.2.3, but the existing normalization convention inpkg/version/version.go:16trims the leadingvbefore parsing. Current release-metadata fixtures don't have v-prefixed versions, but this code path should follow the same pattern for consistency and resilience.Suggested fix
- parsedVersion, err := semver.Parse(release.Version) + parsedVersion, err := semver.Parse(strings.TrimPrefix(release.Version, "v"))Note:
pkg/payload/payload.go:290and:372have the same pattern—consider applying this normalization consistently across all version parsing in the payload module.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@pkg/payload/render.go` around lines 290 - 293, The semver.Parse call should first normalize release.Version by stripping a leading "v" (same convention used in pkg/version/version.go) before parsing; update the code around parsedVersion := semver.Parse(release.Version) to normalize release.Version (e.g., use strings.TrimPrefix(release.Version, "v")) and then call semver.Parse on the trimmed value, and apply the same normalization to the other payload parsing sites that use semver.Parse (the similar occurrences in pkg/payload/payload.go referenced around lines ~290 and ~372) so all version parsing is consistent.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@go.mod`:
- Line 3: The go.mod currently specifies an invalid Go version "go 1.25.0";
update the module directive to a released Go version (for example "go 1.24" or
"go 1.24.0") so builds use a valid toolchain; locate the `go 1.25.0` line in
go.mod and replace it with a supported release string.
In `@lib/manifest/manifest.go`:
- Around line 92-96: The code dereferences
currentManifestInclusionConfiguration.Capabilities.EnabledCapabilities without a
nil check; update the logic around newImplicitlyEnabled in manifest.go to first
check if currentManifestInclusionConfiguration.Capabilities is non-nil (and
treat EnabledCapabilities as empty when nil), e.g. construct a safeSet for
enabled capabilities only when Capabilities != nil, and use that safeSet in the
Difference(...) call so you never directly access
Capabilities.EnabledCapabilities when Capabilities is nil; adjust the Difference
call that currently references
currentManifestInclusionConfiguration.Capabilities.EnabledCapabilities to use
the safeSet variable instead.
In
`@pkg/cvo/testdata/majorversiontest-v5/release-manifests/0000_30_version-5-only.yaml`:
- Around line 4-12: The CRD fixture's metadata.name must follow Kubernetes spec
(metadata.name == spec.names.plural + "." + spec.group), so change the CRD in
pkg/cvo/testdata/.../0000_30_version-5-only.yaml to set metadata.name to
"version5onlies.test.io" (matching spec.names.plural and spec.group); then
update the test expectations in TestCVO_MajorVersionManifestFiltering
(cvo_scenarios_test.go) to look for "version5onlies" (or the full name if the
test asserts full resource names) and adjust any other CRD fixtures in the same
testdata directory that currently use singular names to use "<plural>.<group>"
format so tests and fixtures remain consistent.
---
Nitpick comments:
In `@pkg/payload/render.go`:
- Around line 290-293: The semver.Parse call should first normalize
release.Version by stripping a leading "v" (same convention used in
pkg/version/version.go) before parsing; update the code around parsedVersion :=
semver.Parse(release.Version) to normalize release.Version (e.g., use
strings.TrimPrefix(release.Version, "v")) and then call semver.Parse on the
trimmed value, and apply the same normalization to the other payload parsing
sites that use semver.Parse (the similar occurrences in pkg/payload/payload.go
referenced around lines ~290 and ~372) so all version parsing is consistent.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: c4bc4c7d-f180-4e55-86d4-cb421c68b4d5
⛔ Files ignored due to path filters (279)
go.sumis excluded by!**/*.sumvendor/github.com/gogo/protobuf/AUTHORSis excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/CONTRIBUTORSis excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/Makefileis excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/clone.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/custom_gogo.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/decode.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/deprecated.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/discard.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/duration.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/duration_gogo.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/encode.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/encode_gogo.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/equal.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/extensions.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/extensions_gogo.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/lib.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/lib_gogo.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/message_set.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/pointer_reflect.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/pointer_unsafe.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/properties.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/properties_gogo.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/skip_gogo.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/table_marshal.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/table_marshal_gogo.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/table_merge.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/table_unmarshal.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/table_unmarshal_gogo.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/text.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/text_gogo.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/text_parser.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/timestamp.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/timestamp_gogo.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/wrappers.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/proto/wrappers_gogo.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gogo/protobuf/sortkeys/sortkeys.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/CHANGELOG.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/format/format.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/gomega_dsl.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/internal/assertion.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/internal/async_assertion.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/internal/duration_bundle.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/internal/gomega.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/internal/polling_signal_error.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/internal/vetoptdesc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/and.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/assignable_to_type_of_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_a_directory.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_a_regular_file.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_an_existing_file.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_closed_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_comparable_to_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_element_of_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_empty_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_equivalent_to_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_false_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_identical_to.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_key_of_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_nil_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_numerically_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_sent_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_temporally_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_true_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/be_zero_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/consist_of.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/contain_element_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/contain_elements_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/contain_substring_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/equal_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/have_cap_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/have_each_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/have_exact_elements.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/have_existing_field_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/have_field.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/have_http_body_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/have_http_header_with_value_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/have_http_status_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/have_key_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/have_key_with_value_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/have_len_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/have_occurred_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/have_prefix_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/have_suffix_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/have_value.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/match_error_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/match_json_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/match_regexp_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/match_xml_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/match_yaml_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/not.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/or.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/panic_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/receive_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/satisfy_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/semi_structured_data_support.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/succeed_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/bipartitegraph.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/support/goraph/node/node.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/type_support.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/matchers/with_transform.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/types/types.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/types_apiserver.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/types_authentication.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/types_infrastructure.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/types_ingress.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/types_insights.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/types_network.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/types_tlssecurityprofile.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-CustomNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-Default.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-DevPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-OKD.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-TechPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-CustomNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-Default.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-DevPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-OKD.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-TechPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-OKD.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_ingresses.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_networks.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_openshift-controller-manager_01_builds.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1alpha1/register.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1alpha1/types_backup.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1alpha1/types_cluster_monitoring.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1alpha1/types_crio_credential_provider_config.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1alpha1/types_insights.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1alpha1/zz_generated.deepcopy.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1alpha1/zz_generated.featuregated-crd-manifests.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1alpha1/zz_generated.swagger_doc_generated.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1alpha2/types_insights.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1alpha2/zz_generated.featuregated-crd-manifests.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/features/features.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/features/legacyfeaturegates.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/features/util.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/image/v1/generated.pb.gois excluded by!**/*.pb.go,!vendor/**,!**/vendor/**vendor/github.com/openshift/api/image/v1/generated.protomessage.pb.gois excluded by!**/*.pb.go,!vendor/**,!**/vendor/**vendor/github.com/openshift/api/operator/v1/types_network.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/operator/v1/zz_generated.featuregated-crd-manifests.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/operator/v1alpha1/register.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/operator/v1alpha1/types_clusterapi.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversionoperators-DevPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversionoperators-TechPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversionoperators.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.crd-manifests/0000_10_etcd_01_etcdbackups-CustomNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.crd-manifests/0000_10_etcd_01_etcdbackups-TechPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.crd-manifests/0000_10_etcd_01_etcdbackups.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.crd-manifests/0000_30_cluster-api_01_clusterapis.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.deepcopy.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.featuregated-crd-manifests.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.swagger_doc_generated.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/security/v1/generated.pb.gois excluded by!**/*.pb.go,!vendor/**,!**/vendor/**vendor/github.com/openshift/api/security/v1/generated.protomessage.pb.gois excluded by!**/*.pb.go,!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/acceptrisk.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/alibabacloudplatformstatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/alibabacloudresourcetag.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/apiserver.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/apiserverencryption.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/apiservernamedservingcert.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/apiserverservingcerts.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/apiserverspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/audit.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/auditcustomrule.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/authentication.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/authenticationspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/authenticationstatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/awsdnsspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/awsingressspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/awskmsconfig.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/awsplatformspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/awsplatformstatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/awsresourcetag.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/awsserviceendpoint.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/azureplatformstatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/azureresourcetag.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/baremetalplatformloadbalancer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/baremetalplatformspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/baremetalplatformstatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/basicauthidentityprovider.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/build.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/builddefaults.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/buildoverrides.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/buildspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/cloudcontrollermanagerstatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/cloudloadbalancerconfig.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/cloudloadbalancerips.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/clustercondition.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/clusterimagepolicy.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/clusterimagepolicyspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/clusterimagepolicystatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/clusternetworkentry.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/clusteroperator.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/clusteroperatorstatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/clusteroperatorstatuscondition.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/clusterversion.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/clusterversioncapabilitiesspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/clusterversioncapabilitiesstatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/clusterversionspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/clusterversionstatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/componentoverride.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/componentroutespec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/componentroutestatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/conditionalupdate.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/conditionalupdaterisk.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/configmapfilereference.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/configmapnamereference.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/console.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/consoleauthentication.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/consolespec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/consolestatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/custom.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/customfeaturegates.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/customtlsprofile.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/deprecatedwebhooktokenauthenticator.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/dns.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/dnsplatformspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/dnsspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/dnszone.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/equinixmetalplatformstatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/externalipconfig.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/externalippolicy.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/externalplatformspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/externalplatformstatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/extramapping.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/featuregate.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/featuregateattributes.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/featuregatedetails.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/featuregateselection.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/featuregatestatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/gatherconfig.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/gathererconfig.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/gatherers.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/gcpplatformstatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/gcpresourcelabel.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/gcpresourcetag.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/githubidentityprovider.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/gitlabidentityprovider.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/googleidentityprovider.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/htpasswdidentityprovider.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/hubsource.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/hubsourcestatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/ibmcloudplatformspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/ibmcloudplatformstatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/ibmcloudserviceendpoint.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/identityprovider.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/identityproviderconfig.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/image.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagecontentpolicy.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagecontentpolicyspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagedigestmirrors.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagedigestmirrorset.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagedigestmirrorsetspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagelabel.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagepolicy.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagepolicyfulciocawithrekorrootoftrust.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagepolicypkirootoftrust.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagepolicypublickeyrootoftrust.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagepolicyspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagepolicystatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagesigstoreverificationpolicy.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagespec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagestatus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagetagmirrors.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagetagmirrorset.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/imagetagmirrorsetspec.gois excluded by!vendor/**,!**/vendor/**
📒 Files selected for processing (21)
go.modinstall/0000_00_cluster-version-operator_03_deployment.yamllib/manifest/manifest.gopkg/cvo/cvo_scenarios_test.gopkg/cvo/cvo_test.gopkg/cvo/featuregate_integration_test.gopkg/cvo/sync_worker.gopkg/cvo/testdata/majorversiontest-v5/manifests/.gitkeeppkg/cvo/testdata/majorversiontest-v5/release-manifests/0000_10_no-version.yamlpkg/cvo/testdata/majorversiontest-v5/release-manifests/0000_20_version-4-only.yamlpkg/cvo/testdata/majorversiontest-v5/release-manifests/0000_30_version-5-only.yamlpkg/cvo/testdata/majorversiontest-v5/release-manifests/0000_40_version-4-or-5.yamlpkg/cvo/testdata/majorversiontest-v5/release-manifests/0000_50_exclude-version-3.yamlpkg/cvo/testdata/majorversiontest-v5/release-manifests/image-referencespkg/cvo/testdata/majorversiontest-v5/release-manifests/release-metadatapkg/cvo/upgradeable_test.gopkg/payload/payload.gopkg/payload/payload_test.gopkg/payload/render.gopkg/payload/render_test.gopkg/payload/testdata/TestRenderManifest_expected_cvo_deployment.yaml
| module github.com/openshift/cluster-version-operator | ||
|
|
||
| go 1.24.0 | ||
| go 1.25.0 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Verify Go 1.25.0 exists and check its release status
# Check if Go 1.25.0 is available
curl -s https://go.dev/dl/?mode=json | jq -r '.[].version' | grep -E '^go1\.25\.0$'
# Check Go release page for 1.25.0 details
curl -s https://go.dev/doc/devel/release.html | grep -A5 "go1.25"Repository: openshift/cluster-version-operator
Length of output: 60
Go version 1.25.0 does not appear to be a valid release.
The directive go 1.25.0 in go.mod references a Go version that does not exist in the official Go releases. This will cause build failures. Use a valid Go version (e.g., 1.24.0 or another released version).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@go.mod` at line 3, The go.mod currently specifies an invalid Go version "go
1.25.0"; update the module directive to a released Go version (for example "go
1.24" or "go 1.24.0") so builds use a valid toolchain; locate the `go 1.25.0`
line in go.mod and replace it with a supported release string.
| newImplicitlyEnabled := sets.New[configv1.ClusterVersionCapability](updateManifest.GetManifestCapabilities()...). | ||
| Difference(sets.New[configv1.ClusterVersionCapability](currentManifest.GetManifestCapabilities()...)). | ||
| Difference(currentImplicitlyEnabled). | ||
| Difference(sets.New[configv1.ClusterVersionCapability](manifestInclusionConfiguration.Capabilities.EnabledCapabilities...)) | ||
| Difference(sets.New[configv1.ClusterVersionCapability](currentManifestInclusionConfiguration.Capabilities.EnabledCapabilities...)) | ||
| ret = ret.Union(newImplicitlyEnabled) |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify how GetImplicitlyEnabledCapabilities is called and whether Capabilities can be nil
# Search for calls to GetImplicitlyEnabledCapabilities
rg -nA10 'GetImplicitlyEnabledCapabilities\(' --type go
# Check if there are any calls where Capabilities could be nil
rg -nB5 -A10 'InclusionConfiguration\{' --type go | head -100Repository: openshift/cluster-version-operator
Length of output: 6206
🏁 Script executed:
#!/bin/bash
# Get full function implementation and type definitions
cat -n lib/manifest/manifest.go | sed -n '30,110p'Repository: openshift/cluster-version-operator
Length of output: 4286
🏁 Script executed:
#!/bin/bash
# Look for InclusionConfiguration type definition
rg -nB2 -A10 'type InclusionConfiguration struct' --type goRepository: openshift/cluster-version-operator
Length of output: 1009
🏁 Script executed:
#!/bin/bash
# Find all callers of GetImplicitlyEnabledCapabilities to check for nil Capabilities
rg -nB3 'GetImplicitlyEnabledCapabilities\(' --type go | grep -A3 'InclusionConfiguration'Repository: openshift/cluster-version-operator
Length of output: 60
🏁 Script executed:
#!/bin/bash
# Get the complete InclusionConfiguration struct definition
cat -n lib/manifest/manifest.go | sed -n '18,42p'Repository: openshift/cluster-version-operator
Length of output: 1281
🏁 Script executed:
#!/bin/bash
# Search for the Capabilities type definition - what does it hold?
rg -nB1 -A5 'Capabilities \*' lib/manifest/manifest.goRepository: openshift/cluster-version-operator
Length of output: 469
🏁 Script executed:
#!/bin/bash
# Search for all InclusionConfiguration{} struct literals to check what values are passed
rg -n 'InclusionConfiguration\{' lib/Repository: openshift/cluster-version-operator
Length of output: 60
🏁 Script executed:
#!/bin/bash
# Search for InclusionConfiguration struct literal creation
rg -n 'InclusionConfiguration{' lib/ pkg/ --type goRepository: openshift/cluster-version-operator
Length of output: 187
🏁 Script executed:
#!/bin/bash
# Look for test cases that might instantiate with nil Capabilities
rg -n -B5 -A10 'InclusionConfiguration{}' --type goRepository: openshift/cluster-version-operator
Length of output: 207
🏁 Script executed:
#!/bin/bash
# Check the test file mentioned in initial results for context around line 382
cat -n pkg/payload/payload_test.go | sed -n '370,395p'Repository: openshift/cluster-version-operator
Length of output: 1043
🏁 Script executed:
#!/bin/bash
# Search without regex special chars for InclusionConfiguration creation
rg -n 'InclusionConfiguration' lib/ pkg/ --type go -A 2 | head -50Repository: openshift/cluster-version-operator
Length of output: 3033
🏁 Script executed:
#!/bin/bash
# Check if there are other calls to GetImplicitlyEnabledCapabilities in lib/manifest/
rg -n 'GetImplicitlyEnabledCapabilities' lib/ --type go -B 5 -A 5Repository: openshift/cluster-version-operator
Length of output: 1793
🏁 Script executed:
#!/bin/bash
# Look at configv1.ClusterVersionCapabilitiesStatus to understand EnabledCapabilities field
rg -n 'EnabledCapabilities' --type go | head -20Repository: openshift/cluster-version-operator
Length of output: 4529
Add nil check before dereferencing Capabilities on line 95.
Line 95 dereferences currentManifestInclusionConfiguration.Capabilities.EnabledCapabilities without a nil check. The Capabilities field is defined as a pointer type with a "if non-nil" comment, meaning nil is a valid value. Although current callers pass non-nil pointers, the function's public API accepts InclusionConfiguration without guaranteeing Capabilities is non-nil.
Proposed fix
newImplicitlyEnabled := sets.New[configv1.ClusterVersionCapability](updateManifest.GetManifestCapabilities()...).
Difference(sets.New[configv1.ClusterVersionCapability](currentManifest.GetManifestCapabilities()...)).
- Difference(currentImplicitlyEnabled).
- Difference(sets.New[configv1.ClusterVersionCapability](currentManifestInclusionConfiguration.Capabilities.EnabledCapabilities...))
+ Difference(currentImplicitlyEnabled)
+ if currentManifestInclusionConfiguration.Capabilities != nil {
+ newImplicitlyEnabled = newImplicitlyEnabled.Difference(sets.New[configv1.ClusterVersionCapability](currentManifestInclusionConfiguration.Capabilities.EnabledCapabilities...))
+ }📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| newImplicitlyEnabled := sets.New[configv1.ClusterVersionCapability](updateManifest.GetManifestCapabilities()...). | |
| Difference(sets.New[configv1.ClusterVersionCapability](currentManifest.GetManifestCapabilities()...)). | |
| Difference(currentImplicitlyEnabled). | |
| Difference(sets.New[configv1.ClusterVersionCapability](manifestInclusionConfiguration.Capabilities.EnabledCapabilities...)) | |
| Difference(sets.New[configv1.ClusterVersionCapability](currentManifestInclusionConfiguration.Capabilities.EnabledCapabilities...)) | |
| ret = ret.Union(newImplicitlyEnabled) | |
| newImplicitlyEnabled := sets.New[configv1.ClusterVersionCapability](updateManifest.GetManifestCapabilities()...). | |
| Difference(sets.New[configv1.ClusterVersionCapability](currentManifest.GetManifestCapabilities()...)). | |
| Difference(currentImplicitlyEnabled) | |
| if currentManifestInclusionConfiguration.Capabilities != nil { | |
| newImplicitlyEnabled = newImplicitlyEnabled.Difference(sets.New[configv1.ClusterVersionCapability](currentManifestInclusionConfiguration.Capabilities.EnabledCapabilities...)) | |
| } | |
| ret = ret.Union(newImplicitlyEnabled) |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@lib/manifest/manifest.go` around lines 92 - 96, The code dereferences
currentManifestInclusionConfiguration.Capabilities.EnabledCapabilities without a
nil check; update the logic around newImplicitlyEnabled in manifest.go to first
check if currentManifestInclusionConfiguration.Capabilities is non-nil (and
treat EnabledCapabilities as empty when nil), e.g. construct a safeSet for
enabled capabilities only when Capabilities != nil, and use that safeSet in the
Difference(...) call so you never directly access
Capabilities.EnabledCapabilities when Capabilities is nil; adjust the Difference
call that currently references
currentManifestInclusionConfiguration.Capabilities.EnabledCapabilities to use
the safeSet variable instead.
| name: version5only | ||
| annotations: | ||
| include.release.openshift.io/self-managed-high-availability: "true" | ||
| release.openshift.io/major-version: "5" | ||
| spec: | ||
| group: test.io | ||
| names: | ||
| kind: Version5Only | ||
| plural: version5onlies |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# First, check if the file exists and read its content
cat "pkg/cvo/testdata/majorversiontest-v5/release-manifests/0000_30_version-5-only.yaml"Repository: openshift/cluster-version-operator
Length of output: 521
🏁 Script executed:
# Check for other CRD fixtures in testdata to understand the pattern
find pkg/cvo/testdata -name "*.yaml" -type f | head -20Repository: openshift/cluster-version-operator
Length of output: 1484
🏁 Script executed:
# Look for other CRDs in the testdata to see how they are named
rg -A5 "kind: CustomResourceDefinition" pkg/cvo/testdata/ --max-count=5Repository: openshift/cluster-version-operator
Length of output: 3502
🏁 Script executed:
# Check how these testdata files are used in tests
rg -B3 -A3 "majorversiontest-v5" pkg/cvo/ --type go | head -50Repository: openshift/cluster-version-operator
Length of output: 636
🏁 Script executed:
# Look for any validation or loading of these CRD fixtures
rg "0000_30_version-5-only" pkg/cvo/ --type goRepository: openshift/cluster-version-operator
Length of output: 60
🌐 Web query:
Kubernetes CustomResourceDefinition metadata.name format requirement apiextensions.k8s.io/v1
💡 Result:
For apiextensions.k8s.io/v1 CustomResourceDefinition, metadata.name is required to:
-
Equal:
spec.names.plural + "." + spec.group(i.e.,<plural>.<group>) (docs.redhat.com) -
Be a valid DNS subdomain name (the standard Kubernetes object-name rule for CRDs), which is why the
<plural>.<group>value must be DNS-safe (lowercase, digits,-,., etc.). (v1-33.docs.kubernetes.io)
Citations:
- 1: https://docs.redhat.com/en/documentation/openshift_container_platform/4.18/html/extension_apis/customresourcedefinition-apiextensions-k8s-io-v1?utm_source=openai
- 2: https://v1-33.docs.kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/?utm_source=openai
🏁 Script executed:
# Look at the test that uses these fixtures to understand how they're used
cat -n pkg/cvo/cvo_scenarios_test.go | grep -A 50 "func TestCVO_MajorVersionManifestFiltering"Repository: openshift/cluster-version-operator
Length of output: 1929
🏁 Script executed:
# Search for any validation logic applied to loaded manifests
rg "setupCVOTest" pkg/cvo/cvo_scenarios_test.go -A 5 -B 2Repository: openshift/cluster-version-operator
Length of output: 5750
🏁 Script executed:
# Check if these manifests are ever applied to an actual API server or just parsed
rg -B5 -A5 "Apply|Create" pkg/cvo/cvo_scenarios_test.go | head -60Repository: openshift/cluster-version-operator
Length of output: 1684
CRD name does not match Kubernetes specification, but requires broader test updates.
For apiextensions.k8s.io/v1 CRDs, the Kubernetes API requires metadata.name to be <plural>.<group>. Here, the name should be version5onlies.test.io (not version5only). However, the test TestCVO_MajorVersionManifestFiltering hardcodes expectations for the short name "version5only" (line 4439 in cvo_scenarios_test.go). Fixing the fixture alone would break the test; you'll need to update the fixture, the test expectation list, and the corresponding changes in other similar CRD fixtures in the same testdata directory.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@pkg/cvo/testdata/majorversiontest-v5/release-manifests/0000_30_version-5-only.yaml`
around lines 4 - 12, The CRD fixture's metadata.name must follow Kubernetes spec
(metadata.name == spec.names.plural + "." + spec.group), so change the CRD in
pkg/cvo/testdata/.../0000_30_version-5-only.yaml to set metadata.name to
"version5onlies.test.io" (matching spec.names.plural and spec.group); then
update the test expectations in TestCVO_MajorVersionManifestFiltering
(cvo_scenarios_test.go) to look for "version5onlies" (or the full name if the
test asserts full resource names) and adjust any other CRD fixtures in the same
testdata directory that currently use singular names to use "<plural>.<group>"
format so tests and fixtures remain consistent.
|
@wking: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Building on #1282, this lists
InOrderInformersBatchProcess,InformerResourceVersion, andWatchListClientas new features in 1.35, and mentions environment variables as a way to turn them off. This gives a demonstration, with:Try turning all three off, to see if that recovers the CVO's ability to quickly notice
version-...Pod completion.