docker/egress/v1.1.2
opensandbox-group/OpenSandboxdocker/egress/v1.1.2Jun 22, 2026by Pangjiping
AI Summary
The egress component enhances logging, adds environment variable injection for the sidecar, and resolves DNS and credential vault issues.
Key Highlights
- Full policy body logging on init and update for debugging
- Environment variable injection into egress container via `OPENSANDBOX_EGRESS_*` prefix
- DNS 'buffer size too small' failures resolved via EDNS0 with 4096-byte UDP payload
- Credential vault no longer rejects writes during mitmproxy startup
New Features
- Full policy body logging on init and update
- Environment variable injection into egress container
Full Release Notes
## What's New ### ✨ Features - **Full policy body logging on init and update** — Egress now logs the complete JSON policy payload during initialization (from both file and env sources) and on POST/PATCH/DELETE API calls. Previously only a summary (action + target per rule) was logged, making policy debugging harder. (#1095) - **Environment variable injection into egress container** — `OPENSANDBOX_EGRESS_*` prefixed env vars in `CreateSandboxRequest.env` are now automatically routed to the egress sidecar instead of the main sandbox container. Reserved internal vars (`OPENSANDBOX_EGRESS_RULES`, `OPENSANDBOX_EGRESS_MODE`, `OPENSANDBOX_EGRESS_TOKEN`) are blocked with HTTP 400. No API/SDK/spec changes required — uses existing `env` field with prefix convention. (#1069) ### 🐛 Bug Fixes - **DNS "buffer size too small" failures resolved** — The DNS proxy now adds EDNS0 with a 4096-byte UDP payload size when forwarding upstream queries that lack EDNS0, and sets `dns.Client.UDPSize` to 4096. This fixes intermittent DNS failures observed with CoreDNS in Kubernetes when upstream responses exceeded the default UDP buffer (e.g., `packages.microsoft.com` via Azure Linux `tdnf`). (#1098) - **Credential vault no longer rejects writes during mitmproxy startup** — Previously, credential vault POST/PATCH/DELETE handlers returned HTTP 412 immediately when mitmproxy hadn't finished starting, causing a race condition on sandbox startup. Now uses `HealthGate.WaitReady(ctx)` to poll until mitmproxy is ready or the request context is cancelled. (#1092) - **gVisor + networkPolicy incompatibility caught at request time** — Server now returns HTTP 400 when `networkPolicy` is requested under `secure_runtime.type=gvisor`, since gVisor lacks the iptables `nat` table required by the egress sidecar's DNS redirect. Previously this caused a CrashLoopBackOff at runtime with no clear error message. (#1070) ### 📦 Misc - **Runtime volume always mounted on egress sidecar** — The `/opt/opensandbox` shared volume is now mounted on the egress sidecar regardless of `credential_proxy_enabled`, fixing manual MITM scenarios where the CA cert was written to an unreachable filesystem. (#1072) ## 👥 Contributors Thanks to these contributors ❤️ - @bcho - @Pangjiping --- - Docker Hub: opensandbox/egress:v1.1.2 - Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/egress:v1.1.2