Skip to content

Adopt agent-sandbox CRD for per-tenant kernel-isolated workspaces #5

Description

@snese

Summary

Adopt the kubernetes-sigs/agent-sandbox model (as packaged in awslabs/ai-on-eks) to give each tenant a declarative, lifecycle-managed, kernel-isolatable workspace. Today tenants are plain Deployments isolated only at the namespace + NetworkPolicy level. This migrates the per-tenant workload to the Sandbox CRD model and adds a gVisor runtime tier as a follow-up.

Why

  • The Sandbox CRD is purpose-built for "a long-running, stateful, singleton container with a stable identity" — exactly the per-tenant persistent workspace model used here.
  • Its target architecture includes hibernation + resume-on-incoming-connection (native scale-to-zero for the agent tier). This is not yet available on the pinned v0.4.5 and lands incrementally — tracked upstream in Auto Suspend/Resume kubernetes-sigs/agent-sandbox#968 (see Scope below).
  • gVisor is delivered as a SandboxTemplate runtimeClassName field, not a standalone layer — so adopting the Sandbox control plane first is the architecturally correct order.
  • Built on AWS-native + OSS SIG primitives.

Scope (phased)

Verified design notes

  • gVisor supports ARM64, so the all-Graviton (Graviton/arm64) cluster needs no x86 migration.
  • On v0.4.5 v1alpha1, SandboxClaim.spec.sandboxTemplateRef links directly to the SandboxTemplate; the controller deletes the pod at Replicas==0 (no native wake), which is why scale-to-zero is split into PR chore(deps): bump actions/setup-node from 6.3.0 to 6.4.0 #1.5 and tracked against the upstream auto suspend/resume work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/runtimeSandbox runtime, gVisor, isolation tiersupstream-dependencyBlocked on an external upstream release/feature

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions