blob: 1cfc0c43bed9850e725eedb1c92eb93f17363eb6 [file] [log] [blame]
Giorgi Lekveishvili285ab622023-11-22 13:50:45 +04001{{- if .Values.prometheus.serviceMonitor.enabled }}
2apiVersion: monitoring.coreos.com/v1
3kind: ServiceMonitor
4metadata:
5 name: {{ template "metallb.fullname" . }}-speaker-monitor
6 namespace: {{ .Release.Namespace | quote }}
7 labels:
8 {{- include "metallb.labels" . | nindent 4 }}
9 app.kubernetes.io/component: speaker
10 {{- if .Values.prometheus.serviceMonitor.speaker.additionalLabels }}
11{{ toYaml .Values.prometheus.serviceMonitor.speaker.additionalLabels | indent 4 }}
12 {{- end }}
13 {{- if .Values.prometheus.serviceMonitor.speaker.annotations }}
14 annotations:
15{{ toYaml .Values.prometheus.serviceMonitor.speaker.annotations | indent 4 }}
16 {{- end }}
17spec:
18 endpoints:
19 - port: {{ template "metrics.exposedportname" . }}
20 honorLabels: true
21 {{- if .Values.prometheus.serviceMonitor.metricRelabelings }}
22 metricRelabelings:
23 {{- toYaml .Values.prometheus.serviceMonitor.metricRelabelings | nindent 8 }}
24 {{- end -}}
25 {{- if .Values.prometheus.serviceMonitor.relabelings }}
26 relabelings:
27 {{- toYaml .Values.prometheus.serviceMonitor.relabelings | nindent 8 }}
28 {{- end }}
29 {{- if .Values.prometheus.serviceMonitor.interval }}
30 interval: {{ .Values.prometheus.serviceMonitor.interval }}
31 {{- end -}}
32{{ if .Values.prometheus.secureMetricsPort }}
33 bearerTokenFile: "/var/run/secrets/kubernetes.io/serviceaccount/token"
34 scheme: "https"
35{{- if .Values.prometheus.serviceMonitor.speaker.tlsConfig }}
36 tlsConfig:
37{{ toYaml .Values.prometheus.serviceMonitor.speaker.tlsConfig | indent 8 }}
38{{- end }}
39{{ end }}
40{{- if .Values.speaker.frr.enabled }}
41 - port: {{ template "metrics.exposedfrrportname" . }}
42 honorLabels: true
43{{ if .Values.speaker.frr.secureMetricsPort }}
44 {{- if .Values.prometheus.serviceMonitor.interval }}
45 interval: {{ .Values.prometheus.serviceMonitor.interval }}
46 {{- end }}
47 bearerTokenFile: "/var/run/secrets/kubernetes.io/serviceaccount/token"
48 scheme: "https"
49{{- if .Values.prometheus.serviceMonitor.speaker.tlsConfig }}
50 tlsConfig:
51{{ toYaml .Values.prometheus.serviceMonitor.speaker.tlsConfig | indent 8 }}
52{{- end }}
53{{- end }}
54{{- end }}
55 jobLabel: {{ .Values.prometheus.serviceMonitor.jobLabel | quote }}
56 namespaceSelector:
57 matchNames:
58 - {{ .Release.Namespace }}
59 selector:
60 matchLabels:
61 name: {{ template "metallb.fullname" . }}-speaker-monitor-service
62---
63apiVersion: v1
64kind: Service
65metadata:
66 annotations:
67 prometheus.io/scrape: "true"
68 {{- if .Values.prometheus.serviceMonitor.speaker.annotations }}
69{{ toYaml .Values.prometheus.serviceMonitor.speaker.annotations | indent 4 }}
70 {{- end }}
71 labels:
72 name: {{ template "metallb.fullname" . }}-speaker-monitor-service
73 name: {{ template "metallb.fullname" . }}-speaker-monitor-service
74 namespace: {{ .Release.Namespace | quote }}
75spec:
76 selector:
77 {{- include "metallb.selectorLabels" . | nindent 4 }}
78 app.kubernetes.io/component: speaker
79 clusterIP: None
80 ports:
81 - name: {{ template "metrics.exposedportname" . }}
82 port: {{ template "metrics.exposedport" . }}
83 targetPort: {{ template "metrics.exposedport" . }}
84{{- if .Values.speaker.frr.enabled }}
85 - name: {{ template "metrics.exposedfrrportname" . }}
86 port: {{ template "metrics.exposedfrrport" . }}
87 targetPort: {{ template "metrics.exposedfrrport" . }}
88{{- end }}
89 sessionAffinity: None
90 type: ClusterIP
91---
92apiVersion: monitoring.coreos.com/v1
93kind: ServiceMonitor
94metadata:
95 name: {{ template "metallb.fullname" . }}-controller-monitor
96 namespace: {{ .Release.Namespace | quote }}
97 labels:
98 {{- include "metallb.labels" . | nindent 4 }}
99 app.kubernetes.io/component: speaker
100 {{- if .Values.prometheus.serviceMonitor.controller.additionalLabels }}
101{{ toYaml .Values.prometheus.serviceMonitor.controller.additionalLabels | indent 4 }}
102 {{- end }}
103 {{- if .Values.prometheus.serviceMonitor.controller.annotations }}
104 annotations:
105{{ toYaml .Values.prometheus.serviceMonitor.controller.annotations | indent 4 }}
106 {{- end }}
107spec:
108 endpoints:
109 - port: {{ template "metrics.exposedportname" . }}
110 {{- if .Values.prometheus.serviceMonitor.metricRelabelings }}
111 metricRelabelings:
112 {{- toYaml .Values.prometheus.serviceMonitor.metricRelabelings | nindent 8 }}
113 {{- end -}}
114 {{- if .Values.prometheus.serviceMonitor.relabelings }}
115 relabelings:
116 {{- toYaml .Values.prometheus.serviceMonitor.relabelings | nindent 8 }}
117 {{- end }}
118 {{- if .Values.prometheus.serviceMonitor.interval }}
119 interval: {{ .Values.prometheus.serviceMonitor.interval }}
120 {{- end }}
121 honorLabels: true
122{{- if .Values.prometheus.secureMetricsPort }}
123 bearerTokenFile: "/var/run/secrets/kubernetes.io/serviceaccount/token"
124 scheme: "https"
125{{- if .Values.prometheus.serviceMonitor.controller.tlsConfig }}
126 tlsConfig:
127{{ toYaml .Values.prometheus.serviceMonitor.controller.tlsConfig | indent 8 }}
128{{- end }}
129{{- end }}
130 jobLabel: {{ .Values.prometheus.serviceMonitor.jobLabel | quote }}
131 namespaceSelector:
132 matchNames:
133 - {{ .Release.Namespace }}
134 selector:
135 matchLabels:
136 name: {{ template "metallb.fullname" . }}-controller-monitor-service
137---
138apiVersion: v1
139kind: Service
140metadata:
141 annotations:
142 prometheus.io/scrape: "true"
143 {{- if .Values.prometheus.serviceMonitor.controller.annotations }}
144{{ toYaml .Values.prometheus.serviceMonitor.controller.annotations | indent 4 }}
145 {{- end }}
146 labels:
147 name: {{ template "metallb.fullname" . }}-controller-monitor-service
148 name: {{ template "metallb.fullname" . }}-controller-monitor-service
149spec:
150 selector:
151 {{- include "metallb.selectorLabels" . | nindent 4 }}
152 app.kubernetes.io/component: controller
153 clusterIP: None
154 ports:
155 - name: {{ template "metrics.exposedportname" . }}
156 port: {{ template "metrics.exposedport" . }}
157 targetPort: {{ template "metrics.exposedport" . }}
158 sessionAffinity: None
159 type: ClusterIP
160---
161{{- if .Values.prometheus.rbacPrometheus }}
162apiVersion: rbac.authorization.k8s.io/v1
163kind: Role
164metadata:
165 name: {{ template "metallb.fullname" . }}-prometheus
166 namespace: {{ .Release.Namespace | quote }}
167rules:
168 - apiGroups:
169 - ""
170 resources:
171 - pods
172 - services
173 - endpoints
174 verbs:
175 - get
176 - list
177 - watch
178---
179apiVersion: rbac.authorization.k8s.io/v1
180kind: RoleBinding
181metadata:
182 name: {{ template "metallb.fullname" . }}-prometheus
183 namespace: {{ .Release.Namespace | quote }}
184roleRef:
185 apiGroup: rbac.authorization.k8s.io
186 kind: Role
187 name: {{ template "metallb.fullname" . }}-prometheus
188subjects:
189 - kind: ServiceAccount
190 name: {{ required ".Values.prometheus.serviceAccount must be defined when .Values.prometheus.serviceMonitor.enabled == true" .Values.prometheus.serviceAccount }}
191 namespace: {{ required ".Values.prometheus.namespace must be defined when .Values.prometheus.serviceMonitor.enabled == true" .Values.prometheus.namespace }}
192{{- end }}
193{{- end }}