Files
mesh-lab/scenarios/genesis-keeps-its-bus.yml
T
jochen c7c7268db0
mesh/merge-gate head c7c7268db08c merged into trunk d3ef6fa44caf — pass: the change touches no module of the mesh's graph (run 2)
mesh/repo-check head c7c7268db08c merged into trunk d3ef6fa44caf — pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (typescript)…
mesh/delivery delivered
Raise genesis past its broker step and hold that the bus is kept (hq issue 590, ADR 0333 §5)
The bed runs the installer from bare twice: first with a catalogue missing the nats module, so it stops
at the broker step by name and the bed reads the bus there; then with the whole catalogue, through the
step. It passes only when exactly one bus container runs, it is mesh-broker-nats on the module's image,
every stream that held something before the step is still the same stream, and the mesh still hears
from the first node. A first run that never reaches the step skips with the reason; a second run that
stops at the step fails.

The judgement is a pure function, test/integration/bus-kept.ts, held by unit tests without a lab.
2026-10-13 02:13:35 +02:00

42 lines
1.6 KiB
YAML

# GENESIS PAST ITS BROKER STEP: the bed of novox/hq ADR 0333 §5 (issue 590).
#
# The installer raises the bus from its bundle, then adopts it as the `nats` module at its broker step (step
# 18 of 24). Before ADR 0333 the bundle raised the bus under another name and on other paths than the module
# keeps it, so adopting it would have raised a second bus beside the first, and genesis stopped there. The
# bed runs the installer from bare to that step, looks at the bus, runs it on past the step, and looks again.
#
# Two machines on one public segment, both with a way out — the installer pulls the store, the bus and the
# toolchains over it, as a bare machine does:
# - anchor: the machine genesis raises;
# - forge: serves the control plane's, the base's, the SDK's and the catalogue's repositories at the
# commits under test over git's own protocol, so the installer builds exactly those and nothing on the
# workstation listens for the lab. On the anchor itself it would be a listener, and genesis refuses a
# machine something already listens on.
scenario: genesis-keeps-its-bus
segments:
hosting:
kind: public
cidr: [192.0.2.0/24]
machines:
anchor:
at: { segment: hosting, address: [192.0.2.10] }
egress: true
inbound: allow
# The foundation, the registry, the forge genesis raises, the base and the modules it builds.
memory: 8GiB
cpus: 4
disk: 60GiB
forge:
at: { segment: hosting, address: [192.0.2.30] }
egress: true
inbound: allow
memory: 1GiB
cpus: 1
disk: 10GiB
place:
all: [host, runtime]