From e0a748d3c740c08a77de2e1a31d4b712f01a9bf3 Mon Sep 17 00:00:00 2001 From: miyadav Date: Wed, 10 Jun 2026 12:23:27 +0100 Subject: [PATCH 1/2] [Draft] - Adding cabilities for crdcompatibilitychecker and capi CRs --- config/v1/types_cluster_version.go | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/config/v1/types_cluster_version.go b/config/v1/types_cluster_version.go index f8d45114a83..4636a7b1371 100644 --- a/config/v1/types_cluster_version.go +++ b/config/v1/types_cluster_version.go @@ -19,6 +19,7 @@ import ( // +kubebuilder:subresource:status // +kubebuilder:resource:path=clusterversions,scope=Cluster // +kubebuilder:validation:XValidation:rule="has(self.spec.capabilities) && has(self.spec.capabilities.additionalEnabledCapabilities) && self.spec.capabilities.baselineCapabilitySet == 'None' && 'marketplace' in self.spec.capabilities.additionalEnabledCapabilities ? 'OperatorLifecycleManager' in self.spec.capabilities.additionalEnabledCapabilities || (has(self.status) && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) && 'OperatorLifecycleManager' in self.status.capabilities.enabledCapabilities) : true",message="the `marketplace` capability requires the `OperatorLifecycleManager` capability, which is neither explicitly or implicitly enabled in this cluster, please enable the `OperatorLifecycleManager` capability" +// +kubebuilder:validation:XValidation:rule="has(self.spec.capabilities) && has(self.spec.capabilities.additionalEnabledCapabilities) && self.spec.capabilities.baselineCapabilitySet == 'None' && 'ClusterAPI' in self.spec.capabilities.additionalEnabledCapabilities ? 'CompatibilityRequirements' in self.spec.capabilities.additionalEnabledCapabilities || (has(self.status) && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) && 'CompatibilityRequirements' in self.status.capabilities.enabledCapabilities) : true",message="the `ClusterAPI` capability requires the `CompatibilityRequirements` capability, which is neither explicitly or implicitly enabled in this cluster, please enable the `CompatibilityRequirements` capability" // +kubebuilder:printcolumn:name=Version,JSONPath=.status.history[?(@.state=="Completed")].version,type=string // +kubebuilder:printcolumn:name=Available,JSONPath=.status.conditions[?(@.type=="Available")].status,type=string // +kubebuilder:printcolumn:name=Progressing,JSONPath=.status.conditions[?(@.type=="Progressing")].status,type=string @@ -304,7 +305,7 @@ const ( ) // ClusterVersionCapability enumerates optional, core cluster components. -// +kubebuilder:validation:Enum=openshift-samples;baremetal;marketplace;Console;Insights;Storage;CSISnapshot;NodeTuning;MachineAPI;Build;DeploymentConfig;ImageRegistry;OperatorLifecycleManager;CloudCredential;Ingress;CloudControllerManager;OperatorLifecycleManagerV1 +// +kubebuilder:validation:Enum=openshift-samples;baremetal;marketplace;Console;Insights;Storage;CSISnapshot;NodeTuning;MachineAPI;Build;DeploymentConfig;ImageRegistry;OperatorLifecycleManager;CloudCredential;Ingress;CloudControllerManager;OperatorLifecycleManagerV1;CompatibilityRequirements;ClusterAPI type ClusterVersionCapability string const ( @@ -425,6 +426,19 @@ const ( // Managers deployed on top of OpenShift. They help you to work with cloud // provider API and embeds cloud-specific control logic. ClusterVersionCapabilityCloudControllerManager ClusterVersionCapability = "CloudControllerManager" + + // ClusterVersionCapabilityCompatibilityRequirements manages the Compatibility + // Requirements operator which enforces CRD compatibility constraints via + // validating webhooks. + ClusterVersionCapabilityCompatibilityRequirements ClusterVersionCapability = "CompatibilityRequirements" + + // ClusterVersionCapabilityClusterAPI manages the Cluster API operator and + // controllers which provide forward-compatible machine management for + // OpenShift clusters. + // + // Note that Cluster API has a hard requirement on CompatibilityRequirements. + // CompatibilityRequirements cannot be disabled while Cluster API is enabled. + ClusterVersionCapabilityClusterAPI ClusterVersionCapability = "ClusterAPI" ) // KnownClusterVersionCapabilities includes all known optional, core cluster components. @@ -446,6 +460,8 @@ var KnownClusterVersionCapabilities = []ClusterVersionCapability{ ClusterVersionCapabilityCloudCredential, ClusterVersionCapabilityIngress, ClusterVersionCapabilityCloudControllerManager, + ClusterVersionCapabilityCompatibilityRequirements, + ClusterVersionCapabilityClusterAPI, } // ClusterVersionCapabilitySet defines sets of cluster version capabilities. @@ -644,6 +660,8 @@ var ClusterVersionCapabilitySets = map[ClusterVersionCapabilitySet][]ClusterVers ClusterVersionCapabilityCloudCredential, ClusterVersionCapabilityIngress, ClusterVersionCapabilityCloudControllerManager, + ClusterVersionCapabilityCompatibilityRequirements, + ClusterVersionCapabilityClusterAPI, }, } From 79a53623c27bb81b8c76aae33aa70922efd32a4f Mon Sep 17 00:00:00 2001 From: miyadav Date: Wed, 10 Jun 2026 15:06:04 +0100 Subject: [PATCH 2/2] update to kubebuilderrule and generated manifests changes --- config/v1/types_cluster_version.go | 2 +- ...or_01_clusterversions-CustomNoUpgrade.crd.yaml | 15 +++++++++++++++ ...n-operator_01_clusterversions-Default.crd.yaml | 15 +++++++++++++++ ...1_clusterversions-DevPreviewNoUpgrade.crd.yaml | 15 +++++++++++++++ ...rsion-operator_01_clusterversions-OKD.crd.yaml | 15 +++++++++++++++ ..._clusterversions-TechPreviewNoUpgrade.crd.yaml | 15 +++++++++++++++ .../AAA_ungated.yaml | 15 +++++++++++++++ .../ClusterUpdateAcceptRisks.yaml | 15 +++++++++++++++ .../ClusterUpdatePreflight.yaml | 15 +++++++++++++++ .../ImageStreamImportMode.yaml | 15 +++++++++++++++ .../SignatureStores.yaml | 15 +++++++++++++++ 11 files changed, 151 insertions(+), 1 deletion(-) diff --git a/config/v1/types_cluster_version.go b/config/v1/types_cluster_version.go index 4636a7b1371..927bc25bcd9 100644 --- a/config/v1/types_cluster_version.go +++ b/config/v1/types_cluster_version.go @@ -19,7 +19,7 @@ import ( // +kubebuilder:subresource:status // +kubebuilder:resource:path=clusterversions,scope=Cluster // +kubebuilder:validation:XValidation:rule="has(self.spec.capabilities) && has(self.spec.capabilities.additionalEnabledCapabilities) && self.spec.capabilities.baselineCapabilitySet == 'None' && 'marketplace' in self.spec.capabilities.additionalEnabledCapabilities ? 'OperatorLifecycleManager' in self.spec.capabilities.additionalEnabledCapabilities || (has(self.status) && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) && 'OperatorLifecycleManager' in self.status.capabilities.enabledCapabilities) : true",message="the `marketplace` capability requires the `OperatorLifecycleManager` capability, which is neither explicitly or implicitly enabled in this cluster, please enable the `OperatorLifecycleManager` capability" -// +kubebuilder:validation:XValidation:rule="has(self.spec.capabilities) && has(self.spec.capabilities.additionalEnabledCapabilities) && self.spec.capabilities.baselineCapabilitySet == 'None' && 'ClusterAPI' in self.spec.capabilities.additionalEnabledCapabilities ? 'CompatibilityRequirements' in self.spec.capabilities.additionalEnabledCapabilities || (has(self.status) && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) && 'CompatibilityRequirements' in self.status.capabilities.enabledCapabilities) : true",message="the `ClusterAPI` capability requires the `CompatibilityRequirements` capability, which is neither explicitly or implicitly enabled in this cluster, please enable the `CompatibilityRequirements` capability" +// +kubebuilder:validation:XValidation:rule="has(self.spec.capabilities) && has(self.spec.capabilities.additionalEnabledCapabilities) && 'ClusterAPI' in self.spec.capabilities.additionalEnabledCapabilities ? 'CompatibilityRequirements' in self.spec.capabilities.additionalEnabledCapabilities || (has(self.status) && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) && 'CompatibilityRequirements' in self.status.capabilities.enabledCapabilities) : true",message="the `ClusterAPI` capability requires the `CompatibilityRequirements` capability, which is neither explicitly or implicitly enabled in this cluster, please enable the `CompatibilityRequirements` capability" // +kubebuilder:printcolumn:name=Version,JSONPath=.status.history[?(@.state=="Completed")].version,type=string // +kubebuilder:printcolumn:name=Available,JSONPath=.status.conditions[?(@.type=="Available")].status,type=string // +kubebuilder:printcolumn:name=Progressing,JSONPath=.status.conditions[?(@.type=="Progressing")].status,type=string diff --git a/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-CustomNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-CustomNoUpgrade.crd.yaml index 0deb9ba0861..1702e755aff 100644 --- a/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-CustomNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-CustomNoUpgrade.crd.yaml @@ -95,6 +95,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -442,6 +444,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -469,6 +473,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -1133,6 +1139,15 @@ spec: && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) && ''OperatorLifecycleManager'' in self.status.capabilities.enabledCapabilities) : true' + - message: the `ClusterAPI` capability requires the `CompatibilityRequirements` + capability, which is neither explicitly or implicitly enabled in this + cluster, please enable the `CompatibilityRequirements` capability + rule: 'has(self.spec.capabilities) && has(self.spec.capabilities.additionalEnabledCapabilities) + && ''ClusterAPI'' in self.spec.capabilities.additionalEnabledCapabilities + ? ''CompatibilityRequirements'' in self.spec.capabilities.additionalEnabledCapabilities + || (has(self.status) && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) + && ''CompatibilityRequirements'' in self.status.capabilities.enabledCapabilities) + : true' served: true storage: true subresources: diff --git a/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-Default.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-Default.crd.yaml index 430a39025ff..8a76a4b83f8 100644 --- a/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-Default.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-Default.crd.yaml @@ -95,6 +95,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -346,6 +348,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -373,6 +377,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -790,6 +796,15 @@ spec: && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) && ''OperatorLifecycleManager'' in self.status.capabilities.enabledCapabilities) : true' + - message: the `ClusterAPI` capability requires the `CompatibilityRequirements` + capability, which is neither explicitly or implicitly enabled in this + cluster, please enable the `CompatibilityRequirements` capability + rule: 'has(self.spec.capabilities) && has(self.spec.capabilities.additionalEnabledCapabilities) + && ''ClusterAPI'' in self.spec.capabilities.additionalEnabledCapabilities + ? ''CompatibilityRequirements'' in self.spec.capabilities.additionalEnabledCapabilities + || (has(self.status) && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) + && ''CompatibilityRequirements'' in self.status.capabilities.enabledCapabilities) + : true' served: true storage: true subresources: diff --git a/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-DevPreviewNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-DevPreviewNoUpgrade.crd.yaml index 70a09d3ff0a..ac031e99af7 100644 --- a/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-DevPreviewNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-DevPreviewNoUpgrade.crd.yaml @@ -95,6 +95,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -442,6 +444,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -469,6 +473,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -1133,6 +1139,15 @@ spec: && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) && ''OperatorLifecycleManager'' in self.status.capabilities.enabledCapabilities) : true' + - message: the `ClusterAPI` capability requires the `CompatibilityRequirements` + capability, which is neither explicitly or implicitly enabled in this + cluster, please enable the `CompatibilityRequirements` capability + rule: 'has(self.spec.capabilities) && has(self.spec.capabilities.additionalEnabledCapabilities) + && ''ClusterAPI'' in self.spec.capabilities.additionalEnabledCapabilities + ? ''CompatibilityRequirements'' in self.spec.capabilities.additionalEnabledCapabilities + || (has(self.status) && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) + && ''CompatibilityRequirements'' in self.status.capabilities.enabledCapabilities) + : true' served: true storage: true subresources: diff --git a/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-OKD.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-OKD.crd.yaml index 1ae333ddc69..ac0cfb19028 100644 --- a/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-OKD.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-OKD.crd.yaml @@ -95,6 +95,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -346,6 +348,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -373,6 +377,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -790,6 +796,15 @@ spec: && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) && ''OperatorLifecycleManager'' in self.status.capabilities.enabledCapabilities) : true' + - message: the `ClusterAPI` capability requires the `CompatibilityRequirements` + capability, which is neither explicitly or implicitly enabled in this + cluster, please enable the `CompatibilityRequirements` capability + rule: 'has(self.spec.capabilities) && has(self.spec.capabilities.additionalEnabledCapabilities) + && ''ClusterAPI'' in self.spec.capabilities.additionalEnabledCapabilities + ? ''CompatibilityRequirements'' in self.spec.capabilities.additionalEnabledCapabilities + || (has(self.status) && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) + && ''CompatibilityRequirements'' in self.status.capabilities.enabledCapabilities) + : true' served: true storage: true subresources: diff --git a/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-TechPreviewNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-TechPreviewNoUpgrade.crd.yaml index ea97687cfc1..27985043e37 100644 --- a/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-TechPreviewNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-TechPreviewNoUpgrade.crd.yaml @@ -95,6 +95,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -425,6 +427,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -452,6 +456,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -1116,6 +1122,15 @@ spec: && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) && ''OperatorLifecycleManager'' in self.status.capabilities.enabledCapabilities) : true' + - message: the `ClusterAPI` capability requires the `CompatibilityRequirements` + capability, which is neither explicitly or implicitly enabled in this + cluster, please enable the `CompatibilityRequirements` capability + rule: 'has(self.spec.capabilities) && has(self.spec.capabilities.additionalEnabledCapabilities) + && ''ClusterAPI'' in self.spec.capabilities.additionalEnabledCapabilities + ? ''CompatibilityRequirements'' in self.spec.capabilities.additionalEnabledCapabilities + || (has(self.status) && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) + && ''CompatibilityRequirements'' in self.status.capabilities.enabledCapabilities) + : true' served: true storage: true subresources: diff --git a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/AAA_ungated.yaml b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/AAA_ungated.yaml index c7edb6835a1..aea52df487e 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/AAA_ungated.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/AAA_ungated.yaml @@ -97,6 +97,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -337,6 +339,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -364,6 +368,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -759,6 +765,15 @@ spec: && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) && ''OperatorLifecycleManager'' in self.status.capabilities.enabledCapabilities) : true' + - message: the `ClusterAPI` capability requires the `CompatibilityRequirements` + capability, which is neither explicitly or implicitly enabled in this + cluster, please enable the `CompatibilityRequirements` capability + rule: 'has(self.spec.capabilities) && has(self.spec.capabilities.additionalEnabledCapabilities) + && ''ClusterAPI'' in self.spec.capabilities.additionalEnabledCapabilities + ? ''CompatibilityRequirements'' in self.spec.capabilities.additionalEnabledCapabilities + || (has(self.status) && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) + && ''CompatibilityRequirements'' in self.status.capabilities.enabledCapabilities) + : true' served: true storage: true subresources: diff --git a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterUpdateAcceptRisks.yaml b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterUpdateAcceptRisks.yaml index e5ac1631330..44672596cc4 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterUpdateAcceptRisks.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterUpdateAcceptRisks.yaml @@ -97,6 +97,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -365,6 +367,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -392,6 +396,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -1034,6 +1040,15 @@ spec: && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) && ''OperatorLifecycleManager'' in self.status.capabilities.enabledCapabilities) : true' + - message: the `ClusterAPI` capability requires the `CompatibilityRequirements` + capability, which is neither explicitly or implicitly enabled in this + cluster, please enable the `CompatibilityRequirements` capability + rule: 'has(self.spec.capabilities) && has(self.spec.capabilities.additionalEnabledCapabilities) + && ''ClusterAPI'' in self.spec.capabilities.additionalEnabledCapabilities + ? ''CompatibilityRequirements'' in self.spec.capabilities.additionalEnabledCapabilities + || (has(self.status) && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) + && ''CompatibilityRequirements'' in self.status.capabilities.enabledCapabilities) + : true' served: true storage: true subresources: diff --git a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterUpdatePreflight.yaml b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterUpdatePreflight.yaml index 005036bbe72..9ab9c587345 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterUpdatePreflight.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterUpdatePreflight.yaml @@ -97,6 +97,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -354,6 +356,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -381,6 +385,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -776,6 +782,15 @@ spec: && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) && ''OperatorLifecycleManager'' in self.status.capabilities.enabledCapabilities) : true' + - message: the `ClusterAPI` capability requires the `CompatibilityRequirements` + capability, which is neither explicitly or implicitly enabled in this + cluster, please enable the `CompatibilityRequirements` capability + rule: 'has(self.spec.capabilities) && has(self.spec.capabilities.additionalEnabledCapabilities) + && ''ClusterAPI'' in self.spec.capabilities.additionalEnabledCapabilities + ? ''CompatibilityRequirements'' in self.spec.capabilities.additionalEnabledCapabilities + || (has(self.status) && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) + && ''CompatibilityRequirements'' in self.status.capabilities.enabledCapabilities) + : true' served: true storage: true subresources: diff --git a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ImageStreamImportMode.yaml b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ImageStreamImportMode.yaml index 5682079136d..8b0b365df2a 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ImageStreamImportMode.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ImageStreamImportMode.yaml @@ -97,6 +97,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -348,6 +350,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -375,6 +379,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -792,6 +798,15 @@ spec: && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) && ''OperatorLifecycleManager'' in self.status.capabilities.enabledCapabilities) : true' + - message: the `ClusterAPI` capability requires the `CompatibilityRequirements` + capability, which is neither explicitly or implicitly enabled in this + cluster, please enable the `CompatibilityRequirements` capability + rule: 'has(self.spec.capabilities) && has(self.spec.capabilities.additionalEnabledCapabilities) + && ''ClusterAPI'' in self.spec.capabilities.additionalEnabledCapabilities + ? ''CompatibilityRequirements'' in self.spec.capabilities.additionalEnabledCapabilities + || (has(self.status) && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) + && ''CompatibilityRequirements'' in self.status.capabilities.enabledCapabilities) + : true' served: true storage: true subresources: diff --git a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/SignatureStores.yaml b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/SignatureStores.yaml index 17ca96c1c8f..6e859297440 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/SignatureStores.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/SignatureStores.yaml @@ -97,6 +97,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -388,6 +390,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -415,6 +419,8 @@ spec: - Ingress - CloudControllerManager - OperatorLifecycleManagerV1 + - CompatibilityRequirements + - ClusterAPI type: string type: array x-kubernetes-list-type: atomic @@ -810,6 +816,15 @@ spec: && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) && ''OperatorLifecycleManager'' in self.status.capabilities.enabledCapabilities) : true' + - message: the `ClusterAPI` capability requires the `CompatibilityRequirements` + capability, which is neither explicitly or implicitly enabled in this + cluster, please enable the `CompatibilityRequirements` capability + rule: 'has(self.spec.capabilities) && has(self.spec.capabilities.additionalEnabledCapabilities) + && ''ClusterAPI'' in self.spec.capabilities.additionalEnabledCapabilities + ? ''CompatibilityRequirements'' in self.spec.capabilities.additionalEnabledCapabilities + || (has(self.status) && has(self.status.capabilities) && has(self.status.capabilities.enabledCapabilities) + && ''CompatibilityRequirements'' in self.status.capabilities.enabledCapabilities) + : true' served: true storage: true subresources: