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
49 lines
1.7 KiB
YAML
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]
|