> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/cloud-cost-management/3.0/cost-optimization/cluster-orchestrator-for-aws-eks-clusters/release-notes.md).

# Release Notes

### Compatibility Matrix <a href="#compatibility-matrix" id="compatibility-matrix"></a>

| Cluster Orchestrator Version | Kubernetes | Karpenter |
| ---------------------------- | ---------- | --------- |
| Till `0.6.0`                 | 1.32       | 1.2.4     |
| `0.7.0`                      | 1.33       | 1.7.3     |
| `beta-0.7.0`                 | 1.34       | 1.8.0     |
| `0.9.0`                      | 1.34       | 1.8.2     |

### Operator <a href="#operator" id="operator"></a>

Link: <https://hub.docker.com/r/harness/cluster-orchestrator/tags>

| Version        | Release Date   | Change Log |
| -------------- | -------------- | ---------- |
| LATEST `0.9.0` | April 28, 2026 |            |

* Upgraded Karpenter dependency to v1.8.2. Operator now emits events to the platform on schedule, Start and End.\
  -Thread-safe logging in Reconcilers; CCM Taint-related noise suppressed in the operator. -Fixed pod scheduled status check to use node assignment instead of pod phase. -Removed unnecessary/noisy error log lines from the operator. Stabilised Cluster Schedules | | `0.8.2` | Mar 6, 2026 | Complete redesign of bin-packing to work seamlessly with Karpenter consolidation, delivering better cost savings with zero conflicts: -Uses pod resource requests (matching Karpenter's logic) to eliminate evict-and-reprovision churn. -Only consolidates Karpenter-managed nodes that have been stable for ConsolidateAfter duration. -Cordons nodes immediately after eviction to prevent reschedule races. -Respects karpenter.sh/do-not-disrupt annotation at pod and node levels
* Skips nodes already being disrupted by Karpenter
* Protects system-critical pods, single replicas, and PDBs
* Configurable eviction caps (default: 20 pods) to prevent storms
* Rich platform events with CPU/Memory utilization data
* Non-blocking async execution
* Azure Karpenter Support (Preview)
* Integrated Azure Karpenter provider for AKS support
* Multi-cloud providerID parsing (AWS, Azure, GCP)
* Configurable Azure Karpenter version support | | `0.8.1` | Feb 23, 2026 | - Upgraded to VPA 1.5.1 with support for in-place pod resizing (eliminates pod restarts during resource adjustments)
* Added real-time scaling event tracking for VPA operations
* Enhanced security with AWS IMDSv2 support and Rapidfort hardened container images
* Performance improvements with Go 1.25 runtime upgrade | | `0.8.0` | Feb 3, 2026 | - Introducing a new distributor component (currently under a **FF DISTRIBUTIONV2\_ENABLED**)
* This component works with a checkpoint to ensure the distribution of spot and on-demand is as per the distribution rules
* Faster distribution: faster placement and reconciliation for eventual consistency of the split
* Bug fix: Editing the config, disabling the harness managed nodepools
* Suppressed client-go logs (available under log level TRACE)
* Adding Default Consolidation on Harness created default nodepools
* Enabling Nodepools and Nodeclasses sync by default | | `0.7.0` | Dec 12, 2025 | - Cluster Orchestrator supports Karpenter 1.7.3 features. Users must [re-run the enablement script or Terraform template](/cloud-cost-management/cost-optimization/cluster-orchestrator-for-aws-eks-clusters/enablement-methods/setting-up-co-helm.md#step-1-set-up-required-infrastructure-with-terraform) and perform a Helm upgrade to add new permissions for Cluster Orchestrator related to Karpenter 1.7.3.
* Supports Kubernetes (EKS) version 1.33; previously supported only 1.32
* New major Karpenter features (from 1.2.4 to 1.7.3) for non-Karpenter customers: Support for ODCRs ([on-demand capacity reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html)), SSM Parameter support for AMI selection, Improved [IAM instance profile management](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) and Bug fixes and performance improvements
* Auto-Discovery Support for Instance Profile and Node Role ARN Environment Variables. Environment Variables with Auto-Discovery Support: `AWS_DEFAULT_INSTANCE_PROFILE`, `AWS_NODE_ROLE_ARN`. Previously, these environment variables were required to be explicitly defined in the deployment configuration. Now, the Cluster Orchestrator automatically discovers these values on startup. | | `0.6.0` | Nov 26, 2025 | - Support for Vertical Pod AutoScaling (VPA automatically adjusts CPU and memory resource requests for pods based on their usage patterns).
* New CRD and deployments added
* Support for [Disabling and Deleting Cluster Orchestrator](/cloud-cost-management/3.0/cost-optimization/cluster-orchestrator-for-aws-eks-clusters/enablement-methods/delete.md) | | `0.5.2` | Oct 3, 2025 | - Support for Disabling Cluster Orchestrator via Config CRD -Support for configuring Cluster Level Nodepool limits via Config CRD -Improved validation of the Replacement window -Handling lease locks gracefully
* Handling finalizer errors gracefully | | `0.5.1` | Sep 3, 2025 | - Support for **Robust Distribution mode** in Bin Packing. **Robust Distribution Mode** is an enhancement to the default Cluster Orchestrator scheduling flow which gets automatically enabled when bin packing is enabled. Using the Kubernetes Descheduler's policy `RemovePodsViolatingNodeTaints`, it automatically evicts pods from incompatible nodes and reschedules them to nodes that match your configured distribution. | | `beta-0.5.0` | Aug 6, 2025 | - Support for Kubernetes version 1.32 (Karpenter version 1.2)
* New CRD `ClusterOrchestratorConfig` enabling Kubernetes-native configuration of Cluster Orchestrator directly within the cluster - allows users to declaratively define nodepool settings, spot/on-demand distribution, bin-packing parameters, and workload scheduling policies as standard Kubernetes resources
* Fixed the bug where 100% On demand configuration was creating spot nodes under heavy load | | `beta-0.4.3` | July 1, 2025 | - Suppressing error logs
* Support for disabling default nodepools via an ENV variable DISABLE\_DEFAULT\_NODEPOOLS
* Handling Null Object scenarios in Cluster Orchestrator reconcilers
* Handling nodepools with maximum nodepool weight 100
* Working well with other operators (like Kyverno) which adds tolerations on pods | | `beta-0.4.2` | June 17, 2025 | - Sped up the distribution of workloads, by iterating the changed ReplicaSet instead of the whole namespace
* Adding default toleration for pods in protected namespaces
* Handling Distribution of Job Pods separately, irrespective of namespace triggers | | `beta-0.4.1` | June 1, 2025 | - Consolidated to a unified ReplicaSet reconciler architecture that handles both Deployments and StatefulSets
* Handling the scheduling of Stand Alone Pods with default toleration
* [Replacement windows](/release-notes/cloud-cost-management.md#-new-feature-replacement-schedules) for Bin Packing, Consolidation, Reverse Fallback | | `beta-0.4.0` | May 6, 2025 | - Workload Distribution Rule at namespace level
* Integration with commitment orchestrator
* Event logs for Cluster Orchestrator
* Node replacement Framework |

### Helm Chart Releases <a href="#helm-chart-releases" id="helm-chart-releases"></a>

Link: <https://app.harness.io/ng/account/6NTMT--yR7ORXKPqwLDioA/module/code/repos/Helm>

| Version        | Release Date  | Changes             |
| -------------- | ------------- | ------------------- |
| LATEST `0.5.0` | April 28,2026 | - Support for 0.9.0 |

* Karpenter dependency 1.8.2 | | `0.4.2` | Mar 6, 2026 | - Support for 0.8.2
* Updated the Config CRD to support Bin Packingmax\_evictions
* Updated permissions for Node and Pod metrics calculation | | `0.4.1` | Feb 23, 2026 | - Support for Cluster Orchestrator operator version 0.8.1
* Updated the HVPA (Harness Vertical Pod Autoscaler) CRD to support in-place pod resizing, enabling resource adjustments without pod restarts
* Added RBAC permissions required for in-place pod resizing operations | | `0.4.0` | Feb 3, 2026 | - Support for 0.8.0 build
* New CRD \`WorkloadDistributionRuleCheckpoint
* New Deployment Distributor and its permissions
* New component can be enabled via the value `clusterOrchestrator.distributor.enabled`
* Adding `priorityClass` for Cluster Orchestrator components | | `0.3.0` | Dec 12, 2025 | - Ability to support Karpenter 1.7.3 features in Cluster Orchestrator. | |`0.2.0` | Nov 26, 2025 | - Ability to install Harness VPA components and CRD (if feature flag is enabled) | | `0.1.4` | Oct 3, 2025 | - Supporting 0.5.2 build
* Introducing cluster\_preferences with nodepool\_limits in the config CRD
* Introducing disabled field in the config CRD to toggle cluster orchestrator state
* validation and permission fixes | | `0.1.3` | Sep 16, 2025 | Conditional Installation of Karpenter CRDs: controlled by the variable `clusterOrchestrator.karpenter.installCRD`
* Conditional management of namespace: If the namespace is in the protected namespaces list, this helm chart will not manage the namespace. Controlled by variable `clusterOrchestrator.operator.protectedNamespaces`
* Conditional installation of CRDs with `clusterOrchestrator.installCRDs` variable -Adding SecretRefs to manage sensitive fields -Readme and QuickStart files added | | `0.1.2` | Sep 3, 2025 | - Uses build version `0.5.1` | | `0.1.1` | Aug 7, 2025 | - Added validation for Node Expiry field
* Defaulting Node Expiry to 720h | | `0.1.0` | Aug 6, 2025 | - Uses build version beta-0.5.0
* Added new CRD ClusterOrchestratorConfig and related permissions | | `0.0.13` | Jul 1, 2025 | - Setting the default value for DISABLE\_DEFAULT\_NODEPOOLS as true | | `0.0.12` | Jul 1, 2025 | - Uses build version beta-0.4.3
* Ability to disable default nodepools via an ENV variable `DISABLE_DEFAULT_NODEPOOLS` | | `0.0.11` | Jun 17, 2025 | - Ability to configure nodeSelector and Tolerations on Cluster Orchestrator Deployments
* Uses build version beta-0.4.2 | | `0.0.10` | Jun 10, 2025 | - Fixed the liveliness and readiness check probe ports
* Uses build version beta-0.4.1 | | `0.0.9` | May 19, 2025 | - Fixed memory configuration for Cluster Orchestrator Deployments |

### Cluster Orchestrator Preview Release <a href="#cluster-orchestrator-preview-release" id="cluster-orchestrator-preview-release"></a>

| Version               | Release Date | Changes                                                                             |
| --------------------- | ------------ | ----------------------------------------------------------------------------------- |
| LATEST `0.7.0-beta.1` | Jan 14, 2025 | - Supports Kubernetes 1.34 version (Current stable release supports till 1.33 only) |

* Supports Karpenter 1.8 Version and its newer features
* Support Static Capacity Mode of NodePools to maintain a fixed number of nodes regardless of pod demand
* To migrate from current stable version to this beta version, users have to run onboarding script/helm install command with FF enabled
* To install Cluster Orchestrator Beta, set `CLUSTER_ORCH_CHANNEL=beta` as an environment variable while running onboarding script
* To install Cluster Orchestrator Beta, pass `--version=0.3.0-beta.1` in the Helm command |
