pub enum HostState {
Pending,
Activating,
Deferred,
Soaking,
Converged,
Failed,
Reverted,
}Expand description
6-state rollout machine per RFC-0005 §3. Replaces the pre-v0.2 9-variant
nixfleet_proto::HostRolloutState (the Queued / Dispatched /
ConfirmWindow / Healthy / Soaked variants are removed — phases 4-6
delete the old enum entirely once the new machine is wired through).
Variants§
Pending
CP has issued a Dispatch; agent has not yet acked.
Activating
Agent acked; switch-to-configuration is firing or has fired pending confirmation.
Deferred
Activation pipeline set the profile + bootloader but skipped the
live switch-to-configuration because a critical component
(dbus/systemd/kernel/init) cannot be live-swapped on a running
system. The new generation activates on next reboot. Ordering-
eligible (host-edges + wave-promotion + advance_current_waves
treat Deferred ≡ Converged for cascade-progression purposes —
the host has done what it can within the rollout step) but
not health-verified (probes haven’t run against the new
closure; channel-edges stays strict and waits for actual
Converged). On operator reboot, the agent’s boot-recovery
handshake observes current_closure == target_closure and
CP’s handle_heartbeat synthesis (LIFT #1) drives
Deferred → Soaking via RemoteActivationCompleted.
Soaking
Agent reports activation succeeded; probes have started; soak window has not yet elapsed.
Converged
Soak elapsed, probes passing, current == declared. Terminal for
ordering (successor channels may release).
Failed
Sustained probe failure observed by the agent and reported to CP.
Agent has read onHealthFailure from the signed manifest and decided
autonomously what comes next (RFC-0005 §4.2 Failed event).
Reverted
Agent has completed rollback to prior closure. Channel-level quarantine holds the bad SHA.