Commit fefc93e
authored
fix(onboard): run portable Ollama under Podman (#9632)
<!-- markdownlint-disable MD041 -->
## Summary
Fresh Hermes Portable onboarding now creates and proves a receipt-owned
Ollama runner under the current user's rootless Podman runtime before
provider selection completes. Previously the production resolver
returned no host-local inference selection and fell through to the
disabled host-Ollama readiness path. The default Docker daemon and host
Ollama remain outside product authority.
## Related Issue
Fixes #9596.
## Changes
- Add the Hermes Portable Ollama authority owner used by fresh
onboarding. It binds the prepared Podman executable and socket, Portable
network, immutable image digest, exact GPU/CDI identity, model, and
lifecycle receipt. A direct host-Ollama start is insufficient because
Portable requires the current-user Podman runtime to own inference.
- Add managed Ollama startup, readiness, model placement, route
publication, recovery, and exact rollback through the existing
host-local inference provider path. Focused provider and routing tests
protect the accepted and rejected authority states.
- Journal Gateway provider creation before mutation so onboarding can
resume exact owned crash residue without adopting foreign or ambiguous
providers.
- Document the Hermes Portable Ollama command, runtime ownership, and
the current schema-5 uninstall limitation tracked separately by #9608.
## Type of Change
- [ ] Code change (feature, bug fix, or refactor)
- [x] 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:
- [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: independent
exact-commit nine-category security review passed with no findings on
`e9377da0cdce9d4678af92ef18f5e0aae70c5556` and manifest
`e62b7fd3100633a7bd47d169b07edde0266ba41305d10af1e12c2cbbc8b20fb1`.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:
## DGX Station Hardware Evidence
- [ ] Tested on DGX Station
- Tested commit:
- Station profile/scenario:
- Result:
- Supporting evidence:
## 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, or
`npm run validate:pr` passed after refreshing `origin/main` when hooks
were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification: the
nine-file CLI suite passed 289/289 and `npx vitest run --project
integration test/onboard-host-local-inference-routing.test.ts` passed
53/53. CLI build, CLI typecheck, repository checks, source-shape checks,
growth checks, Oxlint, and diff checks passed on the exact commit.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: not run; the issue-scoped
provider, routing, and production-composition suites exercise the
changed runtime boundaries.
- [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) — `npm
run docs` passed with zero errors and two existing Fern warnings.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only) — independent documentation writer review passed with
no findings on the exact commit.
- [ ] 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
- **New Features**
- Added experimental portable Ollama onboarding using rootless Podman on
Linux.
- Added managed Ollama setup with explicit model selection, GPU support,
health checks, and inference validation.
- Added recovery for interrupted setup and durable provider
configuration.
- Added safeguards detecting changes to runtime, network, registry, GPU,
listener, and model authority.
- **Documentation**
- Added setup and quickstart guidance, including preflight checks and
cleanup limitations.
- **Tests**
- Added comprehensive coverage for setup, recovery, validation,
rollback, listener changes, and provider configuration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>1 parent d34dab5 commit fefc93e
25 files changed
Lines changed: 4076 additions & 180 deletions
File tree
- docs
- get-started
- inference
- src/lib
- onboard
- experimental
- machine/handlers
- runtime-provider
- test
- helpers
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
133 | 153 | | |
134 | 154 | | |
135 | 155 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
22 | 44 | | |
23 | 45 | | |
24 | 46 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3179 | 3179 | | |
3180 | 3180 | | |
3181 | 3181 | | |
3182 | | - | |
| 3182 | + | |
3183 | 3183 | | |
3184 | 3184 | | |
3185 | 3185 | | |
| |||
0 commit comments