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 8d94616b357..88bade26819 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
@@ -1822,6 +1822,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 b107d7e44ca..42d9db10bdf 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
@@ -1822,6 +1822,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 aa5874e0383..17d1c18ec30 100644
--- a/features.md
+++ b/features.md
@@ -60,7 +60,6 @@
| GCPCustomAPIEndpoints| | | Enabled | Enabled | | | Enabled | Enabled |
| GCPCustomAPIEndpointsInstall| | | Enabled | Enabled | | | Enabled | Enabled |
| GCPDualStackInstall| | | Enabled | Enabled | | | Enabled | Enabled |
-| GCPSovereignCloudInstall| | | Enabled | Enabled | | | Enabled | Enabled |
| HyperShiftOnlyDynamicResourceAllocation| Enabled | | Enabled | | Enabled | | Enabled | |
| ImageModeStatusReporting| | | Enabled | Enabled | | | Enabled | Enabled |
| IngressControllerDynamicConfigurationManager| | | Enabled | Enabled | | | Enabled | Enabled |
@@ -99,6 +98,7 @@
| EventTTL| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| ExternalOIDC| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| ExternalOIDCWithUIDAndExtraClaimMappings| 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 |
| InsightsConfig| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
diff --git a/features/features.go b/features/features.go
index a36283627ff..2d375091816 100644
--- a/features/features.go
+++ b/features/features.go
@@ -877,7 +877,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").
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 df2f24ce080..4855747f7bd 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
@@ -2121,6 +2121,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 e4bef30eb6d..c85cbe2c743 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
@@ -2121,6 +2121,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 8d94616b357..88bade26819 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
@@ -1822,6 +1822,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 b107d7e44ca..42d9db10bdf 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
@@ -1822,6 +1822,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 df2f24ce080..4855747f7bd 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
@@ -2121,6 +2121,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 e4bef30eb6d..c85cbe2c743 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
@@ -2121,6 +2121,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 53b8b4eab0c..dedef132724 100644
--- a/payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml
+++ b/payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml
@@ -158,9 +158,6 @@
{
"name": "GCPDualStackInstall"
},
- {
- "name": "GCPSovereignCloudInstall"
- },
{
"name": "ImageModeStatusReporting"
},
@@ -310,6 +307,9 @@
{
"name": "ExternalOIDCWithUIDAndExtraClaimMappings"
},
+ {
+ "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 ba7d6fc95e1..d89d7f997d1 100644
--- a/payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml
+++ b/payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml
@@ -160,9 +160,6 @@
{
"name": "GCPDualStackInstall"
},
- {
- "name": "GCPSovereignCloudInstall"
- },
{
"name": "ImageModeStatusReporting"
},
@@ -312,6 +309,9 @@
{
"name": "ExternalOIDCWithUIDAndExtraClaimMappings"
},
+ {
+ "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 5e6934a97fe..e5a6abedfa1 100644
--- a/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml
+++ b/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml
@@ -155,9 +155,6 @@
{
"name": "GCPDualStackInstall"
},
- {
- "name": "GCPSovereignCloudInstall"
- },
{
"name": "HyperShiftOnlyDynamicResourceAllocation"
},
@@ -304,6 +301,9 @@
{
"name": "ExternalOIDCWithUIDAndExtraClaimMappings"
},
+ {
+ "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 c7454dca8ec..25ca535435c 100644
--- a/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml
+++ b/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml
@@ -157,9 +157,6 @@
{
"name": "GCPDualStackInstall"
},
- {
- "name": "GCPSovereignCloudInstall"
- },
{
"name": "HyperShiftOnlyDynamicResourceAllocation"
},
@@ -306,6 +303,9 @@
{
"name": "ExternalOIDCWithUIDAndExtraClaimMappings"
},
+ {
+ "name": "GCPSovereignCloudInstall"
+ },
{
"name": "GatewayAPIWithoutOLM"
},