diff --git a/k8s/node.go b/k8s/node.go index 1fe170a06d8c..09ea265e54f4 100644 --- a/k8s/node.go +++ b/k8s/node.go @@ -79,15 +79,25 @@ func GetNode(k8sClient *kubernetes.Clientset, nodeName string) (*v1.Node, error) func GetNodeByLabel(k8sClient *kubernetes.Clientset, label string) ([]string, error) { var listErr error - nodes, err := GetNodeList(k8sClient) - if err != nil { - return nil, listErr - } var ns []string - for _, node := range nodes.Items { - if _, ok := node.Labels[label]; ok { - ns = append(ns, node.Name) + for retries := 0; retries < MaxRetries; retries++ { + nodes, err := GetNodeList(k8sClient) + if err != nil { + listErr = err + time.Sleep(time.Second * RetryInterval) + continue } + // reset listErr back to nil + listErr = nil + for _, node := range nodes.Items { + if _, ok := node.Labels[label]; ok { + ns = append(ns, node.Name) + } + } + time.Sleep(time.Second * RetryInterval) + } + if listErr != nil { + return nil, listErr } return ns, nil }