Cluster Orchestrator Components
Cluster Orchestrator deploys several Kubernetes resources to manage and optimize your cluster infrastructure. This document provides a comprehensive overview of all components installed during deployment.
Cluster Orchestrator installation creates a comprehensive set of infrastructure components across both AWS and Kubernetes environments:
Roles
AWS
| Resource | Name | Description | 
|---|
| IAM Role | harness-ccm-<cluster>-node | IAM role for EKS worker nodes with CCM-required policies | 
| Access Entry | - | Newer EKS "Access Entries" system to bind IAM role into Kubernetes (system:nodes) | 
| Instance Profile | harness-ccm-<cluster>-inst-prof | Allows EC2 nodes to assume the node IAM role | 
| OIDC Provider | - | Enables IRSA (IAM Roles for Service Accounts) for secure AWS IAM usage | 
| IAM Policy Update | - | Adds extra describe/EC2 permissions required for CCM | 
| Resource Tagging | harness.io/<cluster> | Marks infrastructure (SGs, Subnets, AMIs) for CCM resource discovery | 
Harness
| Resource | Name | Description | 
|---|
| Service Account | - | Created via API to represent the cluster orchestrator | 
| API Key + Token | - | Issued and stored in K8s as a secret for cluster-to-Harness communication | 
| Cluster Registration | - | Registers your EKS cluster with Harness CCM | 
Components
Core Resources
| Resource Type | Name | Description | 
|---|
| Namespace | kube-system | Default namespace where CCM orchestrator is installed | 
| Secret | harness-api-key | Stores Harness API token for cluster components | 
Cluster Orchestrator Components
| Component Type | Name | Description | 
|---|
| Deployment | cluster-orch-operator(harness-ccm) | Main controller managing CCM orchestration inside cluster. Limits: CPU: 1, Memory: 1Gi | 
| Deployment | cluster-telemetry-collector(kube-system) | Collects cluster cost/usage data and sends it to Harness. Limits: CPU: 1, Memory: 1Gi | 
| Service | cluster-orch-operator | Cluster Orchestrator operator service | 
| DaemonSet | cluster-orch-interrupt-listener | Listens for spot preemption events and reports to Harness | 
Service Accounts & RBAC
Each of these components gets a ServiceAccount, ClusterRole, and ClusterRoleBinding:
| Service Account | Purpose | 
|---|
| ccm-cluster-orchestrator-operator | Permissions for the orchestrator operator deployment | 
| ccm-cluster-orchestrator-metrics | Handles metrics collection for observability | 
| ccm-cluster-orchestrator-interruption | Manages pod eviction/node interruption handling | 
Custom Resource Definitions (CRDs)
| CRD Name | Purpose | 
|---|
| nodepools.karpenter.sh | Defines node pools for Karpenter provisioning | 
| nodeclaims.karpenter.sh | Manages node claims for Karpenter | 
| ec2nodeclasses.karpenter.k8s.aws | Defines EC2 node class templates for Karpenter provisioning | 
| workloaddistributionrules.ccm.harness.io | Harness CCM custom CRD to control workload placement and distribution |