github kubernetes-sigs/agent-sandbox v0.4.3

6 hours ago

🚀 Announcing Agent Sandbox v0.4.3!

We are excited to announce the release of Agent Sandbox v0.4.3!

This release brings a massive expansion to our documentation, introducing comprehensive guides on everything from custom environments and filesystems to the Python SDK and Go client. It also improves core stability with new features like TTL-based cleanups for SandboxClaims and volumeClaimTemplates support, while strengthening observability through new Prometheus metrics and latency tracking fixes. Finally, the Python SDK gains a new connection config to seamlessly bypass routers for in-cluster operations.

Key Highlights

  • Documentation Expansion: Comprehensive new docs covering filesystems, volumes, lifecycle/TTL, snapshots, metrics, custom environments, and use cases. Added a Python SDK quickstart, Go sandbox client docs, and a homepage Use Cases grid. The docs/examples/ section has been reorganized under docs/use-cases/.
  • Lifecycle & Cleanup: New Finished condition on Sandbox (mirrored to SandboxClaim) reporting PodSucceeded / PodFailed. New ttlSecondsAfterFinished field on SandboxClaim.spec.lifecycle for automatic cleanup of finished claims, honoring the existing shutdownPolicy (Retain, Delete, DeleteForeground).
  • Storage: Added volumeClaimTemplates support to SandboxTemplate, propagated through SandboxClaim and SandboxWarmPool to the underlying Sandbox. PVC-backed volumes use StatefulSet-style merge semantics with the pod template.
  • Warm Pool Correctness: Fixed duplicate Sandbox adoption during informer cache lag by recording the adopted Sandbox name on the claim via the agents.x-k8s.io/sandbox-name label. Fixed warm-pool sandbox deletion when shutdownPolicy: Retain is set. Added cross-namespace adoption protection.
  • Python SDK Enhancements: New SandboxInClusterConnectionConfig for in-cluster clients to bypass the router — defaults to stable cluster DNS, with an opt-in use_pod_ip=True mode for low-latency direct pod connections (with cache invalidation on errors). Sandbox.status.podIPs is now exposed end-to-end.
  • Observability: Added a --version flag and agent_sandbox_build_info Prometheus metric (with git version, SHA, build date, Go version, platform). Improved ControllerStartupLatency accuracy by keying observed-time entries on both name and UID, so recreated claims with the same name no longer reuse stale timestamps.
  • Stability: SandboxClaim now requeues quietly (instead of erroring) when its template is missing and recovers automatically when the template is created. Sandbox controller now safely handles AlreadyExists on pod creation, refusing to adopt pods owned by other controllers.
  • Testing: Go unit tests now run with -race enabled by default; new make test-e2e-race target. Added a kOps-on-GCP benchmark scenario and a resourcectl CLI for Boskos resource management.

Installation

Core & Extensions

# To install only the core components:
kubectl apply -f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/v0.4.3/manifest.yaml

# To install the extensions components:
kubectl apply -f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/v0.4.3/extensions.yaml

Python SDK

pip install k8s-agent-sandbox==0.4.3

Contributors

A huge thank you to all the contributors who made this release possible!

@angristan, @noeljackson, @vgunapati, @igooch, @chw120, @yashasvimisra2798, @bittermandel, @Oneimu, @alimx07, @aleks-stefanovic, @justinsb, @janetkuo, @dongjiang1989, @rayowang, @vicentefb, @volatilemolotov

👋 New Contributors

@vgunapati made their first contribution in #489
@alimx07 made their first contribution in #645
@bittermandel made their first contribution in #583
@angristan made their first contribution in #240

Full Changelog: v0.4.2...v0.4.3

Don't miss a new agent-sandbox release

NewReleases is sending notifications on new releases.