2026.09.11 Release v0.7.1
CubeSandbox 0.7.1 introduces 1 major feature along with multiple enhancements and bug fixes. 70 commits from 24 contributors.
🎯 Major Features
End-to-end high availability for Cube control-plane services
- A standalone template-center service enables multi-replica CubeMaster deployment.
- The lifecycle management service now supports active/standby deployment.
✨ Enhancements
Templates & Storage
- Snapshot support for Host Mount and Volume Plugin: snapshot, restore, rollback, and clone now work for sandboxes with external mounts (#1654, #1656).
- Standalone CubeTemplateCenter: template build / delete / reclaim is split out of CubeMaster into an independently scalable multi-replica service. Build artifacts are persisted to S3/MinIO (AWS S3 compatible). Also fixes long-standing issues around concurrent build races, inconsistent artifact table names, and ephemeral local-disk storage (#1659).
- Faster same-bucket cross-node snapshot restore (#1663): restoring a snapshot from the same bucket now uses object-storage server-side copy, which is significantly faster. Also improves delayed-delete reclamation and adds snapshot cancellation.
Lifecycle & Control Plane
- CLM now supports active/standby disaster recovery.
- Running sandboxes no longer block snapshot deletion (#1620): deleting a still-referenced snapshot takes effect immediately; underlying storage is reclaimed after the last reference is released.
Security
- virtiofsd hardening (#1612): after a directory whitelist is set, root-directory mutation operations are rejected, as are forged readdirplus requests.
Deployment & Runtime
- CubeS3lvol on Kubernetes (#1637): use the S3 backend for cross-node pause/resume and snapshots in K8s deployments.
- One-click deployment supports external PostgreSQL (#1644): choose MySQL / PostgreSQL via
CUBE_DATABASE_DRIVERand connect to a self-managed database instance. - CubeS3lvol is now opt-in (#1622, #1633): set
[cow.s3] enable = true(orONE_CLICK_ENABLE_S3LVOL=1for one-click deploy); it is disabled by default. Also fixes the switch not taking effect during one-click upgrades. Upgrade note: nodes that were using S3 without an explicit setting must enable it after upgrade. - Unified Helm Redis logical-DB config (#1638): new top-level
redis.dbapplies to CubeMaster / CubeProxy / CLM, so multiple clusters sharing one Redis instance can isolate logical databases per cluster.
Web UI / CubeOps / Other
- cubemastercli batch template deletion (#1549):
tpl deleteaccepts multiple template IDs in one call.
🐛 Bug Fixes
Lifecycle & Sandbox
- Fixed sandboxes set to never expire (
NEVER_TIMEOUT) being immediately treated as expired (#1401). - Fixed invalid CPU / memory specs in create requests being treated as 0, allowing sandboxes to bypass node resource filters and be scheduled onto any node (#1463).
- Fixed a new timeout passed on Resume being discarded, so the sandbox kept its pre-pause timeout (#862).
- Fixed snapshots after an S3-backend restore falling back to a full memory dump; snapshots stay incremental (#1688).
- Fixed no log output from
cubecli logsfor sandboxes created from a template (#1616). - Fixed template creation hanging indefinitely when a compute node is unresponsive; added a configurable timeout (default 300 seconds) (#994).
- Fixed gRPC connections not being closed promptly after a node is taken offline or deleted (#1585).
- Fixed S3 volume mount failures with newer s3fs (1.97+ / FUSE3) (#1647).
Networking & Security
- Fixed the transparent proxy returning 504 after 60 seconds when talking to slow-TTFB upstreams such as LLMs; proxy send/receive timeout is now 2 hours (#1655).
- Fixed CubeEgress failures caused by oversized credential values injected via network rules; the per-entry injection limit is aligned with E2B at 2048 bytes (#1606).
- Fixed TAP device names silently truncated past the kernel length limit, causing network device lookup failures (#1552).
- Fixed intermittent Cubelet network-plugin init failures on K8s when the gateway ARP cache is not ready early in node startup (#1609).
- Image-registry credentials no longer appear in component logs (#1600).
Deployment & Upgrade
- Fixed Helm upgrades failing because Redis StatefulSet PVC labels changed (#1604).
- Fixed
global.imageRegistryoverwriting explicitly configured private / third-party registry addresses (#1605). - Fixed helm test pods remaining Pending on tainted nodes (#1388).
- Fixed Terraform deployments skipping validation and template creation when node queries returned 0 healthy nodes (#1602).
- Fixed CubeOps ignoring the logical-DB number when using a standalone Redis config, which hid node metrics and caused scheduling-metric update timeouts (#1607).
- Fixed lowercase log-level values (e.g.
info) not taking effect and falling back to DEBUG (#1597). - Fixed builder image builds failing on Ubuntu 20.04 (#1588).
Other
- Node / Python SDK: fixed command execution never returning when timeout is
0orNEVER_TIMEOUT(#1485). - Fixed cubeopscli reporting a hardcoded 0.1.0 version and the
versionsubcommand being unavailable (#1596). - Fixed cubemastercli
versionproducing no output by default (#1657). - Fixed the Web UI runtime config page showing deprecated settings (#1573).