con / con/mechababs

Run babs e2e rootless (podman + --userns), retire the worktree-contamination guards

Open
#70 0 comments 0 reactions 0 assignees View on GitHub
babs-upstream upstream-NOT-FILED
Dominant language
Python
Stars
1
Forks
4
Avg merge
15h 39m
Merged PRs (30d)
24

Description

Low priority (babs mostly runs its tests on CI, not locally), filing so it is not lost. No milestone.

babs`'s `tests/e2e_in_docker.sh` / `pytest_in_docker.sh` run `docker --privileged --cap-add sys_admin` (rootful), so root-owned `babs/_version.py`, `__pycache__/`, `.coverage`, `.pytest_cache/` land in the bind-mounted worktree — the whole reason for the local contamination guards.

mechababs`'s `tests/e2e/run_in_podman.sh` proves the *same* `pennlinc/slurm-docker-ci` container + real apptainer jobs run under **rootless podman with zero privilege escalation**: `--security-opt label=disable --security-opt systempaths=unconfined --device /dev/fuse` on the podman run + `--userns` on the apptainer `singularity run`. Container-root maps to the invoking user → nothing lands root-owned.

Porting that recipe upstream kills the contamination class at the source instead of the per-run guards (`PYTHONPYCACHEPREFIX`, `touch _version.py`, `-p no:cacheprovider`).

Caveat: the `--userns` + unmask-/proc combo is what makes nested apptainer work rootless; verify babs`'s non-simbids e2e images run rootless before assuming a drop-in.

Recipe ground-truth: mechababs `tests/e2e/run_in_podman.sh` (comments explain each flag).

Contributor guide

No contributing guide indexed for this repository

Research direction

Read tests/e2e/run_in_podman.sh first, then compare it with babs's tests/e2e_in_docker.sh and pytest_in_docker.sh. Verify the non-simbids e2e images under rootless podman with nested apptainer, then confirm the worktree-contamination guards can be retired without root-owned files appearing.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, python, shell
Domain
devops, infrastructure, testing
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.