Promote to production
0.12.23, no v prefix); staging holds *, the newest entry on your channel. That is the whole promotion ceremony — one change, in your cluster, in your window. Admission verification runs again in production regardless.
Before an upgrade, on a deployment with history
Every estate that has been running has state an upgrade must survive — rows that predate a constraint, a model pinned to a device, a schema last converged three releases ago. Send us that state and the upgrade arrives on your channel already rehearsed against it: Upgrade. Read-only, one command, nothing transmits.Accept the upgrade
Same standard as a first install — a human watches it capture a real meeting. Runvexa_validate.py instead to also refresh the station bundle; an upgrade is when your station’s shape is most likely to have moved.
Rung. The intended procedure, and the tool implements it — but no audio has reached the pipeline in any delivery run yet — what’s proven, and where.
Roll back
The same field, the same patch, the previous version:Break-glass in your cluster
Your cluster, your admin, your audit log — there is no path from Vexa into it. Staging syncs automatically and self-heals, so suspend that Application’s automated sync before you touch anything; production has no automated sync at all. Declare it, suspend, act — then reconverge through the gate: resume the sync and let admission verify what is now running. A residue that violates your contract is refused, not quietly baked in; you clear it by redoing the change as a release, amending your values, or recording a waiver.Update the kit
latest to a digest, verifies it against your pinned key, swaps the tree atomically. On a signature failure nothing is written and the running tree is untouched.
Self-update is the bootstrap layout only. It reads the .kit-source record that bootstrap.sh writes beside the tree it unpacks, and errors out without one — a tree you cloned with git has no such record, and updates with git pull.
If the channel goes away
Your pinned release keeps running: Argo CD reconciles against digests it has already pulled, so an unreachable channel stops upgrades, not workloads. On our side the channel is a distribution copy — entries, charts and signatures are rebuilt from tagged releases, and the record of what was published is held in git, replicated, independent of the registry. A total loss costs us hours of republishing and costs you nothing: no re-install, no re-pinning, no re-verification. Also worth knowing: an out-of-band change is reverted on the next sync, not merely reported — a permanent local difference belongs in your values. An entry with an incomplete evidence chain carries abreak_glass record (person, reason, timestamp) your verifier sees before you decide, and refusing all break-glass entries is a supported policy — that, like revocation and freshness, is enforced by the PreSync verify gate, which runs only if you installed with --verifier-image. A release found defective after publication is marked withdrawn and stops being promotable; your pinned release keeps running.
Next: Verify · Support