left4me/l4d2host/tests
mwiegand d5b321b557
feat(l4d2-host): KernelOverlayFSMounter + left4me-overlay helper
New privileged helper at /usr/local/libexec/left4me/left4me-overlay
(Python, system /usr/bin/python3, stdlib only) takes only the instance
name, parses instance.env for L4D2_LOWERDIRS, validates each lowerdir
against an allowlist (installation/, overlays/, global_overlay_cache/,
workshop_cache/), refuses upperdirs tainted with user.fuseoverlayfs.*
xattrs from the prior fuse era, and execs `nsenter --mount=/proc/1/ns/mnt
-- mount -t overlay ...` so the resulting mount lives in the host
namespace. Mirrors the existing left4me-systemctl / left4me-journalctl
pattern; sudoers entry is verb-constrained.

KernelOverlayFSMounter implements the existing OverlayMounter ABC,
deriving the instance name from the merged path. No call sites use it
yet — that's the next commit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 12:23:58 +02:00
..
test_cli.py feat(deploy): add production-like test deployment 2026-05-06 19:30:10 +02:00
test_initialize.py feat(host): add step logging to steam_install 2026-05-06 20:41:39 +02:00
test_install.py fix(host): create ~/.steam/sdk32 and sdk64 symlinks during install 2026-05-07 02:11:27 +02:00
test_kernel_overlayfs.py feat(l4d2-host): KernelOverlayFSMounter + left4me-overlay helper 2026-05-08 12:23:58 +02:00
test_lifecycle.py fix(l4d2-host): make stop_instance idempotent on the unmount step 2026-05-08 11:24:04 +02:00
test_logging.py feat(host): add step logging to steam_install 2026-05-06 20:41:39 +02:00
test_logs.py feat(deploy): add production-like test deployment 2026-05-06 19:30:10 +02:00
test_overlay_helper.py feat(l4d2-host): KernelOverlayFSMounter + left4me-overlay helper 2026-05-08 12:23:58 +02:00
test_paths.py security: harden boundary inputs and production defaults 2026-05-07 00:53:33 +02:00
test_process.py fix(host): enforce flush=True to prevent pipeline block buffering 2026-05-06 20:34:41 +02:00
test_spec.py chore(l4d2): flatten component layout 2026-05-05 23:47:06 +02:00
test_status.py feat(deploy): add production-like test deployment 2026-05-06 19:30:10 +02:00