blob: 93a7fd6998e4df772d1682c72d78d52193aeead3 [file] [log] [blame]
Giorgi Lekveishvili285ab622023-11-22 13:50:45 +04001{{- if .Values.prometheus.podMonitor.enabled }}
2apiVersion: monitoring.coreos.com/v1
3kind: PodMonitor
4metadata:
5 name: {{ template "metallb.fullname" . }}-controller
6 labels:
7 {{- include "metallb.labels" . | nindent 4 }}
8 app.kubernetes.io/component: controller
9 {{- if .Values.prometheus.podMonitor.additionalLabels }}
10{{ toYaml .Values.prometheus.podMonitor.additionalLabels | indent 4 }}
11 {{- end }}
12 {{- if .Values.prometheus.podMonitor.annotations }}
13 annotations:
14{{ toYaml .Values.prometheus.podMonitor.annotations | indent 4 }}
15 {{- end }}
16spec:
17 jobLabel: {{ .Values.prometheus.podMonitor.jobLabel | quote }}
18 selector:
19 matchLabels:
20 {{- include "metallb.selectorLabels" . | nindent 6 }}
21 app.kubernetes.io/component: controller
22 namespaceSelector:
23 matchNames:
24 - {{ .Release.Namespace }}
25 podMetricsEndpoints:
26 - port: monitoring
27 path: /metrics
28 {{- if .Values.prometheus.podMonitor.interval }}
29 interval: {{ .Values.prometheus.podMonitor.interval }}
30 {{- end }}
31{{- if .Values.prometheus.podMonitor.metricRelabelings }}
32 metricRelabelings:
33{{- toYaml .Values.prometheus.podMonitor.metricRelabelings | nindent 4 }}
34{{- end }}
35{{- if .Values.prometheus.podMonitor.relabelings }}
36 relabelings:
37{{- toYaml .Values.prometheus.podMonitor.relabelings | nindent 4 }}
38{{- end }}
39---
40apiVersion: monitoring.coreos.com/v1
41kind: PodMonitor
42metadata:
43 name: {{ template "metallb.fullname" . }}-speaker
44 labels:
45 {{- include "metallb.labels" . | nindent 4 }}
46 app.kubernetes.io/component: speaker
47 {{- if .Values.prometheus.podMonitor.additionalLabels }}
48{{ toYaml .Values.prometheus.podMonitor.additionalLabels | indent 4 }}
49 {{- end }}
50 {{- if .Values.prometheus.podMonitor.annotations }}
51 annotations:
52{{ toYaml .Values.prometheus.podMonitor.annotations | indent 4 }}
53 {{- end }}
54spec:
55 jobLabel: {{ .Values.prometheus.podMonitor.jobLabel | quote }}
56 selector:
57 matchLabels:
58 {{- include "metallb.selectorLabels" . | nindent 6 }}
59 app.kubernetes.io/component: speaker
60 namespaceSelector:
61 matchNames:
62 - {{ .Release.Namespace }}
63 podMetricsEndpoints:
64 - port: monitoring
65 path: /metrics
66 {{- if .Values.prometheus.podMonitor.interval }}
67 interval: {{ .Values.prometheus.podMonitor.interval }}
68 {{- end }}
69{{- if .Values.prometheus.podMonitor.metricRelabelings }}
70 metricRelabelings:
71{{- toYaml .Values.prometheus.podMonitor.metricRelabelings | nindent 4 }}
72{{- end }}
73{{- if .Values.prometheus.podMonitor.relabelings }}
74 relabelings:
75{{- toYaml .Values.prometheus.podMonitor.relabelings | nindent 4 }}
76{{- end }}
77---
78{{- if .Values.prometheus.rbacPrometheus }}
79apiVersion: rbac.authorization.k8s.io/v1
80kind: Role
81metadata:
82 name: {{ template "metallb.fullname" . }}-prometheus
83rules:
84 - apiGroups:
85 - ""
86 resources:
87 - pods
88 verbs:
89 - get
90 - list
91 - watch
92---
93apiVersion: rbac.authorization.k8s.io/v1
94kind: RoleBinding
95metadata:
96 name: {{ template "metallb.fullname" . }}-prometheus
97roleRef:
98 apiGroup: rbac.authorization.k8s.io
99 kind: Role
100 name: {{ template "metallb.fullname" . }}-prometheus
101subjects:
102 - kind: ServiceAccount
103 name: {{ required ".Values.prometheus.serviceAccount must be defined when .Values.prometheus.podMonitor.enabled == true" .Values.prometheus.serviceAccount }}
104 namespace: {{ required ".Values.prometheus.namespace must be defined when .Values.prometheus.podMonitor.enabled == true" .Values.prometheus.namespace }}
105{{- end }}
106{{- end }}