diff --git a/cluster/cluster.go b/cluster/cluster.go index 246398a3..4abfc766 100644 --- a/cluster/cluster.go +++ b/cluster/cluster.go @@ -184,6 +184,7 @@ func (c *Cluster) UpgradeControlPlane(ctx context.Context, kubeClient *kubernete } // find existing nodes that are in NotReady state if err := services.CheckNodeReady(kubeClient, host, services.ControlRole); err != nil { + logrus.Debugf("Found node %v in NotReady state", host.HostnameOverride) notReadyHosts = append(notReadyHosts, host) notReadyHostNames = append(notReadyHostNames, host.HostnameOverride) } @@ -285,6 +286,7 @@ func (c *Cluster) UpgradeWorkerPlane(ctx context.Context, kubeClient *kubernetes } // find existing nodes that are in NotReady state if err := services.CheckNodeReady(kubeClient, host, services.WorkerRole); err != nil { + logrus.Debugf("Found node %v in NotReady state", host.HostnameOverride) notReadyHosts = append(notReadyHosts, host) notReadyHostNames = append(notReadyHostNames, host.HostnameOverride) } diff --git a/k8s/node.go b/k8s/node.go index f99897c6..1f2e153b 100644 --- a/k8s/node.go +++ b/k8s/node.go @@ -41,12 +41,15 @@ func GetNodeList(k8sClient *kubernetes.Clientset) (*v1.NodeList, error) { func GetNode(k8sClient *kubernetes.Clientset, nodeName string) (*v1.Node, error) { var listErr error for retries := 0; retries < MaxRetries; retries++ { + logrus.Debugf("Checking node list for node %v, retry #%v", nodeName, 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 strings.ToLower(node.Labels[HostnameLabel]) == strings.ToLower(nodeName) { return &node, nil diff --git a/services/controlplane.go b/services/controlplane.go index 473af400..ecfd2db8 100644 --- a/services/controlplane.go +++ b/services/controlplane.go @@ -87,7 +87,13 @@ func UpgradeControlPlaneNodes(ctx context.Context, kubeClient *kubernetes.Client logrus.Errorf("Failed to upgrade hosts: %v with error %v", strings.Join(hostsFailedToUpgrade, ","), err) errMsgMaxUnavailableNotFailed = fmt.Sprintf("Failed to upgrade hosts: %v with error %v", strings.Join(hostsFailedToUpgrade, ","), err) } - return errMsgMaxUnavailableNotFailed, util.ErrList([]error{err, inactiveHostErr}) + var errors []error + for _, e := range []error{err, inactiveHostErr} { + if e != nil { + errors = append(errors, e) + } + } + return errMsgMaxUnavailableNotFailed, util.ErrList(errors) } log.Infof(ctx, "[%s] Successfully upgraded Controller Plane..", ControlRole) return errMsgMaxUnavailableNotFailed, nil