Name the build agent where genesis needs the module that builds (issue 596) #93

Merged
mesh-admin merged 1 commits from fix/596-genesis-names-the-build-agent into main 2026-10-13 00:57:04 +00:00
4 changed files with 5 additions and 5 deletions
@@ -172,7 +172,7 @@ before(async () => {
node: ANCHOR,
installer: installer as string,
catalogDir: catalogue,
catalogueModules: ["distribution", "builder", "postgres"],
catalogueModules: ["distribution", "build-agent", "postgres"],
bundleTemplate: foundationBundle(bundle, []),
registry: REGISTRY,
source: forge("mesh-controller"),
+1 -1
View File
@@ -112,7 +112,7 @@ export async function genesis(o: GenesisOptions): Promise<GenesisResult> {
const registry = o.registry ?? "127.0.0.1:5000";
// The registry's and the builder's. Not the control plane's: its manifest lives in its own
// repository and genesis takes it from the build it runs (novox/hq ADR 0069, 04-ISSUES/072).
const modules = o.catalogueModules ?? ["distribution", "builder"];
const modules = o.catalogueModules ?? ["distribution", "build-agent"];
const catalogueOnMachine = o.catalogueOnMachine ?? "/opt/mesh-catalog";
const log = o.log ?? (() => {});
+2 -2
View File
@@ -109,7 +109,7 @@ const CONTROL_PLANE = { module: "mesh-controller", repo: "mesh-controller", path
* the registry and the builder — are here too: they are carried in, and a mesh missing any of them
* is not one.
*/
const MUST_HOLD = ["mesh-controller", "distribution", "builder", "mesh-tools", "postgres",
const MUST_HOLD = ["mesh-controller", "distribution", "build-agent", "mesh-tools", "postgres",
"mesh-catalog", "lavinmq", "mesh-vault", "amqp-ping"];
const MUST_RUN = ["mesh-controller", "mesh-registry", "mesh-broker", "mesh-store",
"mesh-postgres", "mesh-catalog", "mesh-lavinmq", "mesh-vault", "amqp-ping"];
@@ -898,7 +898,7 @@ before(async () => {
// does. novox/hq issue 050 — on a fresh mesh the modules built before the catalogue existed
// are exactly the ones it needed in order to exist, so the hole is always the foundation.
const missing = MUST_HOLD.filter((m) =>
!["distribution", "builder"].includes(m) && !held.includes(m));
!["distribution", "build-agent"].includes(m) && !held.includes(m));
assert.deepEqual(missing, [],
`the catalogue does not hold ${missing.join(", ")} — the mesh built them and its own ` +
`record has no trace of it (novox/hq issue 050):\n${held}`);
+1 -1
View File
@@ -119,7 +119,7 @@ const CATALOGUE_ON_MACHINE = "/opt/mesh-catalog";
* a third, this list is where the bed finds out, by the installer saying which manifest it could
* not read.
*/
const CATALOGUE_MODULES = ["distribution", "builder"];
const CATALOGUE_MODULES = ["distribution", "build-agent"];
/**
* Where this mesh keeps its own images, as the anchor reaches it.