Files
jschoubben 98e9e62fce Issues 060 resolved, 064 opened; 057/058 on this branch too
060: 44 of 70 modules now mesh-buildable (was 8) — the mechanical
majority, proven by direct builds and the bed. The structural
remainders: external-dependency fetch (new issue 064) and route-proxy's
cross-repo build context. 064 records the build environment's isolation
from public npm and Docker Hub.
2026-09-18 02:52:36 +02:00

2.3 KiB

Diagnosis — 2026-09-18

The gap was mechanical for most of the catalogue and structural for a few.

The mechanical part (fixed). 44 of 70 modules now carry a build section and a Dockerfile mirroring the eight that already had one: two named bases (build and runtime), the module's own source compiled against the sdk in the base, and every serve-time entrypoint named in the runtime image so tools serve, events flow, and a provider's provisioner reconciles in the same process (the convention hq issue 061 settled — postgres, gitea and lavinmq were retrofitted to it from running their provisioner as a separate args command). Proven end to end: redis, keycloak, mongodb, mosquitto and openai-consumer build through the mesh's own builder from their own directory; the built-store-cross-node bed builds and runs the retrofitted lavinmq and postgres.

The structural part (deferred, each with an owner).

  • Three modules need an artifact the mesh build environment cannot fetch — an npm package (model-usage: pg; anthropic-manager: tweetnacl) or a binary from a public image (minio: mc). The build's npm and container runtime reach the mesh's own registry, not the public one; apt works, npm and image pulls do not. This is its own question — issue 064.
  • route-proxy's build context is the mesh-controller repository, not its own module directory (it ships the packaging of a proxy whose canonical source lives with the contract). The build section names a Dockerfile relative to the module; a cross-repository context is a shape it cannot yet express. Deferred pending a design decision on cross-repo build inputs.

The remaining modules are exempt rather than unbuilt: the foundation trio (builder, mesh-controller, distribution — built by the foundation's own path, and distribution cannot build through the store it provides, ADR 0072/issue 029), and the upstream-image-only modules that run a stock image and carry no code of their own.

Located in: mesh-catalog (the manifests and Dockerfiles), with the convention enforced by mesh-controller's builder. Resolved for the mechanical majority; the two structural remainders are tracked as issue 064 and the route-proxy cross-repo deferral.