The claim comes back for the third and last time. The store's row says the bus seat answers for `amqp`, lavinmq provides `amqp`, and with mesh-controller#89 the check that judges a claim reads that row instead of a copy compiled into the build machine. So this is accepted for the reason it should have been all along. Restores the holder the controller composes its own bus address through, which is what ends tonight's crash loop. nats takes the seat over when the cutover is done deliberately, not because the seat emptied itself.
152 lines
3.3 KiB
JSON
152 lines
3.3 KiB
JSON
{
|
|
"module": "lavinmq",
|
|
"version": "1",
|
|
"provides": [
|
|
{
|
|
"name": "amqp",
|
|
"scope": "mesh"
|
|
}
|
|
],
|
|
"claims": [
|
|
{
|
|
"name": "mesh-broker",
|
|
"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"
|
|
}
|
|
]
|
|
}
|