{ "module": "lavinmq", "version": "1", "provides": [ { "name": "amqp", "scope": "mesh" } ], "capabilities": [ "container-runtime" ], "emits": [ "module.lavinmq.amqp.provisioned", "module.lavinmq.amqp.deprovisioned" ], "consumes": [ "module.lavinmq.amqp.provisioned", "module.lavinmq.amqp.deprovisioned" ], "serves": { "amqp": { "port": 5672 } }, "receives": { "amqp": "/var/lib/lavinmq-module/grants/mesh.json" }, "grants": { "amqp": "/var/lib/lavinmq-module/grants" }, "own-secrets": { "default": "/var/lib/lavinmq-module/default.secret", "broker": "/var/lib/mesh/lavinmq/broker" }, "listens": [ { "port": 5672, "protocol": "tcp", "from": "mesh", "why": "modules on any machine that were granted a queue" } ], "resources": [ { "id": "mesh-state", "type": "directory", "path": "/var/lib/mesh/lavinmq", "mode": "0700" }, { "id": "state", "type": "directory", "path": "/var/lib/lavinmq-module", "mode": "0700" }, { "id": "grants-dir", "type": "directory", "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", "image": "mesh-runtime-lavinmq@sha256:0000000000000000000000000000000000000000000000000000000000000000", "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", "image": "cloudamqp/lavinmq@sha256:3eb54c12916d700a978c2ea86e6362cd4974b0e3189508718006d4e6d341246b", "network": "lavinmq", "ports": [ "5672" ], "volumes": [ "/services/lavinmq/data:/var/lib/lavinmq", "/var/lib/lavinmq-module/lavinmq.ini:/etc/lavinmq/lavinmq.ini:ro" ], "args": [ "--config", "/etc/lavinmq/lavinmq.ini" ] }, { "id": "runtime", "type": "container", "name": "mesh-lavinmq", "image": "mesh-runtime-lavinmq@sha256:0000000000000000000000000000000000000000000000000000000000000000", "network": "lavinmq", "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" ], "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" } } ] }