ack-agent-sandbox-controller

Updated at:

ack-agent-sandbox-controller is a Kubernetes-based add-on designed to provide standardized, productized Sandbox lifecycle management. Use it to manage Sandboxes from creation through upgrade, including batch management and warm pools.

Overview

ack-agent-sandbox-controller covers the full lifecycle of a Sandbox, from creation to destruction. Its core capabilities include creating, hibernating, resuming, and upgrading Sandboxes. They also cover batch management and warm pools based on SandboxSet, claiming pre-warmed Sandboxes through SandboxClaim, and in-place or recreate-based version upgrades driven by SandboxUpdateOps.

Usage

To learn how to use ACS Agent Sandbox, see Create an Agent Sandbox.

Sandbox Runtime component image versions

If you configure Sandbox Runtime components, such as agent-runtime or the Container Storage Interface (CSI) Sidecar, for a Sandbox, ack-agent-sandbox-controller injects the corresponding sidecar containers into the Sandbox. The following table maps ack-agent-sandbox-controller versions to the image versions of each sidecar container:

Component version

Release date

agent-runtime

csi-plugin

csi-agent

traffic-proxy

v0.6.6-release.1

September 3, 2026

v0.0.15 (TLS not enabled)

v0.2.0 (TLS enabled)

v1.37.2.1

v1.37.2.3

v0.1-12-ga8f83ce-aliyun

v0.6.4-release.1

August 20, 2026

v0.0.13 (TLS not enabled)

v0.1.2 (TLS enabled, built-in)

v1.37.1 (built-in)

v1.37.1-de815fc-aliyun (built-in)

v0.1-8-gf471abf-aliyun (built-in)

v0.5.24-release.1

August 13, 2026

v0.0.9

v1.35.2.2

v1.35.5.1

v0.1-8-gf471abf-aliyun (built-in)

v0.5.22-release.2

July 29, 2026

v0.0.9

v1.35.2.2

v1.35.5.1

v0.1-8-gf471abf-aliyun (built-in)

v0.5.19-release.3

July 10, 2026

v0.0.9

v1.35.2.2

v1.35.5.1

v0.1-8-gf471abf-aliyun (built-in)

v0.5.16-release.x

June 12, 2026

v0.0.8

v1.35.1-2592a4872 (built-in)

v1.35.4-3c34d4a-aliyun (built-in)

v0.1.0-1-ga070cf0-aliyun

v0.5.14-release.1

June 1, 2026

v0.0.5 (built-in)

v1.35.1-2592a4872 (built-in)

v1.35.4-3c34d4a-aliyun (built-in)

v0.1.0-1-ga070cf0-aliyun

v0.5.13-release.1

May 21, 2026

v0.0.5 (built-in)

v1.35.1-2592a4872 (built-in)

v1.35.4-3c34d4a-aliyun (built-in)

— (not introduced)

v0.5.12-release.1/2/3

May 6, 2026, May 8, 2026, and May 11, 2026

v0.0.5 (built-in)

v1.35.1-2592a4872 (built-in)

v1.35.4-3c34d4a-aliyun (built-in)

— (not introduced)

Changelog

September 2026

Version

Update time

Changes

Impact

v0.6.6-release.3

September 21, 2026

  • Bug fixes:

    • Fixed an issue where Pods created by a SandboxSet were missing pool and template identifiers:The Pods did not carry the agents.kruise.io/sandbox-pool and agents.kruise.io/sandbox-template labels, preventing accurate identification of their warm pool and SandboxTemplate.

    • Fixed an issue where a Sandbox with a long name could not be paused or snapshotted:When a Sandbox name exceeds 63 characters, its Checkpoint label does not meet the Kubernetes length limit, so the API server rejects Checkpoint creation.

    • Fixed an issue where a traffic policy did not take effect when the warm pool was empty:The sandbox-name label of the Sandbox Pod was empty, so the TrafficPolicy selector could not match the Pod.

This update does not affect your services.

v0.6.6-release.2

September 18, 2026

  • Bug fixes:

    • Fixed slow resume of a paused Sandbox:The controller previously updated the Sandbox status repeatedly, increasing cluster API server load and causing controller cache latency, which delayed Sandbox resume.

This update does not affect your services.

v0.6.6-release.1

September 3, 2026

  • Features:

    • [Important] Automatic Sandbox pause and resume: Added spec.probes and spec.autoPausePolicy. The controller periodically runs commands in the specified container through an exec probe and determines whether the application process is idle from the command output. It can also parse scheduled task times reported by the probe and resume the Sandbox before a task starts.

    • [Important] PoolAutoscaler warm pool autoscaling: Added the PoolAutoscaler CustomResourceDefinition (CRD). It automatically adjusts the number of SandboxSet replicas according to the number of available Sandboxes in the warm pool or on a schedule. It supports a replica range, a tolerance range, and a scaling cooldown period.

    • Dynamic mounting for AgenticBucket and BucketSpace: CSI dynamic mounting supports the bucketSpace, bucketSpacePrefix, and region settings and automatically generates the associated storage authentication information.

  • Bug fixes:

    • Fixed a maxUnavailable misjudgment that slowed SandboxSet scale-out: Previously, all Sandboxes that were not Ready counted toward scaleStrategy.maxUnavailable, so normally Creating Sandboxes could restrict scale-out prematurely. This version counts only exceptional states, including creation failures, startup failures, or prolonged Pending states. Sandboxes being created normally no longer consume the quota, improving SandboxSet scale-out. When the limit is reached, scale-out still pauses and the reason appears through the ScalingLimited condition.

    • Sandbox hibernation now waits for Checkpoint completion: Hibernating a Sandbox directly while it is performing a Checkpoint used to fail. This version waits for the Checkpoint to complete before proceeding with hibernation.

    • Fixed envd initialization failures when SandboxUpdateOps upgrades a hibernated Sandbox: After a Sandbox resumes, PodInfo such as its IP address is updated before envd initialization runs, preventing initialization failures caused by stale Pod information.

    • Fixed upgrade Hook execution failures after runtime TLS is enabled: When SandboxUpdateOps runs PreUpgrade and PostUpgrade Hooks, it accesses agent-runtime over TLS instead of incorrectly falling back to plaintext access.

    • Fixed inconsistent Sandbox Pod labels: When a Sandbox was created with an inline template, controller labels were incorrectly written to the Pod. This version fixes the issue so the Pod labels match those produced through templateRef creation.

    • Fixed cross-namespace claiming and repeated retries for invalid SandboxClaim configurations: A SandboxClaim now claims only Sandboxes in the same namespace. If a system-reserved label or annotation is configured, it returns a specific error and stops retrying.

    • Fixed an occasional one-minute wait after Sandbox resume: When a Checkpoint is cleaned up after resume, waiting ends immediately if the Checkpoint no longer exists, avoiding a timeout when no deletion event is received.

    • Fixed continued scaling after SandboxSet deletion: Scaling stops immediately when SandboxSet deletion is detected, preventing further Sandbox creation or adjustment.

    • Fixed an issue where the SandboxTemplate webhook did not take effect: Configuration validation is restored when a SandboxTemplate is created or updated.

Before you enable automatic Sandbox pause and resume, ensure that the probe commands and evaluation conditions match your workloads. Before you enable PoolAutoscaler, configure the replica range, tolerance range, and scaling cooldown period.

August 2026

Version

Update time

Changes

Impact

v0.6.4-release.1

August 20, 2026

  • Features:

    • [Important] Configurable Sandbox pause strategy (PauseStrategy): Added spec.pauseStrategy, which supports Stop (deletes the Pod directly and retains only Persistent Volume Claim (PVC) data) and Hibernate (saves rootfs and memory state before hibernation, with the storage medium specified by hibernateStrategy.type=Snapshot). These two pause mechanisms replace the previous fixed hibernation implementation.

    • [Important] SandboxUpdateOps supports upgrades for paused Sandboxes: Added spec.stateFilter.states (default: [Running]), allowing Paused to be an upgrade candidate. A paused Sandbox is resumed first and then upgraded by recreating its Pod. After the upgrade completes, it automatically returns to Paused or Running according to the semantics of spec.paused.

    • [Important] End-to-end TLS between controller and agent-runtime: Added the --runtime-client-cert-dir parameter. When configured, the controller accesses agent-runtime through mutual TLS (mTLS)/HTTPS, covering paths such as SandboxClaim claiming, Pod /init, and CSI dynamic mounting. When not configured, the original plaintext access is retained for backward compatibility.

    • [Important] Runtime component split and extensive optimizations: Application containers no longer need to run as the root user. The CSI socket mount path is no longer exposed in application containers. agent-runtime supports mTLS authentication, and envd is upgraded to native-tag-2026.22, aligned with the community edition.

    • Security Token delivery path optimization: Security Tokens are delivered through the resolved runtime transport channel. Stale Token files in the Sandbox are removed after delivery succeeds, preventing outdated credentials from remaining.

    • Storage authentication extended to NAS (AgenticFS) scenarios: Storage authentication based on RAM Roles for Service Accounts (RRSA) now extends from OSS to NAS mounts and supports Security Token Service (STS) temporary credential refresh.

    • Automatic NAS (AgenticFS) subdirectory creation (if a remote NAS subdirectory does not exist when it is mounted, the subdirectory is created automatically; this depends on volume: nas-subpath-dir).

    • Sandbox Ready condition reflects Pod scheduling failures: Pod scheduling failures are synchronized to the Sandbox Ready condition, so that scheduling issues can be identified from Sandbox status without checking Pod events.

    • Checkpoint supports label-based selection and cloning: Checkpoints now carry selectable labels, which makes filtering easier when cloning a Sandbox by Checkpoint.

    • SandboxClaim propagates custom annotations to the Pod template during claiming (internal reserved keys are filtered through a blocklist).

    • Tracing support for the Sandbox lifecycle: The controller and sandbox-manager add distributed tracing instrumentation for end-to-end troubleshooting of create, pause, resume, and upgrade latency.

    • Optimized Sandbox deletion: Sandbox finalizers are no longer added by default. They are added only for scenarios that require them, such as hibernation.

  • Bug fixes:

    • Refused to adopt a legacy Pod with the same name: After Sandbox deletion, a same-named Pod might not be removed in time because deletion is asynchronous. The creation flow now refuses to adopt that legacy Pod, preventing state inconsistency. This is fixed for both ACS and generic paths.

    • Preserved injected resources during in-place scaling: Fixed an issue in which resource specifications injected by webhooks and other components were overwritten and lost during in-place CPU or memory scale-up.

    • Adapted resource resize status checks to ACS resource normalization: Fixed an issue where a Sandbox became stuck in the in-place resize state after allocation because of resource normalization.

    • Cleared upgrade-strategy markers after a successful SandboxUpdateOps upgrade: Fixed residual intermediate upgrade-state markers that remained on a Sandbox after the upgrade completed.

    • Fixed SandboxUpdateOps upgrade patching and Checkpoint restore selection: Fixed template patch application order and inaccurate candidate Pod selection during Checkpoint-based restore.

    • Synchronized ACS annotations after resume: Fixed an issue where some ACS status annotations were not synchronized after a Sandbox resumed.

After mTLS is enabled for agent-runtime, security improves for some management APIs and API latency increases slightly. This does not affect request-chain usage and remains within acceptable limits. After application containers run as non-root users, some limits apply. These limits will be described in product documentation.

v0.5.24-release.1

August 13, 2026

  • Features:

    • NAS dynamic mounting supports automatic subdirectory creation.

  • Bug fixes:

    • Fixed an issue where OSS mounting failed during Sandbox cloning through the E2B flow because identity files were reissued.

This update does not affect your services.

July 2026

Version

Update time

Changes

Impact

v0.5.22-release.2

July 29, 2026

  • Features:

    • Zero-trust identity authentication: During a claim, TokenKind issues a JSON Web Token (JWT) access token for clients to access a Sandbox through the gateway. The traffic access token remains only in memory and is not persisted to the custom resource (CR). After Sandbox resume, the Security Token is reissued to ensure CSI remounting uses valid credentials. Security Token refresh is deferred until the Sandbox is Ready to prevent premature refresh while the Pod is not ready, and the refresh policy is optimized. RRSA storage authentication is added for on-demand CSI mounting scenarios, providing secure storage mounts through STS.

    • Kubernetes lifecycle events: The controller now supports Kubernetes events. When Pod creation fails, it emits an event and sets a condition to help troubleshoot.

    • SecurityProfile MCP tool access control: SecurityProfile now supports access control policies at the MCP tool level.

    • agent-runtime v0.0.11: Aligns with community native-tag-2026.22, optimizes log output of the microVM metadata service (MMDS), updates the Runtime storage-mount binary plug-in to acs.v0.4, and supports STS-based authentication for dynamic storage mounting.

Traffic access tokens are no longer persisted to the CR after the zero-trust identity authentication update. Verify that the Sandbox access chain works after the upgrade. RRSA storage authentication lets users of on-demand CSI mounts authenticate with STS credentials. The remaining feature updates do not affect existing services.

v0.5.19-release.3

July 10, 2026

  • Features:

    • Added support for custom traffic-proxy resource configuration. Default traffic-proxy resources have been adjusted (Request: 0.1C/128Mi → 0.2C/128Mi, Limit: 2C/2Gi → 0.2C/128Mi). Evaluate whether adjustments are needed based on your actual traffic.

    • Resume from a failed upgrade step: If a SandboxUpdateOps upgrade is interrupted or fails, it can resume from the last failed step instead of starting over (covers image change scenarios). This feature is disabled by default and can be enabled as needed through FeatureGate SandboxUpgradeResumeFromFailedStep.

  • Bug fixes:

    • Fixed an issue where a SandboxClaim with only label changes was incorrectly considered to require an in-place upgrade, slowing Sandbox acquisition.

    • Fixed an issue where SandboxUpdateOps could select Sandboxes that were not running. Upgrades now apply only to Sandboxes in the Running or Upgrading state.

    • Before a Sandbox resumes, the init container image is checked for consistency to avoid runtime exceptions caused by an image mismatch.

    • Fixed an issue where the image cache was not used when replacing Sandbox images after the warm pool was exhausted.

The default traffic-proxy resources have changed. Evaluate whether to manually adjust them based on your actual traffic. The remaining fixes do not affect existing services.

June 2026

Version

Update time

Changes

Impact

v0.5.16-release.2

June 16, 2026

  • Bug fixes:

    • After a Sandbox resumes, an init container image consistency check runs before Runtime initialization and CSI dynamic-volume mounting proceed.

This update does not affect your services.

v0.5.16-release.1

June 12, 2026

  • Features:

    • The Pod template spec remains unchanged after a Sandbox hibernates or resumes, preventing unexpected Pod specification changes after resume.

    • SandboxSet automatically creates its associated SandboxTemplate, simplifying configuration.

    • Optimized claim performance for large-scale SandboxSet scenarios (5,000+). A new in-place counter, CountActiveSandboxes, replaces full-list copies and significantly reduces claim hot-path overhead.

    • Metrics cleanup during Sandbox deletion is now asynchronous, moving it out of the reconcile hot path and improving deletion throughput.

    • SandboxUpdateOps now handles all Sandboxes not managed by SandboxSet, covering upgrade scenarios for directly created Sandboxes.

  • Bug fixes:

    • Fixed an issue where newly scaled-out Sandboxes caused SandboxUpdateOps to remain in the Updating state. Sandboxes whose templates already match the target version are now skipped automatically.

    • Stabilized init-container injection order to keep Runtime container injection order consistent and maintain backward compatibility.

    • Fixed intermittent Sandbox in-place image-upgrade failures. If the SandboxHashImmutablePart annotation is missing, immutable-part validation is skipped.

This update does not affect your services.

v0.5.14-release.1

June 1, 2026

  • Features:

    • Added Sandbox traffic management. It injects a traffic-proxy runtime and is enabled by adding the Pod annotation network.alibabacloud.com/network-policy-mode=enhanced-traffic-policy.

    • Added the sandbox_runtime_container_abnormal metric to monitor abnormal Sandbox Runtime container states.

    • Sandbox Controller supports deploying TrafficPolicy from the component center to limit access to port 49983 on envd. This feature is disabled by default.

    • Added tracing for Sandbox creation, deletion, hibernation, and resume. This feature is disabled by default and can be enabled through FeatureGate SandboxTraceLog=true.

  • Bug fixes:

    • Changed deleteSandboxMetrics to run asynchronously, resolving reconcile blocking caused by DeletePartialMatch lock contention during high-concurrency Sandbox deletion.

    • Fixed an issue where Sandbox status was not persisted while the Sandbox was Pending.

This update does not affect your services.

May 2026

Version

Update time

Changes

Impact

v0.5.13-release.1

May 21, 2026

  • Features:

    • Added mount-validity validation for the VolumeClaimTemplates field of SandboxSet.

    • SandboxClaim now validates TTLAfterCompleted and WaitReadyTimeout.

    • Added the SandboxMultiClusterNaming FeatureGate. It embeds a cluster-ID hash in Sandbox generateName to avoid multi-cluster name collisions. It is disabled by default and can be enabled in the component center.

    • When a Sandbox is created with SandboxClaim or the E2B SDK, only in-place CPU scale-up from the warm pool is supported.

    • The CRD types now include Strategic Merge Patch markers, improving kubectl apply performance and reducing API server load.

    • Added Prometheus metrics for Sandbox hibernation, resume, and upgrade operations for monitoring dashboards.

    • Moved CSI dynamic mounting after Sandbox hibernation and resume to Sandbox Controller, removing the dependency on sandbox-manager.

  • Bug fixes:

    • Fixed an issue where the Sandbox Status Condition message field did not include the script stdout or stderr when a SandboxUpdateOps lifecycle script failed, improving troubleshooting.

    • Added a fallback check for resumedCondition.Status=True during Sandbox resume, resolving resume blocking when the underlying hibernation succeeds but Pod Ready remains True.

This update does not affect your services.

v0.5.12-release.3

May 11, 2026

  • Bug fixes:

    • Fixed an issue where dynamic mounting was not triggered during a SandboxUpdateOps upgrade for Sandboxes created through the E2B flow.

This update does not affect your services.

v0.5.12-release.2

May 8, 2026

  • Bug fixes:

    • If a SandboxClaim has SkipInitRuntime=false but agent-runtime is not configured, it now skips InitRuntime and logs an error.

    • SandboxSet now rounds up the maxUnavailable percentage calculation, ensuring that at least one Sandbox can be updated.

This update does not affect your services.

v0.5.12-release.1

May 6, 2026

  • Features:

    • SandboxSet supports upgrading Sandboxes in the warm pool. updateStrategy supports maxUnavailable.

    • Sandboxes support updateStrategy=Recreate and Lifecycle preUpgrade and postUpgrade. CSI dynamic mounting runs after the upgrade.

    • Added support for upgrading allocated Sandboxes through a SandboxUpdateOps CR.

    • In hibernation and resume scenarios, the SandboxClaim controller supports dynamic mounting.

    • Added support for explicitly configuring ops.alibabacloud.com/pause-enabled='false'.

    • Sandboxes support monitoring metrics that are generated and exposed in the same way as kube-state-metrics.

    • Sandboxes support CPU vertical scaling through Vertical Pod Autoscaler (VPA). This feature is disabled by default and can be enabled with FeatureGate SandboxInPlaceResourceResizeGate=true.

    • A Pod validating webhook protects against accidental Pod deletion.

    • Pod labels can be modified when acquiring a Sandbox through SandboxClaim.

This update does not affect your services.