Skip to content

Commit c67875d

Browse files
committed
Promote AzureClusterHostedDNS to default
Also make it part of OKD.
1 parent 324a1bc commit c67875d

17 files changed

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

0 commit comments

Comments
 (0)