Covers what the boot-ISO ARM test never did: DHCP option 93 handing an arm64 client an arm64 iPXE binary, dispatch serving an aarch64 kernel, and `provision debug` reaching a rescue shell over SSH. Split by cost. `arm-pxe` runs NBP handoff, discovery and rescue in about 20-30 minutes -- that is the path the DGX Sparks need. The full install is another hour on top and only runs with ARM_PXE_FULL=1; an hour-plus test that runs by default is a test nobody runs. The suite fails fast if the arm64 iPXE build lacks LoadFile2, because the symptom otherwise is a 30-minute boot ending in unknown-block(0,0) -- byte-identical to the DGX Spark bug this all started with, and easy to misdiagnose as a reproduction of it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015nRFZXpKwUVE4SRSHw6GjF
52 lines
2.9 KiB
JSON
52 lines
2.9 KiB
JSON
{
|
|
"name": "lab",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"description": "PXE bastion server for discover-first bare-metal provisioning",
|
|
"type": "module",
|
|
"scripts": {
|
|
"build": "pnpm -r run build",
|
|
"test": "vitest",
|
|
"test:run": "vitest run",
|
|
"typecheck": "tsc --build",
|
|
"clean": "pnpm -r run clean && rimraf node_modules",
|
|
"lint": "eslint 'src/*/src/**/*.ts'",
|
|
"lint:fix": "eslint 'src/*/src/**/*.ts' --fix",
|
|
"completions:generate": "tsx scripts/generate-completions.ts --write",
|
|
"completions:check": "tsx scripts/generate-completions.ts --check",
|
|
"test:integration": "vitest run -c tests/integration/vitest.config.ts",
|
|
"test:integration:k3s": "vitest run -c tests/integration/vitest.config.ts -t k3s",
|
|
"test:integration:k3s:host": "sudo -E $(which npx) vitest run -c tests/integration/vitest.config.ts -t k3s",
|
|
"test:integration:pxe": "vitest run -c tests/integration/vitest.config.ts -t 'PXE boot'",
|
|
"test:integration:pxe:host": "sudo -E $(which npx) vitest run -c tests/integration/vitest.config.ts -t 'PXE boot'",
|
|
"test:integration:iso": "vitest run -c tests/integration/vitest.config.ts -t 'ISO boot'",
|
|
"test:integration:iso:host": "sudo -E $(which npx) vitest run -c tests/integration/vitest.config.ts -t 'ISO boot'",
|
|
"test:integration:arm-iso": "vitest run -c tests/integration/vitest.config.ts -t 'ARM ISO'",
|
|
"test:integration:arm-iso:host": "sudo -E $(which npx) vitest run -c tests/integration/vitest.config.ts -t 'ARM ISO'",
|
|
"test:integration:arm-pxe": "vitest run -c tests/integration/vitest.config.ts -t 'ARM PXE rescue'",
|
|
"test:integration:arm-pxe:host": "sudo -E $(which npx) vitest run -c tests/integration/vitest.config.ts -t 'ARM PXE rescue'",
|
|
"test:integration:arm-pxe-full": "ARM_PXE_FULL=1 vitest run -c tests/integration/vitest.config.ts -t 'ARM PXE'",
|
|
"test:integration:arm-pxe-full:host": "sudo -E ARM_PXE_FULL=1 $(which npx) vitest run -c tests/integration/vitest.config.ts -t 'ARM PXE'",
|
|
"test:integration:asahi": "vitest run -c tests/integration/vitest.config.ts -t 'asahi firstboot'",
|
|
"test:integration:asahi:host": "sudo -E $(which npx) vitest run -c tests/integration/vitest.config.ts -t 'asahi firstboot'",
|
|
"test:integration:asahi-validate": "vitest run -c tests/integration/vitest.config.ts -t 'asahi.*validation'",
|
|
"test:integration:asahi-validate:host": "sudo -E $(which npx) vitest run -c tests/integration/vitest.config.ts -t 'asahi.*validation'"
|
|
},
|
|
"engines": {
|
|
"node": ">=20.0.0",
|
|
"pnpm": ">=9.0.0"
|
|
},
|
|
"packageManager": "pnpm@9.15.0",
|
|
"devDependencies": {
|
|
"@types/node": "^22.10.0",
|
|
"@typescript-eslint/eslint-plugin": "^8.57.1",
|
|
"@typescript-eslint/parser": "^8.57.1",
|
|
"eslint": "^10.0.3",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"rimraf": "^6.0.0",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "^5.7.0",
|
|
"vitest": "^3.0.0"
|
|
}
|
|
}
|