diff --git a/config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml b/config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml
index eb854751251..920dc138518 100644
--- a/config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml
+++ b/config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if w
name: "Infrastructure"
crdName: infrastructures.config.openshift.io
featureGates:
-- -AWSClusterHostedDNS
+- -AWSClusterHostedDNSInstall
tests:
onCreate:
- name: Should be able to create a minimal Infrastructure
diff --git a/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNS.yaml b/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNS.yaml
index a04df42ca67..c46440165e5 100644
--- a/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNS.yaml
+++ b/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNS.yaml
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if w
name: "Infrastructure"
crdName: infrastructures.config.openshift.io
featureGates:
-- AWSClusterHostedDNS
+- AWSClusterHostedDNSInstall
tests:
onCreate:
- name: Should be able to create a minimal Infrastructure
diff --git a/config/v1/tests/infrastructures.config.openshift.io/GCPClusterHostedDNS.yaml b/config/v1/tests/infrastructures.config.openshift.io/GCPClusterHostedDNS.yaml
index 88363db5fc1..0397f0b0c92 100644
--- a/config/v1/tests/infrastructures.config.openshift.io/GCPClusterHostedDNS.yaml
+++ b/config/v1/tests/infrastructures.config.openshift.io/GCPClusterHostedDNS.yaml
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if w
name: "Infrastructure"
crdName: infrastructures.config.openshift.io
featureGates:
-- GCPClusterHostedDNS
+- GCPClusterHostedDNSInstall
tests:
onCreate:
- name: Should be able to create a minimal Infrastructure
diff --git a/config/v1/tests/infrastructures.config.openshift.io/GCPCustomAPIEndpoints.yaml b/config/v1/tests/infrastructures.config.openshift.io/GCPCustomAPIEndpoints.yaml
index fe0ffb50e11..151b7c91727 100644
--- a/config/v1/tests/infrastructures.config.openshift.io/GCPCustomAPIEndpoints.yaml
+++ b/config/v1/tests/infrastructures.config.openshift.io/GCPCustomAPIEndpoints.yaml
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if w
name: "Infrastructure"
crdName: infrastructures.config.openshift.io
featureGates:
-- GCPCustomAPIEndpoints
+- GCPCustomAPIEndpointsInstall
tests:
onCreate:
- name: Should be able to create a minimal Infrastructure
diff --git a/config/v1/types_infrastructure.go b/config/v1/types_infrastructure.go
index 1fc06418c74..1b3432cbc28 100644
--- a/config/v1/types_infrastructure.go
+++ b/config/v1/types_infrastructure.go
@@ -532,7 +532,7 @@ type AWSPlatformStatus struct {
//
// +default={"dnsType": "PlatformDefault"}
// +kubebuilder:default={"dnsType": "PlatformDefault"}
- // +openshift:enable:FeatureGate=AWSClusterHostedDNS
+ // +openshift:enable:FeatureGate=AWSClusterHostedDNSInstall
// +optional
// +nullable
CloudLoadBalancerConfig *CloudLoadBalancerConfig `json:"cloudLoadBalancerConfig,omitempty"`
@@ -745,7 +745,7 @@ type GCPPlatformStatus struct {
//
// +default={"dnsType": "PlatformDefault"}
// +kubebuilder:default={"dnsType": "PlatformDefault"}
- // +openshift:enable:FeatureGate=GCPClusterHostedDNS
+ // +openshift:enable:FeatureGate=GCPClusterHostedDNSInstall
// +optional
// +nullable
CloudLoadBalancerConfig *CloudLoadBalancerConfig `json:"cloudLoadBalancerConfig,omitempty"`
@@ -760,7 +760,7 @@ type GCPPlatformStatus struct {
// +kubebuilder:validation:MaxItems=8
// +kubebuilder:validation:XValidation:rule="self.all(x, self.exists_one(y, x.name == y.name))",message="only 1 endpoint override is permitted per GCP service name"
// +optional
- // +openshift:enable:FeatureGate=GCPCustomAPIEndpoints
+ // +openshift:enable:FeatureGate=GCPCustomAPIEndpointsInstall
ServiceEndpoints []GCPServiceEndpoint `json:"serviceEndpoints,omitempty"`
}
diff --git a/config/v1/zz_generated.featuregated-crd-manifests.yaml b/config/v1/zz_generated.featuregated-crd-manifests.yaml
index 91881630b89..1fee444a07d 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests.yaml
@@ -361,11 +361,11 @@ infrastructures.config.openshift.io:
Capability: ""
Category: ""
FeatureGates:
- - AWSClusterHostedDNS
+ - AWSClusterHostedDNSInstall
- DualReplica
- DyanmicServiceEndpointIBMCloud
- - GCPClusterHostedDNS
- - GCPCustomAPIEndpoints
+ - GCPClusterHostedDNSInstall
+ - GCPCustomAPIEndpointsInstall
- HighlyAvailableArbiter
- HighlyAvailableArbiter+DualReplica
- NutanixMultiSubnets
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSClusterHostedDNS.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml
similarity index 99%
rename from config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSClusterHostedDNS.yaml
rename to config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml
index 3ea039e8267..b938cccbb4d 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSClusterHostedDNS.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml
@@ -6,7 +6,7 @@ metadata:
api.openshift.io/filename-cvo-runlevel: "0000_10"
api.openshift.io/filename-operator: config-operator
api.openshift.io/filename-ordering: "01"
- feature-gate.release.openshift.io/AWSClusterHostedDNS: "true"
+ feature-gate.release.openshift.io/AWSClusterHostedDNSInstall: "true"
release.openshift.io/bootstrap-required: "true"
name: infrastructures.config.openshift.io
spec:
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPClusterHostedDNS.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPClusterHostedDNSInstall.yaml
similarity index 99%
rename from config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPClusterHostedDNS.yaml
rename to config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPClusterHostedDNSInstall.yaml
index 8fd02ad4b85..e681bf61ed1 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPClusterHostedDNS.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPClusterHostedDNSInstall.yaml
@@ -6,7 +6,7 @@ metadata:
api.openshift.io/filename-cvo-runlevel: "0000_10"
api.openshift.io/filename-operator: config-operator
api.openshift.io/filename-ordering: "01"
- feature-gate.release.openshift.io/GCPClusterHostedDNS: "true"
+ feature-gate.release.openshift.io/GCPClusterHostedDNSInstall: "true"
release.openshift.io/bootstrap-required: "true"
name: infrastructures.config.openshift.io
spec:
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPCustomAPIEndpoints.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPCustomAPIEndpointsInstall.yaml
similarity index 99%
rename from config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPCustomAPIEndpoints.yaml
rename to config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPCustomAPIEndpointsInstall.yaml
index 67bb8c317ea..beb440bc7ad 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPCustomAPIEndpoints.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPCustomAPIEndpointsInstall.yaml
@@ -6,7 +6,7 @@ metadata:
api.openshift.io/filename-cvo-runlevel: "0000_10"
api.openshift.io/filename-operator: config-operator
api.openshift.io/filename-ordering: "01"
- feature-gate.release.openshift.io/GCPCustomAPIEndpoints: "true"
+ feature-gate.release.openshift.io/GCPCustomAPIEndpointsInstall: "true"
release.openshift.io/bootstrap-required: "true"
name: infrastructures.config.openshift.io
spec:
diff --git a/features.md b/features.md
index 927568c8582..5900b4b0e07 100644
--- a/features.md
+++ b/features.md
@@ -18,7 +18,7 @@
| SELinuxMount| | | Enabled | Enabled | | |
| VSphereMixedNodeEnv| | | Enabled | Enabled | | |
| NewOLM| | Enabled | | Enabled | | Enabled |
-| AWSClusterHostedDNS| | | Enabled | Enabled | Enabled | Enabled |
+| AWSClusterHostedDNSInstall| | | Enabled | Enabled | Enabled | Enabled |
| AWSDedicatedHosts| | | Enabled | Enabled | Enabled | Enabled |
| AWSServiceLBNetworkSecurityGroup| | | Enabled | Enabled | Enabled | Enabled |
| AutomatedEtcdBackup| | | Enabled | Enabled | Enabled | Enabled |
@@ -34,8 +34,8 @@
| EtcdBackendQuota| | | Enabled | Enabled | Enabled | Enabled |
| Example| | | Enabled | Enabled | Enabled | Enabled |
| ExternalOIDCWithUIDAndExtraClaimMappings| | | Enabled | Enabled | Enabled | Enabled |
-| GCPClusterHostedDNS| | | Enabled | Enabled | Enabled | Enabled |
-| GCPCustomAPIEndpoints| | | Enabled | Enabled | Enabled | Enabled |
+| GCPClusterHostedDNSInstall| | | Enabled | Enabled | Enabled | Enabled |
+| GCPCustomAPIEndpointsInstall| | | Enabled | Enabled | Enabled | Enabled |
| HighlyAvailableArbiter| | | Enabled | Enabled | Enabled | Enabled |
| ImageModeStatusReporting| | | Enabled | Enabled | Enabled | Enabled |
| ImageStreamImportMode| | | Enabled | Enabled | Enabled | Enabled |
diff --git a/features/features.go b/features/features.go
index bf9a1c93e7d..5324a3d1ab3 100644
--- a/features/features.go
+++ b/features/features.go
@@ -320,21 +320,21 @@ var (
enhancementPR(legacyFeatureGateWithoutEnhancement).
mustRegister()
- FeatureGateGCPClusterHostedDNS = newFeatureGate("GCPClusterHostedDNS").
- reportProblemsToJiraComponent("Installer").
- contactPerson("barbacbd").
- productScope(ocpSpecific).
- enhancementPR(legacyFeatureGateWithoutEnhancement).
- enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
- mustRegister()
+ FeatureGateGCPClusterHostedDNSInstall = newFeatureGate("GCPClusterHostedDNSInstall").
+ reportProblemsToJiraComponent("Installer").
+ contactPerson("barbacbd").
+ productScope(ocpSpecific).
+ enhancementPR(legacyFeatureGateWithoutEnhancement).
+ enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
+ mustRegister()
- FeatureGateAWSClusterHostedDNS = newFeatureGate("AWSClusterHostedDNS").
- reportProblemsToJiraComponent("Installer").
- contactPerson("barbacbd").
- productScope(ocpSpecific).
- enhancementPR(legacyFeatureGateWithoutEnhancement).
- enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
- mustRegister()
+ FeatureGateAWSClusterHostedDNSInstall = newFeatureGate("AWSClusterHostedDNSInstall").
+ reportProblemsToJiraComponent("Installer").
+ contactPerson("barbacbd").
+ productScope(ocpSpecific).
+ enhancementPR(legacyFeatureGateWithoutEnhancement).
+ enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
+ mustRegister()
FeatureGateMixedCPUsAllocation = newFeatureGate("MixedCPUsAllocation").
reportProblemsToJiraComponent("NodeTuningOperator").
@@ -703,7 +703,7 @@ var (
enableIn(configv1.DevPreviewNoUpgrade).
mustRegister()
- FeatureGateGCPCustomAPIEndpoints = newFeatureGate("GCPCustomAPIEndpoints").
+ FeatureGateGCPCustomAPIEndpointsInstall = newFeatureGate("GCPCustomAPIEndpointsInstall").
reportProblemsToJiraComponent("Installer").
contactPerson("barbacbd").
productScope(ocpSpecific).
diff --git a/features/legacyfeaturegates.go b/features/legacyfeaturegates.go
index ae3f1ecf0f7..17bff98ab43 100644
--- a/features/legacyfeaturegates.go
+++ b/features/legacyfeaturegates.go
@@ -3,7 +3,7 @@ package features
import "k8s.io/apimachinery/pkg/util/sets"
var legacyFeatureGates = sets.New(
- "AWSClusterHostedDNS",
+ "AWSClusterHostedDNSInstall",
// never add to this list, if you think you have an exception ask @deads2k
"AWSEFSDriverVolumeMetrics",
// never add to this list, if you think you have an exception ask @deads2k
@@ -37,7 +37,7 @@ var legacyFeatureGates = sets.New(
// never add to this list, if you think you have an exception ask @deads2k
"Example2",
// never add to this list, if you think you have an exception ask @deads2k
- "GCPClusterHostedDNS",
+ "GCPClusterHostedDNSInstall",
// never add to this list, if you think you have an exception ask @deads2k
"GatewayAPI",
// never add to this list, if you think you have an exception ask @deads2k
diff --git a/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNS.yaml b/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNS.yaml
index 3efcd09d1e2..c09aa020e28 100644
--- a/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNS.yaml
+++ b/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNS.yaml
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if w
name: "Shamefully missing"
crdName: controllerconfigs.machineconfiguration.openshift.io
featureGates:
-- AWSClusterHostedDNS
+- AWSClusterHostedDNSInstall
tests:
onCreate:
- name: Should be able to create a minimal ControllerConfig
diff --git a/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNS.yaml b/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNS.yaml
index cfb7b0a089c..22e7cb3c179 100644
--- a/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNS.yaml
+++ b/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNS.yaml
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if w
name: "Shamefully missing"
crdName: controllerconfigs.machineconfiguration.openshift.io
featureGates:
-- GCPClusterHostedDNS
+- GCPClusterHostedDNSInstall
tests:
onCreate:
- name: Should be able to create a minimal ControllerConfig
diff --git a/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/GCPCustomAPIEndpoints.yaml b/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/GCPCustomAPIEndpoints.yaml
index dde3168248b..91d64a8f606 100644
--- a/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/GCPCustomAPIEndpoints.yaml
+++ b/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/GCPCustomAPIEndpoints.yaml
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if w
name: "ControllerConfig"
crdName: controllerconfigs.machineconfiguration.openshift.io
featureGates:
-- GCPCustomAPIEndpoints
+- GCPCustomAPIEndpointsInstall
tests:
onCreate:
- name: Should be able to create a minimal ControllerConfig
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests.yaml
index c290c60eba5..af3322dad3f 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests.yaml
@@ -28,11 +28,11 @@ controllerconfigs.machineconfiguration.openshift.io:
Capability: ""
Category: ""
FeatureGates:
- - AWSClusterHostedDNS
+ - AWSClusterHostedDNSInstall
- DualReplica
- DyanmicServiceEndpointIBMCloud
- - GCPClusterHostedDNS
- - GCPCustomAPIEndpoints
+ - GCPClusterHostedDNSInstall
+ - GCPCustomAPIEndpointsInstall
- HighlyAvailableArbiter
- HighlyAvailableArbiter+DualReplica
- NutanixMultiSubnets
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNS.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNSInstall.yaml
similarity index 99%
rename from machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNS.yaml
rename to machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNSInstall.yaml
index 99536ebc072..36b57b52a32 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNS.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNSInstall.yaml
@@ -6,7 +6,7 @@ metadata:
api.openshift.io/filename-cvo-runlevel: "0000_80"
api.openshift.io/filename-operator: machine-config
api.openshift.io/filename-ordering: "01"
- feature-gate.release.openshift.io/GCPClusterHostedDNS: "true"
+ feature-gate.release.openshift.io/AWSClusterHostedDNSInstall: "true"
labels:
openshift.io/operator-managed: ""
name: controllerconfigs.machineconfiguration.openshift.io
@@ -1446,6 +1446,110 @@ spec:
description: aws contains settings specific to the Amazon
Web Services infrastructure provider.
properties:
+ cloudLoadBalancerConfig:
+ default:
+ dnsType: PlatformDefault
+ description: |-
+ cloudLoadBalancerConfig holds configuration related to DNS and cloud
+ load balancers. It allows configuration of in-cluster DNS as an alternative
+ to the platform default DNS implementation.
+ When using the ClusterHosted DNS type, Load Balancer IP addresses
+ must be provided for the API and internal API load balancers as well as the
+ ingress load balancer.
+ nullable: true
+ properties:
+ clusterHosted:
+ description: |-
+ clusterHosted holds the IP addresses of API, API-Int and Ingress Load
+ Balancers on Cloud Platforms. The DNS solution hosted within the cluster
+ use these IP addresses to provide resolution for API, API-Int and Ingress
+ services.
+ properties:
+ apiIntLoadBalancerIPs:
+ description: |-
+ apiIntLoadBalancerIPs holds Load Balancer IPs for the internal API service.
+ These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
+ Entries in the apiIntLoadBalancerIPs must be unique.
+ A maximum of 16 IP addresses are permitted.
+ format: ip
+ items:
+ description: IP is an IP address (for example,
+ "10.0.0.0" or "fd00::").
+ maxLength: 39
+ minLength: 1
+ type: string
+ x-kubernetes-validations:
+ - message: value must be a valid IP address
+ rule: isIP(self)
+ maxItems: 16
+ type: array
+ x-kubernetes-list-type: set
+ apiLoadBalancerIPs:
+ description: |-
+ apiLoadBalancerIPs holds Load Balancer IPs for the API service.
+ These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
+ Could be empty for private clusters.
+ Entries in the apiLoadBalancerIPs must be unique.
+ A maximum of 16 IP addresses are permitted.
+ format: ip
+ items:
+ description: IP is an IP address (for example,
+ "10.0.0.0" or "fd00::").
+ maxLength: 39
+ minLength: 1
+ type: string
+ x-kubernetes-validations:
+ - message: value must be a valid IP address
+ rule: isIP(self)
+ maxItems: 16
+ type: array
+ x-kubernetes-list-type: set
+ ingressLoadBalancerIPs:
+ description: |-
+ ingressLoadBalancerIPs holds IPs for Ingress Load Balancers.
+ These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
+ Entries in the ingressLoadBalancerIPs must be unique.
+ A maximum of 16 IP addresses are permitted.
+ format: ip
+ items:
+ description: IP is an IP address (for example,
+ "10.0.0.0" or "fd00::").
+ maxLength: 39
+ minLength: 1
+ type: string
+ x-kubernetes-validations:
+ - message: value must be a valid IP address
+ rule: isIP(self)
+ maxItems: 16
+ type: array
+ x-kubernetes-list-type: set
+ type: object
+ dnsType:
+ default: PlatformDefault
+ description: |-
+ dnsType indicates the type of DNS solution in use within the cluster. Its default value of
+ `PlatformDefault` indicates that the cluster's DNS is the default provided by the cloud platform.
+ It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode,
+ the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed.
+ The cluster's use of the cloud's Load Balancers is unaffected by this setting.
+ The value is immutable after it has been set at install time.
+ Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS.
+ Enabling this functionality allows the user to start their own DNS solution outside the cluster after
+ installation is complete. The customer would be responsible for configuring this custom DNS solution,
+ and it can be run in addition to the in-cluster DNS solution.
+ enum:
+ - ClusterHosted
+ - PlatformDefault
+ type: string
+ x-kubernetes-validations:
+ - message: dnsType is immutable
+ rule: oldSelf == '' || self == oldSelf
+ type: object
+ x-kubernetes-validations:
+ - message: clusterHosted is permitted only when dnsType
+ is ClusterHosted
+ rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted''
+ ? !has(self.clusterHosted) : true'
region:
description: region holds the default AWS region for
new AWS resources created by the cluster.
@@ -1772,110 +1876,6 @@ spec:
description: gcp contains settings specific to the Google
Cloud Platform infrastructure provider.
properties:
- cloudLoadBalancerConfig:
- default:
- dnsType: PlatformDefault
- description: |-
- cloudLoadBalancerConfig holds configuration related to DNS and cloud
- load balancers. It allows configuration of in-cluster DNS as an alternative
- to the platform default DNS implementation.
- When using the ClusterHosted DNS type, Load Balancer IP addresses
- must be provided for the API and internal API load balancers as well as the
- ingress load balancer.
- nullable: true
- properties:
- clusterHosted:
- description: |-
- clusterHosted holds the IP addresses of API, API-Int and Ingress Load
- Balancers on Cloud Platforms. The DNS solution hosted within the cluster
- use these IP addresses to provide resolution for API, API-Int and Ingress
- services.
- properties:
- apiIntLoadBalancerIPs:
- description: |-
- apiIntLoadBalancerIPs holds Load Balancer IPs for the internal API service.
- These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
- Entries in the apiIntLoadBalancerIPs must be unique.
- A maximum of 16 IP addresses are permitted.
- format: ip
- items:
- description: IP is an IP address (for example,
- "10.0.0.0" or "fd00::").
- maxLength: 39
- minLength: 1
- type: string
- x-kubernetes-validations:
- - message: value must be a valid IP address
- rule: isIP(self)
- maxItems: 16
- type: array
- x-kubernetes-list-type: set
- apiLoadBalancerIPs:
- description: |-
- apiLoadBalancerIPs holds Load Balancer IPs for the API service.
- These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
- Could be empty for private clusters.
- Entries in the apiLoadBalancerIPs must be unique.
- A maximum of 16 IP addresses are permitted.
- format: ip
- items:
- description: IP is an IP address (for example,
- "10.0.0.0" or "fd00::").
- maxLength: 39
- minLength: 1
- type: string
- x-kubernetes-validations:
- - message: value must be a valid IP address
- rule: isIP(self)
- maxItems: 16
- type: array
- x-kubernetes-list-type: set
- ingressLoadBalancerIPs:
- description: |-
- ingressLoadBalancerIPs holds IPs for Ingress Load Balancers.
- These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
- Entries in the ingressLoadBalancerIPs must be unique.
- A maximum of 16 IP addresses are permitted.
- format: ip
- items:
- description: IP is an IP address (for example,
- "10.0.0.0" or "fd00::").
- maxLength: 39
- minLength: 1
- type: string
- x-kubernetes-validations:
- - message: value must be a valid IP address
- rule: isIP(self)
- maxItems: 16
- type: array
- x-kubernetes-list-type: set
- type: object
- dnsType:
- default: PlatformDefault
- description: |-
- dnsType indicates the type of DNS solution in use within the cluster. Its default value of
- `PlatformDefault` indicates that the cluster's DNS is the default provided by the cloud platform.
- It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode,
- the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed.
- The cluster's use of the cloud's Load Balancers is unaffected by this setting.
- The value is immutable after it has been set at install time.
- Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS.
- Enabling this functionality allows the user to start their own DNS solution outside the cluster after
- installation is complete. The customer would be responsible for configuring this custom DNS solution,
- and it can be run in addition to the in-cluster DNS solution.
- enum:
- - ClusterHosted
- - PlatformDefault
- type: string
- x-kubernetes-validations:
- - message: dnsType is immutable
- rule: oldSelf == '' || self == oldSelf
- type: object
- x-kubernetes-validations:
- - message: clusterHosted is permitted only when dnsType
- is ClusterHosted
- rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted''
- ? !has(self.clusterHosted) : true'
projectID:
description: resourceGroupName is the Project ID for
new GCP resources created for the cluster.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNS.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNSInstall.yaml
similarity index 99%
rename from machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNS.yaml
rename to machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNSInstall.yaml
index 17e904a9d67..cc4a3498ffa 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNS.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNSInstall.yaml
@@ -6,7 +6,7 @@ metadata:
api.openshift.io/filename-cvo-runlevel: "0000_80"
api.openshift.io/filename-operator: machine-config
api.openshift.io/filename-ordering: "01"
- feature-gate.release.openshift.io/AWSClusterHostedDNS: "true"
+ feature-gate.release.openshift.io/GCPClusterHostedDNSInstall: "true"
labels:
openshift.io/operator-managed: ""
name: controllerconfigs.machineconfiguration.openshift.io
@@ -1446,110 +1446,6 @@ spec:
description: aws contains settings specific to the Amazon
Web Services infrastructure provider.
properties:
- cloudLoadBalancerConfig:
- default:
- dnsType: PlatformDefault
- description: |-
- cloudLoadBalancerConfig holds configuration related to DNS and cloud
- load balancers. It allows configuration of in-cluster DNS as an alternative
- to the platform default DNS implementation.
- When using the ClusterHosted DNS type, Load Balancer IP addresses
- must be provided for the API and internal API load balancers as well as the
- ingress load balancer.
- nullable: true
- properties:
- clusterHosted:
- description: |-
- clusterHosted holds the IP addresses of API, API-Int and Ingress Load
- Balancers on Cloud Platforms. The DNS solution hosted within the cluster
- use these IP addresses to provide resolution for API, API-Int and Ingress
- services.
- properties:
- apiIntLoadBalancerIPs:
- description: |-
- apiIntLoadBalancerIPs holds Load Balancer IPs for the internal API service.
- These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
- Entries in the apiIntLoadBalancerIPs must be unique.
- A maximum of 16 IP addresses are permitted.
- format: ip
- items:
- description: IP is an IP address (for example,
- "10.0.0.0" or "fd00::").
- maxLength: 39
- minLength: 1
- type: string
- x-kubernetes-validations:
- - message: value must be a valid IP address
- rule: isIP(self)
- maxItems: 16
- type: array
- x-kubernetes-list-type: set
- apiLoadBalancerIPs:
- description: |-
- apiLoadBalancerIPs holds Load Balancer IPs for the API service.
- These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
- Could be empty for private clusters.
- Entries in the apiLoadBalancerIPs must be unique.
- A maximum of 16 IP addresses are permitted.
- format: ip
- items:
- description: IP is an IP address (for example,
- "10.0.0.0" or "fd00::").
- maxLength: 39
- minLength: 1
- type: string
- x-kubernetes-validations:
- - message: value must be a valid IP address
- rule: isIP(self)
- maxItems: 16
- type: array
- x-kubernetes-list-type: set
- ingressLoadBalancerIPs:
- description: |-
- ingressLoadBalancerIPs holds IPs for Ingress Load Balancers.
- These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
- Entries in the ingressLoadBalancerIPs must be unique.
- A maximum of 16 IP addresses are permitted.
- format: ip
- items:
- description: IP is an IP address (for example,
- "10.0.0.0" or "fd00::").
- maxLength: 39
- minLength: 1
- type: string
- x-kubernetes-validations:
- - message: value must be a valid IP address
- rule: isIP(self)
- maxItems: 16
- type: array
- x-kubernetes-list-type: set
- type: object
- dnsType:
- default: PlatformDefault
- description: |-
- dnsType indicates the type of DNS solution in use within the cluster. Its default value of
- `PlatformDefault` indicates that the cluster's DNS is the default provided by the cloud platform.
- It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode,
- the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed.
- The cluster's use of the cloud's Load Balancers is unaffected by this setting.
- The value is immutable after it has been set at install time.
- Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS.
- Enabling this functionality allows the user to start their own DNS solution outside the cluster after
- installation is complete. The customer would be responsible for configuring this custom DNS solution,
- and it can be run in addition to the in-cluster DNS solution.
- enum:
- - ClusterHosted
- - PlatformDefault
- type: string
- x-kubernetes-validations:
- - message: dnsType is immutable
- rule: oldSelf == '' || self == oldSelf
- type: object
- x-kubernetes-validations:
- - message: clusterHosted is permitted only when dnsType
- is ClusterHosted
- rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted''
- ? !has(self.clusterHosted) : true'
region:
description: region holds the default AWS region for
new AWS resources created by the cluster.
@@ -1876,6 +1772,110 @@ spec:
description: gcp contains settings specific to the Google
Cloud Platform infrastructure provider.
properties:
+ cloudLoadBalancerConfig:
+ default:
+ dnsType: PlatformDefault
+ description: |-
+ cloudLoadBalancerConfig holds configuration related to DNS and cloud
+ load balancers. It allows configuration of in-cluster DNS as an alternative
+ to the platform default DNS implementation.
+ When using the ClusterHosted DNS type, Load Balancer IP addresses
+ must be provided for the API and internal API load balancers as well as the
+ ingress load balancer.
+ nullable: true
+ properties:
+ clusterHosted:
+ description: |-
+ clusterHosted holds the IP addresses of API, API-Int and Ingress Load
+ Balancers on Cloud Platforms. The DNS solution hosted within the cluster
+ use these IP addresses to provide resolution for API, API-Int and Ingress
+ services.
+ properties:
+ apiIntLoadBalancerIPs:
+ description: |-
+ apiIntLoadBalancerIPs holds Load Balancer IPs for the internal API service.
+ These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
+ Entries in the apiIntLoadBalancerIPs must be unique.
+ A maximum of 16 IP addresses are permitted.
+ format: ip
+ items:
+ description: IP is an IP address (for example,
+ "10.0.0.0" or "fd00::").
+ maxLength: 39
+ minLength: 1
+ type: string
+ x-kubernetes-validations:
+ - message: value must be a valid IP address
+ rule: isIP(self)
+ maxItems: 16
+ type: array
+ x-kubernetes-list-type: set
+ apiLoadBalancerIPs:
+ description: |-
+ apiLoadBalancerIPs holds Load Balancer IPs for the API service.
+ These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
+ Could be empty for private clusters.
+ Entries in the apiLoadBalancerIPs must be unique.
+ A maximum of 16 IP addresses are permitted.
+ format: ip
+ items:
+ description: IP is an IP address (for example,
+ "10.0.0.0" or "fd00::").
+ maxLength: 39
+ minLength: 1
+ type: string
+ x-kubernetes-validations:
+ - message: value must be a valid IP address
+ rule: isIP(self)
+ maxItems: 16
+ type: array
+ x-kubernetes-list-type: set
+ ingressLoadBalancerIPs:
+ description: |-
+ ingressLoadBalancerIPs holds IPs for Ingress Load Balancers.
+ These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
+ Entries in the ingressLoadBalancerIPs must be unique.
+ A maximum of 16 IP addresses are permitted.
+ format: ip
+ items:
+ description: IP is an IP address (for example,
+ "10.0.0.0" or "fd00::").
+ maxLength: 39
+ minLength: 1
+ type: string
+ x-kubernetes-validations:
+ - message: value must be a valid IP address
+ rule: isIP(self)
+ maxItems: 16
+ type: array
+ x-kubernetes-list-type: set
+ type: object
+ dnsType:
+ default: PlatformDefault
+ description: |-
+ dnsType indicates the type of DNS solution in use within the cluster. Its default value of
+ `PlatformDefault` indicates that the cluster's DNS is the default provided by the cloud platform.
+ It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode,
+ the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed.
+ The cluster's use of the cloud's Load Balancers is unaffected by this setting.
+ The value is immutable after it has been set at install time.
+ Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS.
+ Enabling this functionality allows the user to start their own DNS solution outside the cluster after
+ installation is complete. The customer would be responsible for configuring this custom DNS solution,
+ and it can be run in addition to the in-cluster DNS solution.
+ enum:
+ - ClusterHosted
+ - PlatformDefault
+ type: string
+ x-kubernetes-validations:
+ - message: dnsType is immutable
+ rule: oldSelf == '' || self == oldSelf
+ type: object
+ x-kubernetes-validations:
+ - message: clusterHosted is permitted only when dnsType
+ is ClusterHosted
+ rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted''
+ ? !has(self.clusterHosted) : true'
projectID:
description: resourceGroupName is the Project ID for
new GCP resources created for the cluster.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPCustomAPIEndpoints.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPCustomAPIEndpointsInstall.yaml
similarity index 99%
rename from machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPCustomAPIEndpoints.yaml
rename to machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPCustomAPIEndpointsInstall.yaml
index f7d09fbeaa4..fbfdffa1900 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPCustomAPIEndpoints.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPCustomAPIEndpointsInstall.yaml
@@ -6,7 +6,7 @@ metadata:
api.openshift.io/filename-cvo-runlevel: "0000_80"
api.openshift.io/filename-operator: machine-config
api.openshift.io/filename-ordering: "01"
- feature-gate.release.openshift.io/GCPCustomAPIEndpoints: "true"
+ feature-gate.release.openshift.io/GCPCustomAPIEndpointsInstall: "true"
labels:
openshift.io/operator-managed: ""
name: controllerconfigs.machineconfiguration.openshift.io
diff --git a/payload-command/render/legacyfeaturegates.go b/payload-command/render/legacyfeaturegates.go
index 7131a1b0828..98027694f12 100644
--- a/payload-command/render/legacyfeaturegates.go
+++ b/payload-command/render/legacyfeaturegates.go
@@ -5,7 +5,7 @@ import "k8s.io/apimachinery/pkg/util/sets"
// never add to this list, if you think you have an exception ask @deadsk
var legacyFeatureGates = sets.New(
// never add to this list, if you think you have an exception ask @deads2k
- "AWSClusterHostedDNS",
+ "AWSClusterHostedDNSInstall",
// never add to this list, if you think you have an exception ask @deads2k
"AWSEFSDriverVolumeMetrics",
// never add to this list, if you think you have an exception ask @deads2k
@@ -39,7 +39,7 @@ var legacyFeatureGates = sets.New(
// never add to this list, if you think you have an exception ask @deads2k
"Example2",
// never add to this list, if you think you have an exception ask @deads2k
- "GCPClusterHostedDNS",
+ "GCPClusterHostedDNSInstall",
// never add to this list, if you think you have an exception ask @deads2k
"GatewayAPI",
// never add to this list, if you think you have an exception ask @deads2k
diff --git a/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml b/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml
index 8969d342c19..2f719cb9779 100644
--- a/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml
+++ b/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml
@@ -14,7 +14,7 @@
{
"disabled": [
{
- "name": "AWSClusterHostedDNS"
+ "name": "AWSClusterHostedDNSInstall"
},
{
"name": "AWSDedicatedHosts"
@@ -80,10 +80,10 @@
"name": "ExternalSnapshotMetadata"
},
{
- "name": "GCPClusterHostedDNS"
+ "name": "GCPClusterHostedDNSInstall"
},
{
- "name": "GCPCustomAPIEndpoints"
+ "name": "GCPCustomAPIEndpointsInstall"
},
{
"name": "HighlyAvailableArbiter"
diff --git a/payload-manifests/featuregates/featureGate-Hypershift-DevPreviewNoUpgrade.yaml b/payload-manifests/featuregates/featureGate-Hypershift-DevPreviewNoUpgrade.yaml
index cb857b180b5..5f8f9ee1573 100644
--- a/payload-manifests/featuregates/featureGate-Hypershift-DevPreviewNoUpgrade.yaml
+++ b/payload-manifests/featuregates/featureGate-Hypershift-DevPreviewNoUpgrade.yaml
@@ -54,7 +54,7 @@
],
"enabled": [
{
- "name": "AWSClusterHostedDNS"
+ "name": "AWSClusterHostedDNSInstall"
},
{
"name": "AWSDedicatedHosts"
@@ -141,10 +141,10 @@
"name": "ExternalSnapshotMetadata"
},
{
- "name": "GCPClusterHostedDNS"
+ "name": "GCPClusterHostedDNSInstall"
},
{
- "name": "GCPCustomAPIEndpoints"
+ "name": "GCPCustomAPIEndpointsInstall"
},
{
"name": "GatewayAPI"
diff --git a/payload-manifests/featuregates/featureGate-Hypershift-TechPreviewNoUpgrade.yaml b/payload-manifests/featuregates/featureGate-Hypershift-TechPreviewNoUpgrade.yaml
index ef16bcf613d..cb76d1a66c4 100644
--- a/payload-manifests/featuregates/featureGate-Hypershift-TechPreviewNoUpgrade.yaml
+++ b/payload-manifests/featuregates/featureGate-Hypershift-TechPreviewNoUpgrade.yaml
@@ -72,7 +72,7 @@
],
"enabled": [
{
- "name": "AWSClusterHostedDNS"
+ "name": "AWSClusterHostedDNSInstall"
},
{
"name": "AWSDedicatedHosts"
@@ -147,10 +147,10 @@
"name": "ExternalOIDCWithUIDAndExtraClaimMappings"
},
{
- "name": "GCPClusterHostedDNS"
+ "name": "GCPClusterHostedDNSInstall"
},
{
- "name": "GCPCustomAPIEndpoints"
+ "name": "GCPCustomAPIEndpointsInstall"
},
{
"name": "GatewayAPI"
diff --git a/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml b/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml
index 88809a001f7..71580a8944b 100644
--- a/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml
+++ b/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml
@@ -14,7 +14,7 @@
{
"disabled": [
{
- "name": "AWSClusterHostedDNS"
+ "name": "AWSClusterHostedDNSInstall"
},
{
"name": "AWSDedicatedHosts"
@@ -83,10 +83,10 @@
"name": "ExternalSnapshotMetadata"
},
{
- "name": "GCPClusterHostedDNS"
+ "name": "GCPClusterHostedDNSInstall"
},
{
- "name": "GCPCustomAPIEndpoints"
+ "name": "GCPCustomAPIEndpointsInstall"
},
{
"name": "HighlyAvailableArbiter"
diff --git a/payload-manifests/featuregates/featureGate-SelfManagedHA-DevPreviewNoUpgrade.yaml b/payload-manifests/featuregates/featureGate-SelfManagedHA-DevPreviewNoUpgrade.yaml
index 8adaed2b3f0..28dfd5e2b62 100644
--- a/payload-manifests/featuregates/featureGate-SelfManagedHA-DevPreviewNoUpgrade.yaml
+++ b/payload-manifests/featuregates/featureGate-SelfManagedHA-DevPreviewNoUpgrade.yaml
@@ -36,7 +36,7 @@
],
"enabled": [
{
- "name": "AWSClusterHostedDNS"
+ "name": "AWSClusterHostedDNSInstall"
},
{
"name": "AWSDedicatedHosts"
@@ -123,10 +123,10 @@
"name": "ExternalSnapshotMetadata"
},
{
- "name": "GCPClusterHostedDNS"
+ "name": "GCPClusterHostedDNSInstall"
},
{
- "name": "GCPCustomAPIEndpoints"
+ "name": "GCPCustomAPIEndpointsInstall"
},
{
"name": "GatewayAPI"
diff --git a/payload-manifests/featuregates/featureGate-SelfManagedHA-TechPreviewNoUpgrade.yaml b/payload-manifests/featuregates/featureGate-SelfManagedHA-TechPreviewNoUpgrade.yaml
index fcbf593c5ea..2318eb644dd 100644
--- a/payload-manifests/featuregates/featureGate-SelfManagedHA-TechPreviewNoUpgrade.yaml
+++ b/payload-manifests/featuregates/featureGate-SelfManagedHA-TechPreviewNoUpgrade.yaml
@@ -57,7 +57,7 @@
],
"enabled": [
{
- "name": "AWSClusterHostedDNS"
+ "name": "AWSClusterHostedDNSInstall"
},
{
"name": "AWSDedicatedHosts"
@@ -132,10 +132,10 @@
"name": "ExternalOIDCWithUIDAndExtraClaimMappings"
},
{
- "name": "GCPClusterHostedDNS"
+ "name": "GCPClusterHostedDNSInstall"
},
{
- "name": "GCPCustomAPIEndpoints"
+ "name": "GCPCustomAPIEndpointsInstall"
},
{
"name": "GatewayAPI"