Files

33 lines
2.0 KiB
Markdown

# Runbook: temporarily enable or disable a compute node
Use the lifecycle action for planned temporary maintenance. Permanent removal belongs in
`RUNBOOK_NODE_DECOMMISSION.md`; credential loss belongs in `RUNBOOK_NODE_LOSS.md`.
## Disable
1. Drain and stop workloads before starting. The Console's admin-only **Review disable impact**
preview checks active deployments, requests, jobs, runtime probes, leases, residencies, pending
transitions, storage dependencies and other known node references. A blocker means resolve the
dependency and request a fresh preview; there is no force option.
2. Confirm the preview names the intended persisted node identity. Enter the operator identity, a
reason of at least ten characters, and that persisted identity exactly.
3. The API rechecks the dependency digest while holding the node and dependency locks, then advances
the node generation with compare-and-swap. A 409 means the review is stale or a dependency still
exists; inspect the new state and review again.
4. Disabled nodes reject agent heartbeats and cannot claim new agent work. Do not treat the action
as a graceful drain; the preview refuses known active workloads instead.
## Enable
1. Resolve a lost/revoked credential first using `RUNBOOK_NODE_LOSS.md`. Remote nodes without an
active node credential cannot be enabled.
2. Use **Review enable impact**, inspect the current state and type the persisted identity with the
operator identity and reason.
3. A successful enable leaves the remote node `offline` and clears old heartbeat/protocol/capability
facts. The agent must authenticate and send a fresh compatible heartbeat before health or
scheduler readiness can be inferred. The action does not start or restart the agent on its host.
Never change `enabled` through the metadata `PATCH`; the API rejects that field. Use the preview and
execute lifecycle endpoints so impact, generation and audit checks cannot be skipped. Do not rehearse
on production nodes.