Replace ambiguous AGENT_NAME usage across runtime, setup, and helper scripts with explicit TENANT_ID or platform runtime identity where appropriate. Keep AGENT_NAME as a compatibility boundary instead of the primary source for shared runtime naming. --- Build: pass | Tests: pass — 138 passed (10 files)
45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
import { loadJailRegistry, resolveJailIp } from '../src/jail-schema.js';
|
|
import { provisionJail, resolveJailName } from '../setup/bastille-helpers.js';
|
|
import {
|
|
AGENT_INTERNAL_DOMAIN,
|
|
SUBNET_BASE,
|
|
TENANT_ID,
|
|
} from '../src/config.js';
|
|
|
|
const role = process.argv[2];
|
|
|
|
if (!role) {
|
|
console.error('Usage: jail-provision.ts <role>');
|
|
try {
|
|
const registry = loadJailRegistry();
|
|
console.error(`Available roles: ${Object.keys(registry.jails).join(', ')}`);
|
|
} catch {
|
|
console.error('(registry not available)');
|
|
}
|
|
process.exit(1);
|
|
}
|
|
|
|
try {
|
|
const registry = loadJailRegistry();
|
|
const jailDef = registry.jails[role];
|
|
|
|
if (!jailDef) {
|
|
console.error(`Unknown jail role: ${role}`);
|
|
console.error(`Available: ${Object.keys(registry.jails).join(', ')}`);
|
|
process.exit(1);
|
|
}
|
|
|
|
const result = await provisionJail(jailDef, role, {
|
|
agentName: TENANT_ID,
|
|
subnetBase: SUBNET_BASE,
|
|
internalDomain: AGENT_INTERNAL_DOMAIN,
|
|
});
|
|
|
|
console.log(`Jail: ${result.jailName}`);
|
|
console.log(`IP: ${result.ip}`);
|
|
console.log(`Created: ${result.created ? 'yes' : 'already existed'}`);
|
|
} catch (err) {
|
|
const msg = err instanceof Error ? err.message : String(err);
|
|
console.error('Provision failed:', msg);
|
|
process.exit(1);
|
|
}
|