Putting the claim back was wrong on its own terms. `mesh-broker` delivers `mesh-bus`, and a seat that delivers a provision may only be held by a module that provides it — so the claim is refused at registration: lavinmq claims mesh-broker, whose holder answers for "mesh-bus", and lavinmq does not provide "mesh-bus" at mesh scope Which means the merged claim does not restore the holder, it stops lavinmq being built at all. Removed again. The seat being empty is still the live fault, and it has only one valid answer: the holder must provide `mesh-bus`, and the module that does is nats. Recorded against the rollout, because it moves a step that was optional into the critical path.
146 lines
3.2 KiB
JSON
146 lines
3.2 KiB
JSON
{
|
|
"module": "lavinmq",
|
|
"version": "1",
|
|
"provides": [
|
|
{
|
|
"name": "amqp",
|
|
"scope": "mesh"
|
|
}
|
|
],
|
|
"capabilities": [
|
|
"container-runtime"
|
|
],
|
|
"emits": [
|
|
"amqp.provisioned",
|
|
"amqp.deprovisioned"
|
|
],
|
|
"consumes": [
|
|
"lavinmq.amqp.provisioned",
|
|
"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": {
|
|
"admin": "/var/lib/lavinmq-module/admin.secret",
|
|
"broker": "/var/lib/mesh/lavinmq/broker"
|
|
},
|
|
"listens": [
|
|
{
|
|
"port": 5671,
|
|
"protocol": "tcp",
|
|
"from": "mesh",
|
|
"why": "the mesh bus \u2014 amqps, every module's events and the control plane, reached over the overlay"
|
|
},
|
|
{
|
|
"port": 5672,
|
|
"protocol": "tcp",
|
|
"from": "mesh",
|
|
"why": "modules on any machine that were granted a queue"
|
|
}
|
|
],
|
|
"guards": [
|
|
15672
|
|
],
|
|
"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": "broker-data",
|
|
"type": "directory",
|
|
"path": "/var/lib/mesh-broker",
|
|
"mode": "0700"
|
|
},
|
|
{
|
|
"id": "server",
|
|
"type": "container",
|
|
"name": "mesh-broker",
|
|
"image": "cloudamqp/lavinmq@sha256:3eb54c12916d700a978c2ea86e6362cd4974b0e3189508718006d4e6d341246b",
|
|
"ports": [
|
|
"5671:5671",
|
|
"5672:5672",
|
|
"127.0.0.1:15672:15672"
|
|
],
|
|
"volumes": [
|
|
"/var/lib/mesh-broker:/var/lib/lavinmq",
|
|
"/var/lib/mesh-broker-tls:/tls:ro"
|
|
],
|
|
"args": [
|
|
"--amqps-port=5671",
|
|
"--cert=/tls/tls.crt",
|
|
"--key=/tls/tls.key"
|
|
]
|
|
},
|
|
{
|
|
"id": "runtime",
|
|
"type": "container",
|
|
"name": "mesh-lavinmq",
|
|
"artifact": "runtime",
|
|
"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/admin.secret:/run/secrets/admin:ro"
|
|
],
|
|
"env": {
|
|
"MESH_BROKER_FILE": "/run/secrets/broker",
|
|
"MESH_RECEIVES": "/var/lib/lavinmq-module/grants/mesh.json",
|
|
"MESH_PROVISION_LAVINMQ": "http://127.0.0.1:15672",
|
|
"MESH_PROVISION_ADMIN_USER": "guest",
|
|
"MESH_PROVISION_PASSWORD_FILE": "/run/secrets/admin"
|
|
}
|
|
}
|
|
],
|
|
"build": {
|
|
"on": [
|
|
{
|
|
"arg": "BUILD_BASE",
|
|
"module": "mesh-tools",
|
|
"artifact": "build"
|
|
},
|
|
{
|
|
"arg": "RUNTIME_BASE",
|
|
"module": "mesh-tools",
|
|
"artifact": "runtime"
|
|
}
|
|
],
|
|
"artifacts": [
|
|
{
|
|
"name": "runtime",
|
|
"kind": "image",
|
|
"from": "Dockerfile"
|
|
}
|
|
]
|
|
},
|
|
"accesses": [
|
|
{
|
|
"path": "/var/lib/mesh-broker-tls",
|
|
"mode": "read"
|
|
}
|
|
]
|
|
}
|