1# Default values for prometheus-node-exporter.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
6 repository: chainguard-private/prometheus-node-exporter
7 # Overrides the image tag whose default is {{ printf "v%s" .Chart.AppVersion }}
9 # Use the distroless image variant.
11 pullPolicy: IfNotPresent
12 digest: sha256:8e4df20ac30a7cf47fe612b02333714c75d0dec30e51c59117c440b7410530a1
14# - name: "image-pull-secret"
17# Number of old history to retain to allow rollback
18# Default Kubernetes value is set to 10
19revisionHistoryLimit: 10
21 # To help compatibility with other charts which use global.imagePullSecrets.
22 # Allow either an array of {name: pullSecret} maps (k8s-style), or an array of strings (more common helm-style).
34 # Allow parent charts to override registry hostname
36# Configure kube-rbac-proxy. When enabled, creates a kube-rbac-proxy to protect the node-exporter http endpoint.
37# The requests are served through the same service but requests are HTTPS.
40 ## Set environment variables as name/value pairs
45 repository: chainguard-private/kube-rbac-proxy
47 sha: sha256:910f21d91afc35b914309c7e3caed27d7f85cfa437bf60142c6e8f22681cd9b9
48 pullPolicy: IfNotPresent
49 # List of additional cli arguments to configure kube-rbac-proxy
50 # for example: --tls-cipher-suites, --log-file, etc.
51 # all the possible args can be found here: https://github.com/brancz/kube-rbac-proxy#usage
53 ## Specify security settings for a Container
54 ## Allows overrides and additional options compared to (Pod) securityContext
55 ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
56 containerSecurityContext: {}
57 # Specify the port used for the Node exporter container (upstream port)
59 # Specify the name of the container port
61 # Configure a hostPort. If true, hostPort will be enabled in the container and set to service.port.
63 # Configure Proxy Endpoints Port
64 # This is the port being probed for readiness
65 proxyEndpointsPort: 8888
66 # Configure a hostPort. If true, hostPort will be enabled in the container and set to proxyEndpointsPort.
67 enableProxyEndpointsHostPort: false
69 # We usually recommend not to specify default resources and to leave this as a conscious
70 # choice for the user. This also increases chances charts run on environments with little
71 # resources, such as Minikube. If you do want to specify resources, uncomment the following
72 # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
80 ## Additional volume mounts in the kube-rbac-proxy container
81 ## See extraVolumes below
83 # - name: extra-volume
87 ## tls enables using TLS resources from a volume on secret referred to in tlsSecret below.
88 ## When enabling tlsClientAuth, client CA certificate must be set in tlsSecret.caItem.
89 ## Ref. https://github.com/brancz/kube-rbac-proxy/issues/187
93## tlsSecret refers to an existing secret holding TLS items: client CA certificate, private key and certificate.
94## secretName and volumeName can be templated.
95## If enabled, volume volumeName gets created on secret secretName.
96## The volume's resources will be used by kube-rbac-proxy if kubeRBACProxy.tls.enabled is set.
99 ## Key with client CA certificate (optional)
101 ## Key with certificate
103 ## Key with private key
105 ## Name of an existing secret
106 secretName: prometheus-node-exporter-tls
107 ## Name of the volume to be created
108 volumeName: prometheus-node-exporter-tls
109## Service configuration
111 ## Creating a service is enabled by default
115 ## IP address for type ClusterIP
117 ## Default service port. Sets the port of the exposed container as well (NE or kubeRBACProxy).
118 ## Use "servicePort" below if changing the service port only is desired.
120 ## Service port. Use this field if you wish to set a different service port
121 ## without changing the container port ("port" above).
123 ## Targeted port in the pod. Must refer to an open container port ("port" or "portName").
126 ## Name of the service port. Sets the port name of the main container (NE) as well.
128 ## Port number for service type NodePort
130 ## If true, node exporter will listen on all interfaces
131 listenOnAllInterfaces: true
132 ## Additional annotations and labels for the service
134 prometheus.io/scrape: "true"
136 ## Dual stack settings for the service
137 ## https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
140 ipFamilies: ["IPv6", "IPv4"]
141 ipFamilyPolicy: "PreferDualStack"
142 ## External/Internal traffic policy setting (Cluster, Local)
143 ## https://kubernetes.io/docs/reference/networking/virtual-ips/#traffic-policies
144 externalTrafficPolicy: ""
145 internalTrafficPolicy: ""
146# Set a NetworkPolicy with:
147# ingress only on service.port or custom policy
153# Additional environment variables that will be passed to the daemonset
164 # List of pod labels to add to node exporter metrics
165 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
167 # List of target labels to add to node exporter metrics
168 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
174 ## proxyUrl: URL of a proxy that should be used for scraping.
177 ## Override serviceMonitor selector
180 ## Attach node metadata to discovered targets. Requires Prometheus v2.35.0 and above.
185 metricRelabelings: []
188 ## prometheus.monitor.apiVersion ApiVersion for the serviceMonitor Resource(defaults to "monitoring.coreos.com/v1")
190 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
193 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
196 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
199 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
201 labelNameLengthLimit: 0
202 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
204 labelValueLengthLimit: 0
205 # PodMonitor defines monitoring for a set of pods.
206 # ref. https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#podmonitor
207 # Using a PodMonitor may be preferred in some environments where there is very large number
208 # of Node Exporter endpoints (1000+) behind a single service.
209 # The PodMonitor is disabled by default. When switching from ServiceMonitor to PodMonitor,
210 # the time series resulting from the configuration through PodMonitor may have different labels.
211 # For instance, there will not be the service label any longer which might
212 # affect PromQL queries selecting that label.
215 # Namespace in which to deploy the pod monitor. Defaults to the release namespace.
217 # Additional labels, e.g. setting a label for pod monitor selector as set in prometheus
219 # release: kube-prometheus-stack
220 # PodTargetLabels transfers labels of the Kubernetes Pod onto the target.
222 # apiVersion defaults to monitoring.coreos.com/v1.
224 # Override pod selector to select pod objects.
226 # Attach node metadata to discovered targets. Requires Prometheus v2.35.0 and above.
229 # The label to use to retrieve the job name from. Defaults to label app.kubernetes.io/name.
231 # Scheme/protocol to use for scraping.
233 # Path to scrape metrics at.
235 # BasicAuth allow an endpoint to authenticate over basic authentication.
236 # More info: https://prometheus.io/docs/operating/configuration/#endpoint
238 # Secret to mount to read bearer token for scraping targets.
239 # The secret needs to be in the same namespace as the pod monitor and accessible by the Prometheus Operator.
240 # https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#secretkeyselector-v1-core
241 bearerTokenSecret: {}
242 # TLS configuration to use when scraping the endpoint.
244 # Authorization section for this endpoint.
245 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#safeauthorization
247 # OAuth2 for the URL. Only valid in Prometheus versions 2.27.0 and newer.
248 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#oauth2
250 # ProxyURL eg http://proxyserver:2195. Directs scrapes through proxy to this endpoint.
252 # Interval at which endpoints should be scraped. If not specified Prometheus' global scrape interval is used.
254 # Timeout after which the scrape is ended. If not specified, the Prometheus global scrape interval is used.
256 # HonorTimestamps controls whether Prometheus respects the timestamps present in scraped data.
257 honorTimestamps: true
258 # HonorLabels chooses the metric's labels on collisions with target labels.
260 # Whether to enable HTTP2. Default false.
262 # Drop pods that are not running. (Failed, Succeeded).
263 # Enabled by default. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
265 # FollowRedirects configures whether scrape requests follow HTTP 3xx redirects. Default false.
267 # Optional HTTP URL parameters
269 # RelabelConfigs to apply to samples before scraping. Prometheus Operator automatically adds
270 # relabelings for a few standard Kubernetes fields. The original scrape job's name
271 # is available via the __tmp_prometheus_job_name label.
272 # More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
274 # MetricRelabelConfigs to apply to samples before ingestion.
275 metricRelabelings: []
276 # SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
278 # TargetLimit defines a limit on the number of scraped targets that will be accepted.
280 # Per-scrape limit on number of labels that will be accepted for a sample.
281 # Only valid in Prometheus versions 2.27.0 and newer.
283 # Per-scrape limit on length of labels name that will be accepted for a sample.
284 # Only valid in Prometheus versions 2.27.0 and newer.
285 labelNameLengthLimit: 0
286 # Per-scrape limit on length of labels value that will be accepted for a sample.
287 # Only valid in Prometheus versions 2.27.0 and newer.
288 labelValueLengthLimit: 0
289## Customize the updateStrategy if set
295# We usually recommend not to specify default resources and to leave this as a conscious
296# choice for the user. This also increases chances charts run on environments with little
297# resources, such as Minikube. If you do want to specify resources, uncomment the following
298# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
306# Specify the container restart policy passed to the Node Export container
307# Possible Values: Always (default)|OnFailure|Never
310 # Specifies whether a ServiceAccount should be created
312 # The name of the ServiceAccount to use.
313 # If not set and create is true, a name is generated using the fullname template
317 automountServiceAccountToken: false
323containerSecurityContext:
324 readOnlyRootFilesystem: true
329 ## If true, create & use RBAC resources
332# for deployments that have node_exporter deployed outside of the cluster, list
333# their addresses here
335# Expose the service to the host network
337# hostUsers should be `true` or `~` if hostNetwork is true
338# for more information on the limitations of hostUsers
339# see https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/#limitations
341# Share the host process ID namespace
343# Share the host ipc namespace
345# Mount the node's root file system (/) at /host/root in the container
348 # Defines how new mounts in existing mounts on the node or in the container
349 # are propagated to the container or node, respectively. Possible values are
350 # None, HostToContainer, and Bidirectional. If this field is omitted, then
351 # None is used. More information on:
352 # https://kubernetes.io/docs/concepts/storage/volumes/#mount-propagation
353 mountPropagation: HostToContainer
354# Mount the node's proc file system (/proc) at /host/proc in the container
356 # Possible values are None, HostToContainer, and Bidirectional
358# Mount the node's sys file system (/sys) at /host/sys in the container
360 # Possible values are None, HostToContainer, and Bidirectional
362## Assign a group of affinity scheduling rules
363## The default nodeAffinity excludes Fargate nodes and virtual kubelets from scheduling
364## unless overridden by hard node affinity set in the field.
367# requiredDuringSchedulingIgnoredDuringExecution:
370# - key: metadata.name
375# Annotations to be added to node exporter pods
377 # Fix for very slow GKE cluster upgrades
378 cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
379# Extra labels to add to node exporter pods (can be templated)
381## Extra labels to attach to all resources (can be templated)
383# Annotations to be added to node exporter daemonset
384daemonsetAnnotations: {}
385## set to true to add the release label so scraping of the servicemonitor with kube-prometheus-stack works out of the box
387# DNS policy for prometheus-node-exporter pods
388# When hostNetwork is true, you typically want "Default" or "ClusterFirstWithHostNet"
389# Ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy
391# Custom DNS configuration to be added to prometheus-node-exporter pods
396# - ns1.svc.cluster-domain.example
397# - my.dns.search.suffix
403## Assign a nodeSelector if operating a hybrid cluster
406 kubernetes.io/os: linux
407 # kubernetes.io/arch: amd64
408# Specify grace period for graceful termination of pods. Defaults to 30 if null or not specified
409terminationGracePeriodSeconds: null
413# Enable or disable container termination message settings
414# https://kubernetes.io/docs/tasks/debug/debug-application/determine-reason-pod-failure/
415terminationMessageParams:
417 # If enabled, specify the path for termination messages
418 terminationMessagePath: /dev/termination-log
419 # If enabled, specify the policy for termination messages
420 terminationMessagePolicy: File
421## Assign a PriorityClassName to pods if set
422# priorityClassName: ""
424## Additional container arguments
427# - --collector.diskstats.ignored-devices=^(ram|loop|fd|(h|s|v)d[a-z]|nvme\\d+n\\d+p)\\d+$
428# - --collector.textfile.directory=/run/prometheus
430## Additional mounts from the host to node-exporter container
432extraHostVolumeMounts: []
434# hostPath: <hostPath>
435# https://kubernetes.io/docs/concepts/storage/volumes/#hostpath-volume-types
436# type: "" (Default)|DirectoryOrCreate|Directory|FileOrCreate|File|Socket|CharDevice|BlockDevice
437# mountPath: <mountPath>
438# readOnly: true|false
439# mountPropagation: None|HostToContainer|Bidirectional
441## Additional configmaps to be mounted.
444# - name: <configMapName>
445# mountPath: <mountPath>
448# - name: <secretName>
449# mountPath: <mountPatch>
451## Override the deployment namespace
454## Additional containers for export metrics to text file; fields image,imagePullPolicy,securityContext take default value from main container
457# - name: nvidia-dcgm-exporter
458# image: nvidia/dcgm-exporter:1.4.3
463## Volume for sidecar containers
465sidecarVolumeMount: []
466# - name: collector-textfiles
467# mountPath: /run/prometheus
470## Additional mounts from the host to sidecar containers
472sidecarHostVolumeMounts: []
474# hostPath: <hostPath>
475# mountPath: <mountPath>
476# readOnly: true|false
477# mountPropagation: None|HostToContainer|Bidirectional
479## Additional InitContainers to initialize the pod
481extraInitContainers: []
482## Additional InitContainer to fix hostfile permissions required for some exporters. All fixes are disabled by default.
484permissionInitContainer:
487 repository: prometheus/busybox
490 pullPolicy: IfNotPresent
496 # Fixes /sys/devices/virtual/powercap/*/energy_uj
497 # Collector enabled by default
499 # Fixes /proc/slabinfo
500 # Collector disabled by default
510 initialDelaySeconds: 0
521 initialDelaySeconds: 0
525# Enable vertical pod autoscaler support for prometheus-node-exporter
526verticalPodAutoscaler:
528 # Recommender responsible for generating recommendation for the object.
529 # List should be empty (then the default recommender will generate the recommendation)
530 # or contain exactly one recommender.
532 # - name: custom-recommender-performance
534 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
535 controlledResources: []
536 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
537 # controlledValues: RequestsAndLimits
539 # Define the max allowed resources for the pod
543 # Define the min allowed resources for the pod
548# Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction
550# Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
551# are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "Auto".
554# Extra manifests to deploy as an array
560# name: prometheus-extra
564## Extra volumes to become available in the pod
566# - name: extra-volume
570# secretName: node-exporter-secret
572## Extra volume mounts in the node-exporter container
574# - name: extra-volume
578# Override version of app, required if image.tag is defined and does not follow semver