Skip to content

Drift & plan mode

Ordo separates deciding to change a machine from changing it, and keeps watching once a change has landed. Two ideas do the work: the plan (what would change) and drift (what has changed since).

A plan is an accurate diff of what an apply would do — nothing is applied while you plan:

Terminal window
ordo state plan --module <module> <node-id>

The plan resolves the module against the target agent’s attributes, computes the per-resource changes, and predicts any change triggers (a reload or restart that would fire). When it looks right, the same module set applies:

Terminal window
ordo state apply --module <module> <node-id>

After a successful apply, the orchestrator records what was applied. Drift is the gap between that record and the machine’s actual state — a file edited by hand, a service stopped, a package removed.

Check it on demand:

Terminal window
ordo state drift <node-id> # this agent, against its last apply
ordo state drift-list # every agent with outstanding drift
ordo state drift-show <node-id> # the detailed per-resource diff

The orchestrator also schedules periodic drift checks itself (agents do not decide their own cadence), so drift surfaces without anyone running a command.

Ordo does not automatically re-apply on drift. When a check finds drift it raises a drift.detected notification and records an audit event — then leaves the decision to you. Re-apply to reconcile, or investigate first; either way the change is visible rather than quietly undone.

In the web UI, the Reconcile view is the single place that shows what needs attention and lets you apply from there. It surfaces and triggers work; it never applies on its own.