Skip to content

install: Add explicit offline deployment mount API - #2483

Draft
cgwalters-bot wants to merge 2 commits into
bootc-dev:mainfrom
cgwalters-bot:feature/offline-mount-api
Draft

cgwalters-bot wants to merge 2 commits into
bootc-dev:mainfrom
cgwalters-bot:feature/offline-mount-api

Conversation

@cgwalters-bot

@cgwalters-bot cgwalters-bot commented Sep 21, 2026

Copy link
Copy Markdown

Post-install tooling needs a backend-neutral way to inspect and modify an offline deployment without exposing backend-specific paths through bootc status. This extracts the mount API work from the composefs stabilization series and makes it standalone on current main.

The reduced API adds bootc install mount for OSTree and native composefs targets. The deployment root remains read-only; --writable makes only /etc and /var writable. Mounts remain in the caller's namespace, and callers clean them up with umount -R or by ending that namespace. Partial assembly failures reuse the existing recursive-unmount helper.

Composefs mounting opens the existing repository directly, follows its durable fs-verity policy, and does not implicitly initialize or upgrade repository metadata.

Validation completed locally:

  • affected locked Rust tests and checks;
  • no-default-features and all-features checks;
  • Nushell static validation;
  • CLI and generated manpage consistency;
  • formatting and diff/log checks; and
  • independent code and architecture review.

This remains a draft while the revised privileged OSTree and composefs TMT coverage runs in CI. The change is larger than 500 lines and should receive explicit maintainer design review before being marked ready.

Assisted-by: AI
Unit and integration tests are LLM generated.

@github-actions github-actions Bot added area/install Issues related to `bootc install` area/documentation Updates to the documentation labels Sep 21, 2026
@bootc-bot
bootc-bot Bot requested a review from cgwalters September 21, 2026 15:34
Comment thread crates/mount/src/mount.rs Outdated
Comment thread crates/mount/src/mount.rs Outdated
Comment thread crates/initramfs/src/lib.rs Outdated
Comment thread crates/initramfs/src/lib.rs Outdated
Comment thread crates/lib/src/mount.rs Outdated
Comment thread docs/src/man/bootc-install-unmount.8.md Outdated
Comment thread crates/lib/src/mount.rs Outdated
Keep the explicit mount operation caller-owned and backend-neutral without persisting lifecycle state or reconstructing teardown across processes. Existing mount namespaces and recursive unmount provide the lifecycle boundary, while composefs mounting stays next to repository selection.

Assisted-by: AI
Document the reduced API contract so callers use recursive unmount and the privileged test exercises the real mount boundary instead of an invented lifecycle record.

Assisted-by: AI
@cgwalters-bot
cgwalters-bot force-pushed the feature/offline-mount-api branch from ccd933e to c296210 Compare September 21, 2026 17:41

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/documentation Updates to the documentation area/install Issues related to `bootc install`

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants