feat(installer): add temporary Station metadata override#7132
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdds ChangesDGX Station override and onboarding
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant Operator
participant Installer as scripts/install.sh
participant HostPrep as prepare-dgx-station-host.sh
participant Runtime
Operator->>Installer: provide --force-station-install
Installer->>Installer: validate hardware, mode, and TTY
Installer->>HostPrep: forward force option
HostPrep->>Runtime: validate forced factory runtime
Runtime-->>HostPrep: validation result
HostPrep-->>Installer: preparation result and resume command
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@test/install-station-dgx-os.test.ts`:
- Around line 505-530: Update run_apply’s reboot-required check to call an
overridable probe function instead of reading /var/run/reboot-required directly.
In the “preserves packages and the runtime for a forced metadata profile” test,
stub that probe to return false so the test does not depend on the host’s reboot
state.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 10957884-50e2-48e3-a20b-1d96200e7474
📒 Files selected for processing (13)
ci/platform-matrix.jsondocs/get-started/dgx-station-preparation.mdxdocs/get-started/quickstart.mdxdocs/inference/set-up-vllm.mdxdocs/reference/platform-support.mdxscripts/install.shscripts/prepare-dgx-station-host.shsrc/lib/onboard/station-express-resume.test.tssrc/lib/onboard/station-express-resume.tstest/install-express-prompt.test.tstest/install-station-dgx-os.test.tstest/install-station-host-preparation.test.tstest/station-doc-ownership.test.ts
PR Review Advisor — Blocking findings reportedAdvisor assessment: Blockers require maintainer review Model lanes
Nemotron output stays in workflow artifacts and does not change the assessment above. E2E guidanceAdvisory only. E2E / PR Gate selects and runs jobs independently. Recommended E2E: 1 optional E2E recommendation
Blockers
|
2a64c16 to
a9c6cc0
Compare
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Co-authored-by: Senthil Ravichandran <senthilr@nvidia.com> Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary Restricts `--force-station-install` to DGX Station GB300 systems whose release metadata is actually unrecognized. Recognized profiles now fail before host mutation, while the remaining forced path also verifies the exact GB300 PCI identity and fails closed if its required prompt becomes unreadable. ## Related Issue Fixes #7138 ## Changes - Reject the force flag during outer installer preflight when release classification is generic Ubuntu, stock DGX OS, Colossus BaseOS, or NVIDIA AI Developer Tools. - Repeat the recognized-profile guard in the Station preparation helper so direct callers cannot enter package or runtime preparation. - Require the exact NVIDIA GB300 PCI vendor, device, and display-class identity before selecting the forced factory-runtime profile. - Fail closed when the forced interactive prompt becomes unreadable instead of silently continuing through another install path. - Add regression coverage for all recognized release states, unchanged unforced generic Ubuntu behavior, mutation boundaries, exact PCI identity, and prompt-read failure. The PCI and prompt-read changes close the two unaddressed force-path findings reported by the PR Review Advisor on #7132. ## Type of Change - [x] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Quality Gates - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [ ] Docs updated for user-facing behavior changes - [x] Docs not applicable — justification: the Station preparation, quickstart, and platform-support pages already document the narrow metadata-only override and mandatory hardware/runtime checks; this fix makes implementation match that contract. - [x] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [x] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: accepted scope and fail-before-mutation criteria are recorded in #7138; the exact PCI and prompt-read gaps were independently reported in the final PR Review Advisor review on #7132. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Verification - [x] PR description includes a `Signed-off-by:` line and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, including shfmt, ShellCheck, repository checks, secret scanning, CLI type-checking, and commitlint - [x] Targeted behavior tests pass for the current change set — `npx vitest run --project installer-integration test/install-express-prompt.test.ts test/install-station-dgx-os.test.ts` (128 passed, 1 skipped); `npx vitest run --project installer-integration test/install-station-host-preparation.test.ts` (55 passed); `npx vitest run --project integration test/install-station-platform-identity.test.ts` (20 passed) - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — command/result: - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [ ] `npm run docs` builds without warnings (doc changes only) - [ ] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [ ] New doc pages include SPDX header and frontmatter (new pages only) --- Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved forced DGX Station installation validation for already-supported host configurations. * Added clearer errors when required GPU hardware is missing or does not match. * Improved non-interactive installation failures when an interactive terminal is required. * Prevented system changes when platform identity checks fail. * **Tests** * Added coverage for supported release profiles, invalid GPU identities, and unreadable installation prompts. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Summary
Adds a temporary
--force-station-installoperator-intent flag for genuine DGX Station GB300 systems whose DGX release metadata is not yet recognized. The flag bypasses only the release-metadata allowlist; hardware identity and all factory-runtime health checks remain mandatory.This PR also makes Station Express resume fail closed across a host-preparation reboot or login refresh, and corrects BaseOS failed-service qualification so the reviewed Fluent Bit template is not tied to one Station's hostname, MAC address, or IP address.
Changes
Hostname,MAC, andIPvalues to vary. Package-owned units and static configs remain exact whole-file pins.The temporary compatibility path is intentionally narrower than broad platform-family recognition. Unknown metadata requires explicit operator intent, and all runtime capability checks continue to fail closed.
Type of Change
Quality Gates
Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, includingshfmt, ShellCheck, repository checks, secret scanning, and CLI type-checkingnpx vitest run --project installer-integration test/install-express-prompt.test.ts test/install-station-dgx-os.test.ts test/install-station-host-preparation.test.ts(173 passed, 1 skipped)npx vitest run test/install-station-platform-identity.test.ts(19 passed)npx vitest run --project integration test/station-doc-ownership.test.ts(2 passed)npm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result: not run; targeted installer, resume, platform, documentation, and normal hook gates cover this focused changenpm run docsbuilds without warnings (doc changes only) — 0 errors with two pre-existing Fern warningsPhysical Station evidence
Exact head
91b73d18927217595c88295889900f4a9f71ba0awas exercised on a freshly reprovisioned DGX Station GB300 using the Colossus BaseOS 7.5 imagebaseos-galaxy-7.5.0-GB300ws-2026-04-02-08-20-16-arm64-aarch64-standard-uefi.429. Resuming the same failed onboarding session with a process-scoped read token completed the 160 GB download, vLLM cold initialization, sandbox build, and policy application without changing the saved Express selection.local-inferencepolicies, and GB300 ECC (0/0).STATION_CHAT_OKin 4.77 seconds; tool-created artifact in 29.16 seconds; source checksum unchanged; host evaluator confirmed exactly# Station ValidationandTotal: 42.Signed-off-by: Senthil Ravichandran senthilr@nvidia.com