Skip to content

SLM: Publish kubectl drain state as Node conditions #6251

Description

@rthallisey

Enhancement Description

Cordons and taints express scheduling or eviction policy, but they do not reliably report whether a Node is being drained or whether the selected drain criteria have been met. Users and controllers must infer progress from Pods and other indirect signals, and that inference varies among drain implementations.

Enhance kubectl drain to publish its progress through the well-known Node lifecycle conditions. When a drain starts, kubectl drain will set
DrainInProgress=True. When the command's selected drain criteria have been met, it will set Drained=True. The administrator remains responsible for clearing the lifecycle state.

The KEP will define condition transitions and behavior for interrupted, failed, and repeated drain operations so observers receive a consistent signal without changing the drain criteria selected by the user.

Please keep this description up to date. This will help the Enhancement Team to track the evolution of the enhancement efficiently.

/sig cli
/sig node
/wg node-lifecycle

Metadata

Metadata

Assignees

Labels

sig/cliCategorizes an issue or PR as relevant to SIG CLI.sig/nodeCategorizes an issue or PR as relevant to SIG Node.wg/node-lifecycleCategorizes an issue or PR as relevant to WG Node Lifecycle.

Type

No type

Projects

Status
Needs Triage
Status
No status
Status
No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions