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

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