diff --git a/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNS.yaml b/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNS.yaml index 9f82848ab43..5ad30affb9c 100644 --- a/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNS.yaml +++ b/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNS.yaml @@ -140,7 +140,7 @@ tests: cloudLoadBalancerConfig: dnsType: PlatformDefault type: AWS - expectedStatusError: "status.platformStatus.aws.cloudLoadBalancerConfig.dnsType: Invalid value: \"string\": dnsType is immutable" + expectedStatusError: "status.platformStatus.aws.cloudLoadBalancerConfig: Invalid value: \"object\": dnsType is immutable once set" - name: Should not accept non-IP address values for Load Balancer IPs initial: | apiVersion: config.openshift.io/v1 diff --git a/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml b/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml index 9f82848ab43..5ad30affb9c 100644 --- a/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml +++ b/config/v1/tests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml @@ -140,7 +140,7 @@ tests: cloudLoadBalancerConfig: dnsType: PlatformDefault type: AWS - expectedStatusError: "status.platformStatus.aws.cloudLoadBalancerConfig.dnsType: Invalid value: \"string\": dnsType is immutable" + expectedStatusError: "status.platformStatus.aws.cloudLoadBalancerConfig: Invalid value: \"object\": dnsType is immutable once set" - name: Should not accept non-IP address values for Load Balancer IPs initial: | apiVersion: config.openshift.io/v1 diff --git a/config/v1/tests/infrastructures.config.openshift.io/AzureClusterHostedDNSInstall.yaml b/config/v1/tests/infrastructures.config.openshift.io/AzureClusterHostedDNSInstall.yaml index 5a3001915f3..76488aa4d8a 100644 --- a/config/v1/tests/infrastructures.config.openshift.io/AzureClusterHostedDNSInstall.yaml +++ b/config/v1/tests/infrastructures.config.openshift.io/AzureClusterHostedDNSInstall.yaml @@ -104,7 +104,7 @@ tests: dnsType: ClusterHosted ipFamily: IPv4 type: Azure - - name: Should not allow changing the immutable dnsType field + - name: Should allow changing dnsType field for Azure platform initial: | apiVersion: config.openshift.io/v1 kind: Infrastructure @@ -140,7 +140,24 @@ tests: cloudLoadBalancerConfig: dnsType: PlatformDefault type: Azure - expectedStatusError: "status.platformStatus.azure.cloudLoadBalancerConfig.dnsType: Invalid value: \"string\": dnsType is immutable" + expected: | + apiVersion: config.openshift.io/v1 + kind: Infrastructure + spec: + platformSpec: + type: Azure + azure: {} + status: + controlPlaneTopology: HighlyAvailable + cpuPartitioning: None + infrastructureTopology: HighlyAvailable + platform: Azure + platformStatus: + azure: + cloudLoadBalancerConfig: + dnsType: PlatformDefault + ipFamily: IPv4 + type: Azure - name: Should not accept non-IP address values for Load Balancer IPs initial: | apiVersion: config.openshift.io/v1 diff --git a/config/v1/tests/infrastructures.config.openshift.io/GCPClusterHostedDNS.yaml b/config/v1/tests/infrastructures.config.openshift.io/GCPClusterHostedDNS.yaml index 0397f0b0c92..d689b408338 100644 --- a/config/v1/tests/infrastructures.config.openshift.io/GCPClusterHostedDNS.yaml +++ b/config/v1/tests/infrastructures.config.openshift.io/GCPClusterHostedDNS.yaml @@ -138,7 +138,7 @@ tests: cloudLoadBalancerConfig: dnsType: PlatformDefault type: GCP - expectedStatusError: "status.platformStatus.gcp.cloudLoadBalancerConfig.dnsType: Invalid value: \"string\": dnsType is immutable" + expectedStatusError: "status.platformStatus.gcp.cloudLoadBalancerConfig: Invalid value: \"object\": dnsType is immutable once set" - name: Should not accept non-IP address values for Load Balancer IPs initial: | apiVersion: config.openshift.io/v1 diff --git a/config/v1/tests/infrastructures.config.openshift.io/GCPClusterHostedDNSInstall.yaml b/config/v1/tests/infrastructures.config.openshift.io/GCPClusterHostedDNSInstall.yaml index 0397f0b0c92..d689b408338 100644 --- a/config/v1/tests/infrastructures.config.openshift.io/GCPClusterHostedDNSInstall.yaml +++ b/config/v1/tests/infrastructures.config.openshift.io/GCPClusterHostedDNSInstall.yaml @@ -138,7 +138,7 @@ tests: cloudLoadBalancerConfig: dnsType: PlatformDefault type: GCP - expectedStatusError: "status.platformStatus.gcp.cloudLoadBalancerConfig.dnsType: Invalid value: \"string\": dnsType is immutable" + expectedStatusError: "status.platformStatus.gcp.cloudLoadBalancerConfig: Invalid value: \"object\": dnsType is immutable once set" - name: Should not accept non-IP address values for Load Balancer IPs initial: | apiVersion: config.openshift.io/v1 diff --git a/config/v1/types_infrastructure.go b/config/v1/types_infrastructure.go index 369ba1e7a00..ecc5f87ee74 100644 --- a/config/v1/types_infrastructure.go +++ b/config/v1/types_infrastructure.go @@ -553,12 +553,14 @@ type AWSPlatformStatus struct { // 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. + // The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. // 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. // // +default={"dnsType": "PlatformDefault"} // +kubebuilder:default={"dnsType": "PlatformDefault"} + // +kubebuilder:validation:XValidation:rule="has(oldSelf.dnsType) ? (oldSelf.dnsType == '' || self.dnsType == oldSelf.dnsType) : true",message="dnsType is immutable once set" // +openshift:enable:FeatureGate=AWSClusterHostedDNSInstall // +optional // +nullable @@ -640,6 +642,7 @@ type AzurePlatformStatus struct { // 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. + // For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set. // // +default={"dnsType": "PlatformDefault"} // +kubebuilder:default={"dnsType": "PlatformDefault"} @@ -781,12 +784,14 @@ type GCPPlatformStatus struct { // 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. + // The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. // 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. // // +default={"dnsType": "PlatformDefault"} // +kubebuilder:default={"dnsType": "PlatformDefault"} + // +kubebuilder:validation:XValidation:rule="has(oldSelf.dnsType) ? (oldSelf.dnsType == '' || self.dnsType == oldSelf.dnsType) : true",message="dnsType is immutable once set" // +openshift:enable:FeatureGate=GCPClusterHostedDNSInstall // +optional // +nullable @@ -877,7 +882,6 @@ type CloudLoadBalancerConfig struct { // It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, // the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. // The cluster's use of the cloud's Load Balancers is unaffected by this setting. - // The value is immutable after it has been set at install time. // Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. // Enabling this functionality allows the user to start their own DNS solution outside the cluster after // installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -885,7 +889,6 @@ type CloudLoadBalancerConfig struct { // +default="PlatformDefault" // +kubebuilder:default:="PlatformDefault" // +kubebuilder:validation:Enum="ClusterHosted";"PlatformDefault" - // +kubebuilder:validation:XValidation:rule="oldSelf == '' || self == oldSelf",message="dnsType is immutable" // +optional // +unionDiscriminator DNSType DNSType `json:"dnsType,omitempty"` diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml index 9086d4a5720..c12f5cb9bee 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml @@ -1257,6 +1257,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1336,7 +1337,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1345,15 +1345,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' ipFamily: default: IPv4 description: |- @@ -1466,6 +1466,7 @@ spec: 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. + For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set. properties: clusterHosted: description: |- @@ -1541,7 +1542,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1550,9 +1550,6 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is @@ -1839,6 +1836,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1918,7 +1916,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1927,15 +1924,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. 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 803c48a1e28..6045466ec77 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 @@ -1501,6 +1501,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1580,7 +1581,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1589,15 +1589,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml index de1a68c90a5..819a9421b6f 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml @@ -1257,6 +1257,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1336,7 +1337,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1345,15 +1345,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' ipFamily: default: IPv4 description: |- @@ -1466,6 +1466,7 @@ spec: 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. + For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set. properties: clusterHosted: description: |- @@ -1541,7 +1542,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1550,9 +1550,6 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is @@ -1839,6 +1836,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1918,7 +1916,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1927,15 +1924,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. 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 245bc3ea638..12f6b4a26d8 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 @@ -1501,6 +1501,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1580,7 +1581,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1589,15 +1589,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml index c45b7d6e83a..ff37c35ecb5 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml @@ -1257,6 +1257,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1336,7 +1337,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1345,15 +1345,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' ipFamily: default: IPv4 description: |- @@ -1466,6 +1466,7 @@ spec: 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. + For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set. properties: clusterHosted: description: |- @@ -1541,7 +1542,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1550,9 +1550,6 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is @@ -1839,6 +1836,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1918,7 +1916,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1927,15 +1924,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml index 355975c0330..73455383fbe 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml @@ -1160,6 +1160,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1239,7 +1240,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1248,15 +1248,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' region: description: region holds the default AWS region for new AWS resources created by the cluster. diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AzureClusterHostedDNSInstall.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AzureClusterHostedDNSInstall.yaml index 8604ac29fac..eea32d9cb09 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AzureClusterHostedDNSInstall.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AzureClusterHostedDNSInstall.yaml @@ -1250,6 +1250,7 @@ spec: 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. + For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set. properties: clusterHosted: description: |- @@ -1325,7 +1326,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1334,9 +1334,6 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPClusterHostedDNSInstall.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPClusterHostedDNSInstall.yaml index 950fdcabc63..37f1a9777ba 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPClusterHostedDNSInstall.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPClusterHostedDNSInstall.yaml @@ -1482,6 +1482,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1561,7 +1562,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1570,15 +1570,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. diff --git a/config/v1/zz_generated.swagger_doc_generated.go b/config/v1/zz_generated.swagger_doc_generated.go index 69fb37c5233..cb6e2292885 100644 --- a/config/v1/zz_generated.swagger_doc_generated.go +++ b/config/v1/zz_generated.swagger_doc_generated.go @@ -1445,7 +1445,7 @@ var map_AWSPlatformStatus = map[string]string{ "region": "region holds the default AWS region for new AWS resources created by the cluster.", "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.", + "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. The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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.", } @@ -1517,7 +1517,7 @@ var map_AzurePlatformStatus = map[string]string{ "cloudName": "cloudName is the name of the Azure cloud environment which can be used to configure the Azure SDK with the appropriate Azure API endpoints. If empty, the value is equal to `AzurePublicCloud`.", "armEndpoint": "armEndpoint specifies a URL to use for resource management in non-soverign clouds such as Azure Stack.", "resourceTags": "resourceTags is a list of additional tags to apply to Azure resources created for the cluster. See https://docs.microsoft.com/en-us/rest/api/resources/tags for information on tagging Azure resources. Due to limitations on Automation, Content Delivery Network, DNS Azure resources, a maximum of 15 tags may be applied. OpenShift reserves 5 tags for internal use, allowing 10 tags for user configuration.", - "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.", + "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. For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set.", "ipFamily": "ipFamily specifies the IP protocol family that should be used for Azure network resources. This controls whether Azure resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family.", } @@ -1582,7 +1582,7 @@ func (CloudControllerManagerStatus) SwaggerDoc() map[string]string { var map_CloudLoadBalancerConfig = map[string]string{ "": "CloudLoadBalancerConfig contains an union discriminator indicating the type of DNS solution in use within the cluster. When the DNSType is `ClusterHosted`, the cloud's Load Balancer configuration needs to be provided so that the DNS solution hosted within the cluster can be configured with those values.", - "dnsType": "dnsType indicates the type of DNS solution in use within the cluster. Its default value of `PlatformDefault` indicates that the cluster's DNS is the default provided by the cloud platform. It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, and it can be run in addition to the in-cluster DNS solution.", + "dnsType": "dnsType indicates the type of DNS solution in use within the cluster. Its default value of `PlatformDefault` indicates that the cluster's DNS is the default provided by the cloud platform. It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, and it can be run in addition to the in-cluster DNS solution.", "clusterHosted": "clusterHosted holds the IP addresses of API, API-Int and Ingress Load Balancers on Cloud Platforms. The DNS solution hosted within the cluster use these IP addresses to provide resolution for API, API-Int and Ingress services.", } @@ -1651,7 +1651,7 @@ var map_GCPPlatformStatus = map[string]string{ "region": "region holds the region for new GCP resources created for the cluster.", "resourceLabels": "resourceLabels is a list of additional labels to apply to GCP resources created for the cluster. See https://cloud.google.com/compute/docs/labeling-resources for information on labeling GCP resources. GCP supports a maximum of 64 labels per resource. OpenShift reserves 32 labels for internal use, allowing 32 labels for user configuration.", "resourceTags": "resourceTags is a list of additional tags to apply to GCP resources created for the cluster. See https://cloud.google.com/resource-manager/docs/tags/tags-overview for information on tagging GCP resources. GCP supports a maximum of 50 tags per resource.", - "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.", + "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. The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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.", } func (GCPPlatformStatus) SwaggerDoc() map[string]string { diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml index 24a77a81b54..74ae5a896ec 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml @@ -1543,6 +1543,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1622,7 +1623,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1631,15 +1631,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' ipFamily: default: IPv4 description: |- @@ -1753,6 +1753,7 @@ spec: 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. + For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set. properties: clusterHosted: description: |- @@ -1828,7 +1829,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1837,9 +1837,6 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType @@ -2130,6 +2127,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -2209,7 +2207,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -2218,15 +2215,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. 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 a921ed5d346..0cd53d17ee5 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 @@ -1787,6 +1787,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1866,7 +1867,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1875,15 +1875,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml index a8e3fcd21d6..5c35a06d3dc 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml @@ -1543,6 +1543,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1622,7 +1623,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1631,15 +1631,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' ipFamily: default: IPv4 description: |- @@ -1753,6 +1753,7 @@ spec: 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. + For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set. properties: clusterHosted: description: |- @@ -1828,7 +1829,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1837,9 +1837,6 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType @@ -2130,6 +2127,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -2209,7 +2207,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -2218,15 +2215,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. 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 678e5a4202f..8e73b542edb 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 @@ -1787,6 +1787,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1866,7 +1867,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1875,15 +1875,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml index 52f75fc841f..5c70d8ad978 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml @@ -1543,6 +1543,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1622,7 +1623,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1631,15 +1631,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' ipFamily: default: IPv4 description: |- @@ -1753,6 +1753,7 @@ spec: 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. + For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set. properties: clusterHosted: description: |- @@ -1828,7 +1829,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1837,9 +1837,6 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType @@ -2130,6 +2127,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -2209,7 +2207,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -2218,15 +2215,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNSInstall.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNSInstall.yaml index d1ea29f18cb..bf4d2cd65fd 100644 --- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNSInstall.yaml +++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNSInstall.yaml @@ -1454,6 +1454,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1533,7 +1534,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1542,15 +1542,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' region: description: region holds the default AWS region for new AWS resources created by the cluster. diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AzureClusterHostedDNSInstall.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AzureClusterHostedDNSInstall.yaml index d7f4bc5505e..6ee9fe44c12 100644 --- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AzureClusterHostedDNSInstall.yaml +++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AzureClusterHostedDNSInstall.yaml @@ -1545,6 +1545,7 @@ spec: 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. + For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set. properties: clusterHosted: description: |- @@ -1620,7 +1621,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1629,9 +1629,6 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNSInstall.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNSInstall.yaml index b7aefb54f4d..2337d57373c 100644 --- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNSInstall.yaml +++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNSInstall.yaml @@ -1780,6 +1780,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1859,7 +1860,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1868,15 +1868,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. diff --git a/openapi/generated_openapi/zz_generated.openapi.go b/openapi/generated_openapi/zz_generated.openapi.go index 7b62b93513a..80c398c991e 100644 --- a/openapi/generated_openapi/zz_generated.openapi.go +++ b/openapi/generated_openapi/zz_generated.openapi.go @@ -9311,7 +9311,7 @@ func schema_openshift_api_config_v1_AWSPlatformStatus(ref common.ReferenceCallba }, "cloudLoadBalancerConfig": { SchemaProps: spec.SchemaProps{ - Description: "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. When using the ClusterHosted DNS type, Load Balancer IP addresses must be provided for the API and internal API load balancers as well as the ingress load balancer.", + Description: "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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.", Default: map[string]interface{}{"dnsType": "PlatformDefault"}, Ref: ref("github.com/openshift/api/config/v1.CloudLoadBalancerConfig"), }, @@ -10060,7 +10060,7 @@ func schema_openshift_api_config_v1_AzurePlatformStatus(ref common.ReferenceCall }, "cloudLoadBalancerConfig": { SchemaProps: spec.SchemaProps{ - Description: "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. When using the ClusterHosted DNS type, Load Balancer IP addresses must be provided for the API and internal API load balancers as well as the ingress load balancer.", + Description: "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. When using the ClusterHosted DNS type, Load Balancer IP addresses must be provided for the API and internal API load balancers as well as the ingress load balancer. For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set.", Default: map[string]interface{}{"dnsType": "PlatformDefault"}, Ref: ref("github.com/openshift/api/config/v1.CloudLoadBalancerConfig"), }, @@ -10733,7 +10733,7 @@ func schema_openshift_api_config_v1_CloudLoadBalancerConfig(ref common.Reference Properties: map[string]spec.Schema{ "dnsType": { SchemaProps: spec.SchemaProps{ - Description: "dnsType indicates the type of DNS solution in use within the cluster. Its default value of `PlatformDefault` indicates that the cluster's DNS is the default provided by the cloud platform. It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, and it can be run in addition to the in-cluster DNS solution.", + Description: "dnsType indicates the type of DNS solution in use within the cluster. Its default value of `PlatformDefault` indicates that the cluster's DNS is the default provided by the cloud platform. It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, and it can be run in addition to the in-cluster DNS solution.", Default: "PlatformDefault", Type: []string{"string"}, Format: "", @@ -13505,7 +13505,7 @@ func schema_openshift_api_config_v1_GCPPlatformStatus(ref common.ReferenceCallba }, "cloudLoadBalancerConfig": { SchemaProps: spec.SchemaProps{ - Description: "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. When using the ClusterHosted DNS type, Load Balancer IP addresses must be provided for the API and internal API load balancers as well as the ingress load balancer.", + Description: "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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.", Default: map[string]interface{}{"dnsType": "PlatformDefault"}, Ref: ref("github.com/openshift/api/config/v1.CloudLoadBalancerConfig"), }, diff --git a/openapi/openapi.json b/openapi/openapi.json index fff430807d8..030f0153dd2 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -193,7 +193,7 @@ "$ref": "#/definitions/com.github.openshift.api.apiextensions.v1alpha1.CRDData" }, "excludedFields": { - "description": "excludedFields is a set of fields in the schema which will not be validated by crdSchemaValidation or objectSchemaValidation. The list may contain at most 64 fields. When not specified, all fields in the schema will be validated.", + "description": "excludedFields is a set of fields in the schema which will not be validated by crdSchemaValidation or objectSchemaValidation. The list may contain at most 64 fields. Each path in the list must be unique. When not specified, all fields in the schema will be validated.", "type": "array", "items": { "default": {}, @@ -4496,7 +4496,7 @@ ], "properties": { "cloudLoadBalancerConfig": { - "description": "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. When using the ClusterHosted DNS type, Load Balancer IP addresses must be provided for the API and internal API load balancers as well as the ingress load balancer.", + "description": "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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.", "default": { "dnsType": "PlatformDefault" }, @@ -4943,7 +4943,7 @@ "type": "string" }, "cloudLoadBalancerConfig": { - "description": "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. When using the ClusterHosted DNS type, Load Balancer IP addresses must be provided for the API and internal API load balancers as well as the ingress load balancer.", + "description": "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. When using the ClusterHosted DNS type, Load Balancer IP addresses must be provided for the API and internal API load balancers as well as the ingress load balancer. For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set.", "default": { "dnsType": "PlatformDefault" }, @@ -5358,7 +5358,7 @@ "$ref": "#/definitions/com.github.openshift.api.config.v1.CloudLoadBalancerIPs" }, "dnsType": { - "description": "dnsType indicates the type of DNS solution in use within the cluster. Its default value of `PlatformDefault` indicates that the cluster's DNS is the default provided by the cloud platform. It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, and it can be run in addition to the in-cluster DNS solution.", + "description": "dnsType indicates the type of DNS solution in use within the cluster. Its default value of `PlatformDefault` indicates that the cluster's DNS is the default provided by the cloud platform. It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, and it can be run in addition to the in-cluster DNS solution.", "type": "string", "default": "PlatformDefault" } @@ -6339,7 +6339,7 @@ ], "properties": { "ciphers": { - "description": "ciphers is used to specify the cipher algorithms that are negotiated during the TLS handshake. Operators may remove entries their operands do not support. For example, to use DES-CBC3-SHA (yaml):\n\n ciphers:\n - DES-CBC3-SHA", + "description": "ciphers is used to specify the cipher algorithms that are negotiated during the TLS handshake. Operators may remove entries that their operands do not support. For example, to use only ECDHE-RSA-AES128-GCM-SHA256 (yaml):\n\n ciphers:\n - ECDHE-RSA-AES128-GCM-SHA256\n\nTLS 1.3 cipher suites (e.g. TLS_AES_128_GCM_SHA256) are not configurable and are always enabled when TLS 1.3 is negotiated.", "type": "array", "items": { "type": "string", @@ -6909,7 +6909,7 @@ ], "properties": { "cloudLoadBalancerConfig": { - "description": "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. When using the ClusterHosted DNS type, Load Balancer IP addresses must be provided for the API and internal API load balancers as well as the ingress load balancer.", + "description": "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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.", "default": { "dnsType": "PlatformDefault" }, @@ -11311,7 +11311,7 @@ ], "properties": { "ciphers": { - "description": "ciphers is used to specify the cipher algorithms that are negotiated during the TLS handshake. Operators may remove entries their operands do not support. For example, to use DES-CBC3-SHA (yaml):\n\n ciphers:\n - DES-CBC3-SHA", + "description": "ciphers is used to specify the cipher algorithms that are negotiated during the TLS handshake. Operators may remove entries that their operands do not support. For example, to use only ECDHE-RSA-AES128-GCM-SHA256 (yaml):\n\n ciphers:\n - ECDHE-RSA-AES128-GCM-SHA256\n\nTLS 1.3 cipher suites (e.g. TLS_AES_128_GCM_SHA256) are not configurable and are always enabled when TLS 1.3 is negotiated.", "type": "array", "items": { "type": "string", @@ -11335,7 +11335,7 @@ "$ref": "#/definitions/com.github.openshift.api.config.v1.CustomTLSProfile" }, "intermediate": { - "description": "intermediate is a TLS profile for use when you do not need compatibility with legacy clients and want to remain highly secure while being compatible with most clients currently in use.\n\nThe cipher list includes TLS 1.3 ciphers for forward compatibility, followed by the \"intermediate\" profile ciphers.\n\nThis profile is equivalent to a Custom profile specified as:\n minTLSVersion: VersionTLS12\n ciphers:\n - TLS_AES_128_GCM_SHA256\n - TLS_AES_256_GCM_SHA384\n - TLS_CHACHA20_POLY1305_SHA256\n - ECDHE-ECDSA-AES128-GCM-SHA256\n - ECDHE-RSA-AES128-GCM-SHA256\n - ECDHE-ECDSA-AES256-GCM-SHA384\n - ECDHE-RSA-AES256-GCM-SHA384\n - ECDHE-ECDSA-CHACHA20-POLY1305\n - ECDHE-RSA-CHACHA20-POLY1305\n - DHE-RSA-AES128-GCM-SHA256\n - DHE-RSA-AES256-GCM-SHA384", + "description": "intermediate is a TLS profile for use when you do not need compatibility with legacy clients and want to remain highly secure while being compatible with most clients currently in use.\n\nThis profile is equivalent to a Custom profile specified as:\n minTLSVersion: VersionTLS12\n ciphers:\n - TLS_AES_128_GCM_SHA256\n - TLS_AES_256_GCM_SHA384\n - TLS_CHACHA20_POLY1305_SHA256\n - ECDHE-ECDSA-AES128-GCM-SHA256\n - ECDHE-RSA-AES128-GCM-SHA256\n - ECDHE-ECDSA-AES256-GCM-SHA384\n - ECDHE-RSA-AES256-GCM-SHA384\n - ECDHE-ECDSA-CHACHA20-POLY1305\n - ECDHE-RSA-CHACHA20-POLY1305", "$ref": "#/definitions/com.github.openshift.api.config.v1.IntermediateTLSProfile" }, "modern": { @@ -11343,11 +11343,11 @@ "$ref": "#/definitions/com.github.openshift.api.config.v1.ModernTLSProfile" }, "old": { - "description": "old is a TLS profile for use when services need to be accessed by very old clients or libraries and should be used only as a last resort.\n\nThe cipher list includes TLS 1.3 ciphers for forward compatibility, followed by the \"old\" profile ciphers.\n\nThis profile is equivalent to a Custom profile specified as:\n minTLSVersion: VersionTLS10\n ciphers:\n - TLS_AES_128_GCM_SHA256\n - TLS_AES_256_GCM_SHA384\n - TLS_CHACHA20_POLY1305_SHA256\n - ECDHE-ECDSA-AES128-GCM-SHA256\n - ECDHE-RSA-AES128-GCM-SHA256\n - ECDHE-ECDSA-AES256-GCM-SHA384\n - ECDHE-RSA-AES256-GCM-SHA384\n - ECDHE-ECDSA-CHACHA20-POLY1305\n - ECDHE-RSA-CHACHA20-POLY1305\n - DHE-RSA-AES128-GCM-SHA256\n - DHE-RSA-AES256-GCM-SHA384\n - DHE-RSA-CHACHA20-POLY1305\n - ECDHE-ECDSA-AES128-SHA256\n - ECDHE-RSA-AES128-SHA256\n - ECDHE-ECDSA-AES128-SHA\n - ECDHE-RSA-AES128-SHA\n - ECDHE-ECDSA-AES256-SHA384\n - ECDHE-RSA-AES256-SHA384\n - ECDHE-ECDSA-AES256-SHA\n - ECDHE-RSA-AES256-SHA\n - DHE-RSA-AES128-SHA256\n - DHE-RSA-AES256-SHA256\n - AES128-GCM-SHA256\n - AES256-GCM-SHA384\n - AES128-SHA256\n - AES256-SHA256\n - AES128-SHA\n - AES256-SHA\n - DES-CBC3-SHA", + "description": "old is a TLS profile for use when services need to be accessed by very old clients or libraries and should be used only as a last resort.\n\nThis profile is equivalent to a Custom profile specified as:\n minTLSVersion: VersionTLS10\n ciphers:\n - TLS_AES_128_GCM_SHA256\n - TLS_AES_256_GCM_SHA384\n - TLS_CHACHA20_POLY1305_SHA256\n - ECDHE-ECDSA-AES128-GCM-SHA256\n - ECDHE-RSA-AES128-GCM-SHA256\n - ECDHE-ECDSA-AES256-GCM-SHA384\n - ECDHE-RSA-AES256-GCM-SHA384\n - ECDHE-ECDSA-CHACHA20-POLY1305\n - ECDHE-RSA-CHACHA20-POLY1305\n - ECDHE-ECDSA-AES128-SHA256\n - ECDHE-RSA-AES128-SHA256\n - ECDHE-ECDSA-AES128-SHA\n - ECDHE-RSA-AES128-SHA\n - ECDHE-ECDSA-AES256-SHA\n - ECDHE-RSA-AES256-SHA\n - AES128-GCM-SHA256\n - AES256-GCM-SHA384\n - AES128-SHA256\n - AES128-SHA\n - AES256-SHA\n - DES-CBC3-SHA", "$ref": "#/definitions/com.github.openshift.api.config.v1.OldTLSProfile" }, "type": { - "description": "type is one of Old, Intermediate, Modern or Custom. Custom provides the ability to specify individual TLS security profile parameters.\n\nThe profiles are currently based on version 5.0 of the Mozilla Server Side TLS configuration guidelines (released 2019-06-28) with TLS 1.3 ciphers added for forward compatibility. See: https://ssl-config.mozilla.org/guidelines/5.0.json\n\nThe profiles are intent based, so they may change over time as new ciphers are developed and existing ciphers are found to be insecure. Depending on precisely which ciphers are available to a process, the list may be reduced.", + "description": "type is one of Old, Intermediate, Modern or Custom. Custom provides the ability to specify individual TLS security profile parameters.\n\nThe profiles are based on version 5.7 of the Mozilla Server Side TLS configuration guidelines. The cipher lists consist of the configuration's \"ciphersuites\" followed by the Go-specific \"ciphers\" from the guidelines. See: https://ssl-config.mozilla.org/guidelines/5.7.json\n\nThe profiles are intent based, so they may change over time as new ciphers are developed and existing ciphers are found to be insecure. Depending on precisely which ciphers are available to a process, the list may be reduced.", "type": "string", "default": "" } @@ -12605,6 +12605,11 @@ "default": {}, "$ref": "#/definitions/com.github.openshift.api.config.v1alpha1.MetricsServerConfig" }, + "prometheusOperatorAdmissionWebhookConfig": { + "description": "prometheusOperatorAdmissionWebhookConfig is an optional field that can be used to configure the admission webhook component of Prometheus Operator that runs in the openshift-monitoring namespace. The admission webhook validates PrometheusRule and AlertmanagerConfig objects to ensure they are semantically valid, mutates PrometheusRule annotations, and converts AlertmanagerConfig objects between API versions. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time.", + "default": {}, + "$ref": "#/definitions/com.github.openshift.api.config.v1alpha1.PrometheusOperatorAdmissionWebhookConfig" + }, "prometheusOperatorConfig": { "description": "prometheusOperatorConfig is an optional field that can be used to configure the Prometheus Operator component. Specifically, it can configure how the Prometheus Operator instance is deployed, pod scheduling, and resource allocation. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time.", "default": {}, @@ -12682,7 +12687,8 @@ "items": { "type": "string", "default": "" - } + }, + "x-kubernetes-list-type": "atomic" }, "storage": { "description": "storage is an optional field that allows user to define persistent storage for gathering jobs to store the Insights data archive. If omitted, the gathering job will use ephemeral storage.", @@ -13179,6 +13185,37 @@ } ] }, + "com.github.openshift.api.config.v1alpha1.PrometheusOperatorAdmissionWebhookConfig": { + "description": "PrometheusOperatorAdmissionWebhookConfig provides configuration options for the admission webhook component of Prometheus Operator that runs in the `openshift-monitoring` namespace. The admission webhook validates PrometheusRule and AlertmanagerConfig objects, mutates PrometheusRule annotations, and converts AlertmanagerConfig objects between API versions.", + "type": "object", + "properties": { + "resources": { + "description": "resources defines the compute resource requests and limits for the prometheus-operator-admission-webhook container. This includes CPU, memory and HugePages constraints to help control scheduling and resource usage. When not specified, defaults are used by the platform. Requests cannot exceed limits. This field is optional. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ This is a simplified API that maps to Kubernetes ResourceRequirements. The current default values are:\n resources:\n - name: cpu\n request: 5m\n limit: null\n - name: memory\n request: 30Mi\n limit: null\nMaximum length for this list is 10. Minimum length for this list is 1. Each resource name must be unique within this list.", + "type": "array", + "items": { + "default": {}, + "$ref": "#/definitions/com.github.openshift.api.config.v1alpha1.ContainerResource" + }, + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map" + }, + "topologySpreadConstraints": { + "description": "topologySpreadConstraints defines rules for how admission webhook Pods should be distributed across topology domains such as zones, nodes, or other user-defined labels. topologySpreadConstraints is optional. This helps improve high availability and resource efficiency by avoiding placing too many replicas in the same failure domain.\n\nWhen omitted, this means no opinion and the platform is left to choose a default, which is subject to change over time. This field maps directly to the `topologySpreadConstraints` field in the Pod spec. Default is empty list. Maximum length for this list is 10. Minimum length for this list is 1. Entries must have unique topologyKey and whenUnsatisfiable pairs.", + "type": "array", + "items": { + "default": {}, + "$ref": "#/definitions/io.k8s.api.core.v1.TopologySpreadConstraint" + }, + "x-kubernetes-list-map-keys": [ + "topologyKey", + "whenUnsatisfiable" + ], + "x-kubernetes-list-type": "map" + } + } + }, "com.github.openshift.api.config.v1alpha1.PrometheusOperatorConfig": { "description": "PrometheusOperatorConfig provides configuration options for the Prometheus Operator instance Use this configuration to control how the Prometheus Operator instance is deployed, how it logs, and how its pods are scheduled.", "type": "object", @@ -17310,7 +17347,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.insights.v1alpha1.GathererConfig" - } + }, + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map" }, "storage": { "description": "storage is an optional field that allows user to define persistent storage for gathering jobs to store the Insights data archive. If omitted, the gathering job will use ephemeral storage.", @@ -17369,7 +17410,12 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.insights.v1alpha1.ObjectReference" - } + }, + "x-kubernetes-list-map-keys": [ + "name", + "namespace" + ], + "x-kubernetes-list-type": "map" }, "startTime": { "description": "startTime is the time when Insights data gathering started.", @@ -17490,7 +17536,8 @@ "required": [ "group", "resource", - "name" + "name", + "namespace" ], "properties": { "group": { @@ -17505,7 +17552,8 @@ }, "namespace": { "description": "namespace of the referent that follows the DNS1123 subdomain format. It must be at most 253 characters in length.", - "type": "string" + "type": "string", + "default": "" }, "resource": { "description": "resource is required field of the type that is being referenced. It is normally the plural form of the resource kind in lowercase. This value should consist of only lowercase alphanumeric characters and hyphens. Example: \"deployments\", \"deploymentconfigs\", \"pods\", etc.", @@ -26310,7 +26358,13 @@ }, "com.github.openshift.api.machineconfiguration.v1alpha1.OSImageStreamSpec": { "description": "OSImageStreamSpec defines the desired state of a OSImageStream.", - "type": "object" + "type": "object", + "properties": { + "defaultStream": { + "description": "defaultStream is the desired name of the stream that should be used as the default when no specific stream is requested by a MachineConfigPool.\n\nThis field is set by the installer during installation. Users may need to update it if the currently selected stream is no longer available, for example when the stream has reached its End of Life. The MachineConfigOperator uses this value to determine which stream from status.availableStreams to apply as the default for MachineConfigPools that do not specify a stream override.\n\nIt must be a valid RFC 1123 subdomain between 1 and 253 characters in length, consisting of lowercase alphanumeric characters, hyphens ('-'), and periods ('.').", + "type": "string" + } + } }, "com.github.openshift.api.machineconfiguration.v1alpha1.OSImageStreamStatus": { "description": "OSImageStreamStatus describes the current state of a OSImageStream", @@ -35897,7 +35951,6 @@ }, "spec": { "description": "spec is the specification of the desired behavior of the capi-operator.", - "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1alpha1.ClusterAPISpec" }, "status": { @@ -35907,6 +35960,96 @@ } } }, + "com.github.openshift.api.operator.v1alpha1.ClusterAPIInstallerComponent": { + "description": "ClusterAPIInstallerComponent defines a component which will be installed by this revision.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "image": { + "description": "image defines an image source for a component. The image must contain a /capi-operator-installer directory containing the component manifests.", + "default": {}, + "$ref": "#/definitions/com.github.openshift.api.operator.v1alpha1.ClusterAPIInstallerComponentImage" + }, + "type": { + "description": "type is the source type of the component. The only valid value is Image. When set to Image, the image field must be set and will define an image source for the component.\n\nPossible enum values:\n - `\"Image\"` is an image source for a component.", + "type": "string", + "enum": [ + "Image" + ] + } + }, + "x-kubernetes-unions": [ + { + "discriminator": "type", + "fields-to-discriminateBy": { + "image": "Image" + } + } + ] + }, + "com.github.openshift.api.operator.v1alpha1.ClusterAPIInstallerComponentImage": { + "description": "ClusterAPIInstallerComponentImage defines an image source for a component.", + "type": "object", + "required": [ + "ref", + "profile" + ], + "properties": { + "profile": { + "description": "profile is the name of a profile to use from the image.\n\nA profile name may be up to 255 characters long. It must consist of alphanumeric characters, '-', or '_'.", + "type": "string" + }, + "ref": { + "description": "ref is an image reference to the image containing the component manifests. The reference must be a valid image digest reference in the format host[:port][/namespace]/name@sha256:. The digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. The length of the field must be between 1 to 447 characters.", + "type": "string" + } + } + }, + "com.github.openshift.api.operator.v1alpha1.ClusterAPIInstallerRevision": { + "type": "object", + "required": [ + "name", + "revision", + "contentID", + "components" + ], + "properties": { + "components": { + "description": "components is list of components which will be installed by this revision. Components will be installed in the order they are listed.\n\nThe maximum number of components is 32.", + "type": "array", + "items": { + "default": {}, + "$ref": "#/definitions/com.github.openshift.api.operator.v1alpha1.ClusterAPIInstallerComponent" + }, + "x-kubernetes-list-type": "atomic" + }, + "contentID": { + "description": "contentID uniquely identifies the content of this revision. The contentID must be between 1 and 255 characters long.", + "type": "string" + }, + "name": { + "description": "name is the name of a revision.", + "type": "string" + }, + "revision": { + "description": "revision is a monotonically increasing number that is assigned to a revision.", + "type": "integer", + "format": "int64" + }, + "unmanagedCustomResourceDefinitions": { + "description": "unmanagedCustomResourceDefinitions is a list of the names of ClusterResourceDefinition (CRD) objects which are included in this revision, but which should not be installed or updated. If not set, all CRDs in the revision will be managed by the CAPI operator.", + "type": "array", + "items": { + "type": "string", + "default": "" + }, + "x-kubernetes-list-type": "atomic" + } + }, + "x-kubernetes-map-type": "atomic" + }, "com.github.openshift.api.operator.v1alpha1.ClusterAPIList": { "description": "ClusterAPIList contains a list of ClusterAPI configurations\n\nCompatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.", "type": "object", @@ -35939,11 +36082,11 @@ } }, "com.github.openshift.api.operator.v1alpha1.ClusterAPISpec": { - "description": "ClusterAPISpec defines the desired configuration of the capi-operator.", + "description": "ClusterAPISpec defines the desired configuration of the capi-operator. The spec is required but we deliberately allow it to be empty.", "type": "object", "properties": { "unmanagedCustomResourceDefinitions": { - "description": "unmanagedCustomResourceDefinitions is a list of ClusterResourceDefinition (CRD) names that should not be managed by the capi-operator installer controller. This allows external actors to own specific CRDs while capi-operator manages others.\n\nEach CRD name must be a valid DNS-1123 subdomain consisting of lowercase alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character, with a maximum length of 253 characters. Example: \"clusters.cluster.x-k8s.io\"\n\nItems cannot be removed from this list once added.\n\nThe maximum number of unmanagedCustomResourceDefinitions is 128.", + "description": "unmanagedCustomResourceDefinitions is a list of ClusterResourceDefinition (CRD) names that should not be managed by the capi-operator installer controller. This allows external actors to own specific CRDs while capi-operator manages others.\n\nEach CRD name must be a valid DNS-1123 subdomain consisting of lowercase alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character, with a maximum length of 253 characters. CRD names must contain at least two '.' characters. Example: \"clusters.cluster.x-k8s.io\"\n\nItems cannot be removed from this list once added.\n\nThe maximum number of unmanagedCustomResourceDefinitions is 128.", "type": "array", "items": { "type": "string", @@ -35956,22 +36099,25 @@ "com.github.openshift.api.operator.v1alpha1.ClusterAPIStatus": { "description": "ClusterAPIStatus describes the current state of the capi-operator.", "type": "object", + "required": [ + "desiredRevision", + "revisions" + ], "properties": { - "activeConfigMaps": { - "description": "activeConfigMaps is a list of ConfigMap names that the installer controller has successfully reconciled. This represents the currently deployed CAPI provider components.\n\nEach ConfigMap name must be a valid DNS-1123 label consisting of lowercase alphanumeric characters or hyphens, starting and ending with an alphanumeric character, with a maximum length of 63 characters.\n\nThis field is owned by the installer controller and is updated atomically after a successful reconciliation.\n\nThe maximum number of activeConfigMaps is 128.", - "type": "array", - "items": { - "type": "string", - "default": "" - }, - "x-kubernetes-list-type": "atomic" + "currentRevision": { + "description": "currentRevision is the name of the most recently fully applied revision. It is written by the installer controller. If it is absent, it indicates that no revision has been fully applied yet. If set, currentRevision must correspond to an entry in the revisions list.", + "type": "string" }, - "targetConfigMaps": { - "description": "targetConfigMaps is a list of ConfigMap names that the staging controller has validated and approved for reconciliation. The installer controller will reconcile these ConfigMaps.\n\nEach ConfigMap name must be a valid DNS-1123 label consisting of lowercase alphanumeric characters or hyphens, starting and ending with an alphanumeric character, with a maximum length of 63 characters.\n\nThis field is owned by the staging controller and is updated atomically to a consistent set of transport ConfigMaps that have passed validation checks.\n\nThe maximum number of targetConfigMaps is 128.", + "desiredRevision": { + "description": "desiredRevision is the name of the desired revision. It is written by the revision controller. It must be set to the name of the entry in the revisions list with the highest revision number.", + "type": "string" + }, + "revisions": { + "description": "revisions is a list of all currently active revisions. A revision is active until the installer controller updates currentRevision to a later revision. It is written by the revision controller.\n\nThe maximum number of revisions is 16. All revisions must have a unique name. All revisions must have a unique revision number. When adding a revision, the revision number must be greater than the highest revision number in the list. Revisions are immutable, although they can be deleted.", "type": "array", "items": { - "type": "string", - "default": "" + "default": {}, + "$ref": "#/definitions/com.github.openshift.api.operator.v1alpha1.ClusterAPIInstallerRevision" }, "x-kubernetes-list-type": "atomic" } @@ -37023,7 +37169,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operatoringress.v1.DNSRecord" - } + }, + "x-kubernetes-list-type": "atomic" }, "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", @@ -37074,7 +37221,8 @@ "items": { "type": "string", "default": "" - } + }, + "x-kubernetes-list-type": "atomic" } } }, @@ -37093,7 +37241,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operatoringress.v1.DNSZoneStatus" - } + }, + "x-kubernetes-list-type": "atomic" } } }, @@ -37137,7 +37286,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operatoringress.v1.DNSZoneCondition" - } + }, + "x-kubernetes-list-type": "atomic" }, "dnsZone": { "description": "dnsZone is the zone where the record is published.", @@ -52174,77 +52324,6 @@ "description": "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.", "type": "string", "format": "int-or-string" - }, - "io.k8s.apimachinery.pkg.version.Info": { - "description": "Info contains versioning information. how we'll want to distribute that information.", - "type": "object", - "required": [ - "major", - "minor", - "gitVersion", - "gitCommit", - "gitTreeState", - "buildDate", - "goVersion", - "compiler", - "platform" - ], - "properties": { - "buildDate": { - "type": "string", - "default": "" - }, - "compiler": { - "type": "string", - "default": "" - }, - "emulationMajor": { - "description": "EmulationMajor is the major version of the emulation version", - "type": "string" - }, - "emulationMinor": { - "description": "EmulationMinor is the minor version of the emulation version", - "type": "string" - }, - "gitCommit": { - "type": "string", - "default": "" - }, - "gitTreeState": { - "type": "string", - "default": "" - }, - "gitVersion": { - "type": "string", - "default": "" - }, - "goVersion": { - "type": "string", - "default": "" - }, - "major": { - "description": "Major is the major version of the binary version", - "type": "string", - "default": "" - }, - "minCompatibilityMajor": { - "description": "MinCompatibilityMajor is the major version of the minimum compatibility version", - "type": "string" - }, - "minCompatibilityMinor": { - "description": "MinCompatibilityMinor is the minor version of the minimum compatibility version", - "type": "string" - }, - "minor": { - "description": "Minor is the minor version of the binary version", - "type": "string", - "default": "" - }, - "platform": { - "type": "string", - "default": "" - } - } } } } diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml index 9086d4a5720..c12f5cb9bee 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml @@ -1257,6 +1257,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1336,7 +1337,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1345,15 +1345,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' ipFamily: default: IPv4 description: |- @@ -1466,6 +1466,7 @@ spec: 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. + For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set. properties: clusterHosted: description: |- @@ -1541,7 +1542,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1550,9 +1550,6 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is @@ -1839,6 +1836,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1918,7 +1916,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1927,15 +1924,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. 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 803c48a1e28..6045466ec77 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 @@ -1501,6 +1501,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1580,7 +1581,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1589,15 +1589,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml index de1a68c90a5..819a9421b6f 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml @@ -1257,6 +1257,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1336,7 +1337,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1345,15 +1345,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' ipFamily: default: IPv4 description: |- @@ -1466,6 +1466,7 @@ spec: 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. + For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set. properties: clusterHosted: description: |- @@ -1541,7 +1542,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1550,9 +1550,6 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is @@ -1839,6 +1836,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1918,7 +1916,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1927,15 +1924,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. 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 245bc3ea638..12f6b4a26d8 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 @@ -1501,6 +1501,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1580,7 +1581,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1589,15 +1589,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml index c45b7d6e83a..ff37c35ecb5 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml @@ -1257,6 +1257,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1336,7 +1337,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1345,15 +1345,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' ipFamily: default: IPv4 description: |- @@ -1466,6 +1466,7 @@ spec: 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. + For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set. properties: clusterHosted: description: |- @@ -1541,7 +1542,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1550,9 +1550,6 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is @@ -1839,6 +1836,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1918,7 +1916,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1927,15 +1924,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == '''' || + self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml index 24a77a81b54..74ae5a896ec 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml @@ -1543,6 +1543,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1622,7 +1623,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1631,15 +1631,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' ipFamily: default: IPv4 description: |- @@ -1753,6 +1753,7 @@ spec: 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. + For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set. properties: clusterHosted: description: |- @@ -1828,7 +1829,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1837,9 +1837,6 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType @@ -2130,6 +2127,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -2209,7 +2207,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -2218,15 +2215,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. 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 a921ed5d346..0cd53d17ee5 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 @@ -1787,6 +1787,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1866,7 +1867,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1875,15 +1875,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml index a8e3fcd21d6..5c35a06d3dc 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml @@ -1543,6 +1543,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1622,7 +1623,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1631,15 +1631,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' ipFamily: default: IPv4 description: |- @@ -1753,6 +1753,7 @@ spec: 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. + For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set. properties: clusterHosted: description: |- @@ -1828,7 +1829,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1837,9 +1837,6 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType @@ -2130,6 +2127,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -2209,7 +2207,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -2218,15 +2215,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. 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 678e5a4202f..8e73b542edb 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 @@ -1787,6 +1787,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1866,7 +1867,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1875,15 +1875,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster. diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml index 52f75fc841f..5c70d8ad978 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml @@ -1543,6 +1543,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -1622,7 +1623,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1631,15 +1631,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' ipFamily: default: IPv4 description: |- @@ -1753,6 +1753,7 @@ spec: 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. + For Azure platform, cloudLoadBalancerConfig.dnsType can be updated after it has been set. properties: clusterHosted: description: |- @@ -1828,7 +1829,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -1837,9 +1837,6 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType @@ -2130,6 +2127,7 @@ spec: 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. + The value of cloudLoadBalancerConfig.dnsType is immutable after it has been set at install time. 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. @@ -2209,7 +2207,6 @@ spec: It can be set to `ClusterHosted` to bypass the configuration of the cloud default DNS. In this mode, the cluster needs to provide a self-hosted DNS solution for the cluster's installation to succeed. The cluster's use of the cloud's Load Balancers is unaffected by this setting. - The value is immutable after it has been set at install time. Currently, there is no way for the customer to add additional DNS entries into the cluster hosted DNS. Enabling this functionality allows the user to start their own DNS solution outside the cluster after installation is complete. The customer would be responsible for configuring this custom DNS solution, @@ -2218,15 +2215,15 @@ spec: - ClusterHosted - PlatformDefault type: string - x-kubernetes-validations: - - message: dnsType is immutable - rule: oldSelf == '' || self == oldSelf type: object x-kubernetes-validations: - message: clusterHosted is permitted only when dnsType is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + - message: dnsType is immutable once set + rule: 'has(oldSelf.dnsType) ? (oldSelf.dnsType == + '''' || self.dnsType == oldSelf.dnsType) : true' projectID: description: resourceGroupName is the Project ID for new GCP resources created for the cluster.