feat(podman): honor OCI image working directories - #2715
Conversation
|
🌿 Preview your docs: https://nvidia-preview-pr-2715.docs.buildwithfern.com/openshell |
|
Label |
matthewgrossman
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: This PR is project-valid because it implements maintainer-authored, agent-ready issue #2526 and explicitly supersedes #2563 with a simpler Podman OCI WorkingDir design.
Head SHA: 91ec914db17f7fce81789d384d931672ad371df1
Base SHA: dd2b4e3bc0688bdd59f90030f7c1d52511d6e354
Merge base SHA: dd2b4e3bc0688bdd59f90030f7c1d52511d6e354
Patch ID: 04b32d7237ac5106b69432b00e9c21a9720c45e6
Gator payload: 3
Review mode: initial
Previous reviewed SHA: none
Blocking findings:
- No blocking findings remain.
Carried findings:
- None.
Non-blocking suggestions:
- None.
Docs: Fern compute-driver documentation, architecture guidance, Podman driver documentation, and companion agent guidance cover the user-visible OCI WorkingDir behavior.
E2E: test:e2e is applied because the change affects Podman sandbox lifecycle and persistent workspace behavior.
Next state: gator:watch-pipeline
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
d62b8cd to
8e70fae
Compare
matthewgrossman
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: This PR remains project-valid because it implements maintainer-authored issue #2526 and supersedes #2563 with the requested simpler Podman OCI WorkingDir design.
Head SHA: 8e70faeeffe62daa4d88ecb12be998d129474768
Base SHA: c4b500a7de64d0b66e3ee8098f58d14299092162
Merge base SHA: dd2b4e3bc0688bdd59f90030f7c1d52511d6e354
Patch ID: 499fe2c87443b3ca0796e08cef3a965c295fe945
Gator payload: 4
Review mode: follow_up
Previous reviewed SHA: 91ec914db17f7fce81789d384d931672ad371df1
Review budget exhausted: no
Maintainer decision required: no
I re-reviewed the non-equivalent effective diff after the history rewrite.
Blocking findings:
- No blocking findings remain.
Carried findings:
- None.
Non-blocking findings:
- None.
Docs: Fern compute-driver documentation, architecture guidance, Podman driver documentation, and companion agent guidance cover the user-visible OCI WorkingDir behavior.
CI/E2E: Branch Checks and Helm Lint are green for this head. The required test:e2e workflow is running for this head; build and manifest jobs are progressing and the required OpenShell / E2E gate remains pending.
Next state: gator:watch-pipeline
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
matthewgrossman
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: This PR remains project-valid because it implements maintainer-authored issue #2526 and supersedes #2563 with the requested simpler Podman OCI WorkingDir design.
Head SHA: feb15b4dfed12c721d200eaece5d7bfc498da584
Base SHA: c4b500a7de64d0b66e3ee8098f58d14299092162
Merge base SHA: dd2b4e3bc0688bdd59f90030f7c1d52511d6e354
Patch ID: f7351594599ae0ee641e61e797226c3d0b408d40
Gator payload: 4
Review mode: follow_up
Previous reviewed SHA: 8e70faeeffe62daa4d88ecb12be998d129474768
Review budget exhausted: no
Maintainer decision required: no
I reviewed the author-only delta that defers the separate dmesg hardening and clarifies the Podman supervisor startup working directory.
Blocking findings:
- No blocking findings remain.
Carried findings:
- None.
Non-blocking findings:
- None.
Docs: No additional Fern update is needed for this follow-up delta; the existing compute-driver documentation continues to cover the user-visible OCI WorkingDir behavior.
CI/E2E: The prior requested head 8e70faeeffe62daa4d88ecb12be998d129474768 completed Branch Checks, Helm Lint, and required E2E successfully. For this current head, Helm Lint is green, Branch Checks is running, and the required test:e2e workflow is queued.
Next state: gator:watch-pipeline
Summary
Add Podman OCI
WORKDIRsupport and simplify the local-container workspace contract shared by Docker and Podman. This supersedes #2563 without its probe container or identity-attestation protocol.Related Issue
Closes #2526
Supersedes #2563.
Changes
1. Add OCI
WORKDIRsupport to PodmanUSERandWorkingDir, and mount the persistent named workspace volume at the resolved workdir.HOMEand the cwd for direct and SSH workload processes./sandboxas the managed compatibility workspace for an empty, root (/), or explicit/sandboxworkdir.2. Remove final-user workdir writability enforcement
USERcould traverse and writeWORKDIR.USER/WORKDIRcombination, its workload fails naturally when it changes directory or writes.3. Harden workspace mount placement
/usr/src/app.run_as_userorrun_as_groupsettings.4. Document and test the resulting contract
/sandboxcompatibility, mount collisions, protected roots, and image-author-owned permissions.:U.Follow-up
The privileged supervisor still uses executables and libraries supplied by the workload image. #2750 tracks making that functionality self-contained, replacing external helpers such as
dmesgwith direct kernel interfaces, and eventually removing the executable/library workspace-root restrictions that exist for supervisor safety.Testing
mise run pre-commitmise run testcargo test -p openshell-supervisor-processcargo test -p openshell-driver-dockercargo test -p openshell-driver-podmancargo test -p openshell-sandboxcargo test -p openshell-core driver_mountsPodman volume initialization can vary across rootless, rootful, user-namespace, and SELinux configurations. The documentation calls out that image authors remain responsible for a usable
USER/WORKDIRcombination and OpenShell does not repair the result.Checklist