Going live

Going live is the same rebuild a drill runs, against the live target. The commands are the same; what changes is the target, and two rules that keep a drill from ever reaching it by mistake.

Add the live target

Give the live target a file in the values checkout, targets/live.yaml:

kind: live

Only one target is live: every call refuses to run while a second target’s file says kind: live, as committed or as it stands.

Commit everything first

A run against the live target refuses uncommitted changes, in this repository or in the values checkout, so every change to the live platform is made from history. Commit both, and check that neither has anything left over:

git status
git -C ../infra-values status

Otherwise up stops before it changes anything:

a run against the live target refuses uncommitted changes: the target's values have uncommitted changes

Check the target

dagger call preflight --target live

It changes nothing, and prints that the check passed. If the target’s last run didn’t finish, or a phase that run applied no longer verifies, it fails and says which. See The preflight check.

Run it

dagger call up --target live

As in a drill, up applies and verifies one phase, stops at the checkpoint after it, and prints the run’s summary: what the phase made, how long it took and the run’s time so far. Look at what the phase made, then continue:

dagger call up --target live --resume

Each call runs the next phase, until the summary says the run finished and every phase verified. That run is the target’s last-known-good. A live rebuild is meant to take at most 60 minutes, counting the time spent at checkpoints. The summary marks a run that went over, and it’s never stopped for time.

After a failure

A failed apply or verify stops the run at once, prints what failed with the summary, and leaves the target as it is. Look at what failed, then either:

  • resume, once the target is fit to: commit the fix, in whichever checkout needs it, and run up --resume. It verifies every phase the run already verified, then applies the failed phase again and goes on.
  • tear down, and start again with a fresh up.

Tearing it down

down against the live target needs the target’s name, to confirm it:

dagger call down --target live --confirm live

Without --confirm live it refuses:

down was not confirmed with the target's name: live is the live target; confirm with "live" to tear it down

It refuses uncommitted changes too, as up does. It tears down every phase in reverse order, phase 0 last, and it’s safe to run again after it fails partway.

Next: Fundamentals