diff --git a/pkg/controller/cloud/node_controller.go b/pkg/controller/cloud/node_controller.go index bc6dd93a3d2..e1c3bf70e0d 100644 --- a/pkg/controller/cloud/node_controller.go +++ b/pkg/controller/cloud/node_controller.go @@ -324,18 +324,18 @@ func (cnc *CloudNodeController) UpdateCloudNode(_, newObj interface{}) { func (cnc *CloudNodeController) AddCloudNode(obj interface{}) { node := obj.(*v1.Node) - instances, ok := cnc.cloud.Instances() - if !ok { - utilruntime.HandleError(fmt.Errorf("failed to get instances from cloud provider")) - return - } - cloudTaint := getCloudTaint(node.Spec.Taints) if cloudTaint == nil { glog.V(2).Infof("This node %s is registered without the cloud taint. Will not process.", node.Name) return } + instances, ok := cnc.cloud.Instances() + if !ok { + utilruntime.HandleError(fmt.Errorf("failed to get instances from cloud provider")) + return + } + err := clientretry.RetryOnConflict(UpdateNodeSpecBackoff, func() error { curNode, err := cnc.kubeClient.CoreV1().Nodes().Get(node.Name, metav1.GetOptions{}) if err != nil {