{ "module": "lab", "version": "1", "capabilities": [ "container-runtime", "virtualisation" ], "requires": [ "npm-package-registry" ], "contributes": { "npm-package-registry": { "access": "read" } }, "binds": { "npm-package-registry": "${dir:state}/package-registry.json" }, "secrets": { "npm-package-registry": "${dir:state}/package-registry.secret" }, "data": { "own": [ { "id": "work", "path": "${dir:work}", "class": "cache", "why": "the lab's runs, each thrown away" } ] }, "config": { "forge": { "type": "string", "description": "The forge the lab's machines take their packages from, as its address: the operator's, with no default (novox/hq ADR 0112).", "trusted": true, "required": true } }, "resources": [ { "id": "state", "type": "directory", "mode": "0700", "place": "." }, { "id": "work", "type": "directory", "path": "/var/lib/mesh-lab-runs", "mode": "0700" }, { "id": "runtime-env", "type": "file", "path": "${dir:state}/lab.env", "mode": "0600", "template": "files/lab.env" }, { "id": "git", "type": "package", "package": "git" }, { "id": "make", "type": "package", "package": "make" }, { "id": "python", "type": "package", "package": "python" }, { "id": "file", "type": "package", "package": "file" }, { "id": "iproute2", "type": "package", "package": "iproute2" }, { "id": "npm", "type": "package", "package": "npm" }, { "id": "go", "type": "package", "package": "go" }, { "id": "incus", "type": "package", "package": "incus" } ], "build": { "artifacts": [ { "name": "code", "kind": "bundle", "language": "typescript", "entrypoints": [ "tools/index.js" ], "loads": [ "tools/index.js" ], "env": { "MESH_LAB_WORK": "${dir:work}", "MESH_LAB_ENV_FILE": "${dir:state}/lab.env", "MESH_LAB_FORGE_BINDING": "${dir:state}/package-registry.json", "MESH_LAB_FORGE_SECRET": "${dir:state}/package-registry.secret" } }, { "name": "files", "kind": "archive", "from": "files" } ] } }