From 22fb8f8c988954eecb2ab1bf36dbfb0d13668327 Mon Sep 17 00:00:00 2001 From: k8s-infra-cherrypick-robot <90416843+k8s-infra-cherrypick-robot@users.noreply.github.com> Date: Thu, 5 Feb 2026 01:24:31 -0800 Subject: [PATCH] Make etcd node removal idempotent (#12962) Co-authored-by: Max Gautier --- roles/remove-node/remove-etcd-node/tasks/main.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/roles/remove-node/remove-etcd-node/tasks/main.yml b/roles/remove-node/remove-etcd-node/tasks/main.yml index 2b8fc24cd..7a99641a6 100644 --- a/roles/remove-node/remove-etcd-node/tasks/main.yml +++ b/roles/remove-node/remove-etcd-node/tasks/main.yml @@ -21,6 +21,10 @@ - "{{ bin_dir }}/etcdctl" - member - remove - - "{{ '%x' | format(((etcd_members.stdout | from_json).members | selectattr('peerURLs.0', '==', etcd_peer_url))[0].ID) }}" + - "{{ '%x' | format(etcd_removed_nodes[0].ID) }}" + vars: + etcd_removed_nodes: "{{ (etcd_members.stdout | from_json).members | selectattr('peerURLs.0', '==', etcd_peer_url) }}" + # This should always have at most one member, since the etcd_peer_url should be unique in the etcd cluster + when: etcd_removed_nodes != [] register: etcd_removal_output changed_when: "'Removed member' in etcd_removal_output.stdout"