Compare commits

...
1 Commits
Author SHA1 Message Date
jschoubben cf6fcdff3c Genesis reads the registry's and the builder's manifests from the catalogue, not the control plane's
The control plane's manifest comes out of the build the installer runs (novox/hq ADR
0069, 04-ISSUES/072); the catalogue no longer holds a copy, and a bed that demanded
one would stop a genesis that is about to succeed.
2026-09-21 15:19:25 +02:00
3 changed files with 11 additions and 6 deletions
+3 -2
View File
@@ -151,9 +151,10 @@ export MESH_LAB_BUILDER=<mesh-controller>/build/mesh-builder # build/, which i
export MESH_LAB_BOOTSTRAP_BINARY=<mesh-host>/mesh-bootstrap export MESH_LAB_BOOTSTRAP_BINARY=<mesh-host>/mesh-bootstrap
export MESH_LAB_CONTROL_IMAGE=mesh-controller:development # optional; what it carries export MESH_LAB_CONTROL_IMAGE=mesh-controller:development # optional; what it carries
# A checkout of the mesh's catalogue. The installer reads the registry's and the control plane's # A checkout of the mesh's catalogue. The installer reads the registry's and the builder's
# manifests from a copy of it ON THE MACHINE, because at genesis there is no forge, no build # manifests from a copy of it ON THE MACHINE, because at genesis there is no forge, no build
# machine and — until the registry is up — nothing serving anything. # machine and — until the registry is up — nothing serving anything. The control plane's manifest
# is not among them: it comes out of the build the installer runs (novox/hq ADR 0069).
export MESH_LAB_CATALOG=<mesh-catalog>/modules export MESH_LAB_CATALOG=<mesh-catalog>/modules
# Built with `go build -o <path> ./examples/<name>` in mesh-controller. # Built with `go build -o <path> ./examples/<name>` in mesh-controller.
+3 -1
View File
@@ -91,7 +91,9 @@ export function stepIn(said: string): string {
export async function genesis(o: GenesisOptions): Promise<GenesisResult> { export async function genesis(o: GenesisOptions): Promise<GenesisResult> {
const node = o.node; const node = o.node;
const registry = o.registry ?? "127.0.0.1:5000"; const registry = o.registry ?? "127.0.0.1:5000";
const modules = o.catalogueModules ?? ["distribution", "mesh-controller", "builder"]; // 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 catalogueOnMachine = o.catalogueOnMachine ?? "/opt/mesh-catalog"; const catalogueOnMachine = o.catalogueOnMachine ?? "/opt/mesh-catalog";
const log = o.log ?? (() => {}); const log = o.log ?? (() => {});
+5 -3
View File
@@ -115,10 +115,12 @@ const CATALOGUE_ON_MACHINE = "/opt/mesh-catalog";
* *
* Named here rather than pushing the whole repository because the whole repository is a hundred * Named here rather than pushing the whole repository because the whole repository is a hundred
* megabytes of `node_modules` and the installer opens exactly two files: mesh-host's * megabytes of `node_modules` and the installer opens exactly two files: mesh-host's
* `internal/bootstrap` RegistryModule and ControlPlaneModule. If it ever opens a third, this list * `internal/bootstrap` RegistryModule and BuilderModule. (Not the control plane's: that manifest
* is where the bed finds out, by the installer saying which manifest it could not read. * comes out of the build the installer runs — novox/hq ADR 0069, 04-ISSUES/072.) If it ever opens
* a third, this list is where the bed finds out, by the installer saying which manifest it could
* not read.
*/ */
const CATALOGUE_MODULES = ["registry", "mesh-controller", "builder"]; const CATALOGUE_MODULES = ["distribution", "builder"];
/** /**
* Where this mesh keeps its own images, as the anchor reaches it. * Where this mesh keeps its own images, as the anchor reaches it.