Skip to content

pkg/sandbox: add direct backend for Kubernetes in-pod execution#214

Open
qu0b wants to merge 1 commit into
masterfrom
qu0b/panda-client-credentials
Open

pkg/sandbox: add direct backend for Kubernetes in-pod execution#214
qu0b wants to merge 1 commit into
masterfrom
qu0b/panda-client-credentials

Conversation

@qu0b

@qu0b qu0b commented Jun 12, 2026

Copy link
Copy Markdown
Member

Adds a direct sandbox backend to panda-server that runs Python as a subprocess instead of inside a Docker container. Intended for the Kubernetes deployment where the pod boundary itself provides isolation — no dockerd, no sandbox image, no privileged container needed.

Config: sandbox.backend: direct

See also:

@qu0b qu0b added the build label Jun 12, 2026
Runs Python as a subprocess inside the panda-server container, relying on
the Kubernetes pod boundary for isolation — no dockerd, no sandbox image,
no privileged container. For the EthPandaOps devnet chat (panda-chat
chart), which runs panda-server unprivileged.

- sandbox/direct.go: DirectBackend (Service impl). Builds the child env
  from SandboxEnvDefaults + a non-sensitive passthrough allowlist + req.Env,
  NOT os.Environ() — so PANDA_BOT_* never reaches untrusted, LLM-generated
  code. No sessions (the agent doesn't use them).
- sandbox/sandbox.go: BackendDirect ("direct") + New() case.
- config.go: sandbox.image only required for docker/gvisor backends.
- direct_test.go: regression gate that the bot token can't leak.

client_credentials auth and PANDA_ON_BEHALF_OF (from the earlier state of
this branch) already landed on master, so this is now direct-backend only.
@qu0b qu0b force-pushed the qu0b/panda-client-credentials branch from 6e51e04 to 2c3b20e Compare June 12, 2026 19:37
@github-actions

Copy link
Copy Markdown
Contributor

🐼 Smoke eval — 2c3b20e: ✅ 6/6 pass

📊 Interactive report — tokens p50 13,918 · tokens/solve 14,882.

Reference points: v0.32.0 100% · master@5b55abc 100%.

question result tokens tools
forky_node_coverage 14,224 8
tracoor_node_coverage 12,799 3
mainnet_block_arrival_p50 21,558 16
list_datasources 11,514 2
block_count_24h 15,581 12
missed_slots_24h 13,613 4
🔭 Langfuse traces (6 runs; ⚠️ = failed)

The report walks this branch's commits against the master baseline and the most recent release. A self-contained copy is in the run's eval-smoke-* artifact.

@github-actions

Copy link
Copy Markdown
Contributor

Docker images built

Commit: c7c2d0c

Component Image
Server ethpandaops/panda:server-pr-214-c7c2d0c
CLI ethpandaops/panda:pr-214-c7c2d0c
Proxy ethpandaops/panda:proxy-pr-214-c7c2d0c
Sandbox ethpandaops/panda:sandbox-pr-214-c7c2d0c

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant