1# Default values for nr-k8s-otel-collector.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
5# -- Name of the Kubernetes cluster monitored. Mandatory. Can be configured also with `global.cluster`
7# -- This set this license key to use. Can be configured also with `global.licenseKey`
10 # kube-state-metrics.enabled -- Install the [`kube-state-metrics` chart](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-state-metrics) from the stable helm charts repository.
11 # This is mandatory if `infrastructure.enabled` is set to `true` and the user does not provide its own instance of KSM version >=1.8 and <=2.0. Note, kube-state-metrics v2+ disables labels/annotations
12 # metrics by default. You can enable the target labels/annotations metrics to be monitored by using the metricLabelsAllowlist/metricAnnotationsAllowList options described [here](https://github.com/prometheus-community/helm-charts/blob/159cd8e4fb89b8b107dcc100287504bb91bf30e0/charts/kube-state-metrics/values.yaml#L274) in
13 # your Kubernetes clusters.
15 # -- Sets resources for kube-state-metrics.
17 # -- Disable prometheus from auto-discovering KSM and potentially scraping duplicated data
18 prometheusScrape: false
19 # -- Enable resource quota data exporting
20 enableResourceQuotaSamples: false
21 # -- Enable custom KSM-based CRD metrics
22 enableCustomResourceSamples: false
23 # kube-state-metrics.metricLabelsAllowlist -- List of Kubernetes label keys that will be used in the resources' labels metric.
24 # By default, kube-state-metrics v2+ does not expose labels as metric labels. This option allows you to specify which labels
25 # should be exposed as metric dimensions. Each entry is formatted as "resource=[label1,label2,...]".
26 # Use "*" to include all labels for a resource type.
27 # Example: ["pods=[app,environment,team]", "namespaces=[environment]", "deployments=[app,version]"]
28 # @default -- `["pods=[*]", "namespaces=[*]", "deployments=[*]"]`
29 metricLabelsAllowlist:
33 # kube-state-metrics.metricAnnotationsAllowList -- List of Kubernetes annotation keys that will be used in the resources' annotations metric.
34 # By default, kube-state-metrics v2+ does not expose annotations as metric labels. This option allows you to specify which annotations
35 # should be exposed as metric dimensions. Each entry is formatted as "resource=[annotation1,annotation2,...]".
36 # Use "*" to include all annotations for a resource type.
37 # Example: ["pods=[description,owner]", "namespaces=[description]", "deployments=[change-id,jira-ticket]"]
38 # @default -- `["pods=[*]", "namespaces=[*]", "deployments=[*]"]`
39 metricAnnotationsAllowList:
43# This is an example configuration for Karpenter's NodePool CRD, but you can configure it for any CRD in your cluster. For more information on how to configure this, refer to the README.md
47# kind: CustomResourceStateMetrics
55# name: [ metadata, name ]
56# # Inherit all labels from metadata
57# "*": [ metadata, labels ]
59# - name: "nodepool_nodes_count"
60# help: "Number of nodes managed by this NodePool"
64# path: [ status, resources, nodes ]
65# - name: "nodepool_pods_count"
66# help: "Number of pods on nodes from this NodePool"
70# path: [ status, resources, pods ]
72# This chart has support for OpenShift and GKE Autopilot.
73# -- The provider that you are deploying your cluster into. Sets known config constraints for your specific provider. Currently supporting OpenShift and GKE autopilot. If set, provider must be one of "GKE_AUTOPILOT" or "OPEN_SHIFT"
75# -- Images used by the chart.
77 # -- The secrets that are needed to pull images from a custom registry.
80 # -- Image for the OpenTelemetry Collector.
81 # To use experimental features, you must use the image newrelic/nrdot-collector.
82 # See below for experimental features.
85 repository: chainguard-private/nrdot-collector-k8s
86 tag: latest@sha256:6c8806225e5d017cf3767b52a1ccb96eb476e60d5ed950126dabb49025e9a118
87 pullPolicy: IfNotPresent
88 # -- Image for the initContainer that retrieves node allocatable resources.
91 repository: chainguard-private/kubectl
92 tag: latest-dev@sha256:a9e7896c1efda973fa3c0f53d363483a801f444303dbddc6cf89131aa4ae034c
93 pullPolicy: IfNotPresent
94# -- In case you don't want to have the license key in you values, this allows you to point to a user created secret to get the key from there. Can be configured also with `global.customSecretName`
96# -- In case you don't want to have the license key in you values, this allows you to point to which secret key is the license key located. Can be configured also with `global.customSecretLicenseKey`
97customSecretLicenseKey: ""
98# -- Configures the Otel collector(s) to send all data through the specified proxy.
100# -- Additional labels for chart pods
102# -- Additional labels for chart objects
104# -- Sets pod's priorityClassName. Can be configured also with `global.priorityClassName`
106# -- Sets pod's dnsConfig. Can be configured also with `global.dnsConfig`
108# -- Define custom processors here. See: https://opentelemetry.io/docs/collector/configuration/#processors
110# -- Define custom exporters here. See: https://opentelemetry.io/docs/collector/configuration/#exporters
112# -- Edit how the NR Metrics pipeline handles your Metrics
115 # -- List of processors to be applied to your RAW Metrics.
116 # This is applied at the beginning of the pipeline
118 # -- List of exporters that you'd like to use to export RAW Metrics.
121 # -- List of processors to be applied to your Metrics after the NR processors have been applied.
122 # This is applied at the end of the pipeline after the default NR processors have been applied to the data.
124 # -- List of additional exports to export the processed Metrics.
126# -- Edit how the NR Logs pipeline handles your Logs
129 # -- List of processors to be applied to your RAW Logs.
130 # This is applied at the beginning of the pipeline
132 # -- List of exporters that you'd like to use to export RAW Logs.
135 # -- List of processors to be applied to your Logs after the NR processors have been applied.
136 # This is applied at the end of the pipeline after the default NR processors have been applied to the data.
138 # -- List of additional exports to export the processed Logs.
141 # -- Specifies whether to install the DaemonSet collectors. This should only be changed for advanced use cases. For more information, refer to the appropriate section in the README.md
143 # -- Sets daemonset pod node selector. Overrides `nodeSelector` and `global.nodeSelector`
145 # -- Sets daemonset pod tolerations. Overrides `tolerations` and `global.tolerations`
147 # -- Sets daemonset pod affinities. Overrides `affinity` and `global.affinity`
149 # -- Annotations to be added to the daemonset.
151 # -- Sets security context (at pod level) for the daemonset. Overrides `podSecurityContext` and `global.podSecurityContext`
152 podSecurityContext: {}
153 # -- Sets security context (at container level) for the daemonset. Overrides `containerSecurityContext` and `global.containerSecurityContext`
154 containerSecurityContext:
158 allowPrivilegeEscalation: false
159 readOnlyRootFilesystem: true
163 # -- Sets resources for the daemonset.
165 # -- Sets additional environment variables for the daemonset.
167 # -- Sets additional environment variable sources for the daemonset.
169 # -- Additional args for the daemonset container
170 # https://opentelemetry.io/docs/collector/configuration/
173 # - "--config=yaml:service::telemetry::logs::level: debug"
174 # - "--config=yaml:exporters::otlp_http/newrelic::endpoint: https://otlp.eu.nr-data.net"
176 # -- Settings for daemonset configmap
177 # @default -- See `values.yaml`
179 # -- OpenTelemetry config for the daemonset. If set, overrides default config and disables configuration parameters for the daemonset.
181 # -- Additional OpenTelemetry config for the daemonset. If set, extends the default config by adding more receivers/processors/exporters/connectors/pipelines.
188 # -- Additional volumes to be added to the daemonset pod
190 # - name: example-volume
192 # name: example-configmap
193 # -- Additional volume mounts to be added to the daemonset container
194 extraVolumeMounts: []
195 # - name: example-volume
196 # mountPath: /etc/example
199 # -- Specifies whether to install the Deployment collector. This should only be changed for advanced use cases. For more information, refer to the appropriate section in the README.md
201 # -- Sets deployment pod node selector. Overrides `nodeSelector` and `global.nodeSelector`
203 # -- Sets deployment pod tolerations. Overrides `tolerations` and `global.tolerations`
205 # -- Sets deployment pod affinities. Overrides `affinity` and `global.affinity`
207 # -- Annotations to be added to the deployment.
209 # -- Sets security context (at pod level) for the deployment. Overrides `podSecurityContext` and `global.podSecurityContext`
210 podSecurityContext: {}
211 # -- Sets security context (at container level) for the deployment. Overrides `containerSecurityContext` and `global.containerSecurityContext`
212 containerSecurityContext:
216 allowPrivilegeEscalation: false
217 readOnlyRootFilesystem: true
221 # -- Sets resources for the deployment.
223 # -- Sets additional environment variables for the deployment.
225 # -- Sets additional environment variable sources for the deployment.
227 # -- Additional args for the deployment container
228 # https://opentelemetry.io/docs/collector/configuration/
231 # - "--config=yaml:service::telemetry::logs::level: debug"
232 # - "--config=yaml:exporters::otlp_http/newrelic::endpoint: https://otlp.eu.nr-data.net"
234 # -- Settings for deployment configmap
235 # @default -- See `values.yaml`
237 # -- OpenTelemetry config for the deployment. If set, overrides default config and disables configuration parameters for the deployment.
239 # -- Additional OpenTelemetry config for the deployment. If set, extends the default config by adding more receivers/processors/exporters/connectors/pipelines.
246 # -- Additional volumes to be added to the deployment pod
248 # - name: example-volume
250 # name: example-configmap
251 # -- Additional volume mounts to be added to the deployment container
252 extraVolumeMounts: []
253 # - name: example-volume
254 # mountPath: /etc/example
256# -- Sets all pods' node selector. Can be configured also with `global.nodeSelector`
258# -- Sets all pods' tolerations to node taints. Can be configured also with `global.tolerations`
260# -- Sets all pods' affinities. Can be configured also with `global.affinity`
262# -- Sets all security contexts (at pod level). Can be configured also with `global.securityContext.pod`
263podSecurityContext: {}
264# -- Sets all security context (at container level). Can be configured also with `global.securityContext.container`
265containerSecurityContext:
269 allowPrivilegeEscalation: false
270 readOnlyRootFilesystem: true
275 # -- Specifies whether RBAC resources should be created
277# -- Settings controlling ServiceAccount creation
278# @default -- See `values.yaml`
280 # serviceAccount.create -- (bool) Specifies whether a ServiceAccount should be created
283 # If not set and create is true, a name is generated using the fullname template
285 # Specify any annotations to add to the ServiceAccount
287# -- (bool) Sets the debug logs to this integration or all integrations if it is set globally. Can be configured also with `global.verboseLog`
290# -- (bool) Send the metrics to the staging backend. Requires a valid staging license key. Can be configured also with `global.nrStaging`
295 # -- (bool) Specifies whether the `prometheus` receiver is enabled
298 # -- Sets the scrape interval for the `prometheus` receiver
301 # -- Label selector that will be used to automatically discover an instance of kube-state-metrics running in the cluster.
302 # @default -- `app.kubernetes.io/name=kube-state-metrics`
303 ksmSelector: "app.kubernetes.io/name=kube-state-metrics"
305 # -- (bool) Specifies whether the `k8s_events` receiver is enabled
309 # -- (bool) Specifies whether the `hostmetrics` receiver is enabled
312 # -- Sets the scrape interval for the `hostmetrics` receiver
316 # -- (bool) Specifies whether the `kubeletstats` receiver is enabled
319 # -- Sets the scrape interval for the `kubeletstats` receiver
323 # -- (bool) Specifies whether the `file_log` receiver is enabled
326 # DEPRECATED 1/21/26: Please configure values under `collectorObservability` instead
328 # -- (bool) Specifies whether collector metrics are scraped from the deployment collector. Requires prometheus receiver to be enabled.
329 # @default -- `false`
331 # -- Sets the scrape interval for metrics scraped from the deployment collector
334# Modern method for enabling the collector to report its own metrics (replaces `receivers.collectorMetrics`)
335collectorObservability:
336 # -- (bool) Specifies whether the collector reports its own metrics
337 # @default -- `false`
339 # -- Specifies the interval at which the collector reports its metrics (in milliseconds)
340 # @default -- `60000`
341 scrapeIntervalMs: 60000
342# -- (bool) Send only the [metrics required](https://github.com/newrelic/helm-charts/tree/master/charts/nr-k8s-otel-collector/docs/metrics-lowDataMode.md) to light up the NR kubernetes UI
345################################################################################
346# Experimental Features
347################################################################################
348# WARNING: The features in this section are experimental and may change or be
349# removed in future releases. To use these features, you must set the collector
350# image to newrelic/nrdot-collector (see images.collector.repository above).
352# -- (bool) Enable Adaptive Telemetry Processor (ATP) for intelligent process metrics filtering.
353# When disabled (default), ATP processors are not included in the pipeline.
354# When enabled, activates ATP with opinionated process metrics collection.
355# IMPORTANT: Requires setting images.collector.repository to newrelic/nrdot-collector