Files
the-custodian/e2e-framework/RUNBOOK.md
tegwick 7e1cfa005b SAND-WP-0004: delegate make e2e to validate run
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.
2026-06-23 21:43:53 +02:00

2.5 KiB

E2E Sandbox Framework — Runbook

Migrated (2026-06-23): make e2e REPO= and python -m e2e_framework now 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:

  • validate on PATH (cd ~/wise-validator && make install)
  • sandboxer on PATH (cd ~/sand-boxer && make install)
  • ssh available (BatchMode; respects ~/.ssh/config)
  • State Hub on :8000 (optional, for result reporting)

Sandbox host (CoulombCore / sandboxer01):

  • SSH key access
  • podman-compose or docker compose (SANDBOXER_COMPOSE_CMD on 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

  1. Create <repo>/e2e/e2e.yml (see wise-validator runbook for schema).
  2. Add tests under <repo>/e2e/tests/ or inline test_command.
  3. Run: make e2e REPO=<repo> or validate 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.