--- /dev/null
+{{- if .Values.nodeExporter.enabled -}}
+apiVersion: {{ template "prometheus.daemonset.apiVersion" . }}
+kind: DaemonSet
+metadata:
+{{- if .Values.nodeExporter.deploymentAnnotations }}
+ annotations:
+{{ toYaml .Values.nodeExporter.deploymentAnnotations | indent 4 }}
+{{- end }}
+ labels:
+ {{- include "prometheus.nodeExporter.labels" . | nindent 4 }}
+ name: {{ template "prometheus.nodeExporter.fullname" . }}
+{{ include "prometheus.namespace" . | indent 2 }}
+spec:
+ selector:
+ matchLabels:
+ {{- include "prometheus.nodeExporter.matchLabels" . | nindent 6 }}
+ {{- if .Values.nodeExporter.updateStrategy }}
+ updateStrategy:
+{{ toYaml .Values.nodeExporter.updateStrategy | indent 4 }}
+ {{- end }}
+ template:
+ metadata:
+ {{- if .Values.nodeExporter.podAnnotations }}
+ annotations:
+{{ toYaml .Values.nodeExporter.podAnnotations | indent 8 }}
+ {{- end }}
+ labels:
+ {{- include "prometheus.nodeExporter.labels" . | nindent 8 }}
+{{- if .Values.nodeExporter.pod.labels }}
+{{ toYaml .Values.nodeExporter.pod.labels | indent 8 }}
+{{- end }}
+ spec:
+ serviceAccountName: {{ template "prometheus.serviceAccountName.nodeExporter" . }}
+ {{- if .Values.nodeExporter.extraInitContainers }}
+ initContainers:
+{{ toYaml .Values.nodeExporter.extraInitContainers | indent 8 }}
+ {{- end }}
+{{- if .Values.nodeExporter.priorityClassName }}
+ priorityClassName: "{{ .Values.nodeExporter.priorityClassName }}"
+{{- end }}
+ containers:
+ - name: {{ template "prometheus.name" . }}-{{ .Values.nodeExporter.name }}
+ image: "{{ .Values.nodeExporter.image.repository }}:{{ .Values.nodeExporter.image.tag }}"
+ imagePullPolicy: "{{ .Values.nodeExporter.image.pullPolicy }}"
+ args:
+ - --path.procfs=/host/proc
+ - --path.sysfs=/host/sys
+ {{- range $key, $value := .Values.nodeExporter.extraArgs }}
+ {{- if $value }}
+ - --{{ $key }}={{ $value }}
+ {{- else }}
+ - --{{ $key }}
+ {{- end }}
+ {{- end }}
+ ports:
+ - name: metrics
+ containerPort: 9100
+ hostPort: {{ .Values.nodeExporter.service.hostPort }}
+ resources:
+{{ toYaml .Values.nodeExporter.resources | indent 12 }}
+ volumeMounts:
+ - name: proc
+ mountPath: /host/proc
+ readOnly: true
+ - name: sys
+ mountPath: /host/sys
+ readOnly: true
+ {{- range .Values.nodeExporter.extraHostPathMounts }}
+ - name: {{ .name }}
+ mountPath: {{ .mountPath }}
+ readOnly: {{ .readOnly }}
+ {{- if .mountPropagation }}
+ mountPropagation: {{ .mountPropagation }}
+ {{- end }}
+ {{- end }}
+ {{- range .Values.nodeExporter.extraConfigmapMounts }}
+ - name: {{ .name }}
+ mountPath: {{ .mountPath }}
+ readOnly: {{ .readOnly }}
+ {{- end }}
+ {{- if .Values.imagePullSecrets }}
+ imagePullSecrets:
+ {{ toYaml .Values.imagePullSecrets | indent 2 }}
+ {{- end }}
+ {{- if .Values.nodeExporter.hostNetwork }}
+ hostNetwork: true
+ {{- end }}
+ {{- if .Values.nodeExporter.hostPID }}
+ hostPID: true
+ {{- end }}
+ {{- if .Values.nodeExporter.tolerations }}
+ tolerations:
+{{ toYaml .Values.nodeExporter.tolerations | indent 8 }}
+ {{- end }}
+ {{- if .Values.nodeExporter.nodeSelector }}
+ nodeSelector:
+{{ toYaml .Values.nodeExporter.nodeSelector | indent 8 }}
+ {{- end }}
+ {{- if .Values.nodeExporter.securityContext }}
+ securityContext:
+{{ toYaml .Values.nodeExporter.securityContext | indent 8 }}
+ {{- end }}
+ volumes:
+ - name: proc
+ hostPath:
+ path: /proc
+ - name: sys
+ hostPath:
+ path: /sys
+ {{- range .Values.nodeExporter.extraHostPathMounts }}
+ - name: {{ .name }}
+ hostPath:
+ path: {{ .hostPath }}
+ {{- end }}
+ {{- range .Values.nodeExporter.extraConfigmapMounts }}
+ - name: {{ .name }}
+ configMap:
+ name: {{ .configMap }}
+ {{- end }}
+
+{{- end -}}