October 2026 - V1.22.0
This release adds Memory Extension for supported EKS nodes, finer JVM heap controls, CPU pressure protection, and more control over node disruption. It also makes scheduling, node operations, and resource costs easier to understand across AWS, GKE, and AKS.
🚀 Highlights
Memory Extension for EKS
Memory Extension moves inactive memory pages to disk-backed cold memory, with compressed cached pages for faster reuse. It helps supported workloads absorb growth above their memory requests and reduces avoidable node-level out-of-memory failures.
Enable it on CloudPilot-managed AWS NodeClasses using Amazon Linux 2023 and nodes with at least 4 GiB of physical memory. Cold-memory capacity follows configurable memory and root-disk limits, preserving disk headroom. The configuration applies to newly created nodes; replace or rebalance existing nodes to adopt it. Pod requests, limits, and normal capacity planning still apply. See Memory Extension.
Finer JVM Heap Controls and CPU Pressure Protection
Workload Autoscaler extends the existing minimum Xms setting with independent Xms and Xmx minimum and maximum bounds. Use absolute memory quantities, or percentages of the original effective JVM heap settings on compatible managed clusters. Percentage bounds wait for a trustworthy original heap baseline, and conflicting heap and container Memory constraints keep recommendations NotReady rather than applying an incompatible target. See JVM Heap Bounds.
CPU Pressure Stall Information (PSI) now makes CPU downsizing more conservative when supported telemetry shows sustained CPU pressure. Protection respects configured CPU ceilings and leaves the normal usage-based recommendation unchanged when PSI data is unavailable or insufficient. See PSI Recommendation Protection.
More Control over Node Disruption and Spot Selection
Configure a Disruption Cooldown at cluster level or override it for individual managed NodePools. After a voluntary disruption batch finishes, the next batch waits for the configured interval. Cooldown state survives controller restarts, while disruption budgets continue to limit each batch. This control is available for managed AWS, GKE, and AKS NodePools. See Lifecycle and Disruption.
AWS clusters can also choose between lowest-price and price-capacity-optimized Spot allocation strategies. The default remains lowest-price; the alternative considers both price and available capacity. See Cluster Settings.
Clearer Scheduling Diagnostics and Node Operations
NodePool instance candidates show which instance types match the saved pool configuration, helping explain restrictive placement settings before provisioning. Scheduling diagnostics and node-level optimization wait reasons provide more context when Pods remain pending or nodes cannot be optimized. Candidate lists describe compatibility, not a guarantee of live cloud capacity.
The Node List adds Cordon, Uncordon, Drain, and Force Drain actions, plus Delete for NodeClaim-managed nodes. Supported Controllers report execution progress and recover interrupted actions. Component status and live logs also help diagnose installation and runtime issues from the Console. See Node Autoscaler Configuration and Component State.
Workload Costs and Resource Efficiency
New workload cost views estimate CPU and Memory costs by workload and NodePool, with trends and pool breakdowns. Resource-efficiency views highlight unused requests and estimated hourly waste to help prioritize optimization. Cost history begins with valid samples from an upgraded Agent; missing periods remain unavailable, and waste estimates do not represent guaranteed savings. See Cost History and Allocation.
⚙️ Enhancements
- Support
node-role.kubernetes.io/*labels in EKS NodePool configuration. - Expand read-only MCP coverage for cluster health, configuration, node and workload details, costs, and operational history. See Configuration and Metrics Reference.
🛠️ Bug Fixes
- Restrict batch-workload provisioning throttles to opted-in Job NodePools and improve coordination within provisioning batches on AWS, GKE, and AKS.
- Recover missing Workload Autoscaler metrics through verified Kubernetes ownership, including workloads with long names, and correct percentage resource bounds when original requests are missing.
- Clear stale process and JVM collection state after container restarts or runtime identity changes.
- Prevent Image Accelerator startup taints from blocking node initialization indefinitely by releasing them after a bounded wait.
📦 Upgrade Notes
Follow the Upgrade Guide to update installed cluster components. Before using percentage JVM heap bounds, upgrade the node agent, Workload Autoscaler CRDs, webhook, controller, and management service, then verify the workload’s heap baseline is ready. Selfhost supports absolute heap bounds in this release.
For questions or support, join our Slack community .