From 84d171fe8654d0ecd5d11bcd30c91dc8f6c5ad8a Mon Sep 17 00:00:00 2001 From: Davanum Srinivas Date: Thu, 15 Feb 2018 14:50:22 -0500 Subject: [PATCH] Avoid call to get cloud instances if a node does not have the taint, we really don't need to make calls to get the list of instances from the cloud provider --- pkg/controller/cloud/node_controller.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/controller/cloud/node_controller.go b/pkg/controller/cloud/node_controller.go index 74c09d53db3..b8cc2ac76f9 100644 --- a/pkg/controller/cloud/node_controller.go +++ b/pkg/controller/cloud/node_controller.go @@ -313,18 +313,18 @@ func (cnc *CloudNodeController) MonitorNode() { 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 {