Skip to content

Commit e14c8ae

Browse files
committed
Promote AWS ClusterHostedDNS to Default
Also make it available in OKD.
1 parent 324a1bc commit e14c8ae

18 files changed

Lines changed: 876 additions & 784 deletions

config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if w
22
name: "Infrastructure"
33
crdName: infrastructures.config.openshift.io
44
featureGates:
5-
- -AWSClusterHostedDNSInstall
5+
- -AzureClusterHostedDNSInstall
66
tests:
77
onCreate:
88
- name: Should be able to create a minimal Infrastructure
@@ -1730,6 +1730,8 @@ tests:
17301730
platform: AWS
17311731
platformStatus:
17321732
aws:
1733+
cloudLoadBalancerConfig:
1734+
dnsType: PlatformDefault
17331735
region: us-east-1
17341736
resourceTags:
17351737
- key: key with space
@@ -1776,6 +1778,8 @@ tests:
17761778
platform: AWS
17771779
platformStatus:
17781780
aws:
1781+
cloudLoadBalancerConfig:
1782+
dnsType: PlatformDefault
17791783
region: us-east-1
17801784
resourceTags:
17811785
- key: key:_./=+-@

config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNS.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ name: "Infrastructure"
33
crdName: infrastructures.config.openshift.io
44
featureGates:
55
- AWSClusterHostedDNSInstall
6+
- AWSDualStackInstall
67
tests:
78
onCreate:
89
- name: Should be able to create a minimal Infrastructure

config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ name: "Infrastructure"
33
crdName: infrastructures.config.openshift.io
44
featureGates:
55
- AWSClusterHostedDNSInstall
6+
- -AWSDualStackInstall
67
tests:
78
onCreate:
89
- name: Should be able to create a minimal Infrastructure
@@ -60,7 +61,6 @@ tests:
6061
aws:
6162
cloudLoadBalancerConfig:
6263
dnsType: PlatformDefault
63-
ipFamily: IPv4
6464
type: AWS
6565
- name: should be able to set dnsType to non-default value of `ClusterHosted`
6666
initial: |
@@ -102,7 +102,6 @@ tests:
102102
aws:
103103
cloudLoadBalancerConfig:
104104
dnsType: ClusterHosted
105-
ipFamily: IPv4
106105
type: AWS
107106
- name: Should not allow changing the immutable dnsType field
108107
initial: |

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yaml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,6 +1172,110 @@ spec:
11721172
description: aws contains settings specific to the Amazon Web
11731173
Services infrastructure provider.
11741174
properties:
1175+
cloudLoadBalancerConfig:
1176+
default:
1177+
dnsType: PlatformDefault
1178+
description: |-
1179+
cloudLoadBalancerConfig holds configuration related to DNS and cloud
1180+
load balancers. It allows configuration of in-cluster DNS as an alternative
1181+
to the platform default DNS implementation.
1182+
When using the ClusterHosted DNS type, Load Balancer IP addresses
1183+
must be provided for the API and internal API load balancers as well as the
1184+
ingress load balancer.
1185+
nullable: true
1186+
properties:
1187+
clusterHosted:
1188+
description: |-
1189+
clusterHosted holds the IP addresses of API, API-Int and Ingress Load
1190+
Balancers on Cloud Platforms. The DNS solution hosted within the cluster
1191+
use these IP addresses to provide resolution for API, API-Int and Ingress
1192+
services.
1193+
properties:
1194+
apiIntLoadBalancerIPs:
1195+
description: |-
1196+
apiIntLoadBalancerIPs holds Load Balancer IPs for the internal API service.
1197+
These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
1198+
Entries in the apiIntLoadBalancerIPs must be unique.
1199+
A maximum of 16 IP addresses are permitted.
1200+
format: ip
1201+
items:
1202+
description: IP is an IP address (for example, "10.0.0.0"
1203+
or "fd00::").
1204+
maxLength: 39
1205+
minLength: 1
1206+
type: string
1207+
x-kubernetes-validations:
1208+
- message: value must be a valid IP address
1209+
rule: isIP(self)
1210+
maxItems: 16
1211+
type: array
1212+
x-kubernetes-list-type: set
1213+
apiLoadBalancerIPs:
1214+
description: |-
1215+
apiLoadBalancerIPs holds Load Balancer IPs for the API service.
1216+
These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
1217+
Could be empty for private clusters.
1218+
Entries in the apiLoadBalancerIPs must be unique.
1219+
A maximum of 16 IP addresses are permitted.
1220+
format: ip
1221+
items:
1222+
description: IP is an IP address (for example, "10.0.0.0"
1223+
or "fd00::").
1224+
maxLength: 39
1225+
minLength: 1
1226+
type: string
1227+
x-kubernetes-validations:
1228+
- message: value must be a valid IP address
1229+
rule: isIP(self)
1230+
maxItems: 16
1231+
type: array
1232+
x-kubernetes-list-type: set
1233+
ingressLoadBalancerIPs:
1234+
description: |-
1235+
ingressLoadBalancerIPs holds IPs for Ingress Load Balancers.
1236+
These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
1237+
Entries in the ingressLoadBalancerIPs must be unique.
1238+
A maximum of 16 IP addresses are permitted.
1239+
format: ip
1240+
items:
1241+
description: IP is an IP address (for example, "10.0.0.0"
1242+
or "fd00::").
1243+
maxLength: 39
1244+
minLength: 1
1245+
type: string
1246+
x-kubernetes-validations:
1247+
- message: value must be a valid IP address
1248+
rule: isIP(self)
1249+
maxItems: 16
1250+
type: array
1251+
x-kubernetes-list-type: set
1252+
type: object
1253+
dnsType:
1254+
default: PlatformDefault
1255+
description: |-
1256+
dnsType indicates the type of DNS solution in use within the cluster. Its default value of
1257+
`PlatformDefault` indicates that the cluster's DNS is the default provided by the cloud platform.
1258+
It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode,
1259+
the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed.
1260+
The cluster's use of the cloud's Load Balancers is unaffected by this setting.
1261+
The value is immutable after it has been set at install time.
1262+
Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS.
1263+
Enabling this functionality allows the user to start their own DNS solution outside the cluster after
1264+
installation is complete. The customer would be responsible for configuring this custom DNS solution,
1265+
and it can be run in addition to the in-cluster DNS solution.
1266+
enum:
1267+
- ClusterHosted
1268+
- PlatformDefault
1269+
type: string
1270+
x-kubernetes-validations:
1271+
- message: dnsType is immutable
1272+
rule: oldSelf == '' || self == oldSelf
1273+
type: object
1274+
x-kubernetes-validations:
1275+
- message: clusterHosted is permitted only when dnsType is
1276+
ClusterHosted
1277+
rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted''
1278+
? !has(self.clusterHosted) : true'
11751279
region:
11761280
description: region holds the default AWS region for new AWS
11771281
resources created by the cluster.

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-OKD.crd.yaml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,6 +1172,110 @@ spec:
11721172
description: aws contains settings specific to the Amazon Web
11731173
Services infrastructure provider.
11741174
properties:
1175+
cloudLoadBalancerConfig:
1176+
default:
1177+
dnsType: PlatformDefault
1178+
description: |-
1179+
cloudLoadBalancerConfig holds configuration related to DNS and cloud
1180+
load balancers. It allows configuration of in-cluster DNS as an alternative
1181+
to the platform default DNS implementation.
1182+
When using the ClusterHosted DNS type, Load Balancer IP addresses
1183+
must be provided for the API and internal API load balancers as well as the
1184+
ingress load balancer.
1185+
nullable: true
1186+
properties:
1187+
clusterHosted:
1188+
description: |-
1189+
clusterHosted holds the IP addresses of API, API-Int and Ingress Load
1190+
Balancers on Cloud Platforms. The DNS solution hosted within the cluster
1191+
use these IP addresses to provide resolution for API, API-Int and Ingress
1192+
services.
1193+
properties:
1194+
apiIntLoadBalancerIPs:
1195+
description: |-
1196+
apiIntLoadBalancerIPs holds Load Balancer IPs for the internal API service.
1197+
These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
1198+
Entries in the apiIntLoadBalancerIPs must be unique.
1199+
A maximum of 16 IP addresses are permitted.
1200+
format: ip
1201+
items:
1202+
description: IP is an IP address (for example, "10.0.0.0"
1203+
or "fd00::").
1204+
maxLength: 39
1205+
minLength: 1
1206+
type: string
1207+
x-kubernetes-validations:
1208+
- message: value must be a valid IP address
1209+
rule: isIP(self)
1210+
maxItems: 16
1211+
type: array
1212+
x-kubernetes-list-type: set
1213+
apiLoadBalancerIPs:
1214+
description: |-
1215+
apiLoadBalancerIPs holds Load Balancer IPs for the API service.
1216+
These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
1217+
Could be empty for private clusters.
1218+
Entries in the apiLoadBalancerIPs must be unique.
1219+
A maximum of 16 IP addresses are permitted.
1220+
format: ip
1221+
items:
1222+
description: IP is an IP address (for example, "10.0.0.0"
1223+
or "fd00::").
1224+
maxLength: 39
1225+
minLength: 1
1226+
type: string
1227+
x-kubernetes-validations:
1228+
- message: value must be a valid IP address
1229+
rule: isIP(self)
1230+
maxItems: 16
1231+
type: array
1232+
x-kubernetes-list-type: set
1233+
ingressLoadBalancerIPs:
1234+
description: |-
1235+
ingressLoadBalancerIPs holds IPs for Ingress Load Balancers.
1236+
These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
1237+
Entries in the ingressLoadBalancerIPs must be unique.
1238+
A maximum of 16 IP addresses are permitted.
1239+
format: ip
1240+
items:
1241+
description: IP is an IP address (for example, "10.0.0.0"
1242+
or "fd00::").
1243+
maxLength: 39
1244+
minLength: 1
1245+
type: string
1246+
x-kubernetes-validations:
1247+
- message: value must be a valid IP address
1248+
rule: isIP(self)
1249+
maxItems: 16
1250+
type: array
1251+
x-kubernetes-list-type: set
1252+
type: object
1253+
dnsType:
1254+
default: PlatformDefault
1255+
description: |-
1256+
dnsType indicates the type of DNS solution in use within the cluster. Its default value of
1257+
`PlatformDefault` indicates that the cluster's DNS is the default provided by the cloud platform.
1258+
It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode,
1259+
the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed.
1260+
The cluster's use of the cloud's Load Balancers is unaffected by this setting.
1261+
The value is immutable after it has been set at install time.
1262+
Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS.
1263+
Enabling this functionality allows the user to start their own DNS solution outside the cluster after
1264+
installation is complete. The customer would be responsible for configuring this custom DNS solution,
1265+
and it can be run in addition to the in-cluster DNS solution.
1266+
enum:
1267+
- ClusterHosted
1268+
- PlatformDefault
1269+
type: string
1270+
x-kubernetes-validations:
1271+
- message: dnsType is immutable
1272+
rule: oldSelf == '' || self == oldSelf
1273+
type: object
1274+
x-kubernetes-validations:
1275+
- message: clusterHosted is permitted only when dnsType is
1276+
ClusterHosted
1277+
rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted''
1278+
? !has(self.clusterHosted) : true'
11751279
region:
11761280
description: region holds the default AWS region for new AWS
11771281
resources created by the cluster.

0 commit comments

Comments
 (0)