{ "module": "redis", "version": "1", "provides": [ { "name": "redis-cache", "scope": "mesh" } ], "requires": [ "secret" ], "capabilities": [ "container-runtime" ], "emits": [ "module.redis.cache.provisioned", "module.redis.cache.deprovisioned" ], "consumes": [ "module.redis.cache.provisioned", "module.redis.cache.deprovisioned" ], "serves": { "redis-cache": { "port": 6379 } }, "receives": { "redis-cache": "/var/lib/redis-module/grants/mesh.json" }, "grants": { "redis-cache": "/var/lib/redis-module/grants" }, "secrets": { "secret": "/var/lib/redis-module/default.secret" }, "own-secrets": { "broker": "/var/lib/mesh/redis/broker" }, "listens": [ { "port": 6379, "protocol": "tcp", "from": "mesh", "why": "modules on any machine that were granted a cache" } ], "resources": [ { "id": "mesh-state", "type": "directory", "path": "/var/lib/mesh/redis", "mode": "0700" }, { "id": "state", "type": "directory", "path": "/var/lib/redis-module", "mode": "0700" }, { "id": "grants-dir", "type": "directory", "path": "/var/lib/redis-module/grants", "mode": "0700" }, { "id": "data", "type": "directory", "path": "/services/redis/data", "mode": "0700", "owner": "999:999" }, { "id": "server-conf", "type": "file", "path": "/var/lib/redis-module/redis.conf", "mode": "0600", "content": "requirepass ${secret:secret}\nappendonly yes\ndir /data\n", "owner": "999:999" }, { "id": "net", "type": "network", "name": "redis" }, { "id": "server", "type": "container", "name": "redis", "image": "redis@sha256:ff02b58f971e7d7d156a1267e283fcbbeee91773b6aa36c49dac28ecfe28eadf", "network": "redis", "ports": [ "6379" ], "volumes": [ "/services/redis/data:/data", "/var/lib/redis-module/redis.conf:/etc/redis/redis.conf:ro" ], "args": [ "/etc/redis/redis.conf" ], "restart-on": [ "server-conf" ] }, { "id": "runtime", "type": "container", "name": "mesh-redis", "network": "redis", "volumes": [ "/var/lib/mesh/redis/broker:/run/secrets/broker:ro", "/var/lib/redis-module/grants:/var/lib/redis-module/grants:ro", "/var/lib/redis-module/default.secret:/run/secrets/default:ro" ], "env": { "MESH_BROKER_FILE": "/run/secrets/broker", "MESH_RECEIVES": "/var/lib/redis-module/grants/mesh.json", "MESH_PROVISION_REDIS": "redis:6379", "MESH_PROVISION_PASSWORD_FILE": "/run/secrets/default" }, "artifact": "runtime" } ], "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" } ] } }