From 5e4dc3748e338050751498dc184837a06568ff1c Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 16 Sep 2026 21:24:13 +0200 Subject: [PATCH] Phase 3.2: the lavinmq module adopts mesh-broker instead of raising its own MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit server is now the container the foundation raised — name mesh-broker, the same pinned upstream lavinmq image, the same TLS args, ports and volumes — so the applier adopts it in place. The second server, the lavinmq.ini bootstrap and the module's own network are gone. The provisioner is host-networked to the broker's loopback management (127.0.0.1:15672) and authenticates as lavinmq's default guest, which the foundation broker runs with; the mesh bus stays on the / vhost, a vhost-per-consumer beside it. One lavinmq now. Issue 051 (WBS 3.2). Claude-Session: https://claude.ai/code/session_01D6qtiYU3P9jk3pnAXyAFyx --- modules/lavinmq/module.json | 60 +++++++++---------------------------- 1 file changed, 14 insertions(+), 46 deletions(-) diff --git a/modules/lavinmq/module.json b/modules/lavinmq/module.json index 7a533aa..ba03a4d 100644 --- a/modules/lavinmq/module.json +++ b/modules/lavinmq/module.json @@ -30,7 +30,6 @@ "amqp": "/var/lib/lavinmq-module/grants" }, "own-secrets": { - "default": "/var/lib/lavinmq-module/default.secret", "broker": "/var/lib/mesh/lavinmq/broker" }, "listens": [ @@ -60,54 +59,24 @@ "path": "/var/lib/lavinmq-module/grants", "mode": "0700" }, - { - "id": "data", - "type": "directory", - "path": "/services/lavinmq/data", - "mode": "0700" - }, - { - "id": "net", - "type": "network", - "name": "lavinmq" - }, - { - "id": "bootstrap", - "type": "container", - "name": "lavinmq-bootstrap", - "artifact": "runtime", - "run-once": true, - "volumes": [ - "/var/lib/lavinmq-module:/var/lib/lavinmq-module", - "/var/lib/lavinmq-module/default.secret:/run/secrets/default:ro" - ], - "env": { - "MESH_PROVISION_ADMIN_USER": "mesh-admin", - "MESH_PROVISION_PASSWORD_FILE": "/run/secrets/default", - "MESH_LAVINMQ_CONFIG_OUT": "/var/lib/lavinmq-module/lavinmq.ini", - "MESH_LAVINMQ_DATA_DIR": "/var/lib/lavinmq" - }, - "args": [ - "run", - "/app/modules/lavinmq/dist/bootstrap/index.js" - ] - }, { "id": "server", "type": "container", - "name": "lavinmq", + "name": "mesh-broker", "image": "cloudamqp/lavinmq@sha256:3eb54c12916d700a978c2ea86e6362cd4974b0e3189508718006d4e6d341246b", - "network": "lavinmq", "ports": [ - "5672" + "5671:5671", + "5672:5672", + "127.0.0.1:15672:15672" ], "volumes": [ - "/services/lavinmq/data:/var/lib/lavinmq", - "/var/lib/lavinmq-module/lavinmq.ini:/etc/lavinmq/lavinmq.ini:ro" + "mesh-broker-data:/var/lib/lavinmq", + "mesh-broker-tls:/tls:ro" ], "args": [ - "--config", - "/etc/lavinmq/lavinmq.ini" + "--amqps-port=5671", + "--cert=/tls/tls.crt", + "--key=/tls/tls.key" ] }, { @@ -115,18 +84,17 @@ "type": "container", "name": "mesh-lavinmq", "artifact": "runtime", - "network": "lavinmq", + "network": "host", "volumes": [ "/var/lib/mesh/lavinmq/broker:/run/secrets/broker:ro", - "/var/lib/lavinmq-module/grants:/var/lib/lavinmq-module/grants:ro", - "/var/lib/lavinmq-module/default.secret:/run/secrets/default:ro" + "/var/lib/lavinmq-module/grants:/var/lib/lavinmq-module/grants:ro" ], "env": { "MESH_BROKER_FILE": "/run/secrets/broker", "MESH_RECEIVES": "/var/lib/lavinmq-module/grants/mesh.json", - "MESH_PROVISION_LAVINMQ": "http://lavinmq:15672", - "MESH_PROVISION_ADMIN_USER": "mesh-admin", - "MESH_PROVISION_PASSWORD_FILE": "/run/secrets/default" + "MESH_PROVISION_LAVINMQ": "http://127.0.0.1:15672", + "MESH_PROVISION_ADMIN_USER": "guest", + "MESH_LAVINMQ_ADMIN_PASSWORD": "guest" } } ],