Skip to content

Commit c2d40b7

Browse files
authored
Merge pull request kubernetes#130782 from BernardMC/master
Kubeadm issue kubernetes#3152 ControlPlane node setup failing with "etcdserver: can only promote a learner member"
2 parents 8a6b916 + a68501d commit c2d40b7

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

cmd/kubeadm/app/util/etcd/etcd.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -576,6 +576,15 @@ func (c *Client) MemberPromote(learnerID uint64) error {
576576
ctx, cancel := context.WithTimeout(context.Background(), etcdTimeout)
577577
defer cancel()
578578

579+
isLearner, err := c.isLearner(learnerID)
580+
if err != nil {
581+
return false, err
582+
}
583+
if !isLearner {
584+
klog.V(1).Infof("[etcd] Member %s was already promoted.", strconv.FormatUint(learnerID, 16))
585+
return true, nil
586+
}
587+
579588
_, err = cli.MemberPromote(ctx, learnerID)
580589
if err == nil {
581590
klog.V(1).Infof("[etcd] The learner was promoted as a voting member: %s", strconv.FormatUint(learnerID, 16))

0 commit comments

Comments
 (0)