From cf9df753b198a4b11da386427fda79b1beb5d739 Mon Sep 17 00:00:00 2001 From: Patrick Dillon Date: Wed, 19 Aug 2026 10:11:42 -0400 Subject: [PATCH 1/2] CORS-4550: Promote GCD to Default Move GCD to default featureset. --- features/features.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/features.go b/features/features.go index e9732790923..fc632165577 100644 --- a/features/features.go +++ b/features/features.go @@ -869,7 +869,7 @@ var ( contactPerson("barbacbd"). productScope(ocpSpecific). enhancementPR("https://github.com/openshift/enhancements/pull/1977"). - enable(inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). + enable(inDefault(), inOKD(), inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). mustRegister() FeatureCBORServingAndStorage = newFeatureGate("CBORServingAndStorage"). From 370198a0f696369e8d50f169c2e03244be275221 Mon Sep 17 00:00:00 2001 From: Patrick Dillon Date: Wed, 19 Aug 2026 12:15:44 -0400 Subject: [PATCH 2/2] GCD Promotion: Generate CRDs make update --- ...erator_01_infrastructures-Default.crd.yaml | 22 +++++++++++++++++++ ...g-operator_01_infrastructures-OKD.crd.yaml | 22 +++++++++++++++++++ features.md | 2 +- ...nfig_01_controllerconfigs-Default.crd.yaml | 22 +++++++++++++++++++ ...e-config_01_controllerconfigs-OKD.crd.yaml | 22 +++++++++++++++++++ ...erator_01_infrastructures-Default.crd.yaml | 22 +++++++++++++++++++ ...g-operator_01_infrastructures-OKD.crd.yaml | 22 +++++++++++++++++++ ...nfig_01_controllerconfigs-Default.crd.yaml | 22 +++++++++++++++++++ ...e-config_01_controllerconfigs-OKD.crd.yaml | 22 +++++++++++++++++++ .../featureGate-4-10-Hypershift-Default.yaml | 6 ++--- .../featureGate-4-10-Hypershift-OKD.yaml | 6 ++--- ...eatureGate-4-10-SelfManagedHA-Default.yaml | 6 ++--- .../featureGate-4-10-SelfManagedHA-OKD.yaml | 6 ++--- 13 files changed, 189 insertions(+), 13 deletions(-) diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yaml index c404ab95683..2798baa3a42 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yaml @@ -1952,6 +1952,28 @@ spec: - message: resourceTags are immutable and may only be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only lowercase + alphanumeric characters, ''-'' or ''.'', and start and + end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during installation diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-OKD.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-OKD.crd.yaml index 3642565ec25..98162998ee4 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-OKD.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-OKD.crd.yaml @@ -1952,6 +1952,28 @@ spec: - message: resourceTags are immutable and may only be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only lowercase + alphanumeric characters, ''-'' or ''.'', and start and + end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during installation diff --git a/features.md b/features.md index 9ba7d0fbd1a..e26166a38d5 100644 --- a/features.md +++ b/features.md @@ -59,7 +59,6 @@ | GCPCustomAPIEndpoints| | | Enabled | Enabled | | | Enabled | Enabled | | GCPCustomAPIEndpointsInstall| | | Enabled | Enabled | | | Enabled | Enabled | | GCPDualStackInstall| | | Enabled | Enabled | | | Enabled | Enabled | -| GCPSovereignCloudInstall| | | Enabled | Enabled | | | Enabled | Enabled | | GatewayAPIManagementMode| | | Enabled | Enabled | | | Enabled | Enabled | | GomaxprocsInjection| | | Enabled | Enabled | | | Enabled | Enabled | | HyperShiftOnlyDynamicResourceAllocation| Enabled | | Enabled | | Enabled | | Enabled | | @@ -102,6 +101,7 @@ | ExternalOIDC| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | ExternalOIDCWithUIDAndExtraClaimMappings| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | ExternalOIDCWithUpstreamParity| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | +| GCPSovereignCloudInstall| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | GatewayAPIWithoutOLM| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | ImageStreamImportMode| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | IngressControllerDynamicConfigurationManager| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml index 8c01aaa5987..30139c4928c 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml @@ -2250,6 +2250,28 @@ spec: be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only + lowercase alphanumeric characters, ''-'' or ''.'', + and start and end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml index 50af0f358a7..172b99dd7cd 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml @@ -2250,6 +2250,28 @@ spec: be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only + lowercase alphanumeric characters, ''-'' or ''.'', + and start and end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Default.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Default.crd.yaml index c404ab95683..2798baa3a42 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Default.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Default.crd.yaml @@ -1952,6 +1952,28 @@ spec: - message: resourceTags are immutable and may only be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only lowercase + alphanumeric characters, ''-'' or ''.'', and start and + end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during installation diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-OKD.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-OKD.crd.yaml index 3642565ec25..98162998ee4 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-OKD.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-OKD.crd.yaml @@ -1952,6 +1952,28 @@ spec: - message: resourceTags are immutable and may only be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only lowercase + alphanumeric characters, ''-'' or ''.'', and start and + end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during installation diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml index 8c01aaa5987..30139c4928c 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml @@ -2250,6 +2250,28 @@ spec: be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only + lowercase alphanumeric characters, ''-'' or ''.'', + and start and end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml index 50af0f358a7..172b99dd7cd 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml @@ -2250,6 +2250,28 @@ spec: be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only + lowercase alphanumeric characters, ''-'' or ''.'', + and start and end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during diff --git a/payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml b/payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml index 2fe9efa5f57..633566ae7e2 100644 --- a/payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml +++ b/payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml @@ -143,9 +143,6 @@ { "name": "GCPDualStackInstall" }, - { - "name": "GCPSovereignCloudInstall" - }, { "name": "GatewayAPIManagementMode" }, @@ -319,6 +316,9 @@ { "name": "ExternalOIDCWithUpstreamParity" }, + { + "name": "GCPSovereignCloudInstall" + }, { "name": "GatewayAPIWithoutOLM" }, diff --git a/payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml b/payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml index 0d8c85f2641..b4e847c055f 100644 --- a/payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml +++ b/payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml @@ -145,9 +145,6 @@ { "name": "GCPDualStackInstall" }, - { - "name": "GCPSovereignCloudInstall" - }, { "name": "GatewayAPIManagementMode" }, @@ -321,6 +318,9 @@ { "name": "ExternalOIDCWithUpstreamParity" }, + { + "name": "GCPSovereignCloudInstall" + }, { "name": "GatewayAPIWithoutOLM" }, diff --git a/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml b/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml index 662bcb95df8..47143e7adda 100644 --- a/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml +++ b/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml @@ -140,9 +140,6 @@ { "name": "GCPDualStackInstall" }, - { - "name": "GCPSovereignCloudInstall" - }, { "name": "GatewayAPIManagementMode" }, @@ -307,6 +304,9 @@ { "name": "ExternalOIDCWithUpstreamParity" }, + { + "name": "GCPSovereignCloudInstall" + }, { "name": "GatewayAPIWithoutOLM" }, diff --git a/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml b/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml index 1396a78cd0f..5633df13d07 100644 --- a/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml +++ b/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml @@ -142,9 +142,6 @@ { "name": "GCPDualStackInstall" }, - { - "name": "GCPSovereignCloudInstall" - }, { "name": "GatewayAPIManagementMode" }, @@ -309,6 +306,9 @@ { "name": "ExternalOIDCWithUpstreamParity" }, + { + "name": "GCPSovereignCloudInstall" + }, { "name": "GatewayAPIWithoutOLM" },