@@ -38,6 +38,7 @@ objects:
38
38
annotations :
39
39
serviceaccounts.openshift.io/oauth-redirectreference.prom : ' {"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"prometheus"}}'
40
40
serviceaccounts.openshift.io/oauth-redirectreference.alerts : ' {"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"alerts"}}'
41
+ serviceaccounts.openshift.io/oauth-redirectreference.alertmanager : ' {"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"alertmanager"}}'
41
42
- apiVersion : authorization.openshift.io/v1
42
43
kind : ClusterRoleBinding
43
44
metadata :
@@ -87,6 +88,81 @@ objects:
87
88
namespace : " ${NAMESPACE}"
88
89
stringData :
89
90
session_secret : " ${SESSION_SECRET}="
91
+
92
+ # Create a fully end-to-end TLS connection to the alert proxy
93
+ - apiVersion : route.openshift.io/v1
94
+ kind : Route
95
+ metadata :
96
+ name : alerts
97
+ namespace : " ${NAMESPACE}"
98
+ spec :
99
+ to :
100
+ name : alerts
101
+ tls :
102
+ termination : Reencrypt
103
+ insecureEdgeTerminationPolicy : Redirect
104
+ - apiVersion : v1
105
+ kind : Service
106
+ metadata :
107
+ annotations :
108
+ service.alpha.openshift.io/serving-cert-secret-name : alerts-tls
109
+ labels :
110
+ name : alerts
111
+ name : alerts
112
+ namespace : " ${NAMESPACE}"
113
+ spec :
114
+ ports :
115
+ - name : alerts
116
+ port : 443
117
+ protocol : TCP
118
+ targetPort : 9443
119
+ selector :
120
+ app : prometheus
121
+ - apiVersion : v1
122
+ kind : Secret
123
+ metadata :
124
+ name : alerts-proxy
125
+ namespace : " ${NAMESPACE}"
126
+ stringData :
127
+ session_secret : " ${SESSION_SECRET}="
128
+
129
+ # Create a fully end-to-end TLS connection to the alertmanager proxy
130
+ - apiVersion : route.openshift.io/v1
131
+ kind : Route
132
+ metadata :
133
+ name : alertmanager
134
+ namespace : " ${NAMESPACE}"
135
+ spec :
136
+ to :
137
+ name : alertmanager
138
+ tls :
139
+ termination : Reencrypt
140
+ insecureEdgeTerminationPolicy : Redirect
141
+ - apiVersion : v1
142
+ kind : Service
143
+ metadata :
144
+ annotations :
145
+ service.alpha.openshift.io/serving-cert-secret-name : alertmanager-tls
146
+ labels :
147
+ name : alertmanager
148
+ name : alertmanager
149
+ namespace : " ${NAMESPACE}"
150
+ spec :
151
+ ports :
152
+ - name : alertmanager
153
+ port : 443
154
+ protocol : TCP
155
+ targetPort : 10443
156
+ selector :
157
+ app : prometheus
158
+ - apiVersion : v1
159
+ kind : Secret
160
+ metadata :
161
+ name : alertmanager-proxy
162
+ namespace : " ${NAMESPACE}"
163
+ stringData :
164
+ session_secret : " ${SESSION_SECRET}="
165
+
90
166
- apiVersion : apps/v1beta1
91
167
kind : StatefulSet
92
168
metadata :
@@ -134,9 +210,9 @@ objects:
134
210
- -skip-auth-regex=^/metrics
135
211
volumeMounts :
136
212
- mountPath : /etc/tls/private
137
- name : prometheus-tls
213
+ name : prometheus-tls-secret
138
214
- mountPath : /etc/proxy/secrets
139
- name : prometheus-secrets
215
+ name : prometheus-proxy-secret
140
216
- mountPath : /prometheus
141
217
name : prometheus-data
142
218
@@ -179,9 +255,9 @@ objects:
179
255
- -cookie-secret-file=/etc/proxy/secrets/session_secret
180
256
volumeMounts :
181
257
- mountPath : /etc/tls/private
182
- name : alerts-tls
258
+ name : alerts-tls-secret
183
259
- mountPath : /etc/proxy/secrets
184
- name : alerts-secrets
260
+ name : alerts-proxy- secrets
185
261
186
262
- name : alert-buffer
187
263
args :
@@ -190,11 +266,39 @@ objects:
190
266
imagePullPolicy : IfNotPresent
191
267
volumeMounts :
192
268
- mountPath : /alert-buffer
193
- name : alert-buffer -data
269
+ name : alerts -data
194
270
ports :
195
271
- containerPort : 9099
196
272
name : alert-buf
197
273
274
+ - name : alertmanager-proxy
275
+ image : ${IMAGE_PROXY}
276
+ imagePullPolicy : IfNotPresent
277
+ ports :
278
+ - containerPort : 10443
279
+ name : web
280
+ args :
281
+ - -provider=openshift
282
+ - -https-address=:10443
283
+ - -http-address=
284
+ - -email-domain=*
285
+ - -upstream=http://localhost:9093
286
+ - -client-id=system:serviceaccount:${NAMESPACE}:prometheus
287
+ - -openshift-ca=/etc/pki/tls/cert.pem
288
+ - -openshift-ca=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
289
+ - ' -openshift-sar={"resource": "namespaces", "verb": "get", "resourceName": "${NAMESPACE}", "namespace": "${NAMESPACE}"}'
290
+ - ' -openshift-delegate-urls={"/": {"resource": "namespaces", "verb": "get", "resourceName": "${NAMESPACE}", "namespace": "${NAMESPACE}"}}'
291
+ - -tls-cert=/etc/tls/private/tls.crt
292
+ - -tls-key=/etc/tls/private/tls.key
293
+ - -client-secret-file=/var/run/secrets/kubernetes.io/serviceaccount/token
294
+ - -cookie-secret-file=/etc/proxy/secrets/session_secret
295
+ - -skip-auth-regex=^/metrics
296
+ volumeMounts :
297
+ - mountPath : /etc/tls/private
298
+ name : alertmanager-tls-secret
299
+ - mountPath : /etc/proxy/secrets
300
+ name : alertmanager-proxy-secret
301
+
198
302
- name : alertmanager
199
303
args :
200
304
- -config.file=/etc/alertmanager/alertmanager.yml
@@ -211,31 +315,40 @@ objects:
211
315
212
316
restartPolicy : Always
213
317
volumes :
318
+
214
319
- name : prometheus-config
215
320
configMap :
216
321
defaultMode : 420
217
322
name : prometheus
218
- - name : prometheus-secrets
323
+ - name : prometheus-proxy-secret
219
324
secret :
220
325
secretName : prometheus-proxy
221
- - name : prometheus-tls
326
+ - name : prometheus-tls-secret
222
327
secret :
223
328
secretName : prometheus-tls
224
329
- name : prometheus-data
225
330
emptyDir : {}
331
+
226
332
- name : alertmanager-config
227
333
configMap :
228
334
defaultMode : 420
229
- name : prometheus-alerts
230
- - name : alerts-secrets
335
+ name : alertmanager
336
+ - name : alertmanager-tls-secret
337
+ secret :
338
+ secretName : alertmanager-tls
339
+ - name : alertmanager-proxy-secret
340
+ secret :
341
+ secretName : alertmanager-proxy
342
+
343
+ - name : alerts-proxy-secrets
231
344
secret :
232
345
secretName : alerts-proxy
233
- - name : alerts-tls
346
+ - name : alerts-tls-secret
234
347
secret :
235
- secretName : prometheus- alerts-tls
348
+ secretName : alerts-tls
236
349
- name : alertmanager-data
237
350
emptyDir : {}
238
- - name : alert-buffer- data # TODO: make persistent
351
+ - name : alerts- data
239
352
emptyDir : {}
240
353
241
354
- apiVersion : v1
@@ -438,47 +551,10 @@ objects:
438
551
- targets:
439
552
- "localhost:9093"
440
553
441
- # Create a fully end-to-end TLS connection to the alert proxy
442
- - apiVersion : route.openshift.io/v1
443
- kind : Route
444
- metadata :
445
- name : alerts
446
- namespace : " ${NAMESPACE}"
447
- spec :
448
- to :
449
- name : alerts
450
- tls :
451
- termination : Reencrypt
452
- insecureEdgeTerminationPolicy : Redirect
453
- - apiVersion : v1
454
- kind : Service
455
- metadata :
456
- annotations :
457
- service.alpha.openshift.io/serving-cert-secret-name : prometheus-alerts-tls
458
- labels :
459
- name : alerts
460
- name : alerts
461
- namespace : " ${NAMESPACE}"
462
- spec :
463
- ports :
464
- - name : alerts
465
- port : 443
466
- protocol : TCP
467
- targetPort : 9443
468
- selector :
469
- app : prometheus
470
- - apiVersion : v1
471
- kind : Secret
472
- metadata :
473
- name : alerts-proxy
474
- namespace : " ${NAMESPACE}"
475
- stringData :
476
- session_secret : " ${SESSION_SECRET}="
477
-
478
554
- apiVersion : v1
479
555
kind : ConfigMap
480
556
metadata :
481
- name : prometheus-alerts
557
+ name : alertmanager
482
558
namespace : " ${NAMESPACE}"
483
559
data :
484
560
alertmanager.yml : |
0 commit comments