The route-forwarding bed converges the overlay before the modules: the proxy fetches the roots at the private-network address at first start
This commit is contained in:
@@ -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`);
|
||||
|
||||
Reference in New Issue
Block a user