Installation Guide
Learn how to set up and configure Harness Cluster Orchestrator for AWS EKS using Terraform and Helm
This guide covers the installation and setup of Harness Cluster Orchestrator for AWS EKS clusters using the enablement script.
Prerequisites
Required Tools
AWS CLI
2.15.10
AWS service interaction and IAM configuration
Helm
v3.x
Kubernetes package management (recommended)
kubectl
1.20+
Kubernetes cluster management
AWS Permissions
Your AWS credentials must have permissions for:
EKS: Describe clusters, update cluster configuration
IAM: Create/update roles, policies, and instance profiles
EC2: Create/modify tags, describe instances and security groups
STS: Assume roles for OIDC provider integration
Kubernetes Permissions
Your kubectl context must have cluster-admin permissions or equivalent to:
Create namespaces, deployments, and services
Create and modify CRDs (Custom Resource Definitions)
Create service accounts and RBAC resources
Install Helm charts
Harness Prerequisites
Active Harness Account with CACM module enabled
Kubernetes Connector configured for your cluster
API Token with CACM permissions
Environment Variables
Required Variables
CLUSTER_NAME
EKS cluster name as it appears in AWS
production-eks-cluster
REGION
AWS region where your cluster is deployed
us-west-2
CCM_K8S_CONNECTOR_ID
Harness CACM Kubernetes connector ID
prod_eks_connector
TOKEN
Harness API token for authentication
sat.myaccount.abc123...
Installation Methods
Link to Operator: https://hub.docker.com/r/harness/cluster-orchestrator/tags
Link to Helm Chart: https://app.harness.io/ng/account/6NTMT--yR7ORXKPqwLDioA/module/code/repos/Helm
Helm Installation
Helm provides:
Lifecycle Management - Easy upgrades, rollbacks, and uninstallation
Configuration Management - Centralized values.yaml for all settings
Version Control - Track installed versions and changes
Atomic Operations - All-or-nothing deployments with automatic rollback
To see detailed instructions for Helm installation, refer to the Helm Installation Guide.
kubectl Installation
Direct kubectl installation using YAML manifests is supported for backward compatibility.
To see detailed instructions for kubectl installation, refer to the kubectl Installation Guide.
Migration from kubectl to Helm
If you have an existing kubectl-based installation, the script provides automated migration:
Run the enablement script as you normally would
Script detects existing kubectl-managed deployments
Prompt appears:
Enter
yto proceed with migration
The script will:
Scale down existing deployments to 0 replicas
Delete old kubectl-managed resources
Label existing CRDs for Helm adoption
Install fresh via Helm with same configuration
Expected Downtime: 1-2 minutes during migration
Autoscaler Management
Cluster Orchestrator replaces traditional Kubernetes autoscalers. The script automatically detects and manages existing autoscalers.
Automatic Detection
The script checks for existing autoscalers in:
Karpenter:
karpenter-systemandkube-systemnamespacesCluster Autoscaler:
kube-systemnamespaceCustom locations: Interactive mode allows specifying custom namespaces
Scale-Down Process
Interactive Mode:
Script displays detected autoscaler details
Prompts for confirmation to scale down
Scales deployment to 0 replicas (does not delete)
Continues with installation
Non-Interactive Mode (AUTO_APPROVE=true):
Automatically scales down detected autoscalers
No user confirmation required
All actions logged for audit trail
Legacy Karpenter Detection
If legacy Karpenter v1alpha5 provisioners are detected, the script will:
Display a warning message
Exit with instructions to upgrade Karpenter first
Provide a link to the Karpenter upgrade guide
Note: You must upgrade to Karpenter v1beta1 or later before enabling Cluster Orchestrator.
Installation Steps
Step 1: Set Environment Variables
Step 2: Configure kubectl Context
Step 3: Run the Enablement Script
Get the enablement script from the Harness UI:
Navigate to Cloud Costs > Cluster Orchestrator
Click Enable Cluster Orchestrator
Select your cluster and click Generate Script
Run the generated command
Step 4: Verify Installation
Last updated
Was this helpful?