Documentation
¶
Overview ¶
e2e is the release gate. It installs release v from dl.mainplane.ai on real machines over ssh and checks each over the worker protocol, then takes them down to release prev and back, and past a release that does not exist. An rc is tagged stable only after it passes.
task e2e -- <v> <prev> <port> <os>=<ssh target>...
The machines reach this one through a quick tunnel the run opens to port on loopback, as they reach an installed harness, and dial the harness on its mesh, so prev must be a release whose workers do. Linux and macOS targets need passwordless sudo. The Windows target must be an elevated login, with the operator logged in at the console. Then each machine becomes a harness in one line, which updates to prev and back, and both are uninstalled: a run ends with every machine clean, and any harness it had is replaced and gone, though its config and sessions stay. Each phase is this program again, as a harness at one version: its exit drops every connection, so each worker says hello to the next.
The mesh is checked on the way: each machine's interface, hosts block and Tailscale after the first phase; with no links, each worker sees only the harness; linked, as every phase does, reach between every pair by long name, mainplane status, endpoints, and an ephemeral node's view in it; workers back within restartWait of a restart; one worker removed in the last phase; and nothing of the mesh left after uninstall.