From 216beb98126649d1886bd22a306f24809579e490 Mon Sep 17 00:00:00 2001 From: ridaz Date: Fri, 7 Jan 2022 13:17:22 +0530 Subject: [PATCH] Fix CPIStatus Phase when ProviderID is not assigned --- controllers/vdoconfig_controller.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/controllers/vdoconfig_controller.go b/controllers/vdoconfig_controller.go index befcec4..af21b09 100644 --- a/controllers/vdoconfig_controller.go +++ b/controllers/vdoconfig_controller.go @@ -852,8 +852,9 @@ nodeloop: func (r *VDOConfigReconciler) reconcileNodeProviderID(ctx vdocontext.VDOContext, config *vdov1alpha1.VDOConfig, clientset kubernetes.Interface, vsphereCloudConfigs *[]vdov1alpha1.VsphereCloudConfig) (bool, error) { nodeStatus := make(map[string]vdov1alpha1.NodeStatus) var updReq bool + allNodesReady := true - cpiStatus := vdov1alpha1.Configured + var cpiStatus vdov1alpha1.VDOConfigPhase nodes, err := clientset.CoreV1().Nodes().List(ctx, metav1.ListOptions{}) if err != nil { return updReq, errors.Wrapf(err, "Error reconciling the providerID for CPI, unable to fetch list of nodes") @@ -867,6 +868,7 @@ nodeLoop: continue nodeLoop } + allNodesReady = false for _, taint := range node.Spec.Taints { if taint.Key == CLOUD_PROVIDER_INIT_TAINT_KEY { @@ -896,6 +898,14 @@ nodeLoop: } + if len(nodeStatus) <= 0 { + return false, nil + } + + if allNodesReady { + cpiStatus = vdov1alpha1.Configured + } + if config.Status.CPIStatus.Phase != cpiStatus || !reflect.DeepEqual(config.Status.CPIStatus.NodeStatus, nodeStatus) { config.Status.CPIStatus.NodeStatus = nodeStatus