mirror of
https://github.com/kubernetes/kubernetes.git
synced 2026-07-07 17:01:25 -04:00
Merge pull request #138493 from wgkingk/automated-cherry-pick-of-#138390-origin-release-1.36
Automated cherry pick of #138390: kubeadm: skip promote call when etcd member is already a voting member
This commit is contained in:
commit
c9ee548ea2
1 changed files with 9 additions and 2 deletions
|
|
@ -584,6 +584,8 @@ func (c *Client) getMemberStatus(memberID uint64) (isLearner bool, started bool,
|
|||
func (c *Client) MemberPromote(learnerID uint64) error {
|
||||
var (
|
||||
lastError error
|
||||
isLearner bool
|
||||
isStarted bool
|
||||
learnerIDUint = strconv.FormatUint(learnerID, 16)
|
||||
)
|
||||
|
||||
|
|
@ -591,7 +593,8 @@ func (c *Client) MemberPromote(learnerID uint64) error {
|
|||
|
||||
err := wait.PollUntilContextTimeout(context.Background(), constants.EtcdAPICallRetryInterval, kubeadmapi.GetActiveTimeouts().EtcdAPICall.Duration,
|
||||
true, func(_ context.Context) (bool, error) {
|
||||
isLearner, started, err := c.getMemberStatus(learnerID)
|
||||
var err error
|
||||
isLearner, isStarted, err = c.getMemberStatus(learnerID)
|
||||
if err != nil {
|
||||
lastError = errors.WithMessagef(err, "failed to get member %s status", learnerIDUint)
|
||||
return false, nil
|
||||
|
|
@ -600,7 +603,7 @@ func (c *Client) MemberPromote(learnerID uint64) error {
|
|||
klog.V(1).Infof("[etcd] Member %s was already promoted.", learnerIDUint)
|
||||
return true, nil
|
||||
}
|
||||
if !started {
|
||||
if !isStarted {
|
||||
klog.V(1).Infof("[etcd] Member %s is not started yet. Waiting for it to be started.", learnerIDUint)
|
||||
lastError = errors.Errorf("the etcd member %s is not started", learnerIDUint)
|
||||
return false, nil
|
||||
|
|
@ -611,6 +614,10 @@ func (c *Client) MemberPromote(learnerID uint64) error {
|
|||
return lastError
|
||||
}
|
||||
|
||||
if !isLearner {
|
||||
return nil
|
||||
}
|
||||
|
||||
klog.V(1).Infof("[etcd] Promoting a learner as a voting member: %s", learnerIDUint)
|
||||
|
||||
cli, err := c.newEtcdClient(c.Endpoints)
|
||||
|
|
|
|||
Loading…
Reference in a new issue