Decommission Node

Mark a fully-drained node as removed so the cluster stops trying to reach it.
EndpointMethodAdmin Required
/api/v1/admin/cluster/nodes/:nodeId/decommissionPOSTYes

Marks an already-draining node as removed - the final step of taking it out of the cluster for good. This is what tells the surviving nodes to stop reaching out to it entirely.

A draining node and a removed node are both excluded from new placement, so why the distinction? A draining node is still a live member that may hold records mid-migration, so every cluster-wide metadata read still fans out to it. A removed node is gone: its data has migrated off and its process is about to stop. Left as draining, its soon-dead address is probed on every listing - each one paying a timeout, and worse, coming back permanently "incomplete", which suppresses the background pass that reconciles deletions. Marking it removed lets the cluster finally leave it alone.

Decommission after draining, not instead of it. Draining is what migrates the data off and makes removal safe; this call only flips the final status. It requires the node to already be draining and returns 409 otherwise.
This is not a permanent tombstone. If a node with the same identity restarts later - for example a Kubernetes pod rescheduled onto its existing volume - it re-registers itself as active on boot.

The scale-down.sh helper shipped with the Helm chart calls this automatically once a drain completes, so on Kubernetes you rarely invoke it by hand.

Path Parameters

nodeId
string required
The UUID of the node to decommission, from List Nodes.

Response

Returns 200 OK on success.

Errors

StatusReason
404Node not found
409Node is not draining - drain it first