Some checks failed
CI/CD / lint (pull_request) Failing after 10s
CI/CD / test (pull_request) Failing after 10s
CI/CD / typecheck (pull_request) Failing after 23s
CI/CD / build (pull_request) Has been skipped
CI/CD / publish-rpm (pull_request) Has been skipped
CI/CD / publish-deb (pull_request) Has been skipped
VyOS ships no unattended installer (install_image() is unconditionally interactive; --no-prompt is wired only to 'add'), so the automation is injected through live-config's hooks component: iPXE boots the live kernel with fetch= and live-config.hooks=, the hook fetches a generated per-MAC Python driver, and the driver builds config.boot, stages the rootfs, and drives the interactive installer over a pty. Bastion: - vyos-boot.ipxe template (no 'nonetworking' — breaks the hook fetch; no console=ttyS0 — 30s/systemd-phase on UART-less boards) - /vyos/autoinstall.sh + /vyos/install.py routes (per-MAC driver with the config spec baked in as base64) - vyos-config-spec: bond0 (802.3ad) + tagged VLANs + VRRP groups (vrid = VLAN id) + sync group + hw-id pinning by MAC + SSH keys; config built from the image's own config.boot.default via vyos.configtree, version footer reattached via component_version - prepareVyosArtifacts: extract kernel/initrd/squashfs from the nightly ISO with xorriso; initrd picked by size from regular files only; ISO URL "latest" resolves the newest vyos-nightly-build GH release (downloads.vyos.io no longer serves direct ISOs) Verified end-to-end in a libvirt VM against the real nightly ISO — installed system boots with bond/VRRP/hw-id config applied and no migrations. Fixes found by the VM run, encoded in code comments: config.boot.default lives at /usr/share/vyos at hook time; fetch= boot has no medium so the rootfs is symlinked to the installer's expected path; reboot must be --force (the hook is a child of the still-starting live-config unit); installer disk answers are full /dev paths; zram0 passes the 2GB min-disk filter so the disk is always pinned. CLI/labd: vyos spec threaded through provision install (--vyos-* and --vlan/--vlan-vip flags with guards), labd install route, protocol command-install, and the bastion's direct /api/install. 268 unit tests pass; no new lint errors in touched files. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DMVzWZgiKW2wquf5z8S1yH
49 lines
1017 B
TypeScript
49 lines
1017 B
TypeScript
export type {
|
|
OsId,
|
|
Arch,
|
|
Role,
|
|
HardwareInfo,
|
|
InstallConfig,
|
|
InstalledInfo,
|
|
DebugConfig,
|
|
BastionState,
|
|
BastionConfig,
|
|
VyosVlanSpec,
|
|
VyosInstallSpec,
|
|
} from "./types/index.js";
|
|
|
|
export { SUPPORTED_OS, SUPPORTED_ROLES, ROLE_REGISTRY, isValidOsId } from "./types/index.js";
|
|
export type { RoleInfo } from "./types/index.js";
|
|
|
|
export { APP_NAME, APP_VERSION } from "./constants/index.js";
|
|
|
|
export {
|
|
type AgentMessage,
|
|
type ServerMessage,
|
|
type BastionMessage,
|
|
type LabdBastionMessage,
|
|
type JournalOptions,
|
|
type AgentMessageType,
|
|
type ServerMessageType,
|
|
type BastionMessageType,
|
|
type LabdBastionMessageType,
|
|
isAgentMessage,
|
|
isServerMessage,
|
|
isBastionMessage,
|
|
isLabdBastionMessage,
|
|
parseAgentMessage,
|
|
parseServerMessage,
|
|
parseBastionMessage,
|
|
parseLabdBastionMessage,
|
|
generateRequestId,
|
|
} from "./protocol/index.js";
|
|
|
|
export {
|
|
LabError,
|
|
NotFoundError,
|
|
PermissionDeniedError,
|
|
ValidationError,
|
|
AgentNotConnectedError,
|
|
isLabError,
|
|
} from "./errors/index.js";
|