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.
82 lines
2.5 KiB
Markdown
82 lines
2.5 KiB
Markdown
# 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:**
|
|
> - [wise-validator: validate-compose-e2e](~/wise-validator/docs/runbooks/validate-compose-e2e.md)
|
|
> - [sand-boxer: profile-compose-e2e](~/sand-boxer/docs/runbooks/profile-compose-e2e.md)
|
|
|
|
---
|
|
|
|
## 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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
./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`. |