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 84802167879..7a053e2a5a4 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 @@ -869,7 +869,11 @@ spec: vcenters: description: vcenters holds the connection details for services to communicate with vCenter. Currently, only a single vCenter - is supported. --- + is supported, but in tech preview 3 vCenters are supported. + Once the cluster has been installed, you are unable to change + the current number of defined vCenters except in the case + where the cluster has been upgraded from a version of OpenShift + where the vsphere platform spec was not present. --- items: description: VSpherePlatformVCenterSpec stores the vCenter connection fields. This is used by the vSphere CCM. @@ -906,13 +910,25 @@ spec: minItems: 0 type: array x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: vcenters cannot be added or removed once set + rule: 'size(self) != size(oldSelf) ? size(oldSelf) == 0 + && size(self) < 2 : true' type: object x-kubernetes-validations: - 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)' + - message: vcenters count can only be one when performing day + 2 config + rule: '!has(oldSelf.vcenters) && has(self.vcenters) ? size(self.vcenters) + < 2 : true' type: object + x-kubernetes-validations: + - message: vsphere can only have 1 vCenter when performing day 2 config + rule: '!has(oldSelf.vsphere) && has(self.vsphere) ? size(self.vsphere.vcenters) + < 2 : true' type: object status: description: status holds observed values from the cluster. They may not diff --git a/features.md b/features.md index b195385bf8e..7a55d9c3081 100644 --- a/features.md +++ b/features.md @@ -47,6 +47,7 @@ | UpgradeStatus| | | Enabled | Enabled | Enabled | Enabled | | UserNamespacesPodSecurityStandards| | | Enabled | Enabled | Enabled | Enabled | | UserNamespacesSupport| | | Enabled | Enabled | Enabled | Enabled | +| VSphereHostVMGroupZonal| | | Enabled | Enabled | Enabled | Enabled | | VSphereMultiVCenters| | | Enabled | Enabled | Enabled | Enabled | | VolumeGroupSnapshot| | | Enabled | Enabled | Enabled | Enabled | | ExternalOIDC| Enabled | | Enabled | Enabled | Enabled | Enabled | 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 974fd8ef755..da129048ede 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 @@ -1170,7 +1170,13 @@ spec: vcenters: description: vcenters holds the connection details for services to communicate with vCenter. Currently, - only a single vCenter is supported. --- + only a single vCenter is supported, but in tech + preview 3 vCenters are supported. Once the cluster + has been installed, you are unable to change the + current number of defined vCenters except in the + case where the cluster has been upgraded from a + version of OpenShift where the vsphere platform + spec was not present. --- items: description: VSpherePlatformVCenterSpec stores the vCenter connection fields. This is used by the @@ -1210,6 +1216,11 @@ spec: minItems: 0 type: array x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: vcenters cannot be added or removed once + set + rule: 'size(self) != size(oldSelf) ? size(oldSelf) + == 0 && size(self) < 2 : true' type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -1217,7 +1228,16 @@ spec: rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)' - message: ingressIPs list is required once set rule: '!has(oldSelf.ingressIPs) || has(self.ingressIPs)' + - message: vcenters count can only be one when performing + day 2 config + rule: '!has(oldSelf.vcenters) && has(self.vcenters) + ? size(self.vcenters) < 2 : true' type: object + x-kubernetes-validations: + - message: vsphere can only have 1 vCenter when performing + day 2 config + rule: '!has(oldSelf.vsphere) && has(self.vsphere) ? size(self.vsphere.vcenters) + < 2 : true' type: object status: description: status holds observed values from the cluster. They diff --git a/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml b/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml index ddb9e2659d4..56c2591dcd2 100644 --- a/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml +++ b/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml @@ -154,6 +154,9 @@ { "name": "UserNamespacesSupport" }, + { + "name": "VSphereHostVMGroupZonal" + }, { "name": "VSphereMultiVCenters" }, diff --git a/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml b/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml index 42277a3bc6f..e81d1b5745b 100644 --- a/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml +++ b/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml @@ -157,6 +157,9 @@ { "name": "UserNamespacesSupport" }, + { + "name": "VSphereHostVMGroupZonal" + }, { "name": "VSphereMultiVCenters" },