# 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]