apiVersion: v1
kind: ConfigMap
metadata:
  name: centralized-kubecost-0.33.2-d2iq-defaults
  namespace: ${releaseNamespace}
data:
  values.yaml: |
    ---
    cost-analyzer:
      fullnameOverride: "kommander-kubecost-cost-analyzer"
      global:
        prometheus:
          fqdn: http://kubecost-prometheus-server.kommander.svc.cluster.local
          enabled: false

        thanos:
          enabled: true
          queryService: http://kommander-kubecost-thanos-query-http.kubecost.svc.cluster.local:10902
          # The wait time before Kommander begins querying cost data for all attached clusters
          queryOffset: 5m
          query:
            deploymentAnnotations:
              secret.reloader.stakater.com/reload: kommander-kubecost-thanos-client-tls

        grafana:
          enabled: false
          # Use kommander monitoring Grafana instance
          domainName: centralized-grafana.${releaseNamespace}.svc.cluster.local

      # For Thanos Installs, Allow Higher Concurrency from Cost-Model
      # Still may require tweaking for some installs, but the thanos-query-frontend
      # will greatly assist in reduction memory bloat in query.
      kubecostModel:
        maxQueryConcurrency: 5
        # This configuration is applied to thanos only. Expresses the resolution to
        # use for longer query ranges. Options: raw, 5m, 1h - Default: raw
        maxSourceResolution: 5m

      ingress:
        enabled: true
        annotations:
          kubernetes.io/ingress.class: kommander-traefik
          ingress.kubernetes.io/auth-response-headers: X-Forwarded-User
          traefik.ingress.kubernetes.io/router.tls: "true"
          traefik.ingress.kubernetes.io/router.middlewares: "${releaseNamespace}-stripprefixes@kubernetescrd,${releaseNamespace}-forwardauth@kubernetescrd"
        paths:
          - "/dkp/kommander/kubecost/frontend/"
        hosts:
          - ""
        tls: []

      kubecostDeployment:
        labels:
          vendor.kubecost.io/partner: d2iq

      podSecurityPolicy:
        enabled: false

      grafana:
        # These values are set so that kubecost grafana dashboards are installed.
        # Grafana itself is not installed.
        sidecar:
          dashboards:
            enabled: true
            label: grafana_dashboard_kommander
          datasources:
            enabled: true
            defaultDatasourceEnabled: false
            label: grafana_datasource_kommander

      prometheus:
        fullnameOverride: "kommander-kubecost-prometheus"
        server:
          fullnameOverride: "kommander-kubecost-prometheus-server"
        alertmanager:
          fullnameOverride: "kommander-kubecost-prometheus-alertmanager"
        kube-state-metrics:
          fullnameOverride: "kommander-kubecost-prometheus-kube-state-metrics"

        configmapReload:
          prometheus:
            image:
              tag: v0.5.0
          alertmanager:
            image:
              tag: v0.5.0

      thanos:
        fullnameOverride: "kommander-kubecost-thanos"
        nameOverride: "kubecost-thanos"
        query:
          enabled: true
          timeout: 3m
          maxConcurrent: 10
          # Name of HTTP request header used for dynamic prefixing of UI links and redirects.
          webPrefixHeader: "X-Forwarded-Prefix"
          resources:
            limits:
              cpu: 2000m
              memory: 16Gi
            requests:
              cpu: 1000m
              memory: 4Gi
          http:
            service:
              labels:
                servicemonitor.kommander.mesosphere.io/path: "metrics"
            ingress:
              enabled: true
              annotations:
                kubernetes.io/ingress.class: kommander-traefik
                traefik.ingress.kubernetes.io/router.tls: "true"
                traefik.ingress.kubernetes.io/router.middlewares: "${releaseNamespace}-stripprefixes@kubernetescrd,${releaseNamespace}-forwardauth@kubernetescrd"
              path: "/dkp/kommander/kubecost/query"
              hosts:
                - ""
              tls: []
          # Enable DNS discovery for stores
          storeDNSDiscovery: false
          # Enable DNS discovery for sidecars (this is for the chart built-in sidecar service)
          sidecarDNSDiscovery: false
          # Names of configmaps that contain addresses of store API servers, used for file service discovery.
          serviceDiscoveryFileConfigMaps:
            - kubecost-thanos-query-stores
          # Refresh interval to re-read file SD files. It is used as a resync fallback.
          serviceDiscoveryInterval: 5m
          extraArgs:
            - "--log.format=json"
            - "--grpc-client-tls-secure"
            - "--grpc-client-tls-cert=/etc/certs/tls.crt"
            - "--grpc-client-tls-key=/etc/certs/tls.key"
            - "--grpc-client-tls-ca=/etc/certs/ca.crt"
            - "--grpc-client-server-name=server.thanos.kubecost.localhost.localdomain"
          certSecretName: kommander-kubecost-thanos-client-tls

      kubecostProductConfigs:
        grafanaURL: "/dkp/kommander/monitoring/grafana"
        # used for display in Kubecost UI
        clusterName: "Kommander Host"