Node lifecycle conditions

FEATURE STATE: Kubernetes v1.37 [alpha](disabled by default)

Node lifecycle conditions report whether a Node is undergoing a lifecycle event such as drain, maintenance, or Graceful Node Shutdown. They provide a shared signal that cluster administrators, controllers, and third-party tools can use for lifecycle management.

The following well-known lifecycle conditions are available:

Node lifecycle conditions and their meanings.
ConditionDescription
DrainInProgressThe Node is actively being drained according to the administrator's chosen drain criteria.
DrainedThe Node has reached the drain criteria selected by the administrator.
MaintenancePlannedThe Node is expected to undergo a change in the future. If the change affects workloads, drain the Node before starting maintenance.
MaintenanceInProgressThe Node is actively undergoing maintenance. Maintenance can include hardware or software rollout, remediation, decommissioning, or debugging.
GracefulNodeShutdownInProgressGraceful Node Shutdown is determined to be in progress on the Node.

The status of each lifecycle condition has the following meaning:

  • True: the lifecycle state described by the condition is currently observed.
  • False: the lifecycle state described by the condition is not currently observed.
  • Unknown: the writer cannot determine whether the lifecycle state is active.

Lifecycle conditions are observations that provide useful context around a Node's lifecycle state. For example, use MaintenancePlanned to signal that a Node may go into maintenance in the future, or Drained to signal that the administrator's selected drain criteria have been met.

The reason field identifies why the condition has its current status. Writers should use stable CamelCase values for reason. The message field can provide additional human-readable detail.

The following example reports that maintenance is planned for a Node:

status:
  conditions:
  - type: MaintenancePlanned
    status: "True"
    reason: MaintenanceWindow
    message: "Hardware maintenance is scheduled for this Node"
    lastTransitionTime: "2026-07-20T14:00:00Z"

Writing lifecycle conditions

An administrator or an administrator-authorized controller is responsible for setting and clearing lifecycle conditions on the Node.

The writer determines when a lifecycle state is active. When the state is no longer active, the writer sets the condition to False or removes it.

Kubernetes does not define exclusive writer ownership, locking, or handoff between actors. Writers should coordinate ownership outside this API.

Note:

Core workload controllers do not change their behavior based on lifecycle conditions. Setting a lifecycle condition does not affect core behavior of the Node.

The existing lifecycle management mechanisms should still be used:

Viewing lifecycle conditions

Use kubectl describe node to view all conditions for a Node:

kubectl describe node <node-name>

To print the type and status of every condition, use:

kubectl get node <node-name> \
  -o jsonpath='{range .status.conditions[*]}{.type}={.status}{"\n"}{end}'
Last modified June 26, 2026 at 2:48 PM PST: [KEP-5683] Node Lifecycle Conditions Docs (e2e40504b2)