A bed says what it actually needs to be pointed at
The instructions in every bed named the bundle that raises the predecessor's broker, so a first attempt ends in a control plane crash-looping on a missing MESH_BUS_NATS — which reads like a broken lab. They name the bundle that works now, and the README says the host binary needs SYSTEM=arch, because one built without it refuses everything with an empty system name. And the three habits that each cost a run before they were adopted: MESH_LAB_KEEP to leave the machine standing, MESH_LAB_WARM while iterating, and rebuilding all three repositories the bed places rather than the one that changed.
This commit is contained in:
@@ -139,8 +139,15 @@ nothing. That is `novox/hq` 04-ISSUES/005 exactly, and it has now been rediscove
|
||||
is written down here rather than reconstructed a third time.
|
||||
|
||||
```sh
|
||||
# Built with `make SYSTEM=arch build`, NOT with a bare `go build`. The system a host was built for
|
||||
# is a link-time value, and one built without it refuses everything it is given with "this host was
|
||||
# built for \"\", which is not a system it knows" — which reads like a broken bundle and is not
|
||||
# (novox/hq 04-ISSUES/146).
|
||||
export MESH_LAB_HOST_BINARY=<mesh-host>/mesh-host
|
||||
export MESH_LAB_BUNDLE=<mesh-host>/examples/foundation-first-node.lock
|
||||
# The bundle that raises the bus the mesh runs on. The other one in that directory raises the
|
||||
# predecessor's broker and a control plane that crash-loops on a missing MESH_BUS_NATS — which
|
||||
# looks like a broken lab and is a bundle nobody moved (novox/hq 04-ISSUES/146).
|
||||
export MESH_LAB_BUNDLE=<mesh-host>/examples/foundation-first-node-nats.lock
|
||||
export MESH_LAB_MODULES=<mesh-controller>/examples/modules
|
||||
export MESH_LAB_BUILDER=<mesh-controller>/build/mesh-builder # build/, which is git-ignored
|
||||
|
||||
@@ -163,6 +170,22 @@ export MESH_LAB_OBJECTSTORE_PROVISIONER=<somewhere>/objectstore-provisioner
|
||||
export MESH_LAB_ROUTE_PROXY=<somewhere>/route-proxy
|
||||
```
|
||||
|
||||
### When a bed fails, before anything else
|
||||
|
||||
Three habits, each of which cost a run on 2026-09-29 before it was adopted (novox/hq
|
||||
04-ISSUES/146):
|
||||
|
||||
- **`MESH_LAB_KEEP=1` leaves the machine standing.** Every answer in that sequence came from
|
||||
shelling into it afterwards — the host's log, the bus's log, the file the bus was actually given,
|
||||
the identity the node actually stored. The test output said only that nothing had converged.
|
||||
- **`MESH_LAB_WARM=1` between attempts.** A fault found on the fifth run is a fault the first four
|
||||
runs paid full price for; warm restores a snapshot instead of raising a machine, and a commit
|
||||
invalidates it, so it is safe to leave on while iterating and off for the run that counts.
|
||||
- **Rebuild what the bed places, not just what you changed.** The host binary, the control-plane
|
||||
image and the bundle are three repositories, and a bed testing yesterday's binary reports on code
|
||||
nobody is looking at (04-ISSUES/005). `make image` in mesh-controller reads its base from the
|
||||
manifest, so it no longer needs a digest found by hand.
|
||||
|
||||
`MESH_LAB_HOST_BINARY` and `MESH_LAB_MODULES` do double duty: the repository each sits in is what
|
||||
`suite` rebuilds and what the receipt claims. Point the run at a repository and it is built and
|
||||
claimed; leave it out and it is neither. `MESH_LAB_CATALOG` is claimed without being built as a
|
||||
|
||||
Reference in New Issue
Block a user