{ "module": "mesh-build-image", "version": "1", "moved": true, "runs-as": "mesh-build-image", "capabilities": [ "package-manager", "user-namespaces" ], "state": [ "keys", "steps" ], "claims": [ { "name": "node-build-image", "scope": "node", "serves": ["current", "pause", "resume"] } ], "config": { "capacity": { "type": "string", "description": "How many asks of the image 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_image_fetch", "build_image_build", "build_image_copy", "build_image_release", "build_image_step", "build_image_steps", "build_image_status", "build_image_health" ], "requires": [ "forge-account", "rootless-image-build", "artifact-store" ], "own-secrets": { "broker": "${dir:state}/broker" }, "secrets-owner": "mesh-build-image", "runtime-health": { "kind": "tool", "tool": "build_image_health", "interval": "60s", "timeout": "10s", "looks": 2, "grace": "60s" }, "resources": [ { "id": "account", "type": "user", "name": "mesh-build-image", "shell": "/usr/bin/nologin", "home": "/var/lib/mesh-build-image" }, { "id": "state", "type": "directory", "mode": "0700", "owner": "mesh-build-image", "place": ".", "unknown": "program" }, { "id": "settings", "trusted": false, "type": "file", "path": "${dir:state}/settings.json", "mode": "0600", "owner": "mesh-build-image", "takes-config": ["capacity"], "merge": "json", "template": "files/settings.json" }, { "id": "work", "type": "directory", "path": "/var/lib/mesh-build-image-work", "mode": "0700", "owner": "mesh-build-image", "unknown": "program" }, { "id": "store", "type": "directory", "path": "/var/lib/mesh-build-image-store", "mode": "0700", "owner": "mesh-build-image", "unknown": "program" }, { "id": "ssh-dir", "type": "directory", "path": "${dir:state}/.ssh", "mode": "0700", "owner": "mesh-build-image", "unknown": "program" }, { "id": "ssh-config", "type": "file", "path": "${dir:ssh-dir}/config", "owner": "mesh-build-image", "mode": "0600", "template": "files/forge" }, { "id": "known-hosts", "type": "file", "path": "${dir:ssh-dir}/known_hosts", "owner": "mesh-build-image", "mode": "0644", "template": "files/known_hosts" }, { "id": "git-config", "type": "file", "path": "${dir:state}/.config/git/config", "owner": "mesh-build-image", "mode": "0644", "template": "files/gitconfig" }, { "id": "registry", "type": "file", "path": "${dir:state}/registry", "owner": "mesh-build-image", "mode": "0644", "template": "files/registry" }, { "id": "git", "type": "package", "package": "git" }, { "id": "openssh", "type": "package", "package": "openssh" } ], "build": { "artifacts": [ { "name": "tools", "kind": "bundle", "language": "go", "system": "arch", "from": "cmd/mesh-build-image", "binary": "mesh-build-image", "loads": [ "mesh-build-image" ] }, { "name": "files", "kind": "archive", "from": "files" } ] } }