Skip to content
Community

logo

OpenCost#

Chart Name Version App version
opencost 2.5.8 1.119.2

OpenCost is a vendor-neutral open-source project for measuring and allocating cloud infrastructure and container costs in real-time. It's specifically designed for Kubernetes cost monitoring, providing visibility into your spending and helping you understand how resources are being used.


Looking for Commercial Support? LEARN MORE

Prerequisites#

Deploy k0rdent v1.8.0: QuickStart

Install template to k0rdent#

helm upgrade --install opencost oci://ghcr.io/k0rdent/catalog/charts/kgst --set "chart=opencost:2.5.8" -n kcm-system

Verify service template#

kubectl get servicetemplates -A
# NAMESPACE    NAME                            VALID
# kcm-system   opencost-2-5-8                  true

Deploy service template#

apiVersion: k0rdent.mirantis.com/v1beta1
kind: MultiClusterService
metadata:
  name: opencost
spec:
  clusterSelector:
    matchLabels:
      group: demo
  serviceSpec:
    services:
    - template: prometheus-27-5-1
      name: prometheus
      namespace: opencost
      values: |
        prometheus:
          prometheus-pushgateway: { enabled: false }
          alertmanager: { enabled: false }
          extraScrapeConfigs: |
            - job_name: opencost
              honor_labels: true
              dns_sd_configs: [{ names: [opencost.opencost], type: 'A', port: 9003 }]
    - template: opencost-2-5-8
      name: opencost
      namespace: opencost
      values: |
        opencost:
          opencost:
            prometheus:
              internal:
                namespaceName: opencost

Prerequisites#

Deploy k0rdent v1.8.0: QuickStart

Install template to k0rdent#

helm upgrade --install traefik oci://ghcr.io/k0rdent/catalog/charts/kgst --set "chart=traefik:39.0.5" -n kcm-system
helm upgrade --install prometheus oci://ghcr.io/k0rdent/catalog/charts/kgst --set "chart=prometheus:27.5.1" -n kcm-system
helm upgrade --install opencost oci://ghcr.io/k0rdent/catalog/charts/kgst --set "chart=opencost:2.3.2" -n kcm-system

Verify service template#

kubectl get servicetemplates -A
# NAMESPACE    NAME                            VALID
# kcm-system   traefik-39-0-5                  true
# kcm-system   prometheus-27-5-1               true
# kcm-system   opencost-2-3-2                  true

Deploy service template#

apiVersion: k0rdent.mirantis.com/v1beta1
kind: MultiClusterService
metadata:
  name: opencost
spec:
  clusterSelector:
    matchLabels:
      group: demo
  serviceSpec:
    services:
    - template: traefik-39-0-5
      name: traefik
      namespace: opencost
      values: |
        traefik:
          deployment:
            kind: DaemonSet
          ports:
            web:
              port: 8000
              hostPort: 80
            websecure:
              port: 8443
              hostPort: 443
    - template: prometheus-27-5-1
      name: prometheus
      namespace: opencost
      values: |
        prometheus:
          prometheus-pushgateway: { enabled: false }
          alertmanager: { enabled: false }
          extraScrapeConfigs: |
            - job_name: opencost
              honor_labels: true
              dns_sd_configs: [{ names: [opencost.opencost], type: 'A', port: 9003 }]
    - template: opencost-2-3-2
      name: opencost
      namespace: opencost
      values: |
        opencost:
          opencost:
            prometheus:
              internal:
                namespaceName: opencost
            ui:
              ingress:
                enabled: true
                hosts: [{ host: 'opencost.example.com', paths: ['/'] }]