From 8ccc6762d4e47c533c40593dee4ceb89bca2f454 Mon Sep 17 00:00:00 2001 From: jochen Date: Sat, 3 Oct 2026 11:43:01 +0200 Subject: [PATCH] Retire builder: the build machine is the build-agent on every machine (hq ADR 0190) build-agent holds node-build-agent on all four machines and the controller asks that seat; the one-holder builder is unassigned and forgotten. Proven live before this: a catalogue module built on a workstation's agent (step-ca, 2026-10-03 09:35). --- modules/builder/Dockerfile | 25 ----------- modules/builder/module.json | 88 ------------------------------------- 2 files changed, 113 deletions(-) delete mode 100644 modules/builder/Dockerfile delete mode 100644 modules/builder/module.json diff --git a/modules/builder/Dockerfile b/modules/builder/Dockerfile deleted file mode 100644 index 5b2f18f..0000000 --- a/modules/builder/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -ARG GO_BASE -ARG ALPINE_BASE -# builder's own image: the build machine itself, compiled into a container. -# -# **The source is not vendored here.** builder's actual code — cmd/mesh-builder, internal/builder, -# internal/catalogue — lives in the mesh-controller repository, the same control plane it is one -# half of. This module ships the packaging, not a second copy of the source, so the build context -# is the mesh-controller repository root (declared under build.artifacts[].context), and this -# Dockerfile compiles ./cmd/mesh-builder from it — the same shape route-proxy already uses for the -# same reason. -FROM ${GO_BASE} AS build -WORKDIR /src -COPY go.mod go.sum ./ -RUN go mod download -COPY . . -RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -o /mesh-builder ./cmd/mesh-builder - -# Unlike mesh-controller's own FROM scratch (ADR 0006: nothing to audit but one binary), the build -# machine's whole job is shelling out to git and docker — it needs a real userland to do that in, -# not a second copy of either tool vendored into this image. apk installs both from the base's own -# packages, not fetched on its own at build time. -FROM ${ALPINE_BASE} -RUN apk add --no-cache docker-cli git -COPY --from=build /mesh-builder /usr/local/bin/mesh-builder -ENTRYPOINT ["/usr/local/bin/mesh-builder"] diff --git a/modules/builder/module.json b/modules/builder/module.json deleted file mode 100644 index 81f6fc6..0000000 --- a/modules/builder/module.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "module": "builder", - "version": "1", - "capabilities": [ - "container-runtime" - ], - "claims": [ - { - "name": "mesh-build-machine", - "scope": "mesh" - } - ], - "requires": [ - "artifact-store", - "npm-package-registry" - ], - "binds": { - "npm-package-registry": "${dir:mesh-state}/package-registry.json" - }, - "secrets": { - "npm-package-registry": "${dir:mesh-state}/package-registry.secret" - }, - "own-secrets": { - "broker": "${dir:mesh-state}/broker" - }, - "resources": [ - { - "id": "mesh-state", - "type": "directory", - "mode": "0700", - "place": "mesh" - }, - { - "id": "workspace", - "type": "directory", - "mode": "0700" - }, - { - "id": "builder-env", - "type": "file", - "path": "${dir:mesh-state}/builder.env", - "mode": "0600", - "content": "MESH_BROKER_FILE=/run/mesh/broker\nMESH_NODE=${machine:name}\nMESH_REGISTRY=${bound:artifact-store:at}:${bound:artifact-store:port}\nMESH_PACKAGE_BINDING=/run/mesh/package-registry.json\nMESH_NPM_TOKEN_FILE=/run/mesh/package-registry.secret\nMESH_WORKSPACE=${dir:workspace}\n" - }, - { - "id": "server", - "type": "container", - "name": "mesh-builder", - "artifact": "server", - "env-file": [ - "${dir:mesh-state}/builder.env" - ], - "volumes": [ - "${dir:mesh-state}:/run/mesh:ro", - "${dir:workspace}:${dir:workspace}", - "/var/run/docker.sock:/var/run/docker.sock" - ], - "restart-on": [ - "builder-env" - ], - "network": "host" - } - ], - "build": { - "artifacts": [ - { - "name": "server", - "kind": "image", - "from": "Dockerfile", - "context": { - "seat": "git", - "repository": "novox/mesh-controller", - "ref": "main" - } - } - ], - "on": [ - { - "arg": "GO_BASE", - "image": "golang@sha256:8ac98ca534ac3f51e1f420a1dd2c15e74c75cfa0f23f3ad27eb5d7236c349a0c" - }, - { - "arg": "ALPINE_BASE", - "image": "alpine@sha256:d9e853e87e55526f6b2917df91a2115c36dd7c696a35be12163d44e6e2a4b6bc" - } - ] - } -} -- 2.54.0