diff --git a/modules/mesh-control/module.json b/modules/mesh-control/module.json new file mode 100644 index 0000000..1e65f17 --- /dev/null +++ b/modules/mesh-control/module.json @@ -0,0 +1,69 @@ +{ + "module": "mesh-control", + "version": "1", + "slug": "control", + "capabilities": [ + "container-runtime" + ], + "claims": [ + { + "name": "the-control-plane", + "scope": "mesh" + } + ], + "own-secrets": { + "inventory": "/var/lib/mesh/mesh-control/inventory", + "identity": "/var/lib/mesh/mesh-control/identity", + "licences": "/var/lib/mesh/mesh-control/licences", + "broker": "/var/lib/mesh/mesh-control/broker", + "broker-management": "/var/lib/mesh/mesh-control/broker-management" + }, + "resources": [ + { + "id": "mesh-state", + "type": "directory", + "path": "/var/lib/mesh/mesh-control", + "mode": "0700" + }, + { + "id": "broker-env", + "type": "file", + "path": "/var/lib/mesh/mesh-control/broker.env", + "mode": "0600", + "content": "MESH_BROKER_AMQP=${secret:broker}\nMESH_BROKER_MANAGEMENT=${secret:broker-management}\nMESH_BROKER_ADDRESS=${machine:at}:5671\n" + }, + { + "id": "server", + "type": "container", + "name": "mesh-control", + "image": "mesh-control@sha256:0000000000000000000000000000000000000000000000000000000000000000", + "network": "host", + "args": [ + "serve" + ], + "env-file": [ + "/var/lib/mesh/mesh-control/broker.env" + ], + "env": { + "MESH_STORE_INVENTORY_FILE": "/run/secrets/inventory", + "MESH_STORE_IDENTITY_FILE": "/run/secrets/identity", + "MESH_STORE_LICENCES_FILE": "/run/secrets/licences", + "MESH_BROKER_CERTIFICATE": "/broker-tls/tls.crt" + }, + "volumes": [ + "mesh-broker-tls:/broker-tls:ro", + "/var/lib/mesh/mesh-control/inventory:/run/secrets/inventory:ro", + "/var/lib/mesh/mesh-control/identity:/run/secrets/identity:ro", + "/var/lib/mesh/mesh-control/licences:/run/secrets/licences:ro" + ], + "restart-on": [ + "needs-inventory", + "needs-identity", + "needs-licences", + "needs-broker", + "needs-broker-management", + "broker-env" + ] + } + ] +}