{ "module": "mesh-build-node", "version": "1", "moved": true, "runs-as": "mesh-build-node", "capabilities": [ "package-manager", "user-namespaces" ], "state": [ "toolchains", "keys", "steps" ], "claims": [ { "name": "node-build-node", "scope": "node", "serves": ["current", "pause", "resume"] } ], "config": { "capacity": { "type": "string", "description": "How many asks of the Node build seat this module runs at once on each node, as node=asks pairs separated by commas, such as shanks=3,ace=2 (novox/hq ADR 0525 ยง5); a node set to 0 pulls nothing, a node not named runs one at a time. The control-node and the laptop build nothing.", "pattern": "|[a-z0-9_-]+=[0-9]+(,[a-z0-9_-]+=[0-9]+)*", "default": "shanks=3,ace=2,g14=0,novox=0" } }, "tools": [ "build_node_fetch", "build_node_test", "build_node_build", "build_node_release", "build_node_step", "build_node_steps", "build_node_toolchains", "build_node_status", "build_node_health" ], "streams": [ { "name": "toolchains-node", "events": [ "toolchain.**" ] } ], "requires": [ "forge-account", "npm-package-registry", "node-toolchain", "artifact-store", "node-tools" ], "contributes": { "npm-package-registry": { "access": "write" } }, "binds": { "npm-package-registry": "${dir:state}/package-registry.json" }, "secrets": { "npm-package-registry": "${dir:state}/package-registry.secret" }, "own-secrets": { "broker": "${dir:state}/broker" }, "secrets-owner": "mesh-build-node", "runtime-health": { "kind": "tool", "tool": "build_node_health", "interval": "60s", "timeout": "10s", "looks": 2, "grace": "60s" }, "resources": [ { "id": "account", "type": "user", "name": "mesh-build-node", "shell": "/usr/bin/nologin", "home": "/var/lib/mesh-build-node" }, { "id": "state", "type": "directory", "mode": "0700", "owner": "mesh-build-node", "place": ".", "unknown": "program" }, { "id": "settings", "trusted": false, "type": "file", "path": "${dir:state}/settings.json", "mode": "0600", "owner": "mesh-build-node", "takes-config": ["capacity"], "merge": "json", "template": "files/settings.json" }, { "id": "work", "type": "directory", "path": "/var/lib/mesh-build-node-work", "mode": "0700", "owner": "mesh-build-node", "unknown": "program" }, { "id": "cache", "type": "directory", "path": "/var/lib/mesh-build-node-cache", "mode": "0711", "owner": "mesh-build-node", "unknown": "program" }, { "id": "ssh-dir", "type": "directory", "path": "${dir:state}/.ssh", "mode": "0700", "owner": "mesh-build-node", "unknown": "program" }, { "id": "ssh-config", "type": "file", "path": "${dir:ssh-dir}/config", "owner": "mesh-build-node", "mode": "0600", "template": "files/forge" }, { "id": "known-hosts", "type": "file", "path": "${dir:ssh-dir}/known_hosts", "owner": "mesh-build-node", "mode": "0644", "template": "files/known_hosts" }, { "id": "git-config", "type": "file", "path": "${dir:state}/.config/git/config", "owner": "mesh-build-node", "mode": "0644", "template": "files/gitconfig" }, { "id": "registry", "type": "file", "path": "${dir:state}/registry", "owner": "mesh-build-node", "mode": "0644", "template": "files/registry" }, { "id": "toolchain-dir", "type": "archive", "path": "${dir:state}/toolchain", "owner": "mesh-build-node", "artifact": "toolchain", "unknown": "program" }, { "id": "git", "type": "package", "package": "git" }, { "id": "openssh", "type": "package", "package": "openssh" }, { "id": "bubblewrap", "type": "package", "package": "bubblewrap" } ], "build": { "artifacts": [ { "name": "tools", "kind": "bundle", "language": "go", "system": "arch", "from": "cmd/mesh-build-node", "binary": "mesh-build-node", "loads": [ "mesh-build-node" ] }, { "name": "files", "kind": "archive", "from": "files" }, { "name": "toolchain", "kind": "archive", "from": "toolchain" } ] } }