From 2b7a5fe2aa03a929b1bb503b0c60d8a9a16de472 Mon Sep 17 00:00:00 2001 From: npal Date: Thu, 27 Aug 2026 10:45:17 +0530 Subject: [PATCH 1/2] RFE-9693: Allow spec.desiredUpdate.image and spec.desiredUpdate.architecture: Multi to be specified together --- .../AAA_ungated.yaml | 36 +++++++++++++++---- .../ImageStreamImportMode.yaml | 36 +++++++++++++++---- .../SignatureStores.yaml | 36 +++++++++++++++---- config/v1/types_cluster_version.go | 2 +- ...1_clusterversions-CustomNoUpgrade.crd.yaml | 5 +-- ...erator_01_clusterversions-Default.crd.yaml | 5 +-- ...usterversions-DevPreviewNoUpgrade.crd.yaml | 5 +-- ...n-operator_01_clusterversions-OKD.crd.yaml | 5 +-- ...sterversions-TechPreviewNoUpgrade.crd.yaml | 5 +-- .../AAA_ungated.yaml | 5 +-- ...tOperator+ClusterAPIMachineManagement.yaml | 5 +-- .../CRDCompatibilityRequirementOperator.yaml | 5 +-- .../ClusterAPIMachineManagement.yaml | 5 +-- .../ClusterUpdateAcceptRisks.yaml | 5 +-- .../ClusterUpdatePreflight.yaml | 5 +-- .../ImageStreamImportMode.yaml | 5 +-- .../SignatureStores.yaml | 5 +-- 17 files changed, 130 insertions(+), 45 deletions(-) diff --git a/config/v1/tests/clusterversions.config.openshift.io/AAA_ungated.yaml b/config/v1/tests/clusterversions.config.openshift.io/AAA_ungated.yaml index c0b724f6ff7..f99cb84a597 100644 --- a/config/v1/tests/clusterversions.config.openshift.io/AAA_ungated.yaml +++ b/config/v1/tests/clusterversions.config.openshift.io/AAA_ungated.yaml @@ -87,7 +87,7 @@ tests: desiredUpdate: architecture: Multi expectedError: "Version must be set if Architecture is set" - - name: Should not allow image and architecture to be set + - name: Should allow image and architecture Multi to be set initial: | apiVersion: config.openshift.io/v1 kind: ClusterVersion @@ -97,7 +97,15 @@ tests: architecture: Multi version: 4.11.1 image: bar - expectedError: "cannot set both Architecture and Image" + expected: | + apiVersion: config.openshift.io/v1 + kind: ClusterVersion + spec: + clusterID: foo + desiredUpdate: + architecture: Multi + version: 4.11.1 + image: bar - name: Should be able to create a ClusterVersion with base capability None, and additional capabilities baremetal and MachineAPI initial: | apiVersion: config.openshift.io/v1 @@ -211,7 +219,7 @@ tests: - marketplace expectedError: the `marketplace` capability requires the `OperatorLifecycleManager` capability, which is neither explicitly or implicitly enabled in this cluster, please enable the `OperatorLifecycleManager` capability onUpdate: - - name: Should not allow image to be set if architecture set + - name: Should allow image to be set if architecture is Multi initial: | apiVersion: config.openshift.io/v1 kind: ClusterVersion @@ -229,8 +237,16 @@ tests: architecture: Multi version: 4.11.1 image: bar - expectedError: "cannot set both Architecture and Image" - - name: Should not allow architecture to be set if image set + expected: | + apiVersion: config.openshift.io/v1 + kind: ClusterVersion + spec: + clusterID: foo + desiredUpdate: + architecture: Multi + version: 4.11.1 + image: bar + - name: Should allow architecture Multi to be set if image set initial: | apiVersion: config.openshift.io/v1 kind: ClusterVersion @@ -247,7 +263,15 @@ tests: architecture: Multi version: 4.11.1 image: bar - expectedError: "cannot set both Architecture and Image" + expected: | + apiVersion: config.openshift.io/v1 + kind: ClusterVersion + spec: + clusterID: foo + desiredUpdate: + architecture: Multi + version: 4.11.1 + image: bar - name: Should be able to add the baremetal capability with a ClusterVersion with base capability None, and implicitly enabled MachineAPI initial: | apiVersion: config.openshift.io/v1 diff --git a/config/v1/tests/clusterversions.config.openshift.io/ImageStreamImportMode.yaml b/config/v1/tests/clusterversions.config.openshift.io/ImageStreamImportMode.yaml index 8405e2a4ce8..cec8e64ef33 100644 --- a/config/v1/tests/clusterversions.config.openshift.io/ImageStreamImportMode.yaml +++ b/config/v1/tests/clusterversions.config.openshift.io/ImageStreamImportMode.yaml @@ -89,7 +89,7 @@ tests: desiredUpdate: architecture: Multi expectedError: "Version must be set if Architecture is set" - - name: Should not allow image and architecture to be set + - name: Should allow image and architecture Multi to be set initial: | apiVersion: config.openshift.io/v1 kind: ClusterVersion @@ -99,7 +99,15 @@ tests: architecture: Multi version: 4.11.1 image: bar - expectedError: "cannot set both Architecture and Image" + expected: | + apiVersion: config.openshift.io/v1 + kind: ClusterVersion + spec: + clusterID: foo + desiredUpdate: + architecture: Multi + version: 4.11.1 + image: bar - name: Should be able to create a ClusterVersion with base capability None, and additional capabilities baremetal and MachineAPI initial: | apiVersion: config.openshift.io/v1 @@ -173,7 +181,7 @@ tests: - marketplace expectedError: the `marketplace` capability requires the `OperatorLifecycleManager` capability, which is neither explicitly or implicitly enabled in this cluster, please enable the `OperatorLifecycleManager` capability onUpdate: - - name: Should not allow image to be set if architecture set + - name: Should allow image to be set if architecture is Multi initial: | apiVersion: config.openshift.io/v1 kind: ClusterVersion @@ -191,8 +199,16 @@ tests: architecture: Multi version: 4.11.1 image: bar - expectedError: "cannot set both Architecture and Image" - - name: Should not allow architecture to be set if image set + expected: | + apiVersion: config.openshift.io/v1 + kind: ClusterVersion + spec: + clusterID: foo + desiredUpdate: + architecture: Multi + version: 4.11.1 + image: bar + - name: Should allow architecture Multi to be set if image set initial: | apiVersion: config.openshift.io/v1 kind: ClusterVersion @@ -209,7 +225,15 @@ tests: architecture: Multi version: 4.11.1 image: bar - expectedError: "cannot set both Architecture and Image" + expected: | + apiVersion: config.openshift.io/v1 + kind: ClusterVersion + spec: + clusterID: foo + desiredUpdate: + architecture: Multi + version: 4.11.1 + image: bar - name: Should be able to add the baremetal capability with a ClusterVersion with base capability None, and implicitly enabled MachineAPI initial: | apiVersion: config.openshift.io/v1 diff --git a/config/v1/tests/clusterversions.config.openshift.io/SignatureStores.yaml b/config/v1/tests/clusterversions.config.openshift.io/SignatureStores.yaml index 1579bd6588d..1de3848acec 100644 --- a/config/v1/tests/clusterversions.config.openshift.io/SignatureStores.yaml +++ b/config/v1/tests/clusterversions.config.openshift.io/SignatureStores.yaml @@ -89,7 +89,7 @@ tests: desiredUpdate: architecture: Multi expectedError: "Version must be set if Architecture is set" - - name: Should not allow image and architecture to be set + - name: Should allow image and architecture Multi to be set initial: | apiVersion: config.openshift.io/v1 kind: ClusterVersion @@ -99,7 +99,15 @@ tests: architecture: Multi version: 4.11.1 image: bar - expectedError: "cannot set both Architecture and Image" + expected: | + apiVersion: config.openshift.io/v1 + kind: ClusterVersion + spec: + clusterID: foo + desiredUpdate: + architecture: Multi + version: 4.11.1 + image: bar - name: Should be able to create a ClusterVersion with base capability None, and additional capabilities baremetal and MachineAPI initial: | apiVersion: config.openshift.io/v1 @@ -267,7 +275,7 @@ tests: clusterID: foo signatureStores: [] onUpdate: - - name: Should not allow image to be set if architecture set + - name: Should allow image to be set if architecture is Multi initial: | apiVersion: config.openshift.io/v1 kind: ClusterVersion @@ -285,8 +293,16 @@ tests: architecture: Multi version: 4.11.1 image: bar - expectedError: "cannot set both Architecture and Image" - - name: Should not allow architecture to be set if image set + expected: | + apiVersion: config.openshift.io/v1 + kind: ClusterVersion + spec: + clusterID: foo + desiredUpdate: + architecture: Multi + version: 4.11.1 + image: bar + - name: Should allow architecture Multi to be set if image set initial: | apiVersion: config.openshift.io/v1 kind: ClusterVersion @@ -303,7 +319,15 @@ tests: architecture: Multi version: 4.11.1 image: bar - expectedError: "cannot set both Architecture and Image" + expected: | + apiVersion: config.openshift.io/v1 + kind: ClusterVersion + spec: + clusterID: foo + desiredUpdate: + architecture: Multi + version: 4.11.1 + image: bar - name: Should be able to add the baremetal capability with a ClusterVersion with base capability None, and implicitly enabled MachineAPI initial: | apiVersion: config.openshift.io/v1 diff --git a/config/v1/types_cluster_version.go b/config/v1/types_cluster_version.go index 9cb85f4c003..f34cf305d7d 100644 --- a/config/v1/types_cluster_version.go +++ b/config/v1/types_cluster_version.go @@ -733,7 +733,7 @@ type ComponentOverride struct { type URL string // Update represents an administrator update request. -// +kubebuilder:validation:XValidation:rule="has(self.architecture) && has(self.image) ? (self.architecture == \"\" || self.image == \"\") : true",message="cannot set both Architecture and Image" +// +kubebuilder:validation:XValidation:rule="has(self.architecture) && has(self.image) ? (self.architecture == \"\" || self.image == \"\" || self.architecture == \"Multi\") : true",message="cannot set both Architecture and Image unless Architecture is Multi" // +kubebuilder:validation:XValidation:rule="has(self.architecture) && self.architecture != \"\" ? self.version != \"\" : true",message="Version must be set if Architecture is set" // +k8s:deepcopy-gen=true type Update struct { 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 1702e755aff..de9e552dc08 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 @@ -245,9 +245,10 @@ spec: type: string type: object x-kubernetes-validations: - - message: cannot set both Architecture and Image + - message: cannot set both Architecture and Image unless Architecture + is Multi rule: 'has(self.architecture) && has(self.image) ? (self.architecture - == "" || self.image == "") : true' + == "" || self.image == "" || self.architecture == "Multi") : true' - message: Version must be set if Architecture is set rule: 'has(self.architecture) && self.architecture != "" ? self.version != "" : true' 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..edbe0d1792c 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 @@ -198,9 +198,10 @@ spec: type: string type: object x-kubernetes-validations: - - message: cannot set both Architecture and Image + - message: cannot set both Architecture and Image unless Architecture + is Multi rule: 'has(self.architecture) && has(self.image) ? (self.architecture - == "" || self.image == "") : true' + == "" || self.image == "" || self.architecture == "Multi") : true' - message: Version must be set if Architecture is set rule: 'has(self.architecture) && self.architecture != "" ? self.version != "" : true' 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 ac031e99af7..f188433c5d9 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 @@ -245,9 +245,10 @@ spec: type: string type: object x-kubernetes-validations: - - message: cannot set both Architecture and Image + - message: cannot set both Architecture and Image unless Architecture + is Multi rule: 'has(self.architecture) && has(self.image) ? (self.architecture - == "" || self.image == "") : true' + == "" || self.image == "" || self.architecture == "Multi") : true' - message: Version must be set if Architecture is set rule: 'has(self.architecture) && self.architecture != "" ? self.version != "" : true' 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..b9ba3394c0a 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 @@ -198,9 +198,10 @@ spec: type: string type: object x-kubernetes-validations: - - message: cannot set both Architecture and Image + - message: cannot set both Architecture and Image unless Architecture + is Multi rule: 'has(self.architecture) && has(self.image) ? (self.architecture - == "" || self.image == "") : true' + == "" || self.image == "" || self.architecture == "Multi") : true' - message: Version must be set if Architecture is set rule: 'has(self.architecture) && self.architecture != "" ? self.version != "" : true' 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 27985043e37..bd5b56d4f75 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 @@ -228,9 +228,10 @@ spec: type: string type: object x-kubernetes-validations: - - message: cannot set both Architecture and Image + - message: cannot set both Architecture and Image unless Architecture + is Multi rule: 'has(self.architecture) && has(self.image) ? (self.architecture - == "" || self.image == "") : true' + == "" || self.image == "" || self.architecture == "Multi") : true' - message: Version must be set if Architecture is set rule: 'has(self.architecture) && self.architecture != "" ? self.version != "" : true' 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..1d024519749 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 @@ -200,9 +200,10 @@ spec: type: string type: object x-kubernetes-validations: - - message: cannot set both Architecture and Image + - message: cannot set both Architecture and Image unless Architecture + is Multi rule: 'has(self.architecture) && has(self.image) ? (self.architecture - == "" || self.image == "") : true' + == "" || self.image == "" || self.architecture == "Multi") : true' - message: Version must be set if Architecture is set rule: 'has(self.architecture) && self.architecture != "" ? self.version != "" : true' diff --git a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator+ClusterAPIMachineManagement.yaml b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator+ClusterAPIMachineManagement.yaml index f5611cee82f..b043cd750ec 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator+ClusterAPIMachineManagement.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator+ClusterAPIMachineManagement.yaml @@ -203,9 +203,10 @@ spec: type: string type: object x-kubernetes-validations: - - message: cannot set both Architecture and Image + - message: cannot set both Architecture and Image unless Architecture + is Multi rule: 'has(self.architecture) && has(self.image) ? (self.architecture - == "" || self.image == "") : true' + == "" || self.image == "" || self.architecture == "Multi") : true' - message: Version must be set if Architecture is set rule: 'has(self.architecture) && self.architecture != "" ? self.version != "" : true' diff --git a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator.yaml b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator.yaml index f94c6aaf8d4..2133a371390 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator.yaml @@ -201,9 +201,10 @@ spec: type: string type: object x-kubernetes-validations: - - message: cannot set both Architecture and Image + - message: cannot set both Architecture and Image unless Architecture + is Multi rule: 'has(self.architecture) && has(self.image) ? (self.architecture - == "" || self.image == "") : true' + == "" || self.image == "" || self.architecture == "Multi") : true' - message: Version must be set if Architecture is set rule: 'has(self.architecture) && self.architecture != "" ? self.version != "" : true' diff --git a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterAPIMachineManagement.yaml b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterAPIMachineManagement.yaml index a107ab56705..15dede36f02 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterAPIMachineManagement.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterAPIMachineManagement.yaml @@ -202,9 +202,10 @@ spec: type: string type: object x-kubernetes-validations: - - message: cannot set both Architecture and Image + - message: cannot set both Architecture and Image unless Architecture + is Multi rule: 'has(self.architecture) && has(self.image) ? (self.architecture - == "" || self.image == "") : true' + == "" || self.image == "" || self.architecture == "Multi") : true' - message: Version must be set if Architecture is set rule: 'has(self.architecture) && self.architecture != "" ? self.version != "" : true' 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 f4e98ddddfa..6b4b4288561 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 @@ -210,9 +210,10 @@ spec: type: string type: object x-kubernetes-validations: - - message: cannot set both Architecture and Image + - message: cannot set both Architecture and Image unless Architecture + is Multi rule: 'has(self.architecture) && has(self.image) ? (self.architecture - == "" || self.image == "") : true' + == "" || self.image == "" || self.architecture == "Multi") : true' - message: Version must be set if Architecture is set rule: 'has(self.architecture) && self.architecture != "" ? self.version != "" : true' 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 e952aa963d7..1a6cc501001 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 @@ -199,9 +199,10 @@ spec: type: string type: object x-kubernetes-validations: - - message: cannot set both Architecture and Image + - message: cannot set both Architecture and Image unless Architecture + is Multi rule: 'has(self.architecture) && has(self.image) ? (self.architecture - == "" || self.image == "") : true' + == "" || self.image == "" || self.architecture == "Multi") : true' - message: Version must be set if Architecture is set rule: 'has(self.architecture) && self.architecture != "" ? self.version != "" : true' 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 b4b0b01c73f..cb06736d547 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 @@ -182,9 +182,10 @@ spec: type: string type: object x-kubernetes-validations: - - message: cannot set both Architecture and Image + - message: cannot set both Architecture and Image unless Architecture + is Multi rule: 'has(self.architecture) && has(self.image) ? (self.architecture - == "" || self.image == "") : true' + == "" || self.image == "" || self.architecture == "Multi") : true' - message: Version must be set if Architecture is set rule: 'has(self.architecture) && self.architecture != "" ? self.version != "" : true' 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 4b92d781883..40c194e1bc4 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 @@ -182,9 +182,10 @@ spec: type: string type: object x-kubernetes-validations: - - message: cannot set both Architecture and Image + - message: cannot set both Architecture and Image unless Architecture + is Multi rule: 'has(self.architecture) && has(self.image) ? (self.architecture - == "" || self.image == "") : true' + == "" || self.image == "" || self.architecture == "Multi") : true' - message: Version must be set if Architecture is set rule: 'has(self.architecture) && self.architecture != "" ? self.version != "" : true' From 3be879d8f816968893b9eb90d4e59eb33bc3440b Mon Sep 17 00:00:00 2001 From: npal Date: Thu, 27 Aug 2026 11:07:24 +0530 Subject: [PATCH 2/2] RFE-9693: Align ClusterVersion Update field docs with Multi+image validation --- config/v1/types_cluster_version.go | 6 +++--- ...ion-operator_01_clusterversions-CustomNoUpgrade.crd.yaml | 6 +++--- ...ter-version-operator_01_clusterversions-Default.crd.yaml | 6 +++--- ...operator_01_clusterversions-DevPreviewNoUpgrade.crd.yaml | 6 +++--- ...cluster-version-operator_01_clusterversions-OKD.crd.yaml | 6 +++--- ...perator_01_clusterversions-TechPreviewNoUpgrade.crd.yaml | 6 +++--- .../clusterversions.config.openshift.io/AAA_ungated.yaml | 6 +++--- ...lityRequirementOperator+ClusterAPIMachineManagement.yaml | 6 +++--- .../CRDCompatibilityRequirementOperator.yaml | 6 +++--- .../ClusterAPIMachineManagement.yaml | 6 +++--- .../ClusterUpdateAcceptRisks.yaml | 6 +++--- .../ClusterUpdatePreflight.yaml | 6 +++--- .../ImageStreamImportMode.yaml | 6 +++--- .../SignatureStores.yaml | 6 +++--- config/v1/zz_generated.swagger_doc_generated.go | 4 ++-- openapi/generated_openapi/zz_generated.openapi.go | 4 ++-- openapi/openapi.json | 4 ++-- 17 files changed, 48 insertions(+), 48 deletions(-) diff --git a/config/v1/types_cluster_version.go b/config/v1/types_cluster_version.go index f34cf305d7d..4f9e1120a42 100644 --- a/config/v1/types_cluster_version.go +++ b/config/v1/types_cluster_version.go @@ -742,8 +742,8 @@ type Update struct { // architecture means either a single architecture or a multi // architecture. architecture can only be set to Multi thereby // only allowing updates from single to multi architecture. If - // architecture is set, image cannot be set and version must be - // set. + // architecture is set, version must be set. image can be set only + // when architecture is Multi. // Valid values are 'Multi' and empty. // // +optional @@ -758,7 +758,7 @@ type Update struct { // image is a container image location that contains the update. // image should be used when the desired version does not exist in availableUpdates or history. - // When image is set, architecture cannot be specified. + // When image is set, architecture can be specified only as Multi. // If both version and image are set, the version extracted from the referenced image must match the specified version. // // +optional 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 de9e552dc08..331d347664d 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 @@ -193,8 +193,8 @@ spec: architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If - architecture is set, image cannot be set and version must be - set. + architecture is set, version must be set. image can be set only + when architecture is Multi. Valid values are 'Multi' and empty. enum: - Multi @@ -217,7 +217,7 @@ spec: description: |- image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. - When image is set, architecture cannot be specified. + When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version. type: string mode: 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 edbe0d1792c..0fa471a15d2 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 @@ -163,8 +163,8 @@ spec: architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If - architecture is set, image cannot be set and version must be - set. + architecture is set, version must be set. image can be set only + when architecture is Multi. Valid values are 'Multi' and empty. enum: - Multi @@ -187,7 +187,7 @@ spec: description: |- image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. - When image is set, architecture cannot be specified. + When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version. type: string version: 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 f188433c5d9..b979bd89b8b 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 @@ -193,8 +193,8 @@ spec: architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If - architecture is set, image cannot be set and version must be - set. + architecture is set, version must be set. image can be set only + when architecture is Multi. Valid values are 'Multi' and empty. enum: - Multi @@ -217,7 +217,7 @@ spec: description: |- image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. - When image is set, architecture cannot be specified. + When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version. type: string mode: 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 b9ba3394c0a..a1ada41b4c1 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 @@ -163,8 +163,8 @@ spec: architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If - architecture is set, image cannot be set and version must be - set. + architecture is set, version must be set. image can be set only + when architecture is Multi. Valid values are 'Multi' and empty. enum: - Multi @@ -187,7 +187,7 @@ spec: description: |- image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. - When image is set, architecture cannot be specified. + When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version. type: string version: 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 bd5b56d4f75..1b11a4a6ace 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 @@ -193,8 +193,8 @@ spec: architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If - architecture is set, image cannot be set and version must be - set. + architecture is set, version must be set. image can be set only + when architecture is Multi. Valid values are 'Multi' and empty. enum: - Multi @@ -217,7 +217,7 @@ spec: description: |- image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. - When image is set, architecture cannot be specified. + When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version. type: string version: 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 1d024519749..c2c943f4ccc 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 @@ -165,8 +165,8 @@ spec: architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If - architecture is set, image cannot be set and version must be - set. + architecture is set, version must be set. image can be set only + when architecture is Multi. Valid values are 'Multi' and empty. enum: - Multi @@ -189,7 +189,7 @@ spec: description: |- image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. - When image is set, architecture cannot be specified. + When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version. type: string version: diff --git a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator+ClusterAPIMachineManagement.yaml b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator+ClusterAPIMachineManagement.yaml index b043cd750ec..4e81d9832c0 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator+ClusterAPIMachineManagement.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator+ClusterAPIMachineManagement.yaml @@ -168,8 +168,8 @@ spec: architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If - architecture is set, image cannot be set and version must be - set. + architecture is set, version must be set. image can be set only + when architecture is Multi. Valid values are 'Multi' and empty. enum: - Multi @@ -192,7 +192,7 @@ spec: description: |- image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. - When image is set, architecture cannot be specified. + When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version. type: string version: diff --git a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator.yaml b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator.yaml index 2133a371390..ce154e083d8 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/CRDCompatibilityRequirementOperator.yaml @@ -166,8 +166,8 @@ spec: architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If - architecture is set, image cannot be set and version must be - set. + architecture is set, version must be set. image can be set only + when architecture is Multi. Valid values are 'Multi' and empty. enum: - Multi @@ -190,7 +190,7 @@ spec: description: |- image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. - When image is set, architecture cannot be specified. + When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version. type: string version: diff --git a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterAPIMachineManagement.yaml b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterAPIMachineManagement.yaml index 15dede36f02..19f6c94ecea 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterAPIMachineManagement.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterAPIMachineManagement.yaml @@ -167,8 +167,8 @@ spec: architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If - architecture is set, image cannot be set and version must be - set. + architecture is set, version must be set. image can be set only + when architecture is Multi. Valid values are 'Multi' and empty. enum: - Multi @@ -191,7 +191,7 @@ spec: description: |- image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. - When image is set, architecture cannot be specified. + When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version. type: string version: 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 6b4b4288561..9510d13b4cb 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 @@ -175,8 +175,8 @@ spec: architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If - architecture is set, image cannot be set and version must be - set. + architecture is set, version must be set. image can be set only + when architecture is Multi. Valid values are 'Multi' and empty. enum: - Multi @@ -199,7 +199,7 @@ spec: description: |- image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. - When image is set, architecture cannot be specified. + When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version. type: string version: 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 1a6cc501001..b87f2d1c9ec 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 @@ -147,8 +147,8 @@ spec: architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If - architecture is set, image cannot be set and version must be - set. + architecture is set, version must be set. image can be set only + when architecture is Multi. Valid values are 'Multi' and empty. enum: - Multi @@ -171,7 +171,7 @@ spec: description: |- image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. - When image is set, architecture cannot be specified. + When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version. type: string mode: 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 cb06736d547..c7df26ffbae 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 @@ -147,8 +147,8 @@ spec: architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If - architecture is set, image cannot be set and version must be - set. + architecture is set, version must be set. image can be set only + when architecture is Multi. Valid values are 'Multi' and empty. enum: - Multi @@ -171,7 +171,7 @@ spec: description: |- image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. - When image is set, architecture cannot be specified. + When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version. type: string version: 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 40c194e1bc4..3e06dd39303 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 @@ -147,8 +147,8 @@ spec: architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If - architecture is set, image cannot be set and version must be - set. + architecture is set, version must be set. image can be set only + when architecture is Multi. Valid values are 'Multi' and empty. enum: - Multi @@ -171,7 +171,7 @@ spec: description: |- image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. - When image is set, architecture cannot be specified. + When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version. type: string version: diff --git a/config/v1/zz_generated.swagger_doc_generated.go b/config/v1/zz_generated.swagger_doc_generated.go index 0f4605ef380..2535d2e1a5c 100644 --- a/config/v1/zz_generated.swagger_doc_generated.go +++ b/config/v1/zz_generated.swagger_doc_generated.go @@ -1006,9 +1006,9 @@ func (SignatureStore) SwaggerDoc() map[string]string { var map_Update = map[string]string{ "": "Update represents an administrator update request.", - "architecture": "architecture is an optional field that indicates the desired value of the cluster architecture. In this context cluster architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If architecture is set, image cannot be set and version must be set. Valid values are 'Multi' and empty.", + "architecture": "architecture is an optional field that indicates the desired value of the cluster architecture. In this context cluster architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If architecture is set, version must be set. image can be set only when architecture is Multi. Valid values are 'Multi' and empty.", "version": "version is a semantic version identifying the update version. version is required if architecture is specified. If both version and image are set, the version extracted from the referenced image must match the specified version.", - "image": "image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. When image is set, architecture cannot be specified. If both version and image are set, the version extracted from the referenced image must match the specified version.", + "image": "image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version.", "force": "force allows an administrator to update to an image that has failed verification or upgradeable checks that are designed to keep your cluster safe. Only use this if: * you are testing unsigned release images in short-lived test clusters or * you are working around a known bug in the cluster-version\n operator and you have verified the authenticity of the provided\n image yourself.\nThe provided image will run with full administrative access to the cluster. Do not use this flag with images that come from unknown or potentially malicious sources.", "acceptRisks": "acceptRisks is an optional set of names of conditional update risks that are considered acceptable. A conditional update is performed only if all of its risks are acceptable. This list may contain entries that apply to current, previous or future updates. The entries therefore may not map directly to a risk in .status.conditionalUpdateRisks. acceptRisks must not contain more than 1000 entries. Entries in this list must be unique.", "mode": "mode determines how an update should be processed. The only valid value is \"Preflight\". When omitted, the cluster performs a normal update by applying the specified version or image to the cluster. This is the standard update behavior. When set to \"Preflight\", the cluster runs compatibility checks against the target release without performing an actual update. Compatibility results, including any detected risks, are reported in status.conditionalUpdates and status.conditionalUpdateRisks alongside risks from the update recommendation service. This allows administrators to assess update readiness and address issues before committing to the update. Preflight mode is particularly useful for skip-level updates where upgrade compatibility needs to be verified across multiple minor versions. When mode is set to \"Preflight\", the same rules for version, image, and architecture apply as for normal updates.", diff --git a/openapi/generated_openapi/zz_generated.openapi.go b/openapi/generated_openapi/zz_generated.openapi.go index fca44ab01e8..c025df4073e 100644 --- a/openapi/generated_openapi/zz_generated.openapi.go +++ b/openapi/generated_openapi/zz_generated.openapi.go @@ -22227,7 +22227,7 @@ func schema_openshift_api_config_v1_Update(ref common.ReferenceCallback) common. Properties: map[string]spec.Schema{ "architecture": { SchemaProps: spec.SchemaProps{ - Description: "architecture is an optional field that indicates the desired value of the cluster architecture. In this context cluster architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If architecture is set, image cannot be set and version must be set. Valid values are 'Multi' and empty.", + Description: "architecture is an optional field that indicates the desired value of the cluster architecture. In this context cluster architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If architecture is set, version must be set. image can be set only when architecture is Multi. Valid values are 'Multi' and empty.", Default: "", Type: []string{"string"}, Format: "", @@ -22243,7 +22243,7 @@ func schema_openshift_api_config_v1_Update(ref common.ReferenceCallback) common. }, "image": { SchemaProps: spec.SchemaProps{ - Description: "image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. When image is set, architecture cannot be specified. If both version and image are set, the version extracted from the referenced image must match the specified version.", + Description: "image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version.", Default: "", Type: []string{"string"}, Format: "", diff --git a/openapi/openapi.json b/openapi/openapi.json index 1c675ce4c5b..71bf3c1ae4f 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -12026,7 +12026,7 @@ "x-kubernetes-list-type": "map" }, "architecture": { - "description": "architecture is an optional field that indicates the desired value of the cluster architecture. In this context cluster architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If architecture is set, image cannot be set and version must be set. Valid values are 'Multi' and empty.", + "description": "architecture is an optional field that indicates the desired value of the cluster architecture. In this context cluster architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If architecture is set, version must be set. image can be set only when architecture is Multi. Valid values are 'Multi' and empty.", "type": "string", "default": "" }, @@ -12036,7 +12036,7 @@ "default": false }, "image": { - "description": "image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. When image is set, architecture cannot be specified. If both version and image are set, the version extracted from the referenced image must match the specified version.", + "description": "image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. When image is set, architecture can be specified only as Multi. If both version and image are set, the version extracted from the referenced image must match the specified version.", "type": "string", "default": "" },