Skip to content

Commit 18318a3

Browse files
committed
kubeadm: check whether the peer URL for the added etcd member already exists when the MemberAddAsLearner/MemberAdd fails
1 parent a45742b commit 18318a3

File tree

1 file changed

+5
-15
lines changed

1 file changed

+5
-15
lines changed

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

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -421,29 +421,19 @@ func (c *Client) addMember(name string, peerAddrs string, isLearner bool) ([]Mem
421421
var (
422422
lastError error
423423
respMembers []*etcdserverpb.Member
424-
learnerID uint64
425424
resp *clientv3.MemberAddResponse
426425
)
427426
err = wait.PollUntilContextTimeout(context.Background(), constants.EtcdAPICallRetryInterval, constants.EtcdAPICallTimeout,
428427
true, func(_ context.Context) (bool, error) {
429428
ctx, cancel := context.WithTimeout(context.Background(), etcdTimeout)
430429
defer cancel()
431430
if isLearner {
432-
// if learnerID is set, it means the etcd member is already added successfully.
433-
if learnerID == 0 {
434-
klog.V(1).Info("[etcd] Adding etcd member as learner")
435-
resp, err = cli.MemberAddAsLearner(ctx, []string{peerAddrs})
436-
if err != nil {
437-
lastError = err
438-
return false, nil
439-
}
440-
learnerID = resp.Member.ID
441-
}
442-
respMembers = resp.Members
443-
return true, nil
431+
klog.V(1).Infof("[etcd] Adding etcd member %q as learner", peerAddrs)
432+
resp, err = cli.MemberAddAsLearner(ctx, []string{peerAddrs})
433+
} else {
434+
klog.V(1).Infof("[etcd] Adding etcd member %q", peerAddrs)
435+
resp, err = cli.MemberAdd(ctx, []string{peerAddrs})
444436
}
445-
446-
resp, err = cli.MemberAdd(ctx, []string{peerAddrs})
447437
if err == nil {
448438
respMembers = resp.Members
449439
return true, nil

0 commit comments

Comments
 (0)