The lab's installer carries a builder, and genesis is told what to build
Both beds now pass a repository and a commit, and refuse to run without them rather than raising a machine the installer cannot finish.
This commit is contained in:
@@ -44,6 +44,15 @@ export interface GenesisOptions {
|
||||
catalogueOnMachine?: string;
|
||||
/** Where this mesh's own registry will answer. */
|
||||
registry?: string;
|
||||
/**
|
||||
* Where the control plane is built from, and the commit.
|
||||
*
|
||||
* The installer carries a builder rather than a finished control plane (novox/hq ADR 0073), so
|
||||
* it has to be told what to make. A commit rather than a branch, because what genesis clones is
|
||||
* the trust anchor for everything the mesh will ever run (ADR 0071).
|
||||
*/
|
||||
source: string;
|
||||
sourceRef: string;
|
||||
log?: (m: string) => void;
|
||||
}
|
||||
|
||||
@@ -84,6 +93,7 @@ export async function genesis(o: GenesisOptions): Promise<GenesisResult> {
|
||||
const name = await instanceNameOf(o.instanceId, node);
|
||||
const version = await placeBootstrap(name, node, o.installer, (m) => log(`genesis:${m}`));
|
||||
report.push(` installer ${version} at ${BOOTSTRAP_PATH}`);
|
||||
report.push(` builds from ${o.source} at ${o.sourceRef.slice(0, 8)}`);
|
||||
|
||||
// The catalogue. `mesh-bootstrap --catalog` reads manifests from a CHECKOUT on the machine,
|
||||
// because at this moment the mesh has no forge, no build machine and — until the registry step
|
||||
@@ -102,6 +112,8 @@ export async function genesis(o: GenesisOptions): Promise<GenesisResult> {
|
||||
|
||||
const command = [
|
||||
BOOTSTRAP_PATH,
|
||||
`--source ${o.source}`,
|
||||
`--source-ref ${o.sourceRef}`,
|
||||
`--bundle /tmp/substrate-template.lock`,
|
||||
`--catalog ${catalogueOnMachine}`,
|
||||
`--node ${node}`,
|
||||
|
||||
Reference in New Issue
Block a user