1# -- Overwrite the default name of the chart
3# -- Overwrite all resources name created by the chart
5# -- Override the deployment namespace
7# -- Override the default name of cluster - Can be found in /etc/kubernetes/admin.conf: clusters -> cluster -> name
8clusterName: "cluster.local"
14 fullImageName: curlimages/curl:latest
16 allowPrivilegeEscalation: false
22 readOnlyRootFilesystem: true
25 # -- List of plugins to download, independent of `plugins.configs`.
26 # When specified, these plugins are downloaded regardless of what's in configs,
27 # which enables using `plugins.existingSecret` for credentials while still
28 # downloading plugin binaries. This list also drives which `<plugin>_config.json`
29 # subPaths the Deployment mounts, so each listed plugin MUST have a matching
30 # config source -- either a `plugins.configs.<plugin>` entry (when
31 # `plugins.existingSecret` is empty) or a `<plugin>_config.json` key in the
32 # Secret referenced by `plugins.existingSecret`. Missing entries cause Pod
33 # startup failures because the mounted subPath will not exist. When
34 # `plugins.existingSecret` is empty, the chart validates this at
35 # template-render time and fails with an actionable error; the check is
36 # skipped when `plugins.existingSecret` is set because the contents of an
37 # externally-managed Secret cannot be introspected from Helm.
38 # Example: ["datadog", "mongodb"].
39 # If empty, falls back to downloading plugins based on keys in configs (legacy behavior).
41 folder: /opt/opencost/plugin
42 # leave this commented to always download most recent version of plugins
43 # version: <INSERT_SPECIFIC_PLUGINS_VERSION>
44 # -- Use an existing Secret for plugin configuration instead of generating
45 # one from `plugins.configs`. The referenced Secret MUST contain a
46 # `<plugin>_config.json` key for every entry in `plugins.install.plugins`
47 # (and for every plugin whose configs key would otherwise drive the
48 # install/mount list) -- the Deployment mounts those files via subPath and
49 # missing keys cause Pod startup failures. This is useful when using
50 # ExternalSecrets, Vault, or other secret-management tools so that plugin
51 # credentials do not have to be committed via `plugins.configs`. Mutually
52 # exclusive with `plugins.configs`: when `existingSecret` is set, the chart
53 # does not render a generated Secret and any `plugins.configs` entries would
54 # be silently ignored, so the chart will `fail` template rendering in that
60 # "datadog_site": "<INSERT_DATADOG_SITE>",
61 # "datadog_api_key": "<INSERT_DATADOG_API_KEY>",
62 # "datadog_app_key": "<INSERT_DATADOG_APP_KEY>"
64# -- List of secret names to use for pulling the images
67 # -- Specifies whether a service account should be created
69 # -- Annotations to add to the service account
71 # eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/eksctl-opencost
72 # The name of the service account to use.
73 # If not set and create is true, a name is generated using the fullname template
75 # -- Whether pods running as this service account should have an API token automatically mounted
76 automountServiceAccountToken: true
77# NetworkPolicies for ingress
79 # -- Specifies whether networkpolicies should be created
81 # -- Internal Prometheus settings related to NetworkPolicies
83 # -- Namespace where internal Prometheus is installed
84 namespace: prometheus-system
85 # -- Pod port of in-cluster Prometheus
87 # -- Labels applied to the Prometheus server pod(s)
89 app.kubernetes.io/name: prometheus
90 # -- Extra egress rule
92# -- Strategy to be used for the Deployment
98# -- Annotations to add to the all the resources
100# -- Annotations to add to the OpenCost Pod
102# -- Annotations to add to the Secret
104# -- Labels to add to the OpenCost Pod
108# -- Enable automounting of service account token at the pod level
109podAutomountServiceAccountToken: true
110# -- Holds pod-level security attributes and common container settings
111podSecurityContext: {}
116 # -- Annotations to add to the service
118 # -- Labels to add to the service account
120 # -- Kubernetes Service type
122 # -- NodePort if service type is NodePort
124 # -- extra ports. Useful for sidecar pods such as oauth-proxy
126 # - name: oauth-proxy
129 # - name: oauth-metrics
132 # -- LoadBalancer Source IP CIDR if service type is LoadBalancer and cloud provider supports this
133 loadBalancerSourceRanges: []
134# Create cluster role policies
137# PodDisruptionBudget for high availability
140 # -- Minimum number of pods that must be available after the eviction
142 # -- Maximum number of pods that can be unavailable after the eviction
145 # -- Existing Secret containing `cloud-integration.json` for Cloud Costs. See
146 # https://www.opencost.io/docs/configuration/#cloud-costs.
147 # Create with: `kubectl create secret generic <SECRET_NAME> --from-file=cloud-integration.json -n opencost`.
148 # Mutually exclusive with `opencost.cloudIntegrationJSON`.
149 cloudIntegrationSecret: ""
150 # -- Raw JSON for `cloud-integration.json`. Creates a Secret named
151 # `<fullname>-cloud-integration` in the release namespace.
152 # Mutually exclusive with `opencost.cloudIntegrationSecret`.
153 cloudIntegrationJSON: ""
154 # cloudIntegrationJSON: |-
158 # "athenaBucketName": "s3://AWS_cloud_integration_athenaBucketName",
159 # "athenaRegion": "AWS_cloud_integration_athenaRegion",
160 # "athenaDatabase": "AWS_cloud_integration_athenaDatabase",
161 # "athenaTable": "AWS_cloud_integration_athenaTable",
162 # "projectID": "AWS_cloud_integration_athena_projectID",
163 # "serviceKeyName": "AWS_cloud_integration_athena_serviceKeyName",
164 # "serviceKeySecret": "AWS_cloud_integration_athena_serviceKeySecret"
169 # "azureSubscriptionID": "my-subscription-id",
170 # "azureStorageAccount": "my-storage-account",
171 # "azureStorageAccessKey": "my-storage-access-key",
172 # "azureStorageContainer": "my-storage-container"
177 # "projectID": "my-project-id",
178 # "billingDataDataset": "detailedbilling.my-billing-dataset",
180 # "type": "service_account",
181 # "project_id": "my-project-id",
182 # "private_key_id": "my-private-key-id",
183 # "private_key": "my-pem-encoded-private-key",
184 # "client_email": "my-service-account-name@my-project-id.iam.gserviceaccount.com",
185 # "client_id": "my-client-id",
186 # "auth_uri": "auth-uri",
187 # "token_uri": "token-uri",
188 # "auth_provider_x509_cert_url": "my-x509-provider-cert",
189 # "client_x509_cert_url": "my-x509-cert-url"
196 # "tenancyID": "ocid1.tenancy.oc1..my-tenancy-ocid",
197 # "region": "us-ashburn-1",
199 # "authorizerType": "OCIRawConfigProvider",
200 # "tenancyID": "ocid1.tenancy.oc1..my-tenancy-ocid",
201 # "userID": "ocid1.user.oc1..my-user-ocid",
202 # "region": "us-ashburn-1",
203 # "fingerprint": "xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx",
204 # "privateKey": "REPLACE_WITH_YOUR_OCI_KEY_FILE_CONTENTS"
211 # -- MCP (Model Context Protocol) Server Configuration
212 # The MCP server provides AI agents with access to cost allocation and asset data
214 # -- Enable MCP server for AI agent integration (default: true)
215 # Set to false to disable MCP server completely
217 # -- HTTP port for MCP server (default: 8081)
218 # Change this if port 8081 conflicts with other services
221 # -- Ingress for MCP server
223 # -- Ingress controller which implements the resource
225 # -- Annotations for Ingress resource
227 # kubernetes.io/tls-acme: "true"
228 # -- A list of host rules used to configure the Ingress
229 # @default -- See [values.yaml](values.yaml)
231 - host: example.local
235 # -- Ingress TLS configuration
237 # - secretName: chart-example-tls
239 # - chart-example.local
240 # -- HTTPRoute for MCP server (Gateway API)
242 # -- Enable HTTPRoute resource
244 # -- Gateway API parent references
245 # @default -- See [values.yaml](values.yaml)
250 # -- Hostnames for the HTTPRoute
252 # - mcp.example.local
253 # -- Annotations for HTTPRoute resource
255 # -- Labels for HTTPRoute resource
257 # -- HTTPRoute rules. Each rule supports an optional `filters` list at the rule level
258 # and per-backendRef `filters` for Gateway API filter configuration (e.g. basic auth
259 # via `ExtensionRef`, header modification via `RequestHeaderModifier`, etc.).
260 # @default -- See [values.yaml](values.yaml)
267 # - type: ExtensionRef
269 # group: gateway.envoyproxy.io
270 # kind: SecurityPolicy
271 # name: basic-auth-policy
273 - name: "" # Will default to service name
276 # - type: RequestHeaderModifier
277 # requestHeaderModifier:
279 # - name: X-Custom-Header
282 # API_PORT for the cost-model to listen on
284 # debugPort: 40000 # for development purposes (debugging with delve) and not for production.
285 # -- The GCP Pricing API requires a key. This is supplied just for evaluation.
286 cloudProviderApiKey: ""
287 # -- Default cluster ID to use if cluster_id is not set in Prometheus metrics.
288 defaultClusterId: 'default-cluster'
289 # -- If clusterIdConfigmap is defined, use user-generated ConfigMap with key CLUSTER_ID as default cluster ID.
290 # -- This overrides the above defaultClusterId. Ensure the ConfigMap exists and contains the required CLUSTER_ID key.
291 # clusterIdConfigmap: cluster-id-configmap
293 # -- Exporter container image registry
295 # -- Exporter container image name
296 repository: scratch-images/test-tmp/opencost
297 # -- Exporter container image tag
298 tag: 1.121.1-r5@sha256:80d7980a74aa14fd1b77382bf3255e658bd944ceb14fbc3de03d7f01271d2a2e
299 # -- Exporter container image pull policy
300 pullPolicy: IfNotPresent
301 # -- Override the full image name for development purposes
303 # -- List of extra arguments for the command, e.g.: log-format=json
305 # -- Optional command to override the default container command
307 # -- Number of OpenCost replicas to run
310 # -- CPU/Memory resource requests
314 # -- CPU/Memory resource limits
317 # Startup probe configuration
319 # -- Whether probe is enabled
323 # -- Number of seconds before probe is initiated
324 initialDelaySeconds: 10
325 # -- Probe frequency in seconds
327 # -- Number of failures for probe to be considered failed
329 # -- Number of seconds after which the probe times out
331 # Liveness probe configuration
333 # -- Whether probe is enabled
337 # -- Number of seconds before probe is initiated
338 initialDelaySeconds: 10
339 # -- Probe frequency in seconds
341 # -- Number of failures for probe to be considered failed
343 # -- Number of seconds after which the probe times out
345 # Readiness probe configuration
347 # -- Whether probe is enabled
351 # -- Number of seconds before probe is initiated
352 initialDelaySeconds: 10
353 # -- Probe frequency in seconds
355 # -- Number of failures for probe to be considered failed
357 # -- Number of seconds after which the probe times out
359 # -- Minimum consecutive successes for the probe to be considered successful after having failed
361 # -- The security options the container should be run with
366 # readOnlyRootFilesystem: true
372 prometheusDataSource:
373 # Set the resolution in second that prometheus queries will be performed at
374 queryResolutionSeconds: 300
375 # Collector DataSource collects cluster data without a dependency on Prometheus
376 # It is recommended that persistence is enabled alongside it to preserve the state
377 # between pod restarts
380 # -- define the interval at which the collector scrapes for data points (10s, 15s, 1m)
382 # -- The port at which network pods are open to egress
384 # -- The number of 10m intervals the Collector DataSource should maintain
386 # -- The number of 1h intervals the Collector DataSource should maintain
388 # -- The number of 1d intervals the Collector DataSource should maintain
390 # Persistent volume claim for storing the data. eg: csv file
393 # -- The path that the PV will be mounted to the exporter at
394 mountPath: /mnt/export
395 # -- Annotations for persistent volume
397 # -- Access mode for persistent volume
399 # -- Storage class for persistent volume
401 # -- Size for persistent volume
403 # Inference cost tracking configuration for LLM workloads (e.g., vLLM via llm-d)
404 inferenceCostTracking:
405 # -- Enable inference cost tracking
407 # -- Pod label whose value is the vLLM model name. Must match the model_name label on vLLM Prometheus metrics
408 modelLabel: "llm-d.ai/model"
409 # -- Pod label key identifying shared infra pods (EPP, gateway)
410 sharedInfraLabel: "llm-d.ai/inference-shared"
411 # -- Label value that marks a pod as shared infra
412 sharedInfraLabelValue: "true"
413 # -- Background collection interval
414 collectionInterval: "2m"
416 # -- AWS secret access key
417 secret_access_key: ""
418 # -- AWS secret key id
420 # -- A list of volume mounts to be added to the pod
421 extraVolumeMounts: []
422 # -- List of additional environment variables to set in the container
424 # -- Any extra environment variables you would like to pass on to the pod
427 # For example, if accessing mimir directly and getting 401 Unauthorized
428 # PROMETHEUS_HEADER_X_SCOPE_ORGID: anonymous
429 # -- Extra environment variables from secrets or configmaps
434 # name: opencost-env-secret
435 # Admin token for write operations (e.g. POST /serviceKey, cloud config endpoints).
436 # Set ADMIN_TOKEN env from a chart-created secret or an existing secret.
438 # -- When true, the chart creates the admin-token Secret (if value is set) or mounts existingSecret as ADMIN_TOKEN. When false, ADMIN_TOKEN is not set and no secret is deployed.
440 # -- If set, the chart creates a Secret with this value and sets ADMIN_TOKEN from it (not recommended for production; use existingSecret instead).
442 # -- Use an existing Secret for the admin token (recommended). Secret must contain the key below.
444 # -- Key in the Secret that holds the admin token (used for both value-created and existing secrets).
445 secretKey: "ADMIN_TOKEN"
447 # -- Ingress for OpenCost API
449 # -- Ingress controller which implements the resource
451 # -- Annotations for Ingress resource
453 # kubernetes.io/tls-acme: "true"
454 # -- A list of host rules used to configure the Ingress
455 # @default -- See [values.yaml](values.yaml)
457 - host: example.local
461 # -- Redirect ingress to an extraPort defined on the service such as oauth-proxy
463 # servicePort: oauth-proxy
464 # -- Ingress TLS configuration
466 # - secretName: chart-example-tls
468 # - chart-example.local
469 # -- HTTPRoute for OpenCost API (Gateway API)
471 # -- Enable HTTPRoute resource
473 # -- Gateway API parent references
474 # @default -- See [values.yaml](values.yaml)
479 # -- Hostnames for the HTTPRoute
481 # - api.example.local
482 # -- Annotations for HTTPRoute resource
484 # -- Labels for HTTPRoute resource
486 # -- HTTPRoute rules. Each rule supports an optional `filters` list at the rule level
487 # and per-backendRef `filters` for Gateway API filter configuration (e.g. basic auth
488 # via `ExtensionRef`, header modification via `RequestHeaderModifier`, etc.).
489 # @default -- See [values.yaml](values.yaml)
496 # - type: ExtensionRef
498 # group: gateway.envoyproxy.io
499 # kind: SecurityPolicy
500 # name: basic-auth-policy
502 - name: "" # Will default to service name
505 # - type: RequestHeaderModifier
506 # requestHeaderModifier:
508 # - name: X-Custom-Header
511 # -- Enables custom pricing configuration
513 # -- Customize the configmap name used for custom pricing
514 configmapName: custom-pricing-model
515 # -- Path for the pricing configuration.
516 configPath: /tmp/custom-config
517 # -- Configures the pricing model provided in the values file.
518 createConfigmap: true
519 # -- Sets the provider type for the custom pricing file.
521 # -- More information about these values here: https://www.opencost.io/docs/configuration/on-prem#custom-pricing-using-the-opencost-helm-chart
523 description: Modified pricing configuration.
530 zoneNetworkEgress: 0.01
531 regionNetworkEgress: 0.01
532 internetNetworkEgress: 0.12
536 # -- Enable carbon cost exposed in the API
539 # -- Enable cloud cost ingestion and querying, dependant on valid integration credentials
541 # -- Number of hours between each run of the Cloud Cost pipeline
543 # -- Number of days into the past that a Cloud Cost standard run will query for
545 # -- The number of standard runs before a Month-to-Date run occurs
546 monthToDateInterval: 6
547 # -- The max number of days that any single query will be made to construct Cloud Costs
551 # -- (bool) Enable emission of pod annotations
552 emitPodAnnotations: ~
553 # -- (bool) Enable emission of namespace annotations
554 emitNamespaceAnnotations: ~
555 # -- (bool) Enable emission of KSM v1 metrics
557 # -- (bool) Enable only emission of KSM v1 metrics that do not exist in KSM 2 by default
558 emitKsmV1MetricsOnly: ~
560 # -- Create ServiceMonitor resource for scraping metrics using PrometheusOperator
562 # -- Additional labels to add to the ServiceMonitor
564 # -- Specify if the ServiceMonitor will be deployed into a different namespace (blank deploys into same namespace as chart)
566 # -- Interval at which metrics should be scraped
568 # -- Timeout after which the scrape is ended
570 # -- HonorLabels chooses the metric's labels on collisions with target labels
572 # -- RelabelConfigs to apply to samples before scraping. Prometheus Operator automatically adds relabelings for a few standard Kubernetes fields
574 # -- MetricRelabelConfigs to apply to samples before ingestion
575 metricRelabelings: []
576 # -- extra Endpoints to add to the ServiceMonitor. Useful for scraping sidecars
578 # - port: oauth-metrics
580 # -- HTTP scheme used for scraping. Defaults to `http`
582 # -- TLS configuration for scraping metrics
584 # caFile: /etc/prom-certs/root-cert.pem
585 # certFile: /etc/prom-certs/cert-chain.pem
586 # insecureSkipVerify: true
587 # keyFile: /etc/prom-certs/key.pem
589 # -- Enables creating the metrics.json configuration as a ConfigMap
591 # -- Customize the configmap name used for metrics
592 configmapName: custom-metrics
593 # -- List of metrics to be disabled
595 # - <metric-to-be-disabled>
596 # - <metric-to-be-disabled>
598 # -- Secret name that contains credentials for Prometheus
600 # -- Existing secret name that contains credentials for Prometheus
601 existingSecretName: ~
602 # -- Prometheus Basic auth username
604 # -- Key in the secret that references the username
605 username_key: DB_BASIC_AUTH_USERNAME
606 # -- Prometheus Basic auth password
608 # -- Key in the secret that references the password
609 password_key: DB_BASIC_AUTH_PW
610 # -- Prometheus Bearer token
612 bearer_token_key: DB_BEARER_TOKEN
613 # -- If true, opencost will use kube-rbac-proxy to authenticate with in cluster Prometheus for openshift
615 # -- Whether to disable SSL certificate verification
616 insecureSkipVerify: false
618 # -- Use external Prometheus (eg. Grafana Cloud)
620 # -- External Prometheus url
621 url: "https://prometheus.example.com/prometheus"
623 # -- Use in-cluster Prometheus
625 # -- Service name of in-cluster Prometheus
626 serviceName: prometheus-server
627 # -- Namespace of in-cluster Prometheus
628 namespaceName: prometheus-system
629 # -- Service port of in-cluster Prometheus
631 # -- Path to access the Prometheus API, this is neccesary if the Prometheus server is behind a reverse proxy(mimir) or has a different path.
633 # -- Scheme to use for in-cluster Prometheus
636 # -- Use Amazon Managed Service for Prometheus (AMP)
637 enabled: false # If true, opencost will be configured to remote_write and query from Amazon Managed Service for Prometheus.
638 # -- Workspace ID for AMP
643 maxSourceResolution: ''
646 serviceName: my-thanos-query
647 namespaceName: opencost
652 url: 'https://thanos-query.example.com/thanos'
654 # -- Enable OpenCost UI
657 # -- UI container image registry
659 # -- UI container image name
660 repository: scratch-images/test-tmp/opencost-ui
661 # -- UI container image tag
662 # @default -- `""` (use appVersion in Chart.yaml)
663 tag: 1.121.1-r2@sha256:72d81c4a4ded3b8a8b2dcfed88c1da8efef94fb815c890c7d0592264b6284d27
664 # -- UI container image pull policy
665 pullPolicy: IfNotPresent
666 # -- Override the full image name for development purposes
669 # -- CPU/Memory resource requests
673 # -- CPU/Memory resource limits
676 # used in the default.nginx.conf if you want to switch for using with Docker
679 # Base path for serving the UI.
680 # Requires building a custom image using the build argument "ui_path".
682 # Set to true to use IPv6
684 # Liveness probe configuration
686 # -- Whether probe is enabled
690 # -- Number of seconds before probe is initiated
691 initialDelaySeconds: 30
692 # -- Probe frequency in seconds
694 # -- Number of failures for probe to be considered failed
696 # Readiness probe configuration
698 # -- Whether probe is enabled
702 # -- Number of seconds before probe is initiated
703 initialDelaySeconds: 30
704 # -- Probe frequency in seconds
706 # -- Number of failures for probe to be considered failed
708 # -- The security options the container should be run with
713 # readOnlyRootFilesystem: true
717 # -- A list of environment variables to be added to the pod
719 # -- A list of volume mounts to be added to the pod
720 extraVolumeMounts: []
721 # set to true to set upstream to use <service>.<namespace>.svc.cluster.local instead of just <service>.<namespace>
722 useDefaultFqdn: false
723 # -- Nginx proxy timeout settings (in seconds)
725 # -- Timeout for establishing a connection with the proxied server
726 proxyConnectTimeout: 180
727 # -- Timeout for transmitting a request to the proxied server
728 proxySendTimeout: 180
729 # -- Timeout for reading a response from the proxied server
730 proxyReadTimeout: 180
731 # Set the model fqdn to use for the upstream
732 # modelFqdn: opencost.opencost.svc.cluster.local:9003
734 # -- Ingress for OpenCost UI
736 # -- Ingress controller which implements the resource
738 # -- Annotations for Ingress resource
740 # kubernetes.io/tls-acme: "true"
741 # -- A list of host rules used to configure the Ingress
742 # @default -- See [values.yaml](values.yaml)
744 - host: example.local
747 # -- Redirect ingress to an extraPort defined on the service such as oauth-proxy
749 # servicePort: oauth-proxy
750 # -- Ingress TLS configuration
752 # - secretName: chart-example-tls
754 # - chart-example.local
756 # -- OpenShift route for OpenCost UI
758 # -- Annotations for Ingress resource
760 # haproxy.router.openshift.io/timeout: 1m
761 # @default -- See [values.yaml](values.yaml)
764 # -- Redirect ingress to an extraPort defined on the service such as oauth-proxy
766 # targetPort: oauth-proxy
767 # -- Route TLS configuration as a map (e.g. with `termination` and `insecureEdgeTerminationPolicy` fields)
769 # insecureEdgeTerminationPolicy: Redirect
771 # -- HTTPRoute for OpenCost UI (Gateway API)
773 # -- Enable HTTPRoute resource
775 # -- Gateway API parent references
776 # @default -- See [values.yaml](values.yaml)
781 # -- Hostnames for the HTTPRoute
784 # -- Annotations for HTTPRoute resource
786 # -- Labels for HTTPRoute resource
788 # -- HTTPRoute rules. Each rule supports an optional `filters` list at the rule level
789 # and per-backendRef `filters` for Gateway API filter configuration (e.g. basic auth
790 # via `ExtensionRef`, header modification via `RequestHeaderModifier`, etc.).
791 # @default -- See [values.yaml](values.yaml)
798 # - type: ExtensionRef
800 # group: gateway.envoyproxy.io
801 # kind: SecurityPolicy
802 # name: basic-auth-policy
804 - name: "" # Will default to service name
807 # - type: RequestHeaderModifier
808 # requestHeaderModifier:
810 # - name: X-Custom-Header
813 image: public.ecr.aws/aws-observability/aws-sigv4-proxy:latest
814 imagePullPolicy: IfNotPresent
817 region: us-west-2 # The AWS region
818 host: aps-workspaces.us-west-2.amazonaws.com # The hostname for AMP service.
819 # role_arn: arn:aws:iam::<account>:role/role-name # The AWS IAM role to assume.
820 extraEnv: # Pass extra env variables to sigV4Proxy
821 # - name: AWS_ACCESS_KEY_ID
822 # value: <access_key>
823 # - name: AWS_SECRET_ACCESS_KEY
824 # value: <secret_key>
836 # readOnlyRootFilesystem: true
839 # -- Toleration labels for pod assignment
841 # -- Node labels for pod assignment
843 # -- Affinity settings for pod assignment
845 # -- Assign custom TopologySpreadConstraints rules
846 topologySpreadConstraints: []
847 # -- extra sidecars to add to the pod. Useful for things like oauth-proxy for the UI
849 # - name: oauth-proxy
850 # image: quay.io/oauth2-proxy/oauth2-proxy:v7.5.1
852 # - --upstream=http://127.0.0.1:9090
853 # - --http-address=0.0.0.0:8081
854 # - --metrics-address=0.0.0.0:8082
857 # - name: oauth-proxy
858 # containerPort: 8081
860 # - name: oauth-metrics
861 # containerPort: 8082
867 ## Security context settings for the init container.
872 allowPrivilegeEscalation: false
873 readOnlyRootFilesystem: true
876 caCertsSecret: ca-certs-secret # The name of the Secret containing custom CA certificates to mount to the opencost container.
877 # caCertsConfig: ca-certs-config # The name of the ConfigMap containing the CA trust configuration.
881 # -- Enable OpenShift specific configurations
883 # OPTIONAL. The following configs only to be enabled when using a Prometheus instance already installed in the cluster.
884 # -- If true, the helm chart will create a ClusterRoleBinding to grant the OpenCost ServiceAccount access to query Prometheus.
885 createMonitoringClusterRoleBinding: false
886 # -- If true, create a Role and RoleBinding to allow Prometheus to list and watch OpenCost resources.
887 createMonitoringResourceReaderRoleBinding: false
888 # -- Name of the Prometheus serviceaccount to bind to the Resource Reader Role Binding.
889 monitoringServiceAccountName: prometheus-k8s
890 # -- Namespace of the Prometheus serviceaccount to bind to the Resource Reader Role Binding.
891 monitoringServiceAccountNamespace: openshift-monitoring
892 # -- If true, set Security Context Constraints on serviceaccount for read/write premissions
894 # -- If true, enable internal prom access
895 enablePromAccess: false
896# -- A list of volumes to be added to the pod
898# -- Array of extra K8s manifests rendered through `tpl` and owned by the release.
900# - apiVersion: external-secrets.io/v1beta1
901# kind: ExternalSecret
903# name: '{{ include "opencost.fullname" . }}-cloud-integration'
905# External labels allow users to apply custom labels to node assets and
908# The OpenCost deployment can read external labels from an existing ConfigMap.
910# Supported ConfigMap formats:
912# 1. Traditional ConfigMap
919# In this case, labels are read directly from ConfigMap.data. The
920# key and route fields are optional and may be omitted.
922# 2. Block-scalar ConfigMap
932# In this case, specify the key that contains the YAML document and
933# a dot-separated route to the labels map within it.
936# configMapName - name of the ConfigMap to read.
937# namespace - namespace of the ConfigMap. Defaults to the agent's
938# own namespace if left empty.
939# key - Optional. The ConfigMap data key containing the YAML
940# document. Required only for block-scalar ConfigMaps.
941# route - Optional. Dot-separated path to the labels map within
942# the key's YAML content, e.g. "metadata.externalLabels".
943# When omitted or empty, labels are read directly from
944# ConfigMap.data (traditional ConfigMap).
946# Traditional ConfigMap example:
950# configMapName: external-label-configmap
953# Block-scalar ConfigMap example:
957# configMapName: external-label-configmap
960# route: metadata.externalLabels