Skip to content

Commit 80fcf45

Browse files
Merge pull request #2774 from sadasu/azureClusterHostedDNS-default
CORS-4365: Promote AzureClusterHostedDNSInstall to default
2 parents f7b3bd9 + c67875d commit 80fcf45

16 files changed

Lines changed: 847 additions & 22 deletions

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,8 @@ tests:
384384
platform: Azure
385385
platformStatus:
386386
azure:
387+
cloudLoadBalancerConfig:
388+
dnsType: PlatformDefault
387389
resourceGroupName: bar
388390
resourceTags:
389391
- {key: "key", value: "value"}

config/v1/tests/infrastructures.config.openshift.io/AzureClusterHostedDNSInstall.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
- AzureClusterHostedDNSInstall
6+
- -AzureDualStackInstall
67
tests:
78
onCreate:
89
- name: Should be able to create a minimal Infrastructure
@@ -60,7 +61,6 @@ tests:
6061
azure:
6162
cloudLoadBalancerConfig:
6263
dnsType: PlatformDefault
63-
ipFamily: IPv4
6464
type: Azure
6565
- name: should be able to set dnsType to non-default value of `ClusterHosted`
6666
initial: |
@@ -102,7 +102,6 @@ tests:
102102
azure:
103103
cloudLoadBalancerConfig:
104104
dnsType: ClusterHosted
105-
ipFamily: IPv4
106105
type: Azure
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: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1272,6 +1272,109 @@ spec:
12721272
description: armEndpoint specifies a URL to use for resource
12731273
management in non-soverign clouds such as Azure Stack.
12741274
type: string
1275+
cloudLoadBalancerConfig:
1276+
default:
1277+
dnsType: PlatformDefault
1278+
description: |-
1279+
cloudLoadBalancerConfig holds configuration related to DNS and cloud
1280+
load balancers. It allows configuration of in-cluster DNS as an alternative
1281+
to the platform default DNS implementation.
1282+
When using the ClusterHosted DNS type, Load Balancer IP addresses
1283+
must be provided for the API and internal API load balancers as well as the
1284+
ingress load balancer.
1285+
properties:
1286+
clusterHosted:
1287+
description: |-
1288+
clusterHosted holds the IP addresses of API, API-Int and Ingress Load
1289+
Balancers on Cloud Platforms. The DNS solution hosted within the cluster
1290+
use these IP addresses to provide resolution for API, API-Int and Ingress
1291+
services.
1292+
properties:
1293+
apiIntLoadBalancerIPs:
1294+
description: |-
1295+
apiIntLoadBalancerIPs holds Load Balancer IPs for the internal API service.
1296+
These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
1297+
Entries in the apiIntLoadBalancerIPs must be unique.
1298+
A maximum of 16 IP addresses are permitted.
1299+
format: ip
1300+
items:
1301+
description: IP is an IP address (for example, "10.0.0.0"
1302+
or "fd00::").
1303+
maxLength: 39
1304+
minLength: 1
1305+
type: string
1306+
x-kubernetes-validations:
1307+
- message: value must be a valid IP address
1308+
rule: isIP(self)
1309+
maxItems: 16
1310+
type: array
1311+
x-kubernetes-list-type: set
1312+
apiLoadBalancerIPs:
1313+
description: |-
1314+
apiLoadBalancerIPs holds Load Balancer IPs for the API service.
1315+
These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
1316+
Could be empty for private clusters.
1317+
Entries in the apiLoadBalancerIPs must be unique.
1318+
A maximum of 16 IP addresses are permitted.
1319+
format: ip
1320+
items:
1321+
description: IP is an IP address (for example, "10.0.0.0"
1322+
or "fd00::").
1323+
maxLength: 39
1324+
minLength: 1
1325+
type: string
1326+
x-kubernetes-validations:
1327+
- message: value must be a valid IP address
1328+
rule: isIP(self)
1329+
maxItems: 16
1330+
type: array
1331+
x-kubernetes-list-type: set
1332+
ingressLoadBalancerIPs:
1333+
description: |-
1334+
ingressLoadBalancerIPs holds IPs for Ingress Load Balancers.
1335+
These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
1336+
Entries in the ingressLoadBalancerIPs must be unique.
1337+
A maximum of 16 IP addresses are permitted.
1338+
format: ip
1339+
items:
1340+
description: IP is an IP address (for example, "10.0.0.0"
1341+
or "fd00::").
1342+
maxLength: 39
1343+
minLength: 1
1344+
type: string
1345+
x-kubernetes-validations:
1346+
- message: value must be a valid IP address
1347+
rule: isIP(self)
1348+
maxItems: 16
1349+
type: array
1350+
x-kubernetes-list-type: set
1351+
type: object
1352+
dnsType:
1353+
default: PlatformDefault
1354+
description: |-
1355+
dnsType indicates the type of DNS solution in use within the cluster. Its default value of
1356+
`PlatformDefault` indicates that the cluster's DNS is the default provided by the cloud platform.
1357+
It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode,
1358+
the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed.
1359+
The cluster's use of the cloud's Load Balancers is unaffected by this setting.
1360+
The value is immutable after it has been set at install time.
1361+
Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS.
1362+
Enabling this functionality allows the user to start their own DNS solution outside the cluster after
1363+
installation is complete. The customer would be responsible for configuring this custom DNS solution,
1364+
and it can be run in addition to the in-cluster DNS solution.
1365+
enum:
1366+
- ClusterHosted
1367+
- PlatformDefault
1368+
type: string
1369+
x-kubernetes-validations:
1370+
- message: dnsType is immutable
1371+
rule: oldSelf == '' || self == oldSelf
1372+
type: object
1373+
x-kubernetes-validations:
1374+
- message: clusterHosted is permitted only when dnsType is
1375+
ClusterHosted
1376+
rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted''
1377+
? !has(self.clusterHosted) : true'
12751378
cloudName:
12761379
description: |-
12771380
cloudName is the name of the Azure cloud environment which can be used to configure the Azure SDK

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

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1272,6 +1272,109 @@ spec:
12721272
description: armEndpoint specifies a URL to use for resource
12731273
management in non-soverign clouds such as Azure Stack.
12741274
type: string
1275+
cloudLoadBalancerConfig:
1276+
default:
1277+
dnsType: PlatformDefault
1278+
description: |-
1279+
cloudLoadBalancerConfig holds configuration related to DNS and cloud
1280+
load balancers. It allows configuration of in-cluster DNS as an alternative
1281+
to the platform default DNS implementation.
1282+
When using the ClusterHosted DNS type, Load Balancer IP addresses
1283+
must be provided for the API and internal API load balancers as well as the
1284+
ingress load balancer.
1285+
properties:
1286+
clusterHosted:
1287+
description: |-
1288+
clusterHosted holds the IP addresses of API, API-Int and Ingress Load
1289+
Balancers on Cloud Platforms. The DNS solution hosted within the cluster
1290+
use these IP addresses to provide resolution for API, API-Int and Ingress
1291+
services.
1292+
properties:
1293+
apiIntLoadBalancerIPs:
1294+
description: |-
1295+
apiIntLoadBalancerIPs holds Load Balancer IPs for the internal API service.
1296+
These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
1297+
Entries in the apiIntLoadBalancerIPs must be unique.
1298+
A maximum of 16 IP addresses are permitted.
1299+
format: ip
1300+
items:
1301+
description: IP is an IP address (for example, "10.0.0.0"
1302+
or "fd00::").
1303+
maxLength: 39
1304+
minLength: 1
1305+
type: string
1306+
x-kubernetes-validations:
1307+
- message: value must be a valid IP address
1308+
rule: isIP(self)
1309+
maxItems: 16
1310+
type: array
1311+
x-kubernetes-list-type: set
1312+
apiLoadBalancerIPs:
1313+
description: |-
1314+
apiLoadBalancerIPs holds Load Balancer IPs for the API service.
1315+
These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
1316+
Could be empty for private clusters.
1317+
Entries in the apiLoadBalancerIPs must be unique.
1318+
A maximum of 16 IP addresses are permitted.
1319+
format: ip
1320+
items:
1321+
description: IP is an IP address (for example, "10.0.0.0"
1322+
or "fd00::").
1323+
maxLength: 39
1324+
minLength: 1
1325+
type: string
1326+
x-kubernetes-validations:
1327+
- message: value must be a valid IP address
1328+
rule: isIP(self)
1329+
maxItems: 16
1330+
type: array
1331+
x-kubernetes-list-type: set
1332+
ingressLoadBalancerIPs:
1333+
description: |-
1334+
ingressLoadBalancerIPs holds IPs for Ingress Load Balancers.
1335+
These Load Balancer IP addresses can be IPv4 and/or IPv6 addresses.
1336+
Entries in the ingressLoadBalancerIPs must be unique.
1337+
A maximum of 16 IP addresses are permitted.
1338+
format: ip
1339+
items:
1340+
description: IP is an IP address (for example, "10.0.0.0"
1341+
or "fd00::").
1342+
maxLength: 39
1343+
minLength: 1
1344+
type: string
1345+
x-kubernetes-validations:
1346+
- message: value must be a valid IP address
1347+
rule: isIP(self)
1348+
maxItems: 16
1349+
type: array
1350+
x-kubernetes-list-type: set
1351+
type: object
1352+
dnsType:
1353+
default: PlatformDefault
1354+
description: |-
1355+
dnsType indicates the type of DNS solution in use within the cluster. Its default value of
1356+
`PlatformDefault` indicates that the cluster's DNS is the default provided by the cloud platform.
1357+
It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode,
1358+
the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed.
1359+
The cluster's use of the cloud's Load Balancers is unaffected by this setting.
1360+
The value is immutable after it has been set at install time.
1361+
Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS.
1362+
Enabling this functionality allows the user to start their own DNS solution outside the cluster after
1363+
installation is complete. The customer would be responsible for configuring this custom DNS solution,
1364+
and it can be run in addition to the in-cluster DNS solution.
1365+
enum:
1366+
- ClusterHosted
1367+
- PlatformDefault
1368+
type: string
1369+
x-kubernetes-validations:
1370+
- message: dnsType is immutable
1371+
rule: oldSelf == '' || self == oldSelf
1372+
type: object
1373+
x-kubernetes-validations:
1374+
- message: clusterHosted is permitted only when dnsType is
1375+
ClusterHosted
1376+
rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted''
1377+
? !has(self.clusterHosted) : true'
12751378
cloudName:
12761379
description: |-
12771380
cloudName is the name of the Azure cloud environment which can be used to configure the Azure SDK

0 commit comments

Comments
 (0)