diff --git a/config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml b/config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml
index 97dc8191f24..2de71b28a71 100644
--- a/config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml
+++ b/config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml
@@ -3,7 +3,6 @@ name: "Infrastructure"
crdName: infrastructures.config.openshift.io
featureGates:
- -AWSClusterHostedDNS
- - -VSphereMultiVCenterDay2
tests:
onCreate:
- name: Should be able to create a minimal Infrastructure
@@ -1884,6 +1883,8 @@ tests:
initialCRDPatches:
- op: remove
path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/platformSpec/properties/vsphere/properties/vcenters/minItems
+ - op: remove
+ path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/platformSpec/properties/vsphere/x-kubernetes-validations/0
initial: |
apiVersion: config.openshift.io/v1
kind: Infrastructure
diff --git a/config/v1/types_infrastructure.go b/config/v1/types_infrastructure.go
index a89377ef7d0..c20409862fc 100644
--- a/config/v1/types_infrastructure.go
+++ b/config/v1/types_infrastructure.go
@@ -1722,12 +1722,10 @@ type VSpherePlatformNodeNetworking struct {
type VSpherePlatformSpec struct {
// vcenters holds the connection details for services to communicate with vCenter.
// Up to 3 vCenters are supported.
- // Once the cluster has been installed, you are unable to change the current number of defined
- // vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- // where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- // remove vCenters but may not remove all vCenters. You may make modifications to the existing
- // vCenters that are defined in the vcenters list in order to match with any added or modified
- // failure domains.
+ // After installation, you can add or change vCenters, or remove some of them, but you must keep
+ // at least one and may not add and remove vCenters during the same update. You may make modifications
+ // to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ // modified failure domains.
// ---
// + If VCenters is not defined use the existing cloud-config configmap defined
// + in openshift-config.
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 1a6c3057697..76c1b09a7a7 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
@@ -970,12 +970,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
@@ -1022,19 +1020,30 @@ spec:
type: array
x-kubernetes-list-type: atomic
x-kubernetes-validations:
+ - message: Cannot add and remove vCenters at the same time
+ rule: 'size(self) >= size(oldSelf) ? oldSelf.all(x, self.exists(y,
+ y.server == x.server)) : true'
+ - message: Cannot add and remove vCenters at the same time
+ rule: 'size(self) < size(oldSelf) ? self.all(x, oldSelf.exists(y,
+ y.server == x.server)) : true'
- message: vcenters must have unique server values
rule: self.all(x, self.exists_one(y, y.server == x.server))
type: object
x-kubernetes-validations:
+ - message: all failure domains must have a corresponding vCenter
+ entry
+ rule: '!has(self.failureDomains) || size(self.failureDomains)
+ == 0 || (has(self.vcenters) && self.failureDomains.all(fd,
+ self.vcenters.exists(vc, vc.server == fd.server)))'
- message: apiServerInternalIPs list is required once set
rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)'
- message: ingressIPs list is required once set
rule: '!has(oldSelf.ingressIPs) || has(self.ingressIPs)'
type: object
x-kubernetes-validations:
- - message: vcenters can have at most 1 item when configured post-install
- rule: '!has(oldSelf.vsphere) && has(self.vsphere) ? (has(self.vsphere.vcenters)
- && size(self.vsphere.vcenters) < 2) : true'
+ - message: vcenters is required once set and cannot be removed
+ rule: 'oldSelf.?vsphere.vcenters.hasValue() ? self.?vsphere.vcenters.hasValue()
+ : true'
type: object
status:
description: status holds observed values from the cluster. They may not
diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml
index 5c5eec68aea..dfcb43271ff 100644
--- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml
+++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml
@@ -1050,12 +1050,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml
index 37951040704..8daeb2182f8 100644
--- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml
+++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml
@@ -1035,12 +1035,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
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 ac54ddbd880..0b2b7b03a8b 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
@@ -970,12 +970,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
@@ -1022,19 +1020,30 @@ spec:
type: array
x-kubernetes-list-type: atomic
x-kubernetes-validations:
+ - message: Cannot add and remove vCenters at the same time
+ rule: 'size(self) >= size(oldSelf) ? oldSelf.all(x, self.exists(y,
+ y.server == x.server)) : true'
+ - message: Cannot add and remove vCenters at the same time
+ rule: 'size(self) < size(oldSelf) ? self.all(x, oldSelf.exists(y,
+ y.server == x.server)) : true'
- message: vcenters must have unique server values
rule: self.all(x, self.exists_one(y, y.server == x.server))
type: object
x-kubernetes-validations:
+ - message: all failure domains must have a corresponding vCenter
+ entry
+ rule: '!has(self.failureDomains) || size(self.failureDomains)
+ == 0 || (has(self.vcenters) && self.failureDomains.all(fd,
+ self.vcenters.exists(vc, vc.server == fd.server)))'
- message: apiServerInternalIPs list is required once set
rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)'
- message: ingressIPs list is required once set
rule: '!has(oldSelf.ingressIPs) || has(self.ingressIPs)'
type: object
x-kubernetes-validations:
- - message: vcenters can have at most 1 item when configured post-install
- rule: '!has(oldSelf.vsphere) && has(self.vsphere) ? (has(self.vsphere.vcenters)
- && size(self.vsphere.vcenters) < 2) : true'
+ - message: vcenters is required once set and cannot be removed
+ rule: 'oldSelf.?vsphere.vcenters.hasValue() ? self.?vsphere.vcenters.hasValue()
+ : true'
type: object
status:
description: status holds observed values from the cluster. They may not
diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml
index d1cdddc8edd..b2df50a1c47 100644
--- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml
+++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml
@@ -1050,12 +1050,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml
index 29c8c48b957..8c74f242b9b 100644
--- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml
+++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml
@@ -1050,12 +1050,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
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 09109065e6f..6bf192325bc 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
@@ -1036,12 +1036,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AAA_ungated.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AAA_ungated.yaml
index c4989f62511..3f80915c8f4 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AAA_ungated.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AAA_ungated.yaml
@@ -951,12 +951,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
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 0d6a068ee7a..4251aa41214 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
@@ -949,12 +949,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSDualStackInstall.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSDualStackInstall.yaml
index 6c290c748fc..83ff22f322f 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSDualStackInstall.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSDualStackInstall.yaml
@@ -949,12 +949,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AzureDualStackInstall.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AzureDualStackInstall.yaml
index dfb8b566049..175f690ceaf 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AzureDualStackInstall.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AzureDualStackInstall.yaml
@@ -949,12 +949,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/BGPBasedVIPManagement.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/BGPBasedVIPManagement.yaml
index 607998046fb..b2dc113f447 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/BGPBasedVIPManagement.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/BGPBasedVIPManagement.yaml
@@ -949,12 +949,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/DualReplica.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/DualReplica.yaml
index f6c1e07a3ae..8212f5b12bd 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/DualReplica.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/DualReplica.yaml
@@ -949,12 +949,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/DyanmicServiceEndpointIBMCloud.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/DyanmicServiceEndpointIBMCloud.yaml
index 1476be93a78..7e5373fce90 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/DyanmicServiceEndpointIBMCloud.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/DyanmicServiceEndpointIBMCloud.yaml
@@ -1011,12 +1011,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPSovereignCloudInstall.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPSovereignCloudInstall.yaml
index 5a342b8f3b0..a20e7b5e8dc 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPSovereignCloudInstall.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPSovereignCloudInstall.yaml
@@ -949,12 +949,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/MutableTopology.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/MutableTopology.yaml
index 100ac8a3bc6..6c7e96ba6b8 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/MutableTopology.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/MutableTopology.yaml
@@ -964,12 +964,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/NutanixMultiSubnets.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/NutanixMultiSubnets.yaml
index 166bcb7280d..fa56ab3399f 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/NutanixMultiSubnets.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/NutanixMultiSubnets.yaml
@@ -954,12 +954,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/OnPremDNSRecords.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/OnPremDNSRecords.yaml
index f0f88f4497e..efa6c4880fd 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/OnPremDNSRecords.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/OnPremDNSRecords.yaml
@@ -949,12 +949,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereHostVMGroupZonal.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereHostVMGroupZonal.yaml
index e18faf365a0..f50949b9e5f 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereHostVMGroupZonal.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereHostVMGroupZonal.yaml
@@ -960,12 +960,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiNetworks.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiNetworks.yaml
index 00b3cefa377..78897bfe7b0 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiNetworks.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiNetworks.yaml
@@ -950,12 +950,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiVCenterDay2.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiVCenterDay2.yaml
index 214cad05cbd..3460e83e542 100644
--- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiVCenterDay2.yaml
+++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiVCenterDay2.yaml
@@ -949,12 +949,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/config/v1/zz_generated.swagger_doc_generated.go b/config/v1/zz_generated.swagger_doc_generated.go
index 0519119af44..ababa4965cb 100644
--- a/config/v1/zz_generated.swagger_doc_generated.go
+++ b/config/v1/zz_generated.swagger_doc_generated.go
@@ -2216,7 +2216,7 @@ func (VSpherePlatformNodeNetworkingSpec) SwaggerDoc() map[string]string {
var map_VSpherePlatformSpec = map[string]string{
"": "VSpherePlatformSpec holds the desired state of the vSphere infrastructure provider. In the future the cloud provider operator, storage operator and machine operator will use these fields for configuration.",
- "vcenters": "vcenters holds the connection details for services to communicate with vCenter. Up to 3 vCenters are supported. Once the cluster has been installed, you are unable to change the current number of defined vCenters except when 1.) the cluster has been upgraded from a version of OpenShift where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and remove vCenters but may not remove all vCenters. You may make modifications to the existing vCenters that are defined in the vcenters list in order to match with any added or modified failure domains.",
+ "vcenters": "vcenters holds the connection details for services to communicate with vCenter. Up to 3 vCenters are supported. After installation, you can add or change vCenters, or remove some of them, but you must keep at least one and may not add and remove vCenters during the same update. You may make modifications to the existing vCenters that are defined in the vcenters list in order to match with any added or modified failure domains.",
"failureDomains": "failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. Each failure domain's server must match the server field of an entry in the vcenters list.",
"nodeNetworking": "nodeNetworking contains the definition of internal and external network constraints for assigning the node's networking. If this field is omitted, networking defaults to the legacy address selection behavior which is to only support a single address and return the first one found.",
"apiServerInternalIPs": "apiServerInternalIPs are the IP addresses to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. These are the IPs for a self-hosted load balancer in front of the API servers. In dual stack clusters this list contains two IP addresses, one from IPv4 family and one from IPv6. In single stack clusters a single IP address is expected. When omitted, values from the status.apiServerInternalIPs will be used. Once set, the list cannot be completely removed (but its second entry can).",
diff --git a/features.md b/features.md
index 17d2b3f7c6d..42084ecff60 100644
--- a/features.md
+++ b/features.md
@@ -87,7 +87,6 @@
| TLSAdherence| | | Enabled | Enabled | | | Enabled | Enabled |
| TLSGroupPreferences| | | Enabled | Enabled | | | Enabled | Enabled |
| VSphereConfigurableMaxAllowedBlockVolumesPerNode| | | Enabled | Enabled | | | Enabled | Enabled |
-| VSphereMultiVCenterDay2| | | Enabled | Enabled | | | Enabled | Enabled |
| AWSClusterHostedDNSInstall| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| AWSDualStackInstall| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| AWSServiceLBNetworkSecurityGroup| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
@@ -125,4 +124,5 @@
| VSphereMixedNodeEnv| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| VSphereMultiDisk| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| VSphereMultiNetworks| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
+| VSphereMultiVCenterDay2| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| VolumeGroupSnapshot| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
diff --git a/features/features.go b/features/features.go
index f62e72e6027..04531bf5dc4 100644
--- a/features/features.go
+++ b/features/features.go
@@ -806,7 +806,7 @@ var (
contactPerson("vr4manta").
productScope(ocpSpecific).
enhancementPR("https://github.com/openshift/enhancements/pull/1961").
- enable(inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()).
+ enable(inDefault(), inOKD(), inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()).
mustRegister()
FeatureGateAWSServiceLBNetworkSecurityGroup = newFeatureGate("AWSServiceLBNetworkSecurityGroup").
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 d22d2598e82..6f15ab60e64 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
@@ -1261,12 +1261,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
@@ -1309,11 +1307,24 @@ spec:
type: array
x-kubernetes-list-type: atomic
x-kubernetes-validations:
+ - message: Cannot add and remove vCenters at the same
+ time
+ rule: 'size(self) >= size(oldSelf) ? oldSelf.all(x,
+ self.exists(y, y.server == x.server)) : true'
+ - message: Cannot add and remove vCenters at the same
+ time
+ rule: 'size(self) < size(oldSelf) ? self.all(x,
+ oldSelf.exists(y, y.server == x.server)) : true'
- message: vcenters must have unique server values
rule: self.all(x, self.exists_one(y, y.server ==
x.server))
type: object
x-kubernetes-validations:
+ - message: all failure domains must have a corresponding
+ vCenter entry
+ rule: '!has(self.failureDomains) || size(self.failureDomains)
+ == 0 || (has(self.vcenters) && self.failureDomains.all(fd,
+ self.vcenters.exists(vc, vc.server == fd.server)))'
- message: apiServerInternalIPs list is required once
set
rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)'
@@ -1321,10 +1332,9 @@ spec:
rule: '!has(oldSelf.ingressIPs) || has(self.ingressIPs)'
type: object
x-kubernetes-validations:
- - message: vcenters can have at most 1 item when configured
- post-install
- rule: '!has(oldSelf.vsphere) && has(self.vsphere) ? (has(self.vsphere.vcenters)
- && size(self.vsphere.vcenters) < 2) : true'
+ - message: vcenters is required once set and cannot be removed
+ rule: 'oldSelf.?vsphere.vcenters.hasValue() ? self.?vsphere.vcenters.hasValue()
+ : true'
type: object
status:
description: status holds observed values from the cluster. They
diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml
index 14c72b8985f..4dbab79ecc4 100644
--- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml
+++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml
@@ -1355,12 +1355,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml
index f12bc551340..af30fd64cb7 100644
--- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml
+++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml
@@ -1340,12 +1340,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
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 172e7b089cb..e15215f96ec 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
@@ -1261,12 +1261,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
@@ -1309,11 +1307,24 @@ spec:
type: array
x-kubernetes-list-type: atomic
x-kubernetes-validations:
+ - message: Cannot add and remove vCenters at the same
+ time
+ rule: 'size(self) >= size(oldSelf) ? oldSelf.all(x,
+ self.exists(y, y.server == x.server)) : true'
+ - message: Cannot add and remove vCenters at the same
+ time
+ rule: 'size(self) < size(oldSelf) ? self.all(x,
+ oldSelf.exists(y, y.server == x.server)) : true'
- message: vcenters must have unique server values
rule: self.all(x, self.exists_one(y, y.server ==
x.server))
type: object
x-kubernetes-validations:
+ - message: all failure domains must have a corresponding
+ vCenter entry
+ rule: '!has(self.failureDomains) || size(self.failureDomains)
+ == 0 || (has(self.vcenters) && self.failureDomains.all(fd,
+ self.vcenters.exists(vc, vc.server == fd.server)))'
- message: apiServerInternalIPs list is required once
set
rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)'
@@ -1321,10 +1332,9 @@ spec:
rule: '!has(oldSelf.ingressIPs) || has(self.ingressIPs)'
type: object
x-kubernetes-validations:
- - message: vcenters can have at most 1 item when configured
- post-install
- rule: '!has(oldSelf.vsphere) && has(self.vsphere) ? (has(self.vsphere.vcenters)
- && size(self.vsphere.vcenters) < 2) : true'
+ - message: vcenters is required once set and cannot be removed
+ rule: 'oldSelf.?vsphere.vcenters.hasValue() ? self.?vsphere.vcenters.hasValue()
+ : true'
type: object
status:
description: status holds observed values from the cluster. They
diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml
index b165a5cbbb3..3057ec587b7 100644
--- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml
+++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml
@@ -1355,12 +1355,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml
index c2385d302e0..e55261cf598 100644
--- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml
+++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml
@@ -1355,12 +1355,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
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 4acc52773a8..4802c569b00 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
@@ -1329,12 +1329,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AAA_ungated.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AAA_ungated.yaml
index 05bfd699d9d..b47e718dff0 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AAA_ungated.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AAA_ungated.yaml
@@ -1248,12 +1248,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
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 3df0726e492..fdd888dbb33 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
@@ -1242,12 +1242,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSDualStackInstall.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSDualStackInstall.yaml
index a85a97344ee..3dd9297f667 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSDualStackInstall.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSDualStackInstall.yaml
@@ -1242,12 +1242,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSEuropeanSovereignCloudInstall.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSEuropeanSovereignCloudInstall.yaml
index 730c8bfd09a..118ab824351 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSEuropeanSovereignCloudInstall.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSEuropeanSovereignCloudInstall.yaml
@@ -1246,12 +1246,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AzureDualStackInstall.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AzureDualStackInstall.yaml
index 621c4636571..a9588983640 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AzureDualStackInstall.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AzureDualStackInstall.yaml
@@ -1242,12 +1242,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/BGPBasedVIPManagement.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/BGPBasedVIPManagement.yaml
index 72e0cccd9e0..2bbebae226c 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/BGPBasedVIPManagement.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/BGPBasedVIPManagement.yaml
@@ -1254,12 +1254,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/DualReplica.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/DualReplica.yaml
index fa1a9c70684..3b1049ef894 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/DualReplica.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/DualReplica.yaml
@@ -1242,12 +1242,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/DyanmicServiceEndpointIBMCloud.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/DyanmicServiceEndpointIBMCloud.yaml
index f85298f2e26..84337c80c79 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/DyanmicServiceEndpointIBMCloud.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/DyanmicServiceEndpointIBMCloud.yaml
@@ -1305,12 +1305,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPSovereignCloudInstall.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPSovereignCloudInstall.yaml
index c4b860350ec..b3157eb255c 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPSovereignCloudInstall.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPSovereignCloudInstall.yaml
@@ -1242,12 +1242,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/MutableTopology.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/MutableTopology.yaml
index cfdea516d0d..9dbab7f28dd 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/MutableTopology.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/MutableTopology.yaml
@@ -1257,12 +1257,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/NutanixMultiSubnets.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/NutanixMultiSubnets.yaml
index dbf3add3f32..3b1eae15d3c 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/NutanixMultiSubnets.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/NutanixMultiSubnets.yaml
@@ -1248,12 +1248,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/OnPremDNSRecords.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/OnPremDNSRecords.yaml
index adfa507c7e1..0518fe12115 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/OnPremDNSRecords.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/OnPremDNSRecords.yaml
@@ -1242,12 +1242,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereHostVMGroupZonal.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereHostVMGroupZonal.yaml
index 8f89ba521cc..7d5528d1242 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereHostVMGroupZonal.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereHostVMGroupZonal.yaml
@@ -1255,12 +1255,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiNetworks.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiNetworks.yaml
index 41072536bde..0376dc15577 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiNetworks.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiNetworks.yaml
@@ -1243,12 +1243,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiVCenterDay2.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiVCenterDay2.yaml
index c6a5026bfa4..43bffdc5397 100644
--- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiVCenterDay2.yaml
+++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiVCenterDay2.yaml
@@ -1242,12 +1242,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/openapi/generated_openapi/zz_generated.openapi.go b/openapi/generated_openapi/zz_generated.openapi.go
index ef30e142d5a..47673b12b39 100644
--- a/openapi/generated_openapi/zz_generated.openapi.go
+++ b/openapi/generated_openapi/zz_generated.openapi.go
@@ -22756,7 +22756,7 @@ func schema_openshift_api_config_v1_VSpherePlatformSpec(ref common.ReferenceCall
},
},
SchemaProps: spec.SchemaProps{
- Description: "vcenters holds the connection details for services to communicate with vCenter. Up to 3 vCenters are supported. Once the cluster has been installed, you are unable to change the current number of defined vCenters except when 1.) the cluster has been upgraded from a version of OpenShift where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and remove vCenters but may not remove all vCenters. You may make modifications to the existing vCenters that are defined in the vcenters list in order to match with any added or modified failure domains.",
+ Description: "vcenters holds the connection details for services to communicate with vCenter. Up to 3 vCenters are supported. After installation, you can add or change vCenters, or remove some of them, but you must keep at least one and may not add and remove vCenters during the same update. You may make modifications to the existing vCenters that are defined in the vcenters list in order to match with any added or modified failure domains.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
diff --git a/openapi/openapi.json b/openapi/openapi.json
index 26bf2c9e39c..8e068be5918 100644
--- a/openapi/openapi.json
+++ b/openapi/openapi.json
@@ -12386,7 +12386,7 @@
"$ref": "#/definitions/com.github.openshift.api.config.v1.VSpherePlatformNodeNetworking"
},
"vcenters": {
- "description": "vcenters holds the connection details for services to communicate with vCenter. Up to 3 vCenters are supported. Once the cluster has been installed, you are unable to change the current number of defined vCenters except when 1.) the cluster has been upgraded from a version of OpenShift where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and remove vCenters but may not remove all vCenters. You may make modifications to the existing vCenters that are defined in the vcenters list in order to match with any added or modified failure domains.",
+ "description": "vcenters holds the connection details for services to communicate with vCenter. Up to 3 vCenters are supported. After installation, you can add or change vCenters, or remove some of them, but you must keep at least one and may not add and remove vCenters during the same update. You may make modifications to the existing vCenters that are defined in the vcenters list in order to match with any added or modified failure domains.",
"type": "array",
"items": {
"default": {},
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 1a6c3057697..76c1b09a7a7 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
@@ -970,12 +970,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
@@ -1022,19 +1020,30 @@ spec:
type: array
x-kubernetes-list-type: atomic
x-kubernetes-validations:
+ - message: Cannot add and remove vCenters at the same time
+ rule: 'size(self) >= size(oldSelf) ? oldSelf.all(x, self.exists(y,
+ y.server == x.server)) : true'
+ - message: Cannot add and remove vCenters at the same time
+ rule: 'size(self) < size(oldSelf) ? self.all(x, oldSelf.exists(y,
+ y.server == x.server)) : true'
- message: vcenters must have unique server values
rule: self.all(x, self.exists_one(y, y.server == x.server))
type: object
x-kubernetes-validations:
+ - message: all failure domains must have a corresponding vCenter
+ entry
+ rule: '!has(self.failureDomains) || size(self.failureDomains)
+ == 0 || (has(self.vcenters) && self.failureDomains.all(fd,
+ self.vcenters.exists(vc, vc.server == fd.server)))'
- message: apiServerInternalIPs list is required once set
rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)'
- message: ingressIPs list is required once set
rule: '!has(oldSelf.ingressIPs) || has(self.ingressIPs)'
type: object
x-kubernetes-validations:
- - message: vcenters can have at most 1 item when configured post-install
- rule: '!has(oldSelf.vsphere) && has(self.vsphere) ? (has(self.vsphere.vcenters)
- && size(self.vsphere.vcenters) < 2) : true'
+ - message: vcenters is required once set and cannot be removed
+ rule: 'oldSelf.?vsphere.vcenters.hasValue() ? self.?vsphere.vcenters.hasValue()
+ : true'
type: object
status:
description: status holds observed values from the cluster. They may not
diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml
index 5c5eec68aea..dfcb43271ff 100644
--- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml
+++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml
@@ -1050,12 +1050,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml
index 37951040704..8daeb2182f8 100644
--- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml
+++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml
@@ -1035,12 +1035,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
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 ac54ddbd880..0b2b7b03a8b 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
@@ -970,12 +970,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
@@ -1022,19 +1020,30 @@ spec:
type: array
x-kubernetes-list-type: atomic
x-kubernetes-validations:
+ - message: Cannot add and remove vCenters at the same time
+ rule: 'size(self) >= size(oldSelf) ? oldSelf.all(x, self.exists(y,
+ y.server == x.server)) : true'
+ - message: Cannot add and remove vCenters at the same time
+ rule: 'size(self) < size(oldSelf) ? self.all(x, oldSelf.exists(y,
+ y.server == x.server)) : true'
- message: vcenters must have unique server values
rule: self.all(x, self.exists_one(y, y.server == x.server))
type: object
x-kubernetes-validations:
+ - message: all failure domains must have a corresponding vCenter
+ entry
+ rule: '!has(self.failureDomains) || size(self.failureDomains)
+ == 0 || (has(self.vcenters) && self.failureDomains.all(fd,
+ self.vcenters.exists(vc, vc.server == fd.server)))'
- message: apiServerInternalIPs list is required once set
rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)'
- message: ingressIPs list is required once set
rule: '!has(oldSelf.ingressIPs) || has(self.ingressIPs)'
type: object
x-kubernetes-validations:
- - message: vcenters can have at most 1 item when configured post-install
- rule: '!has(oldSelf.vsphere) && has(self.vsphere) ? (has(self.vsphere.vcenters)
- && size(self.vsphere.vcenters) < 2) : true'
+ - message: vcenters is required once set and cannot be removed
+ rule: 'oldSelf.?vsphere.vcenters.hasValue() ? self.?vsphere.vcenters.hasValue()
+ : true'
type: object
status:
description: status holds observed values from the cluster. They may not
diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml
index d1cdddc8edd..b2df50a1c47 100644
--- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml
+++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml
@@ -1050,12 +1050,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml
index 29c8c48b957..8c74f242b9b 100644
--- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml
+++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml
@@ -1050,12 +1050,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
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 09109065e6f..6bf192325bc 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
@@ -1036,12 +1036,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
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 d22d2598e82..6f15ab60e64 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
@@ -1261,12 +1261,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
@@ -1309,11 +1307,24 @@ spec:
type: array
x-kubernetes-list-type: atomic
x-kubernetes-validations:
+ - message: Cannot add and remove vCenters at the same
+ time
+ rule: 'size(self) >= size(oldSelf) ? oldSelf.all(x,
+ self.exists(y, y.server == x.server)) : true'
+ - message: Cannot add and remove vCenters at the same
+ time
+ rule: 'size(self) < size(oldSelf) ? self.all(x,
+ oldSelf.exists(y, y.server == x.server)) : true'
- message: vcenters must have unique server values
rule: self.all(x, self.exists_one(y, y.server ==
x.server))
type: object
x-kubernetes-validations:
+ - message: all failure domains must have a corresponding
+ vCenter entry
+ rule: '!has(self.failureDomains) || size(self.failureDomains)
+ == 0 || (has(self.vcenters) && self.failureDomains.all(fd,
+ self.vcenters.exists(vc, vc.server == fd.server)))'
- message: apiServerInternalIPs list is required once
set
rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)'
@@ -1321,10 +1332,9 @@ spec:
rule: '!has(oldSelf.ingressIPs) || has(self.ingressIPs)'
type: object
x-kubernetes-validations:
- - message: vcenters can have at most 1 item when configured
- post-install
- rule: '!has(oldSelf.vsphere) && has(self.vsphere) ? (has(self.vsphere.vcenters)
- && size(self.vsphere.vcenters) < 2) : true'
+ - message: vcenters is required once set and cannot be removed
+ rule: 'oldSelf.?vsphere.vcenters.hasValue() ? self.?vsphere.vcenters.hasValue()
+ : true'
type: object
status:
description: status holds observed values from the cluster. They
diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml
index 14c72b8985f..4dbab79ecc4 100644
--- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml
+++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml
@@ -1355,12 +1355,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml
index f12bc551340..af30fd64cb7 100644
--- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml
+++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml
@@ -1340,12 +1340,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
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 172e7b089cb..e15215f96ec 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
@@ -1261,12 +1261,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
@@ -1309,11 +1307,24 @@ spec:
type: array
x-kubernetes-list-type: atomic
x-kubernetes-validations:
+ - message: Cannot add and remove vCenters at the same
+ time
+ rule: 'size(self) >= size(oldSelf) ? oldSelf.all(x,
+ self.exists(y, y.server == x.server)) : true'
+ - message: Cannot add and remove vCenters at the same
+ time
+ rule: 'size(self) < size(oldSelf) ? self.all(x,
+ oldSelf.exists(y, y.server == x.server)) : true'
- message: vcenters must have unique server values
rule: self.all(x, self.exists_one(y, y.server ==
x.server))
type: object
x-kubernetes-validations:
+ - message: all failure domains must have a corresponding
+ vCenter entry
+ rule: '!has(self.failureDomains) || size(self.failureDomains)
+ == 0 || (has(self.vcenters) && self.failureDomains.all(fd,
+ self.vcenters.exists(vc, vc.server == fd.server)))'
- message: apiServerInternalIPs list is required once
set
rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)'
@@ -1321,10 +1332,9 @@ spec:
rule: '!has(oldSelf.ingressIPs) || has(self.ingressIPs)'
type: object
x-kubernetes-validations:
- - message: vcenters can have at most 1 item when configured
- post-install
- rule: '!has(oldSelf.vsphere) && has(self.vsphere) ? (has(self.vsphere.vcenters)
- && size(self.vsphere.vcenters) < 2) : true'
+ - message: vcenters is required once set and cannot be removed
+ rule: 'oldSelf.?vsphere.vcenters.hasValue() ? self.?vsphere.vcenters.hasValue()
+ : true'
type: object
status:
description: status holds observed values from the cluster. They
diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml
index b165a5cbbb3..3057ec587b7 100644
--- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml
+++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml
@@ -1355,12 +1355,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml
index c2385d302e0..e55261cf598 100644
--- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml
+++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml
@@ -1355,12 +1355,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
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 4acc52773a8..4802c569b00 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
@@ -1329,12 +1329,10 @@ spec:
description: |-
vcenters holds the connection details for services to communicate with vCenter.
Up to 3 vCenters are supported.
- Once the cluster has been installed, you are unable to change the current number of defined
- vCenters except when 1.) the cluster has been upgraded from a version of OpenShift
- where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and
- remove vCenters but may not remove all vCenters. You may make modifications to the existing
- vCenters that are defined in the vcenters list in order to match with any added or modified
- failure domains.
+ After installation, you can add or change vCenters, or remove some of them, but you must keep
+ at least one and may not add and remove vCenters during the same update. You may make modifications
+ to the existing vCenters that are defined in the vcenters list in order to match with any added or
+ modified failure domains.
items:
description: |-
VSpherePlatformVCenterSpec stores the vCenter connection fields.
diff --git a/payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml b/payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml
index bb7d8a6e434..805724a966e 100644
--- a/payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml
+++ b/payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml
@@ -271,9 +271,6 @@
},
{
"name": "VSphereConfigurableMaxAllowedBlockVolumesPerNode"
- },
- {
- "name": "VSphereMultiVCenterDay2"
}
],
"enabled": [
@@ -391,6 +388,9 @@
{
"name": "VSphereMultiNetworks"
},
+ {
+ "name": "VSphereMultiVCenterDay2"
+ },
{
"name": "VolumeGroupSnapshot"
}
diff --git a/payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml b/payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml
index 0d1cfbde8ad..b6f8d3a48e2 100644
--- a/payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml
+++ b/payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml
@@ -273,9 +273,6 @@
},
{
"name": "VSphereConfigurableMaxAllowedBlockVolumesPerNode"
- },
- {
- "name": "VSphereMultiVCenterDay2"
}
],
"enabled": [
@@ -393,6 +390,9 @@
{
"name": "VSphereMultiNetworks"
},
+ {
+ "name": "VSphereMultiVCenterDay2"
+ },
{
"name": "VolumeGroupSnapshot"
}
diff --git a/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml b/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml
index 5f18195c4fa..428f1e1ef87 100644
--- a/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml
+++ b/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml
@@ -259,9 +259,6 @@
},
{
"name": "VSphereConfigurableMaxAllowedBlockVolumesPerNode"
- },
- {
- "name": "VSphereMultiVCenterDay2"
}
],
"enabled": [
@@ -391,6 +388,9 @@
{
"name": "VSphereMultiNetworks"
},
+ {
+ "name": "VSphereMultiVCenterDay2"
+ },
{
"name": "VolumeGroupSnapshot"
}
diff --git a/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml b/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml
index 696335c0ad3..64973c22b94 100644
--- a/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml
+++ b/payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml
@@ -261,9 +261,6 @@
},
{
"name": "VSphereConfigurableMaxAllowedBlockVolumesPerNode"
- },
- {
- "name": "VSphereMultiVCenterDay2"
}
],
"enabled": [
@@ -393,6 +390,9 @@
{
"name": "VSphereMultiNetworks"
},
+ {
+ "name": "VSphereMultiVCenterDay2"
+ },
{
"name": "VolumeGroupSnapshot"
}