remove_etcd_member
Remove one member from the etcd cluster of an Ankra-provisioned cluster (Hetzner, OVH, UpCloud, DigitalOcean, or Scaleway) - the cleanup step when a dead control-plane node is being replaced: its stale etcd member must be removed before a replacement joins, or quorum math breaks. Executes on a HEALTHY control-plane peer (node_id/node_name - never the node whose member is being removed) over SSH-via-bastion; a node that is not control-plane is refused before any removal is attempted. The scheduler re-reads live membership immediately before acting and REFUSES to remove: a member still observed serving (by any health source, not only its own endpoint), a member whose health could not be read at all (unknown is not dead), the member of the node the command runs on, an id that does not uniquely match, or any non-learner voter whose removal would leave fewer healthy voters than the post-removal quorum - a refusal comes back as a structured result explaining why, with the live member list as evidence. This is an irreversible control-plane change: a removed member cannot rejoin with its old identity. Call get_etcd_members first and pass the member_id it listed (hex or decimal). Not available for imported or managed-Kubernetes clusters, nor (yet) Proxmox/HPE Morpheus.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| node_id | No | UUID of the HEALTHY control-plane peer to run the removal from. Preferred when known (from list_cluster_nodes). | |
| member_id | Yes | The etcd member id to remove, in hex (as listed by get_etcd_members) or decimal form. | |
| node_name | No | Exact name of the healthy control-plane peer to run the removal from. Alternative to node_id. | |
| cluster_id | No | UUID of the cluster. Optional when a cluster is selected. | |
| cluster_name | No | Exact name of the cluster. Optional when a cluster is selected. |