From cb130042b1afec224205974bbfdfb8cffa76d611 Mon Sep 17 00:00:00 2001 From: bconry Date: Tue, 18 Mar 2025 20:18:12 +0000 Subject: [PATCH] Add check to see if promote worked within the retry loop --- cmd/kubeadm/app/util/etcd/etcd.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cmd/kubeadm/app/util/etcd/etcd.go b/cmd/kubeadm/app/util/etcd/etcd.go index 480d779df25..8dba40b85d1 100644 --- a/cmd/kubeadm/app/util/etcd/etcd.go +++ b/cmd/kubeadm/app/util/etcd/etcd.go @@ -576,6 +576,15 @@ func (c *Client) MemberPromote(learnerID uint64) error { ctx, cancel := context.WithTimeout(context.Background(), etcdTimeout) defer cancel() + isLearner, err := c.isLearner(learnerID) + if err != nil { + return false, err + } + if !isLearner { + klog.V(1).Infof("[etcd] Member %s was already promoted.", strconv.FormatUint(learnerID, 16)) + return true, nil + } + _, err = cli.MemberPromote(ctx, learnerID) if err == nil { klog.V(1).Infof("[etcd] The learner was promoted as a voting member: %s", strconv.FormatUint(learnerID, 16))