Files
mesh-lab/scenarios/adopted-store-cross-node.yml
jschoubben 155800bc9a A two-node bed: a joined node opening the adopted broker over the overlay (055)
anchor raises the foundation and adopts lavinmq; node2 joins and runs amqp-ping,
which requires amqp and provides nothing. Asserts the grant names anchor.internal,
a vhost is minted on the far broker, and the consumer stays up. Currently RED: it
caught two real gaps — the broker's amqps port not in the firewall (fixed in
mesh-catalog) and the module broker URL using the public address not the overlay
(issue 055, needs a controller fix). Goes green when 055 is fixed.

https://claude.ai/code/session_01D6qtiYU3P9jk3pnAXyAFyx
2026-09-17 01:01:54 +02:00

49 lines
1.7 KiB
YAML

# Cross-node reachability of the ADOPTED store/broker (novox/hq issue 055).
#
# The foundation (store, broker, control) lives on `anchor`, the control-node, and the `lavinmq`
# module is adopted THERE — so `mesh-broker` is the one shared broker. `node2` joins the mesh and
# runs ONLY `amqp-ping`, a consumer that requires `amqp`. Nothing on node2 provides amqp; the grant
# it gets must resolve to the broker on anchor, reached over the overlay by anchor's `.internal`
# name. This is the shape no other bed has: a consumer on a different node than the provider.
scenario: adopted-store-cross-node
segments:
hosting:
kind: public
cidr: [192.0.2.0/24]
machines:
# The control-node: foundation + the adopted broker's provisioner. mesh-controller:development is
# the foundation's control-plane image; mesh-runtime-lavinmq runs the lavinmq module's provisioner
# that mints the consumer's vhost on the adopted mesh-broker.
anchor:
at: { segment: hosting, address: [192.0.2.10] }
egress: true
inbound: allow
memory: 4GiB
cpus: 4
disk: 20GiB
images:
- mesh-controller:development
- mesh-runtime-lavinmq:development
# The joined node: the amqp consumer, and nothing that provides amqp.
node2:
at: { segment: hosting, address: [192.0.2.20] }
egress: true
inbound: allow
memory: 4GiB
cpus: 4
disk: 20GiB
images:
- mesh-runtime-amqp-ping:development
# Every image the scenario stocks (validated against the per-machine lists above).
images:
- mesh-controller:development
- mesh-runtime-lavinmq:development
- mesh-runtime-amqp-ping:development
# Place the host binary and the stocked runtimes on every machine (as whole-mesh-novox does).
place:
all: [host, runtime]