Components
Request flow
- Client (UI / CLI / API) hits the web service.
- Web creates a
SandboxCR; the controller schedules a pod. - Pod boots with vault sidecar + harness container. Stubs are injected into the harness env.
- Harness clones the repo, installs deps, listens on its protocol — JSON (
/message) or PTY (/tty). - Client streams messages or attaches a terminal.
- Outbound HTTPS from the harness flows through the vault sidecar, which swaps stubs for real credentials.
Why Kubernetes
- Portable: kind locally, EKS / GKE / AKS / on-prem in production.
- Pod-level isolation, RBAC, network policies — off-the-shelf.
- gVisor / Kata runtimes available via the CRD’s
runtimeClass. - No cloud-provider lock-in for the sandbox runtime path.