{ "module": "route-adapter", "version": "1", "moved": true, "slug": "radapt", "capabilities": [ "container-runtime" ], "provides": [ { "name": "route", "scope": "mesh", "identity": false } ], "serves": { "route": {} }, "receives": { "route": "${dir:routes-dir}/mesh.json" }, "accesses": [ { "id": "dynamic", "path": "/services/traefik/dynamic", "mode": "read-write" } ], "config": { "dynamic": { "type": "string", "description": "The directory the predecessor proxy's file provider reads, on this machine, as an absolute path.", "pattern": "/.*", "trusted": true, "default": "/services/traefik/dynamic" }, "entrypoint": { "type": "string", "description": "The predecessor proxy's entry point it serves public HTTPS on, by its own name.", "trusted": true, "default": "websecure" }, "certificate-resolver": { "type": "string", "description": "The predecessor proxy's certificate resolver, by its own name.", "trusted": true, "default": "le" }, "machine": { "type": "string", "description": "How the predecessor's proxy reaches this machine: a host name or an address.", "trusted": true, "default": "host.docker.internal" } }, "resources": [ { "id": "state", "type": "directory", "mode": "0700", "place": "." }, { "id": "routes-dir", "type": "directory", "path": "/var/lib/route-adapter/routes", "mode": "0700" }, { "id": "config", "type": "file", "path": "${dir:state}/config.json", "takes-config": ["dynamic", "entrypoint", "certificate-resolver", "machine"], "merge": "json", "mode": "0644", "template": "files/config.json" }, { "id": "adapt", "type": "process", "name": "route-adapter", "artifact": "code", "run": [ "node", "index.js" ], "run-once": true, "env": { "MESH_RECEIVES": "${dir:routes-dir}/mesh.json", "MESH_ROUTE_ADAPTER_CONFIG": "${dir:state}/config.json" }, "restart-on": [ "received-route", "config" ] } ], "build": { "artifacts": [ { "name": "code", "kind": "bundle", "language": "typescript", "entrypoints": [ "index.js" ] }, { "name": "provider", "kind": "bundle", "language": "go", "system": "arch", "from": "cmd/route-provider", "binary": "route-provider", "loads": [ "route-provider" ] }, { "name": "files", "kind": "archive", "from": "files" } ] }, "state": [ "bound" ], "reads": [ "mesh-controller.assignments" ] }