From 0acbddbc0beda6744d533fc9ad761e747f774ac5 Mon Sep 17 00:00:00 2001 From: Sandhya Dasu Date: Tue, 7 Apr 2026 17:21:40 -0400 Subject: [PATCH] Promote AWS DualStack to Default Also make it available in OKD. --- .../AAA_ungated.yaml | 2 ++ .../AWSClusterHostedDNSInstall.yaml | 5 +++- .../AWSDualStackInstall.yaml | 14 +++++++++++ config/v1/types_infrastructure.go | 9 +++++++ ...erator_01_infrastructures-Default.crd.yaml | 24 +++++++++++++++++++ ...ctures-Hypershift-CustomNoUpgrade.crd.yaml | 9 +++++++ ...es-Hypershift-DevPreviewNoUpgrade.crd.yaml | 9 +++++++ ...s-Hypershift-TechPreviewNoUpgrade.crd.yaml | 9 +++++++ ...g-operator_01_infrastructures-OKD.crd.yaml | 24 +++++++++++++++++++ ...res-SelfManagedHA-CustomNoUpgrade.crd.yaml | 9 +++++++ ...SelfManagedHA-DevPreviewNoUpgrade.crd.yaml | 9 +++++++ ...elfManagedHA-TechPreviewNoUpgrade.crd.yaml | 9 +++++++ .../AWSDualStackInstall.yaml | 9 +++++++ .../v1/zz_generated.swagger_doc_generated.go | 2 +- features.md | 2 +- features/features.go | 2 +- .../AWSDualStackInstall.yaml | 14 +++++++---- ...nfig_01_controllerconfigs-Default.crd.yaml | 24 +++++++++++++++++++ ...onfigs-Hypershift-CustomNoUpgrade.crd.yaml | 9 +++++++ ...gs-Hypershift-DevPreviewNoUpgrade.crd.yaml | 9 +++++++ ...s-Hypershift-TechPreviewNoUpgrade.crd.yaml | 9 +++++++ ...e-config_01_controllerconfigs-OKD.crd.yaml | 24 +++++++++++++++++++ ...igs-SelfManagedHA-CustomNoUpgrade.crd.yaml | 9 +++++++ ...SelfManagedHA-DevPreviewNoUpgrade.crd.yaml | 9 +++++++ ...elfManagedHA-TechPreviewNoUpgrade.crd.yaml | 9 +++++++ .../AWSDualStackInstall.yaml | 9 +++++++ .../generated_openapi/zz_generated.openapi.go | 2 +- ...erator_01_infrastructures-Default.crd.yaml | 24 +++++++++++++++++++ ...ctures-Hypershift-CustomNoUpgrade.crd.yaml | 9 +++++++ ...es-Hypershift-DevPreviewNoUpgrade.crd.yaml | 9 +++++++ ...s-Hypershift-TechPreviewNoUpgrade.crd.yaml | 9 +++++++ ...g-operator_01_infrastructures-OKD.crd.yaml | 24 +++++++++++++++++++ ...res-SelfManagedHA-CustomNoUpgrade.crd.yaml | 9 +++++++ ...SelfManagedHA-DevPreviewNoUpgrade.crd.yaml | 9 +++++++ ...elfManagedHA-TechPreviewNoUpgrade.crd.yaml | 9 +++++++ ...nfig_01_controllerconfigs-Default.crd.yaml | 24 +++++++++++++++++++ ...onfigs-Hypershift-CustomNoUpgrade.crd.yaml | 9 +++++++ ...gs-Hypershift-DevPreviewNoUpgrade.crd.yaml | 9 +++++++ ...s-Hypershift-TechPreviewNoUpgrade.crd.yaml | 9 +++++++ ...e-config_01_controllerconfigs-OKD.crd.yaml | 24 +++++++++++++++++++ ...igs-SelfManagedHA-CustomNoUpgrade.crd.yaml | 9 +++++++ ...SelfManagedHA-DevPreviewNoUpgrade.crd.yaml | 9 +++++++ ...elfManagedHA-TechPreviewNoUpgrade.crd.yaml | 9 +++++++ .../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 ++--- 47 files changed, 481 insertions(+), 21 deletions(-) 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 f5a31aab5f4..97dc8191f24 100644 --- a/config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml +++ b/config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml @@ -1735,6 +1735,7 @@ tests: aws: cloudLoadBalancerConfig: dnsType: PlatformDefault + ipFamily: IPv4 region: us-east-1 resourceTags: - key: key with space @@ -1783,6 +1784,7 @@ tests: aws: cloudLoadBalancerConfig: dnsType: PlatformDefault + ipFamily: IPv4 region: us-east-1 resourceTags: - key: key:_./=+-@ diff --git a/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml b/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml index 485c4c66eac..c89a82291eb 100644 --- a/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml +++ b/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml @@ -3,7 +3,6 @@ name: "Infrastructure" crdName: infrastructures.config.openshift.io featureGates: - AWSClusterHostedDNSInstall -- -AWSDualStackInstall tests: onCreate: - name: Should be able to create a minimal Infrastructure @@ -61,6 +60,7 @@ tests: aws: cloudLoadBalancerConfig: dnsType: PlatformDefault + ipFamily: IPv4 type: AWS - name: should be able to set dnsType to non-default value of `ClusterHosted` initial: | @@ -102,6 +102,7 @@ tests: aws: cloudLoadBalancerConfig: dnsType: ClusterHosted + ipFamily: IPv4 type: AWS - name: Should not allow changing the immutable dnsType field initial: | @@ -138,6 +139,7 @@ tests: aws: cloudLoadBalancerConfig: dnsType: PlatformDefault + ipFamily: IPv4 type: AWS expectedStatusError: "status.platformStatus.aws.cloudLoadBalancerConfig.dnsType: Invalid value: \"string\": dnsType is immutable" - name: Should not accept non-IP address values for Load Balancer IPs @@ -214,6 +216,7 @@ tests: clusterHosted: apiIntLoadBalancerIPs: - 10.10.10.20 + ipFamily: IPv4 type: AWS expectedStatusError: "status.platformStatus.aws.cloudLoadBalancerConfig: Invalid value: \"object\": clusterHosted is permitted only when dnsType is ClusterHosted" - name: Should not accept duplicate IP addresses for any of the Load Balancer IPs diff --git a/config/v1/tests/infrastructures.config.openshift.io/AWSDualStackInstall.yaml b/config/v1/tests/infrastructures.config.openshift.io/AWSDualStackInstall.yaml index 7752610223c..846d65892d7 100644 --- a/config/v1/tests/infrastructures.config.openshift.io/AWSDualStackInstall.yaml +++ b/config/v1/tests/infrastructures.config.openshift.io/AWSDualStackInstall.yaml @@ -87,6 +87,8 @@ tests: platformStatus: aws: region: us-east-1 + cloudLoadBalancerConfig: + dnsType: PlatformDefault ipFamily: DualStackIPv6Primary type: AWS expected: | @@ -130,6 +132,8 @@ tests: platformStatus: aws: region: us-east-1 + cloudLoadBalancerConfig: + dnsType: PlatformDefault ipFamily: DualStackIPv4Primary type: AWS expected: | @@ -191,6 +195,8 @@ tests: platformStatus: aws: region: us-east-1 + cloudLoadBalancerConfig: + dnsType: PlatformDefault ipFamily: IPv4 type: AWS updated: | @@ -207,6 +213,8 @@ tests: platformStatus: aws: region: us-east-1 + cloudLoadBalancerConfig: + dnsType: PlatformDefault ipFamily: DualStackIPv6Primary type: AWS expectedStatusError: "status.platformStatus.aws.ipFamily: Invalid value: \"string\": ipFamily is immutable once set" @@ -224,6 +232,8 @@ tests: platform: AWS platformStatus: aws: + cloudLoadBalancerConfig: + dnsType: PlatformDefault region: us-east-1 ipFamily: DualStackIPv6Primary type: AWS @@ -240,6 +250,8 @@ tests: platform: AWS platformStatus: aws: + cloudLoadBalancerConfig: + dnsType: PlatformDefault region: us-east-1 ipFamily: DualStackIPv6Primary type: AWS @@ -277,6 +289,8 @@ tests: platformStatus: aws: region: us-east-1 + cloudLoadBalancerConfig: + dnsType: PlatformDefault ipFamily: DualStackIPv4Primary type: AWS updated: | diff --git a/config/v1/types_infrastructure.go b/config/v1/types_infrastructure.go index 5d9f10374eb..68e3209d807 100644 --- a/config/v1/types_infrastructure.go +++ b/config/v1/types_infrastructure.go @@ -586,6 +586,15 @@ type AWSPlatformStatus struct { // IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary // protocol family. // + // Valid values are: + // * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + // * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + // * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + // + // When omitted, this field defaults to "IPv4". + // + // This field is immutable and cannot be changed once set. + // // +default="IPv4" // +kubebuilder:default="IPv4" // +kubebuilder:validation:XValidation:rule="oldSelf == '' || self == oldSelf",message="ipFamily is immutable once set" 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 0305366dfd1..15b6bd7cc39 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 @@ -1287,6 +1287,30 @@ spec: ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + ipFamily: + default: IPv4 + description: |- + ipFamily specifies the IP protocol family that should be used for AWS + network resources. This controls whether AWS resources are created with + IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. + enum: + - IPv4 + - DualStackIPv6Primary + - DualStackIPv4Primary + type: string + x-kubernetes-validations: + - message: ipFamily is immutable once set + rule: oldSelf == '' || self == oldSelf region: description: region holds the default AWS region for new AWS resources created by the cluster. diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml index 2829b41dce9..56840a9fcd9 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml @@ -1380,6 +1380,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml index a3064161f2e..33e654be218 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml @@ -1365,6 +1365,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-TechPreviewNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-TechPreviewNoUpgrade.crd.yaml index cafc698a8ac..1b344019edb 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-TechPreviewNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-TechPreviewNoUpgrade.crd.yaml @@ -1365,6 +1365,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary 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 6cdb3f76af3..4eb30d34f55 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 @@ -1287,6 +1287,30 @@ spec: ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + ipFamily: + default: IPv4 + description: |- + ipFamily specifies the IP protocol family that should be used for AWS + network resources. This controls whether AWS resources are created with + IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. + enum: + - IPv4 + - DualStackIPv6Primary + - DualStackIPv4Primary + type: string + x-kubernetes-validations: + - message: ipFamily is immutable once set + rule: oldSelf == '' || self == oldSelf region: description: region holds the default AWS region for new AWS resources created by the cluster. diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml index 310ba4ad386..dc47d947825 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml @@ -1380,6 +1380,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml index f3b307973b9..e87adbbca96 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml @@ -1380,6 +1380,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml index 998b9be396a..8a1c908b845 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml @@ -1365,6 +1365,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSDualStackInstall.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSDualStackInstall.yaml index 1b1fe5d1d5a..72e9126ac49 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSDualStackInstall.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSDualStackInstall.yaml @@ -1155,6 +1155,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/config/v1/zz_generated.swagger_doc_generated.go b/config/v1/zz_generated.swagger_doc_generated.go index 631f11a1b29..b7b7ea80186 100644 --- a/config/v1/zz_generated.swagger_doc_generated.go +++ b/config/v1/zz_generated.swagger_doc_generated.go @@ -1581,7 +1581,7 @@ var map_AWSPlatformStatus = map[string]string{ "serviceEndpoints": "serviceEndpoints list contains custom endpoints which will override default service endpoint of AWS Services. There must be only one ServiceEndpoint for a service.", "resourceTags": "resourceTags is a list of additional tags to apply to AWS resources created for the cluster. See https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html for information on tagging AWS resources. AWS supports a maximum of 50 tags per resource. OpenShift reserves 25 tags for its use, leaving 25 tags available for the user.", "cloudLoadBalancerConfig": "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.", - "ipFamily": "ipFamily specifies the IP protocol family that should be used for AWS network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family.", + "ipFamily": "ipFamily specifies the IP protocol family that should be used for AWS network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family.\n\nValid values are: * \"IPv4\" (default): Cloud platform resources use IPv4 addressing only. * \"DualStackIPv6Primary\": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. * \"DualStackIPv4Primary\": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family.\n\nWhen omitted, this field defaults to \"IPv4\".\n\nThis field is immutable and cannot be changed once set.", } func (AWSPlatformStatus) SwaggerDoc() map[string]string { diff --git a/features.md b/features.md index c78d402696a..f09bc5e8c17 100644 --- a/features.md +++ b/features.md @@ -30,7 +30,6 @@ | ProvisioningRequestAvailable| | | Enabled | Enabled | | | | | | AWSClusterHostedDNS| | | Enabled | Enabled | | | Enabled | Enabled | | AWSDedicatedHosts| | | Enabled | Enabled | | | Enabled | Enabled | -| AWSDualStackInstall| | | Enabled | Enabled | | | Enabled | Enabled | | AWSEuropeanSovereignCloudInstall| | | Enabled | Enabled | | | Enabled | Enabled | | AdditionalStorageConfig| | | Enabled | Enabled | | | Enabled | Enabled | | AutomatedEtcdBackup| | | Enabled | Enabled | | | Enabled | Enabled | @@ -96,6 +95,7 @@ | VolumeGroupSnapshot| | | Enabled | Enabled | | | Enabled | Enabled | | OSStreams| | Enabled | Enabled | Enabled | | Enabled | Enabled | Enabled | | AWSClusterHostedDNSInstall| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | +| AWSDualStackInstall| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | AWSServiceLBNetworkSecurityGroup| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | AzureWorkloadIdentity| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | BootImageSkewEnforcement| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | diff --git a/features/features.go b/features/features.go index b45bef77056..f70a1e5437b 100644 --- a/features/features.go +++ b/features/features.go @@ -869,7 +869,7 @@ var ( contactPerson("sadasu"). productScope(ocpSpecific). enhancementPR("https://github.com/openshift/enhancements/pull/1806"). - enable(inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). + enable(inDefault(), inOKD(), inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). mustRegister() FeatureGateAzureDualStackInstall = newFeatureGate("AzureDualStackInstall"). diff --git a/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/AWSDualStackInstall.yaml b/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/AWSDualStackInstall.yaml index 35edae5c3ae..57fa9d7c4dc 100644 --- a/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/AWSDualStackInstall.yaml +++ b/machineconfiguration/v1/tests/controllerconfigs.machineconfiguration.openshift.io/AWSDualStackInstall.yaml @@ -91,10 +91,10 @@ tests: platformStatus: type: AWS aws: - region: us-east-1 - ipFamily: IPv4 cloudLoadBalancerConfig: dnsType: PlatformDefault + region: us-east-1 + ipFamily: IPv4 ipFamilies: IPv4 kubeAPIServerServingCAData: Y2VydGlmaWNhdGUK network: null @@ -172,6 +172,8 @@ tests: platformStatus: type: AWS aws: + cloudLoadBalancerConfig: + dnsType: PlatformDefault region: us-east-1 ipFamily: DualStackIPv6Primary ipFamilies: IPv4 @@ -217,10 +219,10 @@ tests: platformStatus: type: AWS aws: - region: us-east-1 - ipFamily: DualStackIPv6Primary cloudLoadBalancerConfig: dnsType: PlatformDefault + region: us-east-1 + ipFamily: DualStackIPv6Primary ipFamilies: IPv4 kubeAPIServerServingCAData: Y2VydGlmaWNhdGUK network: null @@ -262,6 +264,8 @@ tests: platformStatus: type: AWS aws: + cloudLoadBalancerConfig: + dnsType: PlatformDefault region: us-east-1 ipFamily: IPv4 ipFamilies: IPv4 @@ -304,6 +308,8 @@ tests: platformStatus: type: AWS aws: + cloudLoadBalancerConfig: + dnsType: PlatformDefault region: us-east-1 ipFamily: DualStackIPv6Primary ipFamilies: IPv4 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 7c0f73b0413..633ccb976db 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 @@ -1578,6 +1578,30 @@ spec: is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + ipFamily: + default: IPv4 + description: |- + ipFamily specifies the IP protocol family that should be used for AWS + network resources. This controls whether AWS resources are created with + IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. + enum: + - IPv4 + - DualStackIPv6Primary + - DualStackIPv4Primary + type: string + x-kubernetes-validations: + - message: ipFamily is immutable once set + rule: oldSelf == '' || self == oldSelf region: description: region holds the default AWS region for new AWS resources created by the cluster. diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml index 9fd305414c5..43ccde322c0 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml @@ -1674,6 +1674,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml index 4717d10021a..d217d920b0b 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml @@ -1659,6 +1659,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-TechPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-TechPreviewNoUpgrade.crd.yaml index f176deea6ef..a426a59445d 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-TechPreviewNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-TechPreviewNoUpgrade.crd.yaml @@ -1659,6 +1659,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary 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 baa96854daa..f86ca02f7b2 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 @@ -1578,6 +1578,30 @@ spec: is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + ipFamily: + default: IPv4 + description: |- + ipFamily specifies the IP protocol family that should be used for AWS + network resources. This controls whether AWS resources are created with + IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. + enum: + - IPv4 + - DualStackIPv6Primary + - DualStackIPv4Primary + type: string + x-kubernetes-validations: + - message: ipFamily is immutable once set + rule: oldSelf == '' || self == oldSelf region: description: region holds the default AWS region for new AWS resources created by the cluster. diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml index de2a65dfa33..23ce8df23b4 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml @@ -1674,6 +1674,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml index 7bf1e60dfa5..97aa78f4c4c 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml @@ -1674,6 +1674,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml index 51b3d3ceca1..3176362d6b4 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml @@ -1659,6 +1659,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSDualStackInstall.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSDualStackInstall.yaml index ee5edcb5edb..573c8281c50 100644 --- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSDualStackInstall.yaml +++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSDualStackInstall.yaml @@ -1451,6 +1451,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/openapi/generated_openapi/zz_generated.openapi.go b/openapi/generated_openapi/zz_generated.openapi.go index 9f78f6c321f..7b08008fc5b 100644 --- a/openapi/generated_openapi/zz_generated.openapi.go +++ b/openapi/generated_openapi/zz_generated.openapi.go @@ -9427,7 +9427,7 @@ func schema_openshift_api_config_v1_AWSPlatformStatus(ref common.ReferenceCallba }, "ipFamily": { SchemaProps: spec.SchemaProps{ - Description: "ipFamily specifies the IP protocol family that should be used for AWS network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family.", + Description: "ipFamily specifies the IP protocol family that should be used for AWS network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family.\n\nValid values are: * \"IPv4\" (default): Cloud platform resources use IPv4 addressing only. * \"DualStackIPv6Primary\": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. * \"DualStackIPv4Primary\": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family.\n\nWhen omitted, this field defaults to \"IPv4\".\n\nThis field is immutable and cannot be changed once set.", Default: "IPv4", Type: []string{"string"}, Format: "", 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 0305366dfd1..15b6bd7cc39 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 @@ -1287,6 +1287,30 @@ spec: ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + ipFamily: + default: IPv4 + description: |- + ipFamily specifies the IP protocol family that should be used for AWS + network resources. This controls whether AWS resources are created with + IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. + enum: + - IPv4 + - DualStackIPv6Primary + - DualStackIPv4Primary + type: string + x-kubernetes-validations: + - message: ipFamily is immutable once set + rule: oldSelf == '' || self == oldSelf region: description: region holds the default AWS region for new AWS resources created by the cluster. diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml index 2829b41dce9..56840a9fcd9 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml @@ -1380,6 +1380,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml index a3064161f2e..33e654be218 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml @@ -1365,6 +1365,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-TechPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-TechPreviewNoUpgrade.crd.yaml index cafc698a8ac..1b344019edb 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-TechPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-TechPreviewNoUpgrade.crd.yaml @@ -1365,6 +1365,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary 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 6cdb3f76af3..4eb30d34f55 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 @@ -1287,6 +1287,30 @@ spec: ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + ipFamily: + default: IPv4 + description: |- + ipFamily specifies the IP protocol family that should be used for AWS + network resources. This controls whether AWS resources are created with + IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. + enum: + - IPv4 + - DualStackIPv6Primary + - DualStackIPv4Primary + type: string + x-kubernetes-validations: + - message: ipFamily is immutable once set + rule: oldSelf == '' || self == oldSelf region: description: region holds the default AWS region for new AWS resources created by the cluster. diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml index 310ba4ad386..dc47d947825 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml @@ -1380,6 +1380,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml index f3b307973b9..e87adbbca96 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml @@ -1380,6 +1380,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml index 998b9be396a..8a1c908b845 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml @@ -1365,6 +1365,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary 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 7c0f73b0413..633ccb976db 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 @@ -1578,6 +1578,30 @@ spec: is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + ipFamily: + default: IPv4 + description: |- + ipFamily specifies the IP protocol family that should be used for AWS + network resources. This controls whether AWS resources are created with + IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. + enum: + - IPv4 + - DualStackIPv6Primary + - DualStackIPv4Primary + type: string + x-kubernetes-validations: + - message: ipFamily is immutable once set + rule: oldSelf == '' || self == oldSelf region: description: region holds the default AWS region for new AWS resources created by the cluster. diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml index 9fd305414c5..43ccde322c0 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml @@ -1674,6 +1674,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml index 4717d10021a..d217d920b0b 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml @@ -1659,6 +1659,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-TechPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-TechPreviewNoUpgrade.crd.yaml index f176deea6ef..a426a59445d 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-TechPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-TechPreviewNoUpgrade.crd.yaml @@ -1659,6 +1659,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary 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 baa96854daa..f86ca02f7b2 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 @@ -1578,6 +1578,30 @@ spec: is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + ipFamily: + default: IPv4 + description: |- + ipFamily specifies the IP protocol family that should be used for AWS + network resources. This controls whether AWS resources are created with + IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. + enum: + - IPv4 + - DualStackIPv6Primary + - DualStackIPv4Primary + type: string + x-kubernetes-validations: + - message: ipFamily is immutable once set + rule: oldSelf == '' || self == oldSelf region: description: region holds the default AWS region for new AWS resources created by the cluster. diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml index de2a65dfa33..23ce8df23b4 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml @@ -1674,6 +1674,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml index 7bf1e60dfa5..97aa78f4c4c 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml @@ -1674,6 +1674,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml index 51b3d3ceca1..3176362d6b4 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-TechPreviewNoUpgrade.crd.yaml @@ -1659,6 +1659,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml b/payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml index 2873fff0258..0a8bca6af16 100644 --- a/payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml +++ b/payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml @@ -20,9 +20,6 @@ { "name": "AWSDedicatedHosts" }, - { - "name": "AWSDualStackInstall" - }, { "name": "AWSEuropeanSovereignCloudInstall" }, @@ -301,6 +298,9 @@ { "name": "AWSClusterHostedDNSInstall" }, + { + "name": "AWSDualStackInstall" + }, { "name": "AWSServiceLBNetworkSecurityGroup" }, diff --git a/payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml b/payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml index ee9d301c7c5..977b1e4a0ce 100644 --- a/payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml +++ b/payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml @@ -22,9 +22,6 @@ { "name": "AWSDedicatedHosts" }, - { - "name": "AWSDualStackInstall" - }, { "name": "AWSEuropeanSovereignCloudInstall" }, @@ -303,6 +300,9 @@ { "name": "AWSClusterHostedDNSInstall" }, + { + "name": "AWSDualStackInstall" + }, { "name": "AWSServiceLBNetworkSecurityGroup" }, diff --git a/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml b/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml index d3ec99985fc..d671992dae4 100644 --- a/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml +++ b/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml @@ -20,9 +20,6 @@ { "name": "AWSDedicatedHosts" }, - { - "name": "AWSDualStackInstall" - }, { "name": "AWSEuropeanSovereignCloudInstall" }, @@ -295,6 +292,9 @@ { "name": "AWSClusterHostedDNSInstall" }, + { + "name": "AWSDualStackInstall" + }, { "name": "AWSServiceLBNetworkSecurityGroup" }, diff --git a/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml b/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml index 326fe926316..e85a3f29dd9 100644 --- a/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml +++ b/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml @@ -22,9 +22,6 @@ { "name": "AWSDedicatedHosts" }, - { - "name": "AWSDualStackInstall" - }, { "name": "AWSEuropeanSovereignCloudInstall" }, @@ -297,6 +294,9 @@ { "name": "AWSClusterHostedDNSInstall" }, + { + "name": "AWSDualStackInstall" + }, { "name": "AWSServiceLBNetworkSecurityGroup" },