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/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").
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"
},