Skip to content

Commit 9a5f59b

Browse files
committed
Removing self etcd member from cluster before shutdown. Debug sleep
Signed-off-by: amakhov <amakhov@mirantis.com>
1 parent 46c5aad commit 9a5f59b

1 file changed

Lines changed: 5 additions & 9 deletions

File tree

pkg/component/controller/etcd_member_reconciler.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -270,9 +270,10 @@ func (e *EtcdMemberReconciler) watchEtcdMembers(ctx context.Context, client etcd
270270
}
271271

272272
// leaveIfMarked watches this node's own EtcdMember for Spec.Leave=true, then
273-
// removes itself from the etcd cluster and shuts down k0s. If self-removal
274-
// fails (with retries), it reports the failure in status and stays running so
275-
// the leader's dead-node fallback can remove the stale membership entry.
273+
// removes itself from the etcd cluster and shuts down k0s. Status updates are
274+
// intentionally left to the leader: after DeleteMember succeeds this node is
275+
// no longer part of etcd, so any k8s API write would fail. The leader will
276+
// detect the removal on its next reconcile and update the status accordingly.
276277
func (e *EtcdMemberReconciler) leaveIfMarked(ctx context.Context, log logrus.FieldLogger, client etcdclient.EtcdMemberInterface) {
277278
name := e.etcdConfig.GetMemberName()
278279
name, err := nodeutil.GetHostname(name)
@@ -341,13 +342,8 @@ func (e *EtcdMemberReconciler) leaveIfMarked(ctx context.Context, log logrus.Fie
341342
return
342343
}
343344

345+
time.Sleep(5 * time.Second)
344346
log.Info("Successfully removed self from etcd cluster; shutting down")
345-
member.Status.ReconcileStatus = etcdv1beta1.ReconcileStatusSuccess
346-
member.Status.Message = "Member removed from cluster"
347-
member.Status.SetCondition(etcdv1beta1.ConditionTypeJoined, etcdv1beta1.ConditionFalse, member.Status.Message, time.Now())
348-
if _, statusErr := client.UpdateStatus(ctx, member, metav1.UpdateOptions{}); statusErr != nil {
349-
log.WithError(statusErr).Warn("Failed to update EtcdMember status after self-removal")
350-
}
351347
e.shutdown(errors.New("etcd member leave requested"))
352348
}
353349

0 commit comments

Comments
 (0)