Skip to content

docs(deploy): verify Podman on Lima + fix container build portability#64

Merged
CharmingGroot merged 1 commit into
release/v0.1from
fix/podman-verified
Jul 22, 2026
Merged

docs(deploy): verify Podman on Lima + fix container build portability#64
CharmingGroot merged 1 commit into
release/v0.1from
fix/podman-verified

Conversation

@CharmingGroot

Copy link
Copy Markdown
Owner

Follow-up to #63 — actually ran the eBPF egress guard under Podman on a Lima VM and corrected the notes against what the kernel did.

Environment

Lima · Ubuntu 24.04 · kernel 6.8.0-134 · cgroup v2 · Podman 4.9.3 · arm64 · rootful + privileged.

Verified

Case Command shape Result
Self-guard podman run --privileged (default cgroupns), --cgroup-path /sys/fs/cgroup 1.1.1.1 reachable, 1.0.0.1 dropped, host egress intact ✅
Sidecar --cgroupns host + --cgroup-path /sys/fs/cgroup$(podman inspect … .State.CgroupPath) sibling guarded, host egress intact ✅
Anti-pattern --cgroupns host + /sys/fs/cgroup binds host root cgroup → cuts the host's egress ⚠️

Doc correction

The §5 example from #63 wrongly carried --cgroupns host on the self-guard command — that binds the host root cgroup and (verified) cuts the host's own egress. Rewritten: self-guard uses the default cgroupns; --cgroupns host is documented only for the sidecar case, attaching to a dedicated cgroup path. Disclaimer upgraded from untested to verified on Lima.

Build portability (surfaced while verifying)

  • Short-name images fail on Podman → fully-qualified docker.io/library/… in deploy/Dockerfile, deploy/proxy/Dockerfile, and the compose curl image (Docker unaffected).
  • No .dockerignoredocker/podman build sent the whole ~6.6 GB tree (host target/). Added one; the verified image build ran with it.

Scope

Docs + deploy packaging only. No crate/code changes; CI's cargo-based jobs are unaffected.

…ortability

Ran the eBPF egress guard under rootful Podman on a Lima VM (Ubuntu 24.04,
kernel 6.8, cgroup v2, Podman 4.9.3):

- Self-guard (default cgroupns, --cgroup-path /sys/fs/cgroup): kernel drops
  non-allowed egress, host egress intact.
- Sidecar (--cgroupns host + the target's dedicated cgroup from podman
  inspect): guards the sibling, host egress intact.
- Anti-pattern confirmed: --cgroupns host on a /sys/fs/cgroup attach binds the
  host root cgroup and cuts the host's own egress. Corrected the earlier
  self-guard example that wrongly carried --cgroupns host.

Portability fixes surfaced while verifying:
- Fully-qualify base/compose images (docker.io/library/...) so builds resolve
  under Podman's short-name policy (Docker unaffected).
- Add .dockerignore so the build context excludes target/ (was ~6.6 GB).

Signed-off-by: Ho Geun Choi <ohyes9711@gmail.com>
@CharmingGroot
CharmingGroot merged commit 68debf3 into release/v0.1 Jul 22, 2026
4 checks passed
@CharmingGroot
CharmingGroot deleted the fix/podman-verified branch July 22, 2026 13:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant