Merge pull request #132281 from neolit123/automated-cherry-pick-of-#130782-origin-release-1.32

Automated cherry pick of #130782: Kubeadm issue #3152 ControlPlane node setup failing with "etcdserver: can only promote a learner member"
This commit is contained in:
Kubernetes Prow Robot 2025-07-11 17:45:34 -07:00 committed by GitHub
commit 79edb7e03d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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))