Installing and upgrading

A fresh install is the expected path for GA, and the one the release is
validated on. Follow the Baremetal Quick Start;
nothing in this section applies.

The rest of this section is for a box currently running an alpha build.
Note first that the subscriber model changed — see Breaking changes — so an
alpha box's subscriber base must be re-provisioned under the account model
regardless of how the software gets there. For many alpha deployments a
fresh install plus a re-provision is simpler than an upgrade.

Upgrading from an alpha build

The controller wipes its configuration replica on upgrade, by design: the
console is the authority and the controller's copy is a disposable replica.

Take a snapshot before upgrading. This is required, not advisory.

What the wipe discards is the controller's whole replica: pools,
access_interfaces, uplinks, edge_routers, captive_portal, plans,
session, DNS, and the local AAA store (aaa_local, aaa_source).

Nothing is re-pushed automatically on drift in this release — there is no
drift-triggered full-state reconciler (#31). An upgrade without a snapshot
leaves a box that onboards nobody, because its access interfaces and pools are
gone.

The snapshot is what puts it back, and it has two paths:

  • Replace (normal) — the snapshot carries the controller's own whole-state
    envelope, and the restore applies it via a single
    POST /v1/quantum/persistent/state/latest. This returns the entire
    configuration, including the subscriber base and the access-interface set.
  • Merge (fallback, when a snapshot has no envelope) — per-block writes
    covering DNS, pools, plans, RADIUS, the captive portal, access ports and
    uplinks. This path cannot fully restore a wiped box: the subscriber base,
    the access-interface set and the switch registration have no endpoint a
    per-block restore can safely drive. The restore reports which path it took.

Both paths are materially better than in the alpha, including a fix
for a restore that could not restore an access interface's address at all
(#30) — which is why the snapshot is now the documented recovery route rather
than a precaution.

Installer bundle 1.4.0-14. Standard procedure, unchanged from the alpha.