Skip to content

Commit 4ffe92b

Browse files
committed
feat(helm): install optional PodMonitor and ServiceMonitor
1 parent 68a0660 commit 4ffe92b

File tree

6 files changed

+110
-0
lines changed

6 files changed

+110
-0
lines changed

helm/kube-image-keeper/templates/controller-deployment.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ spec:
4545
- containerPort: 9443
4646
name: webhook-server
4747
protocol: TCP
48+
- containerPort: 8080
49+
name: metrics
50+
protocol: TCP
4851
volumeMounts:
4952
- mountPath: /tmp/k8s-webhook-server/serving-certs
5053
name: cert
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{{- if .Values.metricsService.create }}
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
name: {{ include "kube-image-keeper.fullname" . }}-metrics
6+
labels:
7+
{{- include "kube-image-keeper.labels" . | nindent 4 }}
8+
{{- with .Values.metricsService.extraLabels }}
9+
{{- . | toYaml | trim | nindent 4 }}
10+
{{- end }}
11+
{{- with .Values.metricsService.annotations }}
12+
annotations:
13+
{{- . | toYaml | trim | nindent 4 }}
14+
{{- end }}
15+
spec:
16+
type: ClusterIP
17+
clusterIP: None
18+
ports:
19+
- name: metrics
20+
port: {{ .Values.metricsService.port }}
21+
targetPort: metrics
22+
selector:
23+
{{- include "kube-image-keeper.selectorLabels" . | nindent 4 }}
24+
{{- end }}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{{- if .Values.prometheusPodMonitor.create }}
2+
apiVersion: monitoring.coreos.com/v1
3+
kind: PodMonitor
4+
metadata:
5+
name: {{ include "kube-image-keeper.fullname" . }}
6+
labels:
7+
{{- include "kube-image-keeper.labels" . | nindent 4 }}
8+
{{- with .Values.prometheusPodMonitor.extraLabels }}
9+
{{- . | toYaml | trim | nindent 4 }}
10+
{{- end }}
11+
spec:
12+
selector:
13+
matchLabels:
14+
{{- include "kube-image-keeper.selectorLabels" . | nindent 6 }}
15+
podMetricsEndpoints:
16+
- port: metrics
17+
interval: {{ .Values.prometheusPodMonitor.scrapeInterval }}
18+
scrapeTimeout: {{ .Values.prometheusPodMonitor.scrapeTimeout }}
19+
{{- with .Values.prometheusPodMonitor.relabelings }}
20+
relabelings:
21+
{{- . | toYaml | nindent 4 }}
22+
{{- end }}
23+
{{- end }}

helm/kube-image-keeper/templates/proxy-daemonset.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ spec:
3636
hostIP: {{ .Values.proxy.hostIp }}
3737
hostPort: {{ .Values.proxy.hostPort }}
3838
protocol: TCP
39+
- containerPort: 8080
40+
name: metrics
41+
protocol: TCP
3942
command:
4043
- registry-proxy
4144
- -v={{ .Values.proxy.verbosity }}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{{- if .Values.prometheusServiceMonitor.create }}
2+
apiVersion: monitoring.coreos.com/v1
3+
kind: ServiceMonitor
4+
metadata:
5+
name: {{ include "kube-image-keeper.fullname" . }}
6+
labels:
7+
{{- include "kube-image-keeper.labels" . | nindent 4 }}
8+
{{- with .Values.prometheusServiceMonitor.extraLabels }}
9+
{{- . | toYaml | trim | nindent 4 }}
10+
{{- end }}
11+
spec:
12+
selector:
13+
matchLabels:
14+
{{- include "kube-image-keeper.selectorLabels" . | nindent 6 }}
15+
endpoints:
16+
- port: metrics
17+
interval: {{ .Values.prometheusServiceMonitor.scrapeInterval }}
18+
scrapeTimeout: {{ .Values.prometheusServiceMonitor.scrapeTimeout }}
19+
{{- with .Values.prometheusServiceMonitor.relabelings }}
20+
relabelings:
21+
{{- . | toYaml | nindent 4 }}
22+
{{- end }}
23+
{{- end }}

helm/kube-image-keeper/values.yaml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,3 +247,37 @@ serviceAccount:
247247
psp:
248248
# -- If True, create the PodSecurityPolicy
249249
create: false
250+
251+
metricsService:
252+
# -- Should a metrics Service be installed, targets all kube-image-keeper pods (required for ServiceMonitor)
253+
create: false
254+
# -- TCP port to expose the Service on
255+
port: 8080
256+
# -- Annotations to add to the Service
257+
annotations: {}
258+
# -- Additional labels to add to the Service
259+
extraLabels: {}
260+
261+
prometheusServiceMonitor:
262+
# -- Should a ServiceMonitor object be installed to scrape this exporter. For prometheus-operator (kube-prometheus) users.
263+
create: false
264+
# -- Target scrape interval set in the ServiceMonitor
265+
scrapeInterval: 60s
266+
# -- Target scrape timeout set in the ServiceMonitor
267+
scrapeTimeout: 30s
268+
# -- Additional labels to add to ServiceMonitor objects
269+
extraLabels: {}
270+
# -- Relabel config for the ServiceMonitor, see: https://coreos.com/operators/prometheus/docs/latest/api.html#relabelconfig
271+
relabelings: []
272+
273+
prometheusPodMonitor:
274+
# -- Should a PodMonitor object be installed to scrape this exporter. For prometheus-operator (kube-prometheus) users.
275+
create: false
276+
# -- Target scrape interval set in the PodMonitor
277+
scrapeInterval: 60s
278+
# -- Target scrape timeout set in the PodMonitor
279+
scrapeTimeout: 30s
280+
# -- Additional labels to add to PodMonitor objects
281+
extraLabels: {}
282+
# -- Relabel config for the PodMonitor, see: https://coreos.com/operators/prometheus/docs/latest/api.html#relabelconfig
283+
relabelings: []

0 commit comments

Comments
 (0)