The route-forwarding bed installs the catalogue's authority, proxy and consumer; the whole-mesh bed installs the vault first #46

Merged
jschoubben merged 9 commits from multiple-fixes into main 2026-09-21 20:58:25 +00:00
Showing only changes of commit f785f5892a - Show all commits
+12 -3
View File
@@ -37,7 +37,7 @@ import { loadScenario } from "../../src/declaration/parse.ts";
import { raise } from "../../src/lifecycle/raise.ts";
import { destroy, exec } from "../../src/lifecycle/operate.ts";
import { hostBinaryPath, HOST_PATH } from "../../src/lifecycle/place.ts";
import { labIsUsable, destroyAll, foundationBundle, catalogueModule, catalogueIsPresent } from "./harness.ts";
import { labIsUsable, destroyAll, foundationBundle, catalogueModule, catalogueIsPresent, deriveTheFilterOn } from "./harness.ts";
import type { HeldImage } from "../../src/pinning.ts";
const capability = await labIsUsable();
@@ -172,10 +172,19 @@ test("the mesh routes a public name through the proxy to the consumer, and withd
// the bed sets first.
await mesh(`node public-domain ${MACHINE} ${DOMAIN}`);
// The authority certifies itself for the machine's private-network address, which is what a
// consumer on any node dials; a machine raised from the bundle has none until it is placed on
// the overlay. Placed as a hub of one, the way a real first node is.
// consumer on any node dials (ADR 0098); a machine raised from the bundle has none until it is
// placed on the overlay. Placed as a hub of one, the way a real first node is, and converged
// BEFORE the modules arrive: the proxy fetches the authority's roots at that address at first
// start, so the interface must exist by then — in one push the order between modules is not
// promised. The derived filter admits the hub's port, as genesis does on a control-node (ADR 0088).
await mesh(`overlay place ${MACHINE} --hub --endpoint 192.0.2.10:51820 --site lab`);
await mesh(`assign ${MACHINE} networking`);
await mesh(`push ${MACHINE}`);
await settled();
await deriveTheFilterOn({ machine: MACHINE, node: MACHINE, hubPort: 51820,
must: (_m, c, t) => must(c, t), mesh, on: (_m, c, t) => on(c, t) });
const overlay = await must(`ip -4 addr show dev mesh0 2>&1 || ip -4 addr 2>&1`);
assert.match(overlay, /inet 10\./, `${MACHINE} has no private-network address after networking converged:\n${overlay}`);
for (const name of ["step-ca", "route-proxy", "hello-web"]) {
await must(`printf %s ${quote(catalogueModule(name, held))} > /tmp/${name}.json && docker cp /tmp/${name}.json mesh-controller:/${name}.json`);
await mesh(`module add /${name}.json`);