{ "module": "grafana", "version": "1", "emits": [ "module.grafana.alert.firing" ], "own-secrets": { "admin": "/var/lib/grafana-module/admin.secret", "broker": "/var/lib/mesh/grafana/broker" }, "capabilities": [ "container-runtime" ], "listens": [ { "port": 3000, "protocol": "tcp", "from": "mesh", "why": "the dashboards. Also 3000 inside, like the forge - which is the mesh's port assignment earning its keep" } ], "resources": [ { "id": "mesh-state", "type": "directory", "path": "/var/lib/mesh/grafana", "mode": "0700" }, { "id": "state", "type": "directory", "path": "/var/lib/grafana-module", "mode": "0700" }, { "id": "server-env", "type": "file", "path": "/var/lib/grafana-module/server.env", "mode": "0600", "content": "GF_SECURITY_ADMIN_PASSWORD=${secret:admin}\n" }, { "id": "data", "type": "directory", "path": "/services/grafana/data", "mode": "0700", "owner": "472:472" }, { "id": "server", "type": "container", "name": "grafana", "image": "grafana/grafana@sha256:f772d434e8fab0049deb2b1b30abd43342bcfca1537614aa8d36080232cf4283", "env-file": [ "/var/lib/grafana-module/server.env" ], "ports": [ "3000" ], "volumes": [ "/services/grafana/data:/var/lib/grafana" ] }, { "id": "runtime-config", "type": "file", "path": "/var/lib/mesh/grafana/config.json", "mode": "0600", "content": "{}\n", "merge": "json" }, { "id": "runtime", "type": "container", "name": "mesh-grafana", "image": "mesh-runtime-grafana@sha256:0000000000000000000000000000000000000000000000000000000000000000", "network": "host", "volumes": [ "/var/lib/mesh/grafana/broker:/run/secrets/broker:ro", "/var/lib/mesh/grafana/config.json:/run/config/config.json:ro" ], "env": { "MESH_BROKER_FILE": "/run/secrets/broker", "MESH_GRAFANA_URL": "http://127.0.0.1:3000", "MESH_GRAFANA_CONFIG_FILE": "/run/config/config.json" }, "restart-on": [ "runtime-config" ] } ] }