--- title: "Deploy Compute Optimization" slug: "deploy-compute-optimization" description: "Covers deploying Zesty Compute Optimization with Helm, including Kompass agent installation, prerequisites, configuration, license troubleshooting, and removal." updated: 2026-11-04T13:46:23Z published: 2026-11-04T13:46:23Z canonical: "docs.zesty.co/deploy-compute-optimization" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.zesty.co/llms.txt > Use this file to discover all available pages before exploring further. # Deploy Compute Optimization This topic describes how to deploy Zesty Compute Optimization (“Compute Optimization”). You deploy Compute Optimization by using Helm to install the Kompass agent (“agent”). After installing the agent, the cluster is “connected” for Compute Optimization. The agent provides visibility into your Kubernetes cluster and workload costs, scaling performance, usage, and pattern history. With agent visibility, Compute Optimization can make recommendations for your environment. The agent collects cluster data in read-only mode. Its [ClusterRole permissions](https://github.com/zesty-co/kompass-insights/blob/main/charts/zesty/templates/clusterRole.yaml) and [helper permissions](https://github.com/zesty-co/kompass-insights/blob/main/charts/zesty/templates/_helpers.tpl#L94) define the Kubernetes resources and actions it can access. For optional configuration, including credentials, storage, VictoriaMetrics, custom pricing, and node placement, see [Advanced Kompass agent configuration](/v1/docs/deploy-zesty-compute-optimization#advanced-insights-agent-configuration). Installing the agent enables the following Compute Optimization capabilities on the cluster: - **Multi-dimensional autoscaling (MDA)**: Does not change a workload until you apply the MDA solution to it. To apply MDA, see either [Apply MDA optimization with YAML](/v1/docs/apply-mda-optimization-with-yaml) or [Apply MDA optimization with the UI](/v1/docs/apply-mda-optimization-with-the-ui). - **Adaptive Pod Placement** (APP): Runs in read-only mode, collecting and displaying data about potential savings. To configure APP to consolidate nodes, see [Apply Adaptive Pod Placement](/v1/docs/enable-adaptive-pod-placement). You can install the Kompass agent on clusters running in the following environments: - **EKS**: Amazon Elastic Kubernetes Service - **AKS**: Azure Kubernetes Service - **GKE**: Google Kubernetes Engine - **OKE**: Oracle Container Engine for Kubernetes - **Other**: On-premises and more > [!NOTE] > Bash commands > > The commands in this topic are written for Bash. If you use a different command-line shell, adapt the commands for that shell. **Prerequisites** The administrator client used to install the Kompass agent must have: - `kubectl` - [Helm](https://helm.sh/docs/intro/install/) v3.14, or later - Access to the cluster with permission to create a namespace and a `ClusterRole` ## Installation steps To view the installation steps for your Kubernetes environment, expand the section. ****Install on Amazon EKS**** 1. Start the installation wizard: 1. From the **Compute Optimization > Dashboard** (or **Clusters**)page, click **Connect clusters**. 2. Select your Kubernetes provider. 2. Prepare **values.yaml**: 1. If cert-manager is installed in the cluster, select that option. cert-manager issues and renews the TLS certificates the agent needs. If it’s not already installed, we’ll install it. 2. Enter the PVC storage class. This is normally the default storage class. 3. Click **Next**. 3. Install the Helm chart: 1. Download **values.yaml** by copying and running the code. 2. After **values.yaml** is downloaded, copy and run the Helm install code. 3. After all Pods reach the Running or Completed state, click **Helm install is done**. Once the Kompass agent is installed, Compute Optimization starts collecting cluster data. For Multi-dimensional autoscaling, it can take up to 24 hours before recommendations are displayed. ****Install on Azure Kubernetes Service (AKS)**** 1. Start the installation wizard: 1. From the **Compute Optimization > Dashboard** (or **Clusters**)page, click **Connect clusters**. 2. Select your Kubernetes provider. 2. Prepare **values.yaml**: 1. If cert-manager is installed in the cluster, select that option. cert-manager issues and renews the TLS certificates the agent needs. If it’s not already installed, we’ll install it. 2. Enter the PVC storage class. This is normally the default storage class. 3. Click **Next**. 3. Install the Helm chart: 1. Download **values.yaml** by copying and running the code. 2. After **values.yaml** is downloaded, copy and run the Helm install code. 3. After all Pods reach the Running or Completed state, click **Helm install is done**. Once the Kompass agent is installed, Compute Optimization starts collecting cluster data. For Multi-dimensional autoscaling, it can take up to 24 hours before recommendations are displayed. ****Install on Google Kubernetes Engine (GKE)**** 1. Start the installation wizard: 1. From the **Compute Optimization > Dashboard** (or **Clusters**)page, click **Connect clusters**. 2. Select your Kubernetes provider. 2. Enter the cluster details, then click **Next**. 3. Prepare **values.yaml**: 1. If cert-manager is installed in the cluster, select that option. cert-manager issues and renews the TLS certificates the agent needs. If it’s not already installed, we’ll install it. 2. Enter the PVC storage class. This is normally the default storage class. 3. Click **Next**. 4. Install the Helm chart: 1. Download **values.yaml** by copying and running the code. 2. After **values.yaml** is present, copy and run the Helm install code. 5. After all Pods reach the Running or Completed state, click **Helm install is done**. Once the Kompass agent is installed, Compute Optimization starts collecting cluster data. For Multi-dimensional autoscaling, it can take up to 24 hours before recommendations are displayed. ****Install on OCI Kubernetes Engine (OKE)**** 1. Start the installation wizard: 1. From the **Compute Optimization > Dashboard** (or **Clusters**)page, click **Connect clusters**. 2. Select your Kubernetes provider. 2. Prepare **values.yaml**: 1. If cert-manager is installed in the cluster, select that option. cert-manager issues and renews the TLS certificates the agent needs. If it’s not already installed, we’ll install it. 2. Enter the PVC storage class. This is normally the default storage class. 3. Click **Next**. 3. Install the Helm chart: 1. Download **values.yaml** by copying and running the code. 2. After **values.yaml** is downloaded, copy and run the Helm install code. 3. After all Pods reach the Running or Completed state, click **Helm install is done**. Once the Kompass agent is installed, Compute Optimization starts collecting cluster data. For Multi-dimensional autoscaling, it can take up to 24 hours before recommendations are displayed. ****Install in another cloud or an on-premises environment**** 1. Start the installation wizard: 1. From the **Compute Optimization > Dashboard** (or **Clusters**)page, click **Connect clusters**. 2. Select **Other**. 2. Enter cluster details, then click **Next**. 3. Prepare **values.yaml**: 1. If cert-manager is installed in the cluster, select that option. cert-manager issues and renews the TLS certificates the agent needs. If it’s not already installed, we’ll install it. 2. Enter the PVC storage class. This is normally the default storage class. 3. Click **Next**. 4. Install the Helm chart: 1. Download **values.yaml** by copying and running the code. 2. After **values.yaml** is present, copy and run the Helm install code. 5. After all Pods reach the Running or Completed state, click **Helm install is done**. Once the Kompass agent is installed, Compute Optimization starts collecting cluster data. For Multi-dimensional autoscaling, it can take up to 24 hours before recommendations are displayed. ## Kompass license When you install the Kompass agent, Compute Optimization creates a Kubernetes Secret in the Zesty namespace to store the Kompass license information. Compute Optimization manages this Secret automatically. This Secret is separate from the credentials Secret described in [Advanced Kompass agent configuration](/v1/docs/deploy-zesty-compute-optimization#advanced-insights-agent-configuration). ### **Troubleshoot the Kompass license** If the Kubernetes Secret that stores the Kompass license information is deleted, Compute Optimization automatically recreates it with no impact on use. If the Secret is modified, you can no longer use Kompass. Contact your CSM to recover access. ## Advanced Kompass agent configuration The installation wizard generates the **values.yaml** file required to install the Kompass agent. In most cases, you can use the generated configuration without making additional changes. Before installing the Helm chart, you can edit **values.yaml** to customize the agent configuration. ### Configure credentials **Click here to see the options for secret usage** The Kompass agent uses a credentials Secret (in addition to the license Secret) for the encrypted credentials required during installation. You can let the Helm chart create this Secret, or manage it independently using your own secret store (for example, Azure Key Vault, AWS Secrets Manager, or HashiCorp Vault). #### Let Helm create the Secret Configure **values.yaml** to enable secret creation and provide the encrypted credentials from Zesty. ```yaml kompass-insights:  secret:    create: true    # Provide the credential value directly here    # value: '' ``` #### Use an existing Secret Before installing the Helm chart, deploy the Secret to the `zesty-system` namespace. The Secret must contain the key `ENCRYPTED_CREDENTIALS`. For example (Bash): ```plaintext kubectl create namespace zesty-system kubectl -n zesty-system create secret generic kompass-credentials \ --from-literal=ENCRYPTED_CREDENTIALS='' ``` Then, remove the secret from the downloaded **values.yaml** and configure the Helm chart to use the existing Secret: ```yaml kompass-insights:  secret:    create: false    name: kompass-credentials ``` #### ### Configure storage **You can configure the PVC storage class and storage sizes in **values.yaml**.** #### PVC storage class Enter the name of the PVC StorageClass used by the agent. If you do not know the name, run: `kubectl get storageclass` #### Kompass agent PVC size For best performance, Zesty recommends setting the Kompass agent PVC size based on the number of workloads in the cluster: | **Workloads** | **Recommended value** | | --- | --- | | Up to 1,000 | `1Gi` | | 1,000–5,000 | `3Gi` | | 5,000–10,000 | `10Gi` | | Above 10,000 | `100Gi` | Configure the value in **values.yaml**: ```yaml kompass-insights:  persistence:    spec:      resources:        requests:          storage: "1Gi" ``` #### VictoriaMetrics server volume size Set the VictoriaMetrics server volume size based on the number of workloads in the cluster: | **Workloads** | **Recommended value** | | --- | --- | | Up to 1,000 | `30Gi` | | 1,000–10,000 | `60Gi` | | Above 10,000 | `100Gi` | Configure the value in **values.yaml**: ```yaml victoriaMetrics:  server:    persistentVolume:      size: "30Gi" ``` #### ### Configure VictoriaMetrics **Zesty uses VictoriaMetrics to store and query cluster metrics. VictoriaMetrics can run in **Single-Pod mode** or **Cluster mode**.** #### Single-Pod mode Single-Pod mode is the default. It runs a standalone VictoriaMetrics instance. This mode is suitable for small or non-production environments and provides no redundancy if the Pod becomes unavailable. Set: ```yaml victoriaMetrics:  enabled: true victoriaMetricsCluster:  enabled: false victoriaMetricsAuth:  enabled: true  useSingle: true ``` #### Cluster mode Cluster mode runs a multi-component VictoriaMetrics cluster with `vmselect`, `vminsert`, and `vmstorage `and multiple replicas. This mode provides higher availability, fault tolerance, and scalability. Cluster mode is recommended for: - production clusters - large clusters, for example, 100+ nodes or 1,000+ Pods - high-churn environments, where approximately 10% or more of workloads are Jobs, CI/CD pipelines, or other short-lived Pods - KEDA-heavy environments, where KEDA manages at least 10% of workloads Set: ```yaml victoriaMetrics:  enabled: false victoriaMetricsCluster:  enabled: true victoriaMetricsAuth:  enabled: true  useSingle: false ``` Ensure the selected mode matches your environment’s availability and scalability requirements before installing the Helm chart. If you edit VictoriaMetrics parameters, ensure that the values of these parameters are equal: - `victoriaMetricsNameOverride` - `victoriaMetricsRemoteUrl` - `victoriaMetricsRemoteWriteUrl` #### ### Configure custom pricing **Use custom pricing to make the data in Compute Optimization more accurately reflect your environment.** Custom pricing applies to clusters outside AWS and Azure. AWS and Azure use public list pricing. values.yaml contains the following default prices, in USD: ```yaml customPricing:  cpu: 0.031611  ram: 0.004237  spotCpu: 0.006655  spotRam: 0.000892 ``` The parameters represent: - `cpu`: On-Demand price per vCPU-hour - `ram`: On-Demand price per GiB-hour - `spotCpu`: Spot price per vCPU-hour - `spotRam`: Spot price per GiB-hour To use custom pricing, replace these values before installing the Helm chart. ### Control where the agent runs **You can control the nodes on which the Kompass agent runs.** To control the nodes that run the Kompass agent, configure `nodeSelector `and `tolerations `in **values.yaml**, [here](https://github.com/zesty-co/kompass-insights/blob/main/charts/zesty/values.yaml#L28). ### View all Helm values For a complete list of available Helm values, see the Kompass agent [**values.yaml**](https://github.com/zesty-co/kompass-insights/blob/main/charts/zesty/values.yaml) file. ## Uninstall the Kompass agent To uninstall the agent, run the following Helm command: `helm uninstall <release-name> -n <namespace>` (Optional) If the namespace is dedicated to Zesty components and you want to remove it entirely, run this command also: `kubectl delete namespace <namespace>` > [!WARNING] > Caution > > This command deletes everything under the namespace.