Skip to content

Commit 9c2619e

Browse files
authored
[kube-prometheus-stack] Chore: Improve kubelet ServiceMonitor (#5061)
1 parent c8d410d commit 9c2619e

File tree

3 files changed

+38
-132
lines changed

3 files changed

+38
-132
lines changed

charts/kube-prometheus-stack/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ name: kube-prometheus-stack
2323
sources:
2424
- https://github.com/prometheus-community/helm-charts
2525
- https://github.com/prometheus-operator/kube-prometheus
26-
version: 66.7.0
26+
version: 66.7.1
2727
appVersion: v0.79.0
2828
kubeVersion: ">=1.19.0-0"
2929
home: https://github.com/prometheus-operator/kube-prometheus

charts/kube-prometheus-stack/templates/_helpers.tpl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,3 +318,16 @@ global:
318318
{{ $fullname }}-webhook.{{ $namespace }}.svc
319319
{{- end }}
320320
{{- end }}
321+
322+
{{/* To help configure the kubelet servicemonitor for http or https. */}}
323+
{{- define "kube-prometheus-stack.kubelet.scheme" }}
324+
{{- if .Values.kubelet.serviceMonitor.https }}https{{ else }}http{{ end }}
325+
{{- end }}
326+
{{- define "kube-prometheus-stack.kubelet.authConfig" }}
327+
{{- if .Values.kubelet.serviceMonitor.https }}
328+
tlsConfig:
329+
caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
330+
insecureSkipVerify: {{ .Values.kubelet.serviceMonitor.insecureSkipVerify }}
331+
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
332+
{{- end }}
333+
{{- end }}

charts/kube-prometheus-stack/templates/exporters/kubelet/servicemonitor.yaml

Lines changed: 24 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,21 @@ spec:
2020
attachMetadata:
2121
{{- toYaml . | nindent 4 }}
2222
{{- end }}
23+
jobLabel: k8s-app
24+
{{- with .Values.kubelet.serviceMonitor.targetLabels }}
25+
targetLabels:
26+
{{- toYaml . | nindent 4 }}
27+
{{- end }}
28+
namespaceSelector:
29+
matchNames:
30+
- {{ .Values.kubelet.namespace }}
31+
selector:
32+
matchLabels:
33+
app.kubernetes.io/name: kubelet
34+
k8s-app: kubelet
2335
endpoints:
24-
{{- if .Values.kubelet.serviceMonitor.https }}
25-
- port: https-metrics
26-
scheme: https
36+
- port: {{ template "kube-prometheus-stack.kubelet.scheme" . }}-metrics
37+
scheme: {{ template "kube-prometheus-stack.kubelet.scheme" . }}
2738
{{- if .Values.kubelet.serviceMonitor.interval }}
2839
interval: {{ .Values.kubelet.serviceMonitor.interval }}
2940
{{- end }}
@@ -33,10 +44,7 @@ spec:
3344
{{- if .Values.kubelet.serviceMonitor.scrapeTimeout }}
3445
scrapeTimeout: {{ .Values.kubelet.serviceMonitor.scrapeTimeout }}
3546
{{- end }}
36-
tlsConfig:
37-
caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
38-
insecureSkipVerify: {{ .Values.kubelet.serviceMonitor.insecureSkipVerify }}
39-
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
47+
{{- include "kube-prometheus-stack.kubelet.authConfig" . | indent 4 }}
4048
honorLabels: {{ .Values.kubelet.serviceMonitor.honorLabels }}
4149
honorTimestamps: {{ .Values.kubelet.serviceMonitor.honorTimestamps }}
4250
{{- if .Values.kubelet.serviceMonitor.metricRelabelings }}
@@ -48,8 +56,8 @@ spec:
4856
{{ tpl (toYaml .Values.kubelet.serviceMonitor.relabelings | indent 4) . }}
4957
{{- end }}
5058
{{- if .Values.kubelet.serviceMonitor.cAdvisor }}
51-
- port: https-metrics
52-
scheme: https
59+
- port: {{ template "kube-prometheus-stack.kubelet.scheme" . }}-metrics
60+
scheme: {{ template "kube-prometheus-stack.kubelet.scheme" . }}
5361
path: /metrics/cadvisor
5462
{{- if .Values.kubelet.serviceMonitor.interval }}
5563
interval: {{ .Values.kubelet.serviceMonitor.interval }}
@@ -63,10 +71,7 @@ spec:
6371
honorLabels: {{ .Values.kubelet.serviceMonitor.honorLabels }}
6472
honorTimestamps: {{ .Values.kubelet.serviceMonitor.honorTimestamps }}
6573
trackTimestampsStaleness: {{ .Values.kubelet.serviceMonitor.trackTimestampsStaleness }}
66-
tlsConfig:
67-
caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
68-
insecureSkipVerify: true
69-
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
74+
{{- include "kube-prometheus-stack.kubelet.authConfig" . | indent 4 }}
7075
{{- if .Values.kubelet.serviceMonitor.cAdvisorMetricRelabelings }}
7176
metricRelabelings:
7277
{{ tpl (toYaml .Values.kubelet.serviceMonitor.cAdvisorMetricRelabelings | indent 4) . }}
@@ -77,8 +82,8 @@ spec:
7782
{{- end }}
7883
{{- end }}
7984
{{- if .Values.kubelet.serviceMonitor.probes }}
80-
- port: https-metrics
81-
scheme: https
85+
- port: {{ template "kube-prometheus-stack.kubelet.scheme" . }}-metrics
86+
scheme: {{ template "kube-prometheus-stack.kubelet.scheme" . }}
8287
path: /metrics/probes
8388
{{- if .Values.kubelet.serviceMonitor.interval }}
8489
interval: {{ .Values.kubelet.serviceMonitor.interval }}
@@ -91,10 +96,7 @@ spec:
9196
{{- end }}
9297
honorLabels: {{ .Values.kubelet.serviceMonitor.honorLabels }}
9398
honorTimestamps: {{ .Values.kubelet.serviceMonitor.honorTimestamps }}
94-
tlsConfig:
95-
caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
96-
insecureSkipVerify: true
97-
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
99+
{{- include "kube-prometheus-stack.kubelet.authConfig" . | indent 4 }}
98100
{{- if .Values.kubelet.serviceMonitor.probesMetricRelabelings }}
99101
metricRelabelings:
100102
{{ tpl (toYaml .Values.kubelet.serviceMonitor.probesMetricRelabelings | indent 4) . }}
@@ -105,8 +107,8 @@ spec:
105107
{{- end }}
106108
{{- end }}
107109
{{- if .Values.kubelet.serviceMonitor.resource }}
108-
- port: https-metrics
109-
scheme: https
110+
- port: {{ template "kube-prometheus-stack.kubelet.scheme" . }}-metrics
111+
scheme: {{ template "kube-prometheus-stack.kubelet.scheme" . }}
110112
path: {{ .Values.kubelet.serviceMonitor.resourcePath }}
111113
{{- if .Values.kubelet.serviceMonitor.interval }}
112114
interval: {{ .Values.kubelet.serviceMonitor.interval }}
@@ -120,10 +122,7 @@ spec:
120122
honorLabels: {{ .Values.kubelet.serviceMonitor.honorLabels }}
121123
honorTimestamps: {{ .Values.kubelet.serviceMonitor.honorTimestamps }}
122124
trackTimestampsStaleness: {{ .Values.kubelet.serviceMonitor.trackTimestampsStaleness }}
123-
tlsConfig:
124-
caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
125-
insecureSkipVerify: true
126-
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
125+
{{- include "kube-prometheus-stack.kubelet.authConfig" . | indent 4 }}
127126
{{- if .Values.kubelet.serviceMonitor.resourceMetricRelabelings }}
128127
metricRelabelings:
129128
{{ tpl (toYaml .Values.kubelet.serviceMonitor.resourceMetricRelabelings | indent 4) . }}
@@ -133,110 +132,4 @@ spec:
133132
{{ tpl (toYaml .Values.kubelet.serviceMonitor.resourceRelabelings | indent 4) . }}
134133
{{- end }}
135134
{{- end }}
136-
{{- else }}
137-
- port: http-metrics
138-
{{- if .Values.kubelet.serviceMonitor.interval }}
139-
interval: {{ .Values.kubelet.serviceMonitor.interval }}
140-
{{- end }}
141-
{{- if .Values.kubelet.serviceMonitor.proxyUrl }}
142-
proxyUrl: {{ .Values.kubelet.serviceMonitor.proxyUrl }}
143-
{{- end }}
144-
{{- if .Values.kubelet.serviceMonitor.scrapeTimeout }}
145-
scrapeTimeout: {{ .Values.kubelet.serviceMonitor.scrapeTimeout }}
146-
{{- end }}
147-
honorLabels: {{ .Values.kubelet.serviceMonitor.honorLabels }}
148-
honorTimestamps: {{ .Values.kubelet.serviceMonitor.honorTimestamps }}
149-
trackTimestampsStaleness: {{ .Values.kubelet.serviceMonitor.trackTimestampsStaleness }}
150-
{{- if .Values.kubelet.serviceMonitor.metricRelabelings }}
151-
metricRelabelings:
152-
{{ tpl (toYaml .Values.kubelet.serviceMonitor.metricRelabelings | indent 4) . }}
153135
{{- end }}
154-
{{- if .Values.kubelet.serviceMonitor.relabelings }}
155-
relabelings:
156-
{{ tpl (toYaml .Values.kubelet.serviceMonitor.relabelings | indent 4) . }}
157-
{{- end }}
158-
{{- if .Values.kubelet.serviceMonitor.cAdvisor }}
159-
- port: http-metrics
160-
path: /metrics/cadvisor
161-
{{- if .Values.kubelet.serviceMonitor.interval }}
162-
interval: {{ .Values.kubelet.serviceMonitor.interval }}
163-
{{- end }}
164-
{{- if .Values.kubelet.serviceMonitor.proxyUrl }}
165-
proxyUrl: {{ .Values.kubelet.serviceMonitor.proxyUrl }}
166-
{{- end }}
167-
{{- if .Values.kubelet.serviceMonitor.scrapeTimeout }}
168-
scrapeTimeout: {{ .Values.kubelet.serviceMonitor.scrapeTimeout }}
169-
{{- end }}
170-
honorLabels: {{ .Values.kubelet.serviceMonitor.honorLabels }}
171-
honorTimestamps: {{ .Values.kubelet.serviceMonitor.honorTimestamps }}
172-
trackTimestampsStaleness: {{ .Values.kubelet.serviceMonitor.trackTimestampsStaleness }}
173-
{{- if .Values.kubelet.serviceMonitor.cAdvisorMetricRelabelings }}
174-
metricRelabelings:
175-
{{ tpl (toYaml .Values.kubelet.serviceMonitor.cAdvisorMetricRelabelings | indent 4) . }}
176-
{{- end }}
177-
{{- if .Values.kubelet.serviceMonitor.cAdvisorRelabelings }}
178-
relabelings:
179-
{{ tpl (toYaml .Values.kubelet.serviceMonitor.cAdvisorRelabelings | indent 4) . }}
180-
{{- end }}
181-
{{- if .Values.kubelet.serviceMonitor.probes }}
182-
- port: http-metrics
183-
path: /metrics/probes
184-
{{- if .Values.kubelet.serviceMonitor.interval }}
185-
interval: {{ .Values.kubelet.serviceMonitor.interval }}
186-
{{- end }}
187-
{{- if .Values.kubelet.serviceMonitor.proxyUrl }}
188-
proxyUrl: {{ .Values.kubelet.serviceMonitor.proxyUrl }}
189-
{{- end }}
190-
{{- if .Values.kubelet.serviceMonitor.scrapeTimeout }}
191-
scrapeTimeout: {{ .Values.kubelet.serviceMonitor.scrapeTimeout }}
192-
{{- end }}
193-
honorLabels: {{ .Values.kubelet.serviceMonitor.honorLabels }}
194-
honorTimestamps: {{ .Values.kubelet.serviceMonitor.honorTimestamps }}
195-
{{- if .Values.kubelet.serviceMonitor.probesMetricRelabelings }}
196-
metricRelabelings:
197-
{{ tpl (toYaml .Values.kubelet.serviceMonitor.probesMetricRelabelings | indent 4) . }}
198-
{{- end }}
199-
{{- if .Values.kubelet.serviceMonitor.probesRelabelings }}
200-
relabelings:
201-
{{ tpl (toYaml .Values.kubelet.serviceMonitor.probesRelabelings | indent 4) . }}
202-
{{- end }}
203-
{{- end }}
204-
{{- if .Values.kubelet.serviceMonitor.resource }}
205-
- port: http-metrics
206-
path: {{ .Values.kubelet.serviceMonitor.resourcePath }}
207-
{{- if .Values.kubelet.serviceMonitor.interval }}
208-
interval: {{ .Values.kubelet.serviceMonitor.interval }}
209-
{{- end }}
210-
{{- if .Values.kubelet.serviceMonitor.proxyUrl }}
211-
proxyUrl: {{ .Values.kubelet.serviceMonitor.proxyUrl }}
212-
{{- end }}
213-
{{- if .Values.kubelet.serviceMonitor.scrapeTimeout }}
214-
scrapeTimeout: {{ .Values.kubelet.serviceMonitor.scrapeTimeout }}
215-
{{- end }}
216-
honorLabels: {{ .Values.kubelet.serviceMonitor.honorLabels }}
217-
honorTimestamps: {{ .Values.kubelet.serviceMonitor.honorTimestamps }}
218-
trackTimestampsStaleness: {{ .Values.kubelet.serviceMonitor.trackTimestampsStaleness }}
219-
{{- if .Values.kubelet.serviceMonitor.resourceMetricRelabelings }}
220-
metricRelabelings:
221-
{{ tpl (toYaml .Values.kubelet.serviceMonitor.resourceMetricRelabelings | indent 4) . }}
222-
{{- end }}
223-
{{- if .Values.kubelet.serviceMonitor.resourceRelabelings }}
224-
relabelings:
225-
{{ tpl (toYaml .Values.kubelet.serviceMonitor.resourceRelabelings | indent 4) . }}
226-
{{- end }}
227-
{{- end }}
228-
{{- end }}
229-
{{- end }}
230-
jobLabel: k8s-app
231-
{{- with .Values.kubelet.serviceMonitor.targetLabels }}
232-
targetLabels:
233-
{{- toYaml . | nindent 4 }}
234-
{{- end }}
235-
namespaceSelector:
236-
matchNames:
237-
- {{ .Values.kubelet.namespace }}
238-
selector:
239-
matchLabels:
240-
app.kubernetes.io/name: kubelet
241-
k8s-app: kubelet
242-
{{- end}}

0 commit comments

Comments
 (0)