diff --git a/config/v1/tests/infrastructures.config.openshift.io/VSphereHostVMGroupZonal.yaml b/config/v1/tests/infrastructures.config.openshift.io/VSphereHostVMGroupZonal.yaml new file mode 100644 index 00000000000..68d328909df --- /dev/null +++ b/config/v1/tests/infrastructures.config.openshift.io/VSphereHostVMGroupZonal.yaml @@ -0,0 +1,216 @@ +apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if we don't have this +name: "Infrastructure" +crdName: infrastructures.config.openshift.io +featureGate: VSphereHostVMGroupZonal +tests: + onCreate: + - name: Should not be able to have empty affinity fields if ZoneType is HostGroup + initial: | + apiVersion: config.openshift.io/v1 + kind: Infrastructure + spec: + cloudConfig: + key: config + name: cloud-provider-config + platformSpec: + type: VSphere + vsphere: + failureDomains: + - name: generated-failure-domain + region: generated-region + server: server1.dev.cluster.com + topology: + computeCluster: /IBMCloud/host/vcs-8e-workload + datacenter: IBMCloud + datastore: /IBMCloud/datastore/mdcnc-ds-shared + networks: + - ocp-ci-seg-13 + resourcePool: /IBMCloud/host/vcs-8e-workload/Resources + template: /IBMCloud/vm/ngirard-dev-rqh5s-rhcos-generated-region-generated-zone + affinity: {} + zone: generated-zone + zoneType: HostGroup + nodeNetworking: + external: {} + internal: {} + vcenters: + - datacenters: + - IBMCloud + port: 443 + server: server1.dev.cluster.com + expectedError: "when zoneType is HostGroup, failuredomain topology affinity vmGroup, hostGroup and vmHostRule fields must be defined" + - name: zoneType must be HostGroup if affinity vmGroup, hostGroup and vmHostRule fields are defined + initial: | + apiVersion: config.openshift.io/v1 + kind: Infrastructure + spec: + cloudConfig: + key: config + name: cloud-provider-config + platformSpec: + type: VSphere + vsphere: + failureDomains: + - name: generated-failure-domain + region: generated-region + server: server1.dev.cluster.com + topology: + computeCluster: /IBMCloud/host/vcs-8e-workload + datacenter: IBMCloud + datastore: /IBMCloud/datastore/mdcnc-ds-shared + networks: + - ocp-ci-seg-13 + resourcePool: /IBMCloud/host/vcs-8e-workload/Resources + template: /IBMCloud/vm/ngirard-dev-rqh5s-rhcos-generated-region-generated-zone + affinity: + vmGroup: vmg1 + hostGroup: hg1 + vmHostRule: mhr1 + zone: generated-zone + nodeNetworking: + external: {} + internal: {} + vcenters: + - datacenters: + - IBMCloud + port: 443 + server: server1.dev.cluster.com + expectedError: "when failuredomain topology affinity vmGroup, hostGroup and vmHostRule fields are defined failuredomain zoneType must be HostGroup" + - name: Should be able to create a vm-host zonal infrastructure spec + initial: | + apiVersion: config.openshift.io/v1 + kind: Infrastructure + spec: + cloudConfig: + key: config + name: cloud-provider-config + platformSpec: + type: VSphere + vsphere: + failureDomains: + - name: generated-failure-domain + region: generated-region + regionType: ComputeCluster + server: server1.dev.cluster.com + topology: + computeCluster: /IBMCloud/host/vcs-8e-workload + datacenter: IBMCloud + datastore: /IBMCloud/datastore/mdcnc-ds-shared + networks: + - ocp-ci-seg-13 + resourcePool: /IBMCloud/host/vcs-8e-workload/Resources + template: /IBMCloud/vm/ngirard-dev-rqh5s-rhcos-generated-region-generated-zone + affinity: + vmGroup: vmg1 + hostGroup: hg1 + vmHostRule: mhr1 + zone: generated-zone + zoneType: HostGroup + nodeNetworking: + external: {} + internal: {} + vcenters: + - datacenters: + - IBMCloud + port: 443 + server: server1.dev.cluster.com + expected: | + apiVersion: config.openshift.io/v1 + kind: Infrastructure + spec: + cloudConfig: + key: config + name: cloud-provider-config + platformSpec: + type: VSphere + vsphere: + failureDomains: + - name: generated-failure-domain + region: generated-region + regionType: ComputeCluster + server: server1.dev.cluster.com + topology: + computeCluster: /IBMCloud/host/vcs-8e-workload + datacenter: IBMCloud + datastore: /IBMCloud/datastore/mdcnc-ds-shared + networks: + - ocp-ci-seg-13 + resourcePool: /IBMCloud/host/vcs-8e-workload/Resources + template: /IBMCloud/vm/ngirard-dev-rqh5s-rhcos-generated-region-generated-zone + affinity: + vmGroup: vmg1 + hostGroup: hg1 + vmHostRule: mhr1 + zone: generated-zone + zoneType: HostGroup + nodeNetworking: + external: {} + internal: {} + vcenters: + - datacenters: + - IBMCloud + port: 443 + server: server1.dev.cluster.com + - name: Should be able to create a non-vm-host zonal infrastructure spec + initial: | + apiVersion: config.openshift.io/v1 + kind: Infrastructure + spec: + cloudConfig: + key: config + name: cloud-provider-config + platformSpec: + type: VSphere + vsphere: + failureDomains: + - name: generated-failure-domain + region: generated-region + server: server1.dev.cluster.com + topology: + computeCluster: /IBMCloud/host/vcs-8e-workload + datacenter: IBMCloud + datastore: /IBMCloud/datastore/mdcnc-ds-shared + networks: + - ocp-ci-seg-13 + resourcePool: /IBMCloud/host/vcs-8e-workload/Resources + template: /IBMCloud/vm/ngirard-dev-rqh5s-rhcos-generated-region-generated-zone + zone: generated-zone + nodeNetworking: + external: {} + internal: {} + vcenters: + - datacenters: + - IBMCloud + port: 443 + server: server1.dev.cluster.com + expected: | + apiVersion: config.openshift.io/v1 + kind: Infrastructure + spec: + cloudConfig: + key: config + name: cloud-provider-config + platformSpec: + type: VSphere + vsphere: + failureDomains: + - name: generated-failure-domain + region: generated-region + server: server1.dev.cluster.com + topology: + computeCluster: /IBMCloud/host/vcs-8e-workload + datacenter: IBMCloud + datastore: /IBMCloud/datastore/mdcnc-ds-shared + networks: + - ocp-ci-seg-13 + resourcePool: /IBMCloud/host/vcs-8e-workload/Resources + template: /IBMCloud/vm/ngirard-dev-rqh5s-rhcos-generated-region-generated-zone + zone: generated-zone + nodeNetworking: + external: {} + internal: {} + vcenters: + - datacenters: + - IBMCloud + port: 443 + server: server1.dev.cluster.com diff --git a/config/v1/tests/infrastructures.config.openshift.io/VSphereMultiVCenters.yaml b/config/v1/tests/infrastructures.config.openshift.io/VSphereMultiVCenters.yaml index 15cc83ad81f..792e851ef65 100644 --- a/config/v1/tests/infrastructures.config.openshift.io/VSphereMultiVCenters.yaml +++ b/config/v1/tests/infrastructures.config.openshift.io/VSphereMultiVCenters.yaml @@ -129,42 +129,6 @@ tests: port: 443 server: server4.dev.cluster.com expectedError: "Too many: 4: must have at most 3 items" - - name: Should not be able to have empty affinity fields if ZoneType is HostGroup - initial: | - apiVersion: config.openshift.io/v1 - kind: Infrastructure - spec: - cloudConfig: - key: config - name: cloud-provider-config - platformSpec: - type: VSphere - vsphere: - failureDomains: - - name: generated-failure-domain - region: generated-region - server: server1.dev.cluster.com - topology: - computeCluster: /IBMCloud/host/vcs-8e-workload - datacenter: IBMCloud - datastore: /IBMCloud/datastore/mdcnc-ds-shared - networks: - - ocp-ci-seg-13 - resourcePool: /IBMCloud/host/vcs-8e-workload/Resources - template: /IBMCloud/vm/ngirard-dev-rqh5s-rhcos-generated-region-generated-zone - affinity: {} - zone: generated-zone - zoneType: HostGroup - - nodeNetworking: - external: {} - internal: {} - vcenters: - - datacenters: - - IBMCloud - port: 443 - server: server1.dev.cluster.com - expectedError: "missing" onUpdate: - name: Should be able to modify vCenters to single from empty spec initial: | diff --git a/config/v1/types_infrastructure.go b/config/v1/types_infrastructure.go index 8e7d6d1ddc0..031b0339b49 100644 --- a/config/v1/types_infrastructure.go +++ b/config/v1/types_infrastructure.go @@ -1161,7 +1161,8 @@ const ( // VSpherePlatformFailureDomainSpec holds the region and zone failure domain and // the vCenter topology of that failure domain. -// +kubebuilder:validation:XValidation:rule="has(self.zoneType) && self.zoneType == 'HostGroup' ? self.topology.affinity.vmGroup != '' : false",message="missing" +// +kubebuilder:validation:XValidation:rule="has(self.zoneType) && self.zoneType == 'HostGroup' ? self.topology.affinity.vmGroup != '' && self.topology.affinity.hostGroup != '' && self.topology.affinity.vmHostRule != '' : true",message="when zoneType is HostGroup, failuredomain topology affinity vmGroup, hostGroup and vmHostRule fields must be defined" +// +kubebuilder:validation:XValidation:rule="has(self.topology.affinity) && (self.topology.affinity.vmGroup != '' || self.topology.affinity.hostGroup != '' || self.topology.affinity.vmHostRule != '') ? has(self.zoneType) && self.zoneType == 'HostGroup' : true",message="when failuredomain topology affinity vmGroup, hostGroup and vmHostRule fields are defined failuredomain zoneType must be HostGroup" type VSpherePlatformFailureDomainSpec struct { // name defines the arbitrary but unique name // of a failure domain. @@ -1180,7 +1181,7 @@ type VSpherePlatformFailureDomainSpec struct { // regionType defines the type of region that is used for this failure domain. The current available options // are "", ComputeCluster and Datacenter. - // +openshift:validation:FeatureGateAwareEnum:featureGate=VSphereHostVMGroupZonal,enum="";ComputeCluster;Datacenter + // +openshift:validation:FeatureGateAwareEnum:featureGate=VSphereHostVMGroupZonal,enum=ComputeCluster;Datacenter // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=80 // +kubebuilder:validation:Optional @@ -1200,7 +1201,7 @@ type VSpherePlatformFailureDomainSpec struct { // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=80 // +kubebuilder:validation:Optional - // +openshift:validation:FeatureGateAwareEnum:featureGate=VSphereHostVMGroupZonal,enum="";HostGroup;ComputeCluster + // +openshift:validation:FeatureGateAwareEnum:featureGate=VSphereHostVMGroupZonal,enum=HostGroup;ComputeCluster // +optional ZoneType string `json:"zoneType,omitempty"` @@ -1301,23 +1302,32 @@ type VSpherePlatformTopology struct { Affinity VSphereFailureDomainAffinity `json:"affinity,omitempty"` } + +// VSphereFailureDomainAffinity contains the vSphere vm-host group (virtual machine and host types) +// and the vm-host affinity rule that together creates a affinity configuration for vm-host based zonal. +// This configuration within vCenter creates the required association between a failure domain, virtual machines +// and ESXi hosts to create a vm-host based zone. type VSphereFailureDomainAffinity struct { - // VMGroupName is the name of the VM group within vCenter for this failure domain + // VMGroupName is the name of the vm-host group of type virtual machine within vCenter for this failure domain. + // This field is required when the VSphereFailureDomain ZoneType is HostGroup // +openshift:validation:featureGate=VSphereHostVMGroupZonal // +kubebuilder:validation:MaxLength=80 // +optional VMGroup string `json:"vmGroup,omitempty"` - // HostGroupName is the name of the Host group within vcenter for this failure domain - // +openshift:validation:featureGate=VSphereHostVMGroupZonal - // +kubebuilder:validation:MaxLength=80 - // +optional + // HostGroup is the name of the vm-host group of type host within vCenter for this failure domain. + // This field is required when the VSphereFailureDomain ZoneType is HostGroup + // +openshift:validation:featureGate=VSphereHostVMGroupZonal + // +kubebuilder:validation:MaxLength=80 + // +optional HostGroup string `json:"hostGroup,omitempty"` - // VMHostRule is the name of the vm host rule within vCenter for this failure domain - // +openshift:validation:featureGate=VSphereHostVMGroupZonal - // +kubebuilder:validation:MaxLength=80 - // +optional + + // VMHostRule is the name of the affinity vm-host rule within vCenter for this failure domain. + // This field is required when the VSphereFailureDomain ZoneType is HostGroup + // +openshift:validation:featureGate=VSphereHostVMGroupZonal + // +kubebuilder:validation:MaxLength=80 + // +optional VMHostRule string `json:"vmHostRule,omitempty"` } diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml index 939fda9da83..88ef56f6e01 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml @@ -633,7 +633,6 @@ spec: is used for this failure domain. The current available options are "", ComputeCluster and Datacenter. enum: - - "" - ComputeCluster - Datacenter maxLength: 80 @@ -659,20 +658,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -764,7 +768,6 @@ spec: is used for this failure domain. The current available options are "", HostGroup and ComputeCluster. enum: - - "" - HostGroup - ComputeCluster maxLength: 80 @@ -778,9 +781,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name 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 35d6b8f2b7d..e04e904f26b 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 @@ -655,20 +655,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -770,9 +775,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml index 27ca8963d9c..54e4709fa95 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml @@ -633,7 +633,6 @@ spec: is used for this failure domain. The current available options are "", ComputeCluster and Datacenter. enum: - - "" - ComputeCluster - Datacenter maxLength: 80 @@ -659,20 +658,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -764,7 +768,6 @@ spec: is used for this failure domain. The current available options are "", HostGroup and ComputeCluster. enum: - - "" - HostGroup - ComputeCluster maxLength: 80 @@ -778,9 +781,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name 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 e9dc67cd841..2b1cb2d1290 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 @@ -633,7 +633,6 @@ spec: is used for this failure domain. The current available options are "", ComputeCluster and Datacenter. enum: - - "" - ComputeCluster - Datacenter maxLength: 80 @@ -659,20 +658,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -764,7 +768,6 @@ spec: is used for this failure domain. The current available options are "", HostGroup and ComputeCluster. enum: - - "" - HostGroup - ComputeCluster maxLength: 80 @@ -778,9 +781,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name 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 5bf5ccb4db3..2846ce3376e 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 @@ -651,20 +651,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -750,9 +755,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/BareMetalLoadBalancer.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/BareMetalLoadBalancer.yaml index 238d9cbcb36..4432a3cbdbc 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/BareMetalLoadBalancer.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/BareMetalLoadBalancer.yaml @@ -651,20 +651,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -749,9 +754,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPClusterHostedDNS.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPClusterHostedDNS.yaml index 97de52dfb3a..6fb9ab1285d 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPClusterHostedDNS.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPClusterHostedDNS.yaml @@ -651,20 +651,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -749,9 +754,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPLabelsTags.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPLabelsTags.yaml index f39f91a125c..af5706e7299 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPLabelsTags.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPLabelsTags.yaml @@ -651,20 +651,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -749,9 +754,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereControlPlaneMachineSet.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereControlPlaneMachineSet.yaml index fffc52e690a..e7d00e0b6cc 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereControlPlaneMachineSet.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereControlPlaneMachineSet.yaml @@ -651,20 +651,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -765,9 +770,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name 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 d527a04e518..27297ef91ee 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 @@ -633,7 +633,6 @@ spec: is used for this failure domain. The current available options are "", ComputeCluster and Datacenter. enum: - - "" - ComputeCluster - Datacenter maxLength: 80 @@ -655,20 +654,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -743,7 +747,6 @@ spec: is used for this failure domain. The current available options are "", HostGroup and ComputeCluster. enum: - - "" - HostGroup - ComputeCluster maxLength: 80 @@ -757,9 +760,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name 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 a6f637c7197..91f6c7b2ed2 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 @@ -651,20 +651,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -750,9 +755,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiVCenters.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiVCenters.yaml index 341db7435c3..f1d572b86ba 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiVCenters.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiVCenters.yaml @@ -651,20 +651,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -749,9 +754,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/config/v1/zz_generated.swagger_doc_generated.go b/config/v1/zz_generated.swagger_doc_generated.go index f70a6517aa7..e66a9ab996c 100644 --- a/config/v1/zz_generated.swagger_doc_generated.go +++ b/config/v1/zz_generated.swagger_doc_generated.go @@ -1736,9 +1736,10 @@ func (PowerVSServiceEndpoint) SwaggerDoc() map[string]string { } var map_VSphereFailureDomainAffinity = map[string]string{ - "vmGroup": "VMGroupName is the name of the VM group within vCenter for this failure domain", - "hostGroup": "HostGroupName is the name of the Host group within vcenter for this failure domain", - "vmHostRule": "VMHostRule is the name of the vm host rule within vCenter for this failure domain", + "": "VSphereFailureDomainAffinity contains the vSphere vm-host group (virtual machine and host types) and the vm-host affinity rule that together creates a affinity configuration for vm-host based zonal. This configuration within vCenter creates the required association between a failure domain, virtual machines and ESXi hosts to create a vm-host based zone.", + "vmGroup": "VMGroupName is the name of the vm-host group of type virtual machine within vCenter for this failure domain. This field is required when the VSphereFailureDomain ZoneType is HostGroup", + "hostGroup": "HostGroup is the name of the vm-host group of type host within vCenter for this failure domain. This field is required when the VSphereFailureDomain ZoneType is HostGroup", + "vmHostRule": "VMHostRule is the name of the affinity vm-host rule within vCenter for this failure domain. This field is required when the VSphereFailureDomain ZoneType is HostGroup", } func (VSphereFailureDomainAffinity) SwaggerDoc() map[string]string { diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml index f6ad66a422c..937fd7d0b23 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml @@ -915,7 +915,6 @@ spec: The current available options are "", ComputeCluster and Datacenter. enum: - - "" - ComputeCluster - Datacenter maxLength: 80 @@ -938,21 +937,28 @@ spec: used for HostGroup based failure domains. properties: hostGroup: - description: HostGroupName is the name - of the Host group within vcenter for - this failure domain + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name - of the VM group within vCenter for - this failure domain + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup maxLength: 80 type: string vmHostRule: description: VMHostRule is the name - of the vm host rule within vCenter - for this failure domain + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -1057,7 +1063,6 @@ spec: current available options are "", HostGroup and ComputeCluster. enum: - - "" - HostGroup - ComputeCluster maxLength: 80 @@ -1071,10 +1076,22 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' ? self.topology.affinity.vmGroup - != '''' : false' + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name 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 ca5e667d54a..460d03d97a2 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 @@ -934,21 +934,28 @@ spec: used for HostGroup based failure domains. properties: hostGroup: - description: HostGroupName is the name - of the Host group within vcenter for - this failure domain + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name - of the VM group within vCenter for - this failure domain + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup maxLength: 80 type: string vmHostRule: description: VMHostRule is the name - of the vm host rule within vCenter - for this failure domain + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -1063,10 +1070,22 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' ? self.topology.affinity.vmGroup - != '''' : false' + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml index 589ac7ced2b..d1601e86aa0 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml @@ -915,7 +915,6 @@ spec: The current available options are "", ComputeCluster and Datacenter. enum: - - "" - ComputeCluster - Datacenter maxLength: 80 @@ -938,21 +937,28 @@ spec: used for HostGroup based failure domains. properties: hostGroup: - description: HostGroupName is the name - of the Host group within vcenter for - this failure domain + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name - of the VM group within vCenter for - this failure domain + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup maxLength: 80 type: string vmHostRule: description: VMHostRule is the name - of the vm host rule within vCenter - for this failure domain + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -1057,7 +1063,6 @@ spec: current available options are "", HostGroup and ComputeCluster. enum: - - "" - HostGroup - ComputeCluster maxLength: 80 @@ -1071,10 +1076,22 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' ? self.topology.affinity.vmGroup - != '''' : false' + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name 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 100f0083ebd..a3277f0bbb4 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 @@ -915,7 +915,6 @@ spec: The current available options are "", ComputeCluster and Datacenter. enum: - - "" - ComputeCluster - Datacenter maxLength: 80 @@ -938,21 +937,28 @@ spec: used for HostGroup based failure domains. properties: hostGroup: - description: HostGroupName is the name - of the Host group within vcenter for - this failure domain + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name - of the VM group within vCenter for - this failure domain + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup maxLength: 80 type: string vmHostRule: description: VMHostRule is the name - of the vm host rule within vCenter - for this failure domain + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -1057,7 +1063,6 @@ spec: current available options are "", HostGroup and ComputeCluster. enum: - - "" - HostGroup - ComputeCluster maxLength: 80 @@ -1071,10 +1076,22 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' ? self.topology.affinity.vmGroup - != '''' : false' + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name 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 a47ff060b48..d068aa7d9c7 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 @@ -934,21 +934,28 @@ spec: used for HostGroup based failure domains. properties: hostGroup: - description: HostGroupName is the name - of the Host group within vcenter for - this failure domain + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name - of the VM group within vCenter for - this failure domain + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup maxLength: 80 type: string vmHostRule: description: VMHostRule is the name - of the vm host rule within vCenter - for this failure domain + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -1046,10 +1053,22 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' ? self.topology.affinity.vmGroup - != '''' : false' + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/BareMetalLoadBalancer.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/BareMetalLoadBalancer.yaml index 4f3b5d13bbf..69642ecee78 100644 --- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/BareMetalLoadBalancer.yaml +++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/BareMetalLoadBalancer.yaml @@ -934,21 +934,28 @@ spec: used for HostGroup based failure domains. properties: hostGroup: - description: HostGroupName is the name - of the Host group within vcenter for - this failure domain + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name - of the VM group within vCenter for - this failure domain + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup maxLength: 80 type: string vmHostRule: description: VMHostRule is the name - of the vm host rule within vCenter - for this failure domain + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -1045,10 +1052,22 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' ? self.topology.affinity.vmGroup - != '''' : false' + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNS.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNS.yaml index f59c38288a3..87e40274813 100644 --- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNS.yaml +++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPClusterHostedDNS.yaml @@ -934,21 +934,28 @@ spec: used for HostGroup based failure domains. properties: hostGroup: - description: HostGroupName is the name - of the Host group within vcenter for - this failure domain + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name - of the VM group within vCenter for - this failure domain + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup maxLength: 80 type: string vmHostRule: description: VMHostRule is the name - of the vm host rule within vCenter - for this failure domain + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -1045,10 +1052,22 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' ? self.topology.affinity.vmGroup - != '''' : false' + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPLabelsTags.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPLabelsTags.yaml index 34e3bb2c7e0..8e39fbb12d2 100644 --- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPLabelsTags.yaml +++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPLabelsTags.yaml @@ -934,21 +934,28 @@ spec: used for HostGroup based failure domains. properties: hostGroup: - description: HostGroupName is the name - of the Host group within vcenter for - this failure domain + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name - of the VM group within vCenter for - this failure domain + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup maxLength: 80 type: string vmHostRule: description: VMHostRule is the name - of the vm host rule within vCenter - for this failure domain + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -1045,10 +1052,22 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' ? self.topology.affinity.vmGroup - != '''' : false' + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereControlPlaneMachineSet.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereControlPlaneMachineSet.yaml index 8cc4d01c144..1501cd26e21 100644 --- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereControlPlaneMachineSet.yaml +++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereControlPlaneMachineSet.yaml @@ -934,21 +934,28 @@ spec: used for HostGroup based failure domains. properties: hostGroup: - description: HostGroupName is the name - of the Host group within vcenter for - this failure domain + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name - of the VM group within vCenter for - this failure domain + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup maxLength: 80 type: string vmHostRule: description: VMHostRule is the name - of the vm host rule within vCenter - for this failure domain + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -1062,10 +1069,22 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' ? self.topology.affinity.vmGroup - != '''' : false' + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name 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 0a211055f34..797c14b3f18 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 @@ -915,7 +915,6 @@ spec: The current available options are "", ComputeCluster and Datacenter. enum: - - "" - ComputeCluster - Datacenter maxLength: 80 @@ -938,21 +937,28 @@ spec: used for HostGroup based failure domains. properties: hostGroup: - description: HostGroupName is the name - of the Host group within vcenter for - this failure domain + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name - of the VM group within vCenter for - this failure domain + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup maxLength: 80 type: string vmHostRule: description: VMHostRule is the name - of the vm host rule within vCenter - for this failure domain + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -1039,7 +1045,6 @@ spec: current available options are "", HostGroup and ComputeCluster. enum: - - "" - HostGroup - ComputeCluster maxLength: 80 @@ -1053,10 +1058,22 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' ? self.topology.affinity.vmGroup - != '''' : false' + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name 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 d51901dac3b..de3dcf6e30b 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 @@ -934,21 +934,28 @@ spec: used for HostGroup based failure domains. properties: hostGroup: - description: HostGroupName is the name - of the Host group within vcenter for - this failure domain + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name - of the VM group within vCenter for - this failure domain + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup maxLength: 80 type: string vmHostRule: description: VMHostRule is the name - of the vm host rule within vCenter - for this failure domain + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -1046,10 +1053,22 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' ? self.topology.affinity.vmGroup - != '''' : false' + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiVCenters.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiVCenters.yaml index 2814cd06c2a..248674e73a5 100644 --- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiVCenters.yaml +++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiVCenters.yaml @@ -934,21 +934,28 @@ spec: used for HostGroup based failure domains. properties: hostGroup: - description: HostGroupName is the name - of the Host group within vcenter for - this failure domain + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name - of the VM group within vCenter for - this failure domain + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup maxLength: 80 type: string vmHostRule: description: VMHostRule is the name - of the vm host rule within vCenter - for this failure domain + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -1045,10 +1052,22 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' ? self.topology.affinity.vmGroup - != '''' : false' + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/openapi/generated_openapi/zz_generated.openapi.go b/openapi/generated_openapi/zz_generated.openapi.go index b3afbd7d956..d1f6d69ce6e 100644 --- a/openapi/generated_openapi/zz_generated.openapi.go +++ b/openapi/generated_openapi/zz_generated.openapi.go @@ -19435,25 +19435,26 @@ func schema_openshift_api_config_v1_VSphereFailureDomainAffinity(ref common.Refe return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "VSphereFailureDomainAffinity contains the vSphere vm-host group (virtual machine and host types) and the vm-host affinity rule that together creates a affinity configuration for vm-host based zonal. This configuration within vCenter creates the required association between a failure domain, virtual machines and ESXi hosts to create a vm-host based zone.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "vmGroup": { SchemaProps: spec.SchemaProps{ - Description: "VMGroupName is the name of the VM group within vCenter for this failure domain", + Description: "VMGroupName is the name of the vm-host group of type virtual machine within vCenter for this failure domain. This field is required when the VSphereFailureDomain ZoneType is HostGroup", Type: []string{"string"}, Format: "", }, }, "hostGroup": { SchemaProps: spec.SchemaProps{ - Description: "HostGroupName is the name of the Host group within vcenter for this failure domain", + Description: "HostGroup is the name of the vm-host group of type host within vCenter for this failure domain. This field is required when the VSphereFailureDomain ZoneType is HostGroup", Type: []string{"string"}, Format: "", }, }, "vmHostRule": { SchemaProps: spec.SchemaProps{ - Description: "VMHostRule is the name of the vm host rule within vCenter for this failure domain", + Description: "VMHostRule is the name of the affinity vm-host rule within vCenter for this failure domain. This field is required when the VSphereFailureDomain ZoneType is HostGroup", Type: []string{"string"}, Format: "", }, diff --git a/openapi/openapi.json b/openapi/openapi.json index 5f531f2f059..17f0b37489d 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -10567,18 +10567,19 @@ } }, "com.github.openshift.api.config.v1.VSphereFailureDomainAffinity": { + "description": "VSphereFailureDomainAffinity contains the vSphere vm-host group (virtual machine and host types) and the vm-host affinity rule that together creates a affinity configuration for vm-host based zonal. This configuration within vCenter creates the required association between a failure domain, virtual machines and ESXi hosts to create a vm-host based zone.", "type": "object", "properties": { "hostGroup": { - "description": "HostGroupName is the name of the Host group within vcenter for this failure domain", + "description": "HostGroup is the name of the vm-host group of type host within vCenter for this failure domain. This field is required when the VSphereFailureDomain ZoneType is HostGroup", "type": "string" }, "vmGroup": { - "description": "VMGroupName is the name of the VM group within vCenter for this failure domain", + "description": "VMGroupName is the name of the vm-host group of type virtual machine within vCenter for this failure domain. This field is required when the VSphereFailureDomain ZoneType is HostGroup", "type": "string" }, "vmHostRule": { - "description": "VMHostRule is the name of the vm host rule within vCenter for this failure domain", + "description": "VMHostRule is the name of the affinity vm-host rule within vCenter for this failure domain. This field is required when the VSphereFailureDomain ZoneType is HostGroup", "type": "string" } } diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml index 939fda9da83..88ef56f6e01 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml @@ -633,7 +633,6 @@ spec: is used for this failure domain. The current available options are "", ComputeCluster and Datacenter. enum: - - "" - ComputeCluster - Datacenter maxLength: 80 @@ -659,20 +658,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -764,7 +768,6 @@ spec: is used for this failure domain. The current available options are "", HostGroup and ComputeCluster. enum: - - "" - HostGroup - ComputeCluster maxLength: 80 @@ -778,9 +781,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name 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 35d6b8f2b7d..e04e904f26b 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 @@ -655,20 +655,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -770,9 +775,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml index 27ca8963d9c..54e4709fa95 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml @@ -633,7 +633,6 @@ spec: is used for this failure domain. The current available options are "", ComputeCluster and Datacenter. enum: - - "" - ComputeCluster - Datacenter maxLength: 80 @@ -659,20 +658,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -764,7 +768,6 @@ spec: is used for this failure domain. The current available options are "", HostGroup and ComputeCluster. enum: - - "" - HostGroup - ComputeCluster maxLength: 80 @@ -778,9 +781,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name 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 e9dc67cd841..2b1cb2d1290 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 @@ -633,7 +633,6 @@ spec: is used for this failure domain. The current available options are "", ComputeCluster and Datacenter. enum: - - "" - ComputeCluster - Datacenter maxLength: 80 @@ -659,20 +658,25 @@ spec: based failure domains. properties: hostGroup: - description: HostGroupName is the name of the - Host group within vcenter for this failure - domain + description: HostGroup is the name of the vm-host + group of type host within vCenter for this + failure domain. This field is required when + the VSphereFailureDomain ZoneType is HostGroup maxLength: 80 type: string vmGroup: description: VMGroupName is the name of the - VM group within vCenter for this failure domain + vm-host group of type virtual machine within + vCenter for this failure domain. This field + is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string vmHostRule: - description: VMHostRule is the name of the vm - host rule within vCenter for this failure - domain + description: VMHostRule is the name of the affinity + vm-host rule within vCenter for this failure + domain. This field is required when the VSphereFailureDomain + ZoneType is HostGroup maxLength: 80 type: string type: object @@ -764,7 +768,6 @@ spec: is used for this failure domain. The current available options are "", HostGroup and ComputeCluster. enum: - - "" - HostGroup - ComputeCluster maxLength: 80 @@ -778,9 +781,20 @@ spec: - zone type: object x-kubernetes-validations: - - message: missing + - message: when zoneType is HostGroup, failuredomain topology + affinity vmGroup, hostGroup and vmHostRule fields must + be defined rule: 'has(self.zoneType) && self.zoneType == ''HostGroup'' - ? self.topology.affinity.vmGroup != '''' : false' + ? self.topology.affinity.vmGroup != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule != '''' + : true' + - message: when failuredomain topology affinity vmGroup, + hostGroup and vmHostRule fields are defined failuredomain + zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup != '''' + || self.topology.affinity.vmHostRule != '''') ? has(self.zoneType) + && self.zoneType == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml index 3bced7d7c55..937fd7d0b23 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml @@ -909,6 +909,17 @@ spec: maxLength: 80 minLength: 1 type: string + regionType: + description: regionType defines the type of + region that is used for this failure domain. + The current available options are "", ComputeCluster + and Datacenter. + enum: + - ComputeCluster + - Datacenter + maxLength: 80 + minLength: 1 + type: string server: description: server is the fully-qualified domain name or the IP address of the vCenter server. @@ -920,6 +931,37 @@ spec: description: Topology describes a given failure domain using vSphere constructs properties: + affinity: + description: affinityGroup holds the names + of the host and vm groups that will be + used for HostGroup based failure domains. + properties: + hostGroup: + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup + maxLength: 80 + type: string + vmGroup: + description: VMGroupName is the name + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup + maxLength: 80 + type: string + vmHostRule: + description: VMHostRule is the name + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup + maxLength: 80 + type: string + type: object computeCluster: description: computeCluster the absolute path of the vCenter cluster in which virtual @@ -1015,6 +1057,17 @@ spec: maxLength: 80 minLength: 1 type: string + zoneType: + description: zoneType defines the type of zone + that is used for this failure domain. The + current available options are "", HostGroup + and ComputeCluster. + enum: + - HostGroup + - ComputeCluster + maxLength: 80 + minLength: 1 + type: string required: - name - region @@ -1022,6 +1075,23 @@ spec: - topology - zone type: object + x-kubernetes-validations: + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined + rule: 'has(self.zoneType) && self.zoneType == + ''HostGroup'' ? self.topology.affinity.vmGroup + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name 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 d806cb4c37a..460d03d97a2 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 @@ -909,6 +909,14 @@ spec: maxLength: 80 minLength: 1 type: string + regionType: + description: regionType defines the type of + region that is used for this failure domain. + The current available options are "", ComputeCluster + and Datacenter. + maxLength: 80 + minLength: 1 + type: string server: description: server is the fully-qualified domain name or the IP address of the vCenter server. @@ -920,6 +928,37 @@ spec: description: Topology describes a given failure domain using vSphere constructs properties: + affinity: + description: affinityGroup holds the names + of the host and vm groups that will be + used for HostGroup based failure domains. + properties: + hostGroup: + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup + maxLength: 80 + type: string + vmGroup: + description: VMGroupName is the name + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup + maxLength: 80 + type: string + vmHostRule: + description: VMHostRule is the name + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup + maxLength: 80 + type: string + type: object computeCluster: description: computeCluster the absolute path of the vCenter cluster in which virtual @@ -1015,6 +1054,14 @@ spec: maxLength: 80 minLength: 1 type: string + zoneType: + description: zoneType defines the type of zone + that is used for this failure domain. The + current available options are "", HostGroup + and ComputeCluster. + maxLength: 80 + minLength: 1 + type: string required: - name - region @@ -1022,6 +1069,23 @@ spec: - topology - zone type: object + x-kubernetes-validations: + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined + rule: 'has(self.zoneType) && self.zoneType == + ''HostGroup'' ? self.topology.affinity.vmGroup + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml index 76495422fc0..d1601e86aa0 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml @@ -909,6 +909,17 @@ spec: maxLength: 80 minLength: 1 type: string + regionType: + description: regionType defines the type of + region that is used for this failure domain. + The current available options are "", ComputeCluster + and Datacenter. + enum: + - ComputeCluster + - Datacenter + maxLength: 80 + minLength: 1 + type: string server: description: server is the fully-qualified domain name or the IP address of the vCenter server. @@ -920,6 +931,37 @@ spec: description: Topology describes a given failure domain using vSphere constructs properties: + affinity: + description: affinityGroup holds the names + of the host and vm groups that will be + used for HostGroup based failure domains. + properties: + hostGroup: + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup + maxLength: 80 + type: string + vmGroup: + description: VMGroupName is the name + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup + maxLength: 80 + type: string + vmHostRule: + description: VMHostRule is the name + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup + maxLength: 80 + type: string + type: object computeCluster: description: computeCluster the absolute path of the vCenter cluster in which virtual @@ -1015,6 +1057,17 @@ spec: maxLength: 80 minLength: 1 type: string + zoneType: + description: zoneType defines the type of zone + that is used for this failure domain. The + current available options are "", HostGroup + and ComputeCluster. + enum: + - HostGroup + - ComputeCluster + maxLength: 80 + minLength: 1 + type: string required: - name - region @@ -1022,6 +1075,23 @@ spec: - topology - zone type: object + x-kubernetes-validations: + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined + rule: 'has(self.zoneType) && self.zoneType == + ''HostGroup'' ? self.topology.affinity.vmGroup + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name 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 bf20e3b758b..a3277f0bbb4 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 @@ -909,6 +909,17 @@ spec: maxLength: 80 minLength: 1 type: string + regionType: + description: regionType defines the type of + region that is used for this failure domain. + The current available options are "", ComputeCluster + and Datacenter. + enum: + - ComputeCluster + - Datacenter + maxLength: 80 + minLength: 1 + type: string server: description: server is the fully-qualified domain name or the IP address of the vCenter server. @@ -920,6 +931,37 @@ spec: description: Topology describes a given failure domain using vSphere constructs properties: + affinity: + description: affinityGroup holds the names + of the host and vm groups that will be + used for HostGroup based failure domains. + properties: + hostGroup: + description: HostGroup is the name of + the vm-host group of type host within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup + maxLength: 80 + type: string + vmGroup: + description: VMGroupName is the name + of the vm-host group of type virtual + machine within vCenter for this failure + domain. This field is required when + the VSphereFailureDomain ZoneType + is HostGroup + maxLength: 80 + type: string + vmHostRule: + description: VMHostRule is the name + of the affinity vm-host rule within + vCenter for this failure domain. This + field is required when the VSphereFailureDomain + ZoneType is HostGroup + maxLength: 80 + type: string + type: object computeCluster: description: computeCluster the absolute path of the vCenter cluster in which virtual @@ -1015,6 +1057,17 @@ spec: maxLength: 80 minLength: 1 type: string + zoneType: + description: zoneType defines the type of zone + that is used for this failure domain. The + current available options are "", HostGroup + and ComputeCluster. + enum: + - HostGroup + - ComputeCluster + maxLength: 80 + minLength: 1 + type: string required: - name - region @@ -1022,6 +1075,23 @@ spec: - topology - zone type: object + x-kubernetes-validations: + - message: when zoneType is HostGroup, failuredomain + topology affinity vmGroup, hostGroup and vmHostRule + fields must be defined + rule: 'has(self.zoneType) && self.zoneType == + ''HostGroup'' ? self.topology.affinity.vmGroup + != '''' && self.topology.affinity.hostGroup + != '''' && self.topology.affinity.vmHostRule + != '''' : true' + - message: when failuredomain topology affinity + vmGroup, hostGroup and vmHostRule fields are + defined failuredomain zoneType must be HostGroup + rule: 'has(self.topology.affinity) && (self.topology.affinity.vmGroup + != '''' || self.topology.affinity.hostGroup + != '''' || self.topology.affinity.vmHostRule + != '''') ? has(self.zoneType) && self.zoneType + == ''HostGroup'' : true' type: array x-kubernetes-list-map-keys: - name