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:e894eee33a334b63151798cdbce45f2e98435eb008500096b5c02c60c9770fd6
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:95092d3f845583b6570c29f37c4b08d207a24ab89171e54e885494d79bf05b3b
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 # Host/interface prefix for --secure-listen-address (for example ":" or "$(POD_IP):")
61 # Specify the name of the container port
63 # Configure a hostPort. If true, hostPort will be enabled in the container and set to service.port.
65 # Configure Proxy Endpoints Port
66 # This is the port being probed for readiness
67 proxyEndpointsPort: 8888
68 # Configure a hostPort. If true, hostPort will be enabled in the container and set to proxyEndpointsPort.
69 enableProxyEndpointsHostPort: false
71 # We usually recommend not to specify default resources and to leave this as a conscious
72 # choice for the user. This also increases chances charts run on environments with little
73 # resources, such as Minikube. If you do want to specify resources, uncomment the following
74 # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
82 ## Additional volume mounts in the kube-rbac-proxy container
83 ## See extraVolumes below
85 # - name: extra-volume
89 ## tls enables using TLS resources from a volume on secret referred to in tlsSecret below.
90 ## When enabling tlsClientAuth, client CA certificate must be set in tlsSecret.caItem.
91 ## Ref. https://github.com/brancz/kube-rbac-proxy/issues/187
95## tlsSecret refers to an existing secret holding TLS items: client CA certificate, private key and certificate.
96## secretName and volumeName can be templated.
97## If enabled, volume volumeName gets created on secret secretName.
98## The volume's resources will be used by kube-rbac-proxy if kubeRBACProxy.tls.enabled is set.
101 ## Key with client CA certificate (optional)
103 ## Key with certificate
105 ## Key with private key
107 ## Name of an existing secret
108 secretName: prometheus-node-exporter-tls
109 ## Name of the volume to be created
110 volumeName: prometheus-node-exporter-tls
111## Service configuration
113 ## Creating a service is enabled by default
117 ## IP address for type ClusterIP
119 ## Default service port. Sets the port of the exposed container as well (NE or kubeRBACProxy).
120 ## Use "servicePort" below if changing the service port only is desired.
122 ## Service port. Use this field if you wish to set a different service port
123 ## without changing the container port ("port" above).
125 ## Targeted port in the pod. Must refer to an open container port ("port" or "portName").
128 ## Name of the service port. Sets the port name of the main container (NE) as well.
130 ## Port number for service type NodePort
132 ## If true, node exporter will listen on all interfaces
133 listenOnAllInterfaces: true
134 ## Additional annotations and labels for the service
136 prometheus.io/scrape: "true"
138 ## Dual stack settings for the service
139 ## https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
142 ipFamilies: ["IPv6", "IPv4"]
143 ipFamilyPolicy: "PreferDualStack"
144 ## External/Internal traffic policy setting (Cluster, Local)
145 ## https://kubernetes.io/docs/reference/networking/virtual-ips/#traffic-policies
146 externalTrafficPolicy: ""
147 internalTrafficPolicy: ""
148# Set a NetworkPolicy with:
149# ingress only on service.port or custom policy
155# Additional environment variables that will be passed to the daemonset
166 # List of pod labels to add to node exporter metrics
167 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
169 # List of target labels to add to node exporter metrics
170 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
176 ## proxyUrl: URL of a proxy that should be used for scraping.
179 ## Override serviceMonitor selector
182 ## Attach node metadata to discovered targets. Requires Prometheus v2.35.0 and above.
187 metricRelabelings: []
190 ## prometheus.monitor.apiVersion ApiVersion for the serviceMonitor Resource(defaults to "monitoring.coreos.com/v1")
192 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
195 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
198 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
201 ## 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.
203 labelNameLengthLimit: 0
204 ## 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.
206 labelValueLengthLimit: 0
207 # PodMonitor defines monitoring for a set of pods.
208 # ref. https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#podmonitor
209 # Using a PodMonitor may be preferred in some environments where there is very large number
210 # of Node Exporter endpoints (1000+) behind a single service.
211 # The PodMonitor is disabled by default. When switching from ServiceMonitor to PodMonitor,
212 # the time series resulting from the configuration through PodMonitor may have different labels.
213 # For instance, there will not be the service label any longer which might
214 # affect PromQL queries selecting that label.
217 # Namespace in which to deploy the pod monitor. Defaults to the release namespace.
219 # Additional labels, e.g. setting a label for pod monitor selector as set in prometheus
221 # release: kube-prometheus-stack
222 # PodTargetLabels transfers labels of the Kubernetes Pod onto the target.
224 # apiVersion defaults to monitoring.coreos.com/v1.
226 # Override pod selector to select pod objects.
228 # Attach node metadata to discovered targets. Requires Prometheus v2.35.0 and above.
231 # The label to use to retrieve the job name from. Defaults to label app.kubernetes.io/name.
233 # Scheme/protocol to use for scraping.
235 # Path to scrape metrics at.
237 # BasicAuth allow an endpoint to authenticate over basic authentication.
238 # More info: https://prometheus.io/docs/operating/configuration/#endpoint
240 # Secret to mount to read bearer token for scraping targets.
241 # The secret needs to be in the same namespace as the pod monitor and accessible by the Prometheus Operator.
242 # https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#secretkeyselector-v1-core
243 bearerTokenSecret: {}
244 # TLS configuration to use when scraping the endpoint.
246 # Authorization section for this endpoint.
247 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#safeauthorization
249 # OAuth2 for the URL. Only valid in Prometheus versions 2.27.0 and newer.
250 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#oauth2
252 # ProxyURL eg http://proxyserver:2195. Directs scrapes through proxy to this endpoint.
254 # Interval at which endpoints should be scraped. If not specified Prometheus' global scrape interval is used.
256 # Timeout after which the scrape is ended. If not specified, the Prometheus global scrape interval is used.
258 # HonorTimestamps controls whether Prometheus respects the timestamps present in scraped data.
259 honorTimestamps: true
260 # HonorLabels chooses the metric's labels on collisions with target labels.
262 # Whether to enable HTTP2. Default false.
264 # Drop pods that are not running. (Failed, Succeeded).
265 # Enabled by default. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
267 # FollowRedirects configures whether scrape requests follow HTTP 3xx redirects. Default false.
269 # Optional HTTP URL parameters
271 # RelabelConfigs to apply to samples before scraping. Prometheus Operator automatically adds
272 # relabelings for a few standard Kubernetes fields. The original scrape job's name
273 # is available via the __tmp_prometheus_job_name label.
274 # More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
276 # MetricRelabelConfigs to apply to samples before ingestion.
277 metricRelabelings: []
278 # SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
280 # TargetLimit defines a limit on the number of scraped targets that will be accepted.
282 # Per-scrape limit on number of labels that will be accepted for a sample.
283 # Only valid in Prometheus versions 2.27.0 and newer.
285 # Per-scrape limit on length of labels name that will be accepted for a sample.
286 # Only valid in Prometheus versions 2.27.0 and newer.
287 labelNameLengthLimit: 0
288 # Per-scrape limit on length of labels value that will be accepted for a sample.
289 # Only valid in Prometheus versions 2.27.0 and newer.
290 labelValueLengthLimit: 0
291## Customize the updateStrategy if set
297# We usually recommend not to specify default resources and to leave this as a conscious
298# choice for the user. This also increases chances charts run on environments with little
299# resources, such as Minikube. If you do want to specify resources, uncomment the following
300# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
308# Specify the container restart policy passed to the Node Export container
309# Possible Values: Always (default)|OnFailure|Never
312 # Specifies whether a ServiceAccount should be created
314 # The name of the ServiceAccount to use.
315 # If not set and create is true, a name is generated using the fullname template
319 automountServiceAccountToken: false
325containerSecurityContext:
326 readOnlyRootFilesystem: true
331 ## If true, create & use RBAC resources
334# for deployments that have node_exporter deployed outside of the cluster, list
335# their addresses here
337# Expose the service to the host network
339# hostUsers should be `true` or `~` if hostNetwork is true
340# for more information on the limitations of hostUsers
341# see https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/#limitations
343# Share the host process ID namespace
345# Share the host ipc namespace
347# Mount the node's root file system (/) at /host/root in the container
350 # Defines how new mounts in existing mounts on the node or in the container
351 # are propagated to the container or node, respectively. Possible values are
352 # None, HostToContainer, and Bidirectional. If this field is omitted, then
353 # None is used. More information on:
354 # https://kubernetes.io/docs/concepts/storage/volumes/#mount-propagation
355 mountPropagation: HostToContainer
356# Mount the node's proc file system (/proc) at /host/proc in the container
358 # Possible values are None, HostToContainer, and Bidirectional
360# Mount the node's sys file system (/sys) at /host/sys in the container
362 # Possible values are None, HostToContainer, and Bidirectional
364## Assign a group of affinity scheduling rules
365## The default nodeAffinity excludes Fargate nodes and virtual kubelets from scheduling
366## unless overridden by hard node affinity set in the field.
369# requiredDuringSchedulingIgnoredDuringExecution:
372# - key: metadata.name
377# Annotations to be added to node exporter pods
379 # Fix for very slow GKE cluster upgrades
380 cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
381# Extra labels to add to node exporter pods (can be templated)
383## Extra labels to attach to all resources (can be templated)
385# Annotations to be added to node exporter daemonset
386daemonsetAnnotations: {}
387## set to true to add the release label so scraping of the servicemonitor with kube-prometheus-stack works out of the box
389# DNS policy for prometheus-node-exporter pods
390# When hostNetwork is true, you typically want "Default" or "ClusterFirstWithHostNet"
391# Ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy
393# Custom DNS configuration to be added to prometheus-node-exporter pods
398# - ns1.svc.cluster-domain.example
399# - my.dns.search.suffix
405## Assign a nodeSelector if operating a hybrid cluster
408 kubernetes.io/os: linux
409 # kubernetes.io/arch: amd64
410# Specify grace period for graceful termination of pods. Defaults to 30 if null or not specified
411terminationGracePeriodSeconds: null
415# Enable or disable container termination message settings
416# https://kubernetes.io/docs/tasks/debug/debug-application/determine-reason-pod-failure/
417terminationMessageParams:
419 # If enabled, specify the path for termination messages
420 terminationMessagePath: /dev/termination-log
421 # If enabled, specify the policy for termination messages
422 terminationMessagePolicy: File
423## Assign a PriorityClassName to pods if set
424# priorityClassName: ""
426## Additional container arguments
429 - --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|run/containerd/.+|var/lib/docker/.+|var/lib/kubelet/.+)($|/)
430 - --collector.filesystem.fs-types-exclude=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs|erofs)$
431# - --collector.diskstats.ignored-devices=^(ram|loop|fd|(h|s|v)d[a-z]|nvme\\d+n\\d+p)\\d+$
432# - --collector.textfile.directory=/run/prometheus
434## Additional mounts from the host to node-exporter container
436extraHostVolumeMounts: []
438# hostPath: <hostPath>
439# https://kubernetes.io/docs/concepts/storage/volumes/#hostpath-volume-types
440# type: "" (Default)|DirectoryOrCreate|Directory|FileOrCreate|File|Socket|CharDevice|BlockDevice
441# mountPath: <mountPath>
442# readOnly: true|false
443# mountPropagation: None|HostToContainer|Bidirectional
445## Additional configmaps to be mounted.
448# - name: <configMapName>
449# mountPath: <mountPath>
452# - name: <secretName>
453# mountPath: <mountPatch>
455## Override the deployment namespace
458## Additional containers for export metrics to text file; fields image,imagePullPolicy,securityContext take default value from main container
461# - name: nvidia-dcgm-exporter
462# image: nvidia/dcgm-exporter:1.4.3
467## Volume for sidecar containers
469sidecarVolumeMount: []
470# - name: collector-textfiles
471# mountPath: /run/prometheus
474## Additional mounts from the host to sidecar containers
476sidecarHostVolumeMounts: []
478# hostPath: <hostPath>
479# mountPath: <mountPath>
480# readOnly: true|false
481# mountPropagation: None|HostToContainer|Bidirectional
483## Additional InitContainers to initialize the pod
485extraInitContainers: []
486## Additional InitContainer to fix hostfile permissions required for some exporters. All fixes are disabled by default.
488permissionInitContainer:
491 repository: prometheus/busybox
494 pullPolicy: IfNotPresent
500 # Fixes /sys/devices/virtual/powercap/*/energy_uj
501 # Collector enabled by default
503 # Fixes /proc/slabinfo
504 # Collector disabled by default
514 initialDelaySeconds: 0
525 initialDelaySeconds: 0
529# Enable vertical pod autoscaler support for prometheus-node-exporter
530verticalPodAutoscaler:
532 # Recommender responsible for generating recommendation for the object.
533 # List should be empty (then the default recommender will generate the recommendation)
534 # or contain exactly one recommender.
536 # - name: custom-recommender-performance
538 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
539 controlledResources: []
540 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
541 # controlledValues: RequestsAndLimits
543 # Define the max allowed resources for the pod
547 # Define the min allowed resources for the pod
552# Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction
554# Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
555# are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "Auto".
558# Extra manifests to deploy as an array
564# name: prometheus-extra
568## Extra volumes to become available in the pod
570# - name: extra-volume
574# secretName: node-exporter-secret
576## Extra volume mounts in the node-exporter container
578# - name: extra-volume
582# Override version of app, required if image.tag is defined and does not follow semver