@@ -27,7 +27,6 @@ import (
27
27
apiv1 "k8s.io/api/core/v1"
28
28
apierrors "k8s.io/apimachinery/pkg/api/errors"
29
29
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
30
- "k8s.io/apimachinery/pkg/labels"
31
30
"k8s.io/apimachinery/pkg/types"
32
31
kerrors "k8s.io/apimachinery/pkg/util/errors"
33
32
"k8s.io/apimachinery/pkg/util/wait"
@@ -351,49 +350,46 @@ func (r clusterReconciler) reconcileVCenterVersion(ctx *context.ClusterContext,
351
350
}
352
351
353
352
func (r clusterReconciler ) reconcileDeploymentZones (ctx * context.ClusterContext ) (bool , error ) {
353
+ // If there is no failure domain selector, we should simply skip it
354
+ if ctx .VSphereCluster .Spec .FailureDomainSelector == nil {
355
+ return true , nil
356
+ }
357
+
358
+ var opts client.ListOptions
359
+ var err error
360
+ opts .LabelSelector , err = metav1 .LabelSelectorAsSelector (ctx .VSphereCluster .Spec .FailureDomainSelector )
361
+ if err != nil {
362
+ return false , errors .Wrapf (err , "zone label selector is misconfigured" )
363
+ }
364
+
354
365
var deploymentZoneList infrav1.VSphereDeploymentZoneList
355
- err : = r .Client .List (ctx , & deploymentZoneList )
366
+ err = r .Client .List (ctx , & deploymentZoneList , & opts )
356
367
if err != nil {
357
368
return false , errors .Wrap (err , "unable to list deployment zones" )
358
369
}
359
370
360
371
readyNotReported , notReady := 0 , 0
361
372
failureDomains := clusterv1.FailureDomains {}
362
373
for _ , zone := range deploymentZoneList .Items {
363
- if zone .Spec .Server == ctx .VSphereCluster .Spec .Server {
364
- // If users are deploying a non-multi-az workload cluster in a multi-az enabled management cluster,
365
- // FailureDomainSelector shouldn't be set, it would be a null label selector, and no zone should be
366
- // selected
367
- if ctx .VSphereCluster .Spec .FailureDomainSelector == nil {
368
- continue
369
- }
370
-
371
- selector , err := metav1 .LabelSelectorAsSelector (ctx .VSphereCluster .Spec .FailureDomainSelector )
372
- if err != nil {
373
- return false , errors .Wrapf (err , "zone label selector is misconfigured" )
374
- }
374
+ if zone .Spec .Server != ctx .VSphereCluster .Spec .Server {
375
+ continue
376
+ }
375
377
376
- // An empty selector allows the zone to be selected
377
- if ! selector . Empty () && ! selector . Matches ( labels . Set ( zone . GetLabels ())) {
378
- r . Logger . V ( 5 ). Info ( "skipping the deployment zone due to label mismatch" , "name" , zone . Name )
379
- continue
378
+ if zone . Status . Ready == nil {
379
+ readyNotReported ++
380
+ failureDomains [ zone . Name ] = clusterv1. FailureDomainSpec {
381
+ ControlPlane : pointer . BoolDeref ( zone . Spec . ControlPlane , true ),
380
382
}
383
+ continue
384
+ }
381
385
382
- if zone .Status .Ready == nil {
383
- readyNotReported ++
384
- failureDomains [zone .Name ] = clusterv1.FailureDomainSpec {
385
- ControlPlane : pointer .BoolDeref (zone .Spec .ControlPlane , true ),
386
- }
387
- } else {
388
- if * zone .Status .Ready {
389
- failureDomains [zone .Name ] = clusterv1.FailureDomainSpec {
390
- ControlPlane : pointer .BoolDeref (zone .Spec .ControlPlane , true ),
391
- }
392
- } else {
393
- notReady ++
394
- }
386
+ if * zone .Status .Ready {
387
+ failureDomains [zone .Name ] = clusterv1.FailureDomainSpec {
388
+ ControlPlane : pointer .BoolDeref (zone .Spec .ControlPlane , true ),
395
389
}
390
+ continue
396
391
}
392
+ notReady ++
397
393
}
398
394
399
395
ctx .VSphereCluster .Status .FailureDomains = failureDomains
0 commit comments