This guide provides step-by-step instructions for deploying Kubecost in an on-premises environment. Choose the deployment option that best fits your infrastructure requirements.
-
Prepare Air-Gapped Environment
- Set up private container registry
- Download and push Kubecost images to internal container registry. Get a list of all images and image paths by running the following command:
helm template kubecost --repo https://kubecost.github.io/kubecost/ kubecost --skip-tests | yq '..|.image? | select(.)' | sort -u
- Configure Helm repository mirror
-
Configure Storage
- Set up internal object storage
- Generate Credentials (access key & secret). Policy example
- Apply storage configuration
Multi-Cluster Federation with Enterprise Custom Pricing (Air-Gapped/Private Cloud/On-prem Environment)
-
Set Up Shared Storage
- Configure federated-store.yaml pointing to the s3 bucket configured in step 2 of prerequisites.
- Create secret for object storage in Kubecost namespace.
kubectl create secret generic federated-store --from-file=federated-store.yaml -n kubecost
-
Primary Cluster Installation
- Install Kubecost using primary values file with federation enabled.
helm upgrade --install kubecost \ --repo http://internal-helm-repo/charts/ kubecost \ --namespace kubecost \ -f values-ecp-primary.yaml
- Verify ETL pipeline is working by checking that a /federated directory was created in the object-store. If no /federated directory exists, double check configuration, finops-agent pod logs or test that the user can curl the bucket endpoint from inside the finops-agent container.
-
Secondary Clusters Installation
- Configure federated-store.yaml pointing to the s3 bucket configured in step 2 of prerequisites.
- Create secret for object storage in Kubecost namespace.
kubectl create secret generic federated-store --from-file=federated-store.yaml -n kubecost
- Install Kubecost on secondary clusters using secondary values fle template.
helm upgrade --install kubecost \ --repo http://internal-helm-repo/charts/ kubecost \ --namespace kubecost \ -f values-ecp-agent.yaml
- Verify ETL pipeline is working by checking that a /federated directory was created with the cluster-name sub directory in the object-store. If no /federated directory exists, double check configuration, finops-agent pod logs or test that the user can curl the bucket endpoint from inside the finops-agent container.
Kubecost Actions
Continuous Container Requst Right-sizing & Resource Quota Right-sizing
helm upgrade --install kubecost \
--repo https://kubecost.github.io/kubecost/ kubecost \
--namespace kubecost \
-f https://raw.githubusercontent.com/kubecost/kubecost-success/refs/heads/main/actions-primary.yamlSSO/SAML Enabled
- Review SSO Documentation
- Configure OIDC
- Configure SAML
Common issues and their solutions will be documented here.
