Replace e2e_framework monolith with wise-validator + sand-boxer shim. Makefile invokes validate run; legacy python -m e2e_framework delegates via shim.py with deprecation notice. Add verify-e2e-shim.sh.
2.5 KiB
2.5 KiB
E2E Sandbox Framework — Runbook
Migrated (2026-06-23):
make e2e REPO=andpython -m e2e_frameworknow delegate to wise-validator (validate run) + sand-boxer (sandboxer create). The modules in this directory are deprecated and will be removed after one release cycle.Canonical runbooks:
Prerequisites
Workstation:
validateon PATH (cd ~/wise-validator && make install)sandboxeron PATH (cd ~/sand-boxer && make install)sshavailable (BatchMode; respects~/.ssh/config)- State Hub on
:8000(optional, for result reporting)
Sandbox host (CoulombCore / sandboxer01):
- SSH key access
podman-composeordocker compose(SANDBOXER_COMPOSE_CMDon CoulombCore)- Sufficient disk for images (~4 GB for activity-core stack)
First run
export SANDBOXER_HOST=92.205.130.254 # CoulombCore; or RAILIANCE01_HOST (legacy)
export SANDBOXER_COMPOSE_CMD=podman-compose
# From the-custodian:
make e2e REPO=activity-core
Output: sandbox create → health wait → tests → destroy. Exit 0 = pass, 1 = fail.
Options
make e2e REPO=activity-core KEEP=1
make e2e REPO=activity-core HOST=92.205.130.254
make e2e REPO=activity-core WORKSTREAM_ID=<uuid>
make e2e REPO=activity-core NO_REPORT=1
# Legacy entry (prints deprecation, delegates to validate run):
python3 -m e2e_framework ~/activity-core --host $SANDBOXER_HOST
Adding a new repo
- Create
<repo>/e2e/e2e.yml(see wise-validator runbook for schema). - Add tests under
<repo>/e2e/tests/or inlinetest_command. - Run:
make e2e REPO=<repo>orvalidate run ~/<repo>.
Verification
./scripts/verify-e2e-shim.sh
Troubleshooting
validate / sandboxer not found: Install wise-validator and sand-boxer CLIs.
CoulombCore compose failures: Set SANDBOXER_COMPOSE_CMD=podman-compose; use
fully qualified image names in compose files.
Stale sandboxes: sandboxer inspect stale / sandboxer reap-stale --apply
Architecture (current)
make e2e REPO= → validate run → sandboxer create (sand-boxer)
→ health + test (wise-validator)
→ sandboxer destroy
Legacy e2e-framework/sandbox.py provision path is not used by make e2e.