The five beds that read the catalogue read it through the harness
adopted-store-cross-node, two-node-db and the three whole-mesh beds each carried a private loader; they drifted. The ace loader never resolved a runtime artifact, so a module the mesh builds travelled unresolved; whole-mesh-full still asked for 'registry' and 'firewall', which the catalogue names distribution and nftables, and swallowed the miss as NOT ASSIGNED. One loader now (novox/hq 04-ISSUES/073).
This commit is contained in:
@@ -283,10 +283,11 @@ export interface ForTheLab {
|
||||
*/
|
||||
artifacts?: Record<string, string>;
|
||||
/**
|
||||
* Host-port remaps by container id, where one machine carries modules whose published ports
|
||||
* collide — `{ server: { "8080": "8090:8080" } }`. The container side never changes.
|
||||
* Host-port remaps, where one machine carries modules whose published ports collide —
|
||||
* `{ "8080": "8090:8080" }`, applied to every container of the module. The container side never
|
||||
* changes.
|
||||
*/
|
||||
ports?: Record<string, Record<string, string>>;
|
||||
ports?: Record<string, string> | undefined;
|
||||
/**
|
||||
* Environment a container gets in the lab that it does not get in the mesh — an address the bed
|
||||
* stands up in place of a real upstream, and nothing else. Merged over the manifest's own.
|
||||
@@ -323,8 +324,7 @@ export function catalogueModule(module: string, held: HeldImage[], lab: ForTheLa
|
||||
} else if (typeof r.image === "string") {
|
||||
r.image = onTheMachine(r.image, held);
|
||||
}
|
||||
const remap = lab.ports?.[r.id];
|
||||
if (remap && Array.isArray(r.ports)) r.ports = r.ports.map((p) => remap[p] ?? p);
|
||||
if (lab.ports && Array.isArray(r.ports)) r.ports = r.ports.map((p) => lab.ports![p] ?? p);
|
||||
const env = lab.env?.[r.id];
|
||||
if (env) r.env = { ...(r.env ?? {}), ...env };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user