@@ -40,6 +40,53 @@ objects:
40
40
serviceaccounts.openshift.io/oauth-redirectreference.prom : ' {"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"prometheus"}}'
41
41
serviceaccounts.openshift.io/oauth-redirectreference.alerts : ' {"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"alerts"}}'
42
42
serviceaccounts.openshift.io/oauth-redirectreference.alertmanager : ' {"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"alertmanager"}}'
43
+
44
+ # Create a service account for accessing prometheus data
45
+ - apiVersion : v1
46
+ kind : ServiceAccount
47
+ metadata :
48
+ name : prometheus-reader
49
+ namespace : " ${NAMESPACE}"
50
+
51
+ # Create a service account for prometheus to use to scrape other infrastructure components
52
+ - apiVersion : v1
53
+ kind : ServiceAccount
54
+ metadata :
55
+ name : prometheus-scraper
56
+ namespace : " ${NAMESPACE}"
57
+
58
+ - apiVersion : v1
59
+ kind : Secret
60
+ metadata :
61
+ name : prometheus-scraper
62
+ namespace : " ${NAMESPACE}"
63
+ annotations :
64
+ kubernetes.io/service-account.name : prometheus-scraper
65
+ type : kubernetes.io/service-account-token
66
+
67
+ - apiVersion : rbac.authorization.k8s.io/v1
68
+ kind : ClusterRole
69
+ metadata :
70
+ name : prometheus-scraper
71
+ rules :
72
+ - apiGroups :
73
+ - route.openshift.io
74
+ resources :
75
+ - routers/metrics
76
+ verbs :
77
+ - get
78
+
79
+ - apiVersion : authorization.openshift.io/v1
80
+ kind : ClusterRoleBinding
81
+ metadata :
82
+ name : prometheus-scraper
83
+ roleRef :
84
+ name : prometheus-scraper
85
+ subjects :
86
+ - kind : ServiceAccount
87
+ name : prometheus-scraper
88
+ namespace : " ${NAMESPACE}"
89
+
43
90
- apiVersion : authorization.openshift.io/v1
44
91
kind : ClusterRoleBinding
45
92
metadata :
@@ -51,6 +98,17 @@ objects:
51
98
name : prometheus
52
99
namespace : " ${NAMESPACE}"
53
100
101
+ - apiVersion : authorization.openshift.io/v1
102
+ kind : ClusterRoleBinding
103
+ metadata :
104
+ name : prometheus-reader
105
+ roleRef :
106
+ name : prometheus-reader
107
+ subjects :
108
+ - kind : ServiceAccount
109
+ name : prometheus-reader
110
+ namespace : " ${NAMESPACE}"
111
+
54
112
# Create a fully end-to-end TLS connection to the prometheus proxy
55
113
- apiVersion : route.openshift.io/v1
56
114
kind : Route
@@ -229,6 +287,8 @@ objects:
229
287
name : prometheus-config
230
288
- mountPath : /prometheus
231
289
name : prometheus-data
290
+ - mountPath : /var/run/secrets/kubernetes.io/scraper
291
+ name : prometheus-scraper-secret
232
292
233
293
# Deploy alertmanager behind prometheus-alert-buffer behind an oauth proxy
234
294
# use http port=4190 and https port=9943 to differ from prom-proxy
@@ -320,6 +380,9 @@ objects:
320
380
configMap :
321
381
defaultMode : 420
322
382
name : prometheus
383
+ - name : prometheus-scraper-secret
384
+ secret :
385
+ secretName : prometheus-scraper
323
386
- name : prometheus-proxy-secret
324
387
secret :
325
388
secretName : prometheus-proxy
@@ -603,21 +666,39 @@ objects:
603
666
- action: labelmap
604
667
regex: __meta_kubernetes_node_label_(.+)
605
668
669
+ # TODO: auto-generate these sections, or add a dynamic infrastructure scraper
606
670
# Scrape config for the template service broker
607
671
- job_name: 'openshift-template-service-broker'
608
672
scheme: https
609
673
tls_config:
610
674
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
611
675
server_name: apiserver.openshift-template-service-broker.svc
612
- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
613
-
676
+ bearer_token_file: /var/run/secrets/kubernetes.io/scraper/token
614
677
kubernetes_sd_configs:
615
678
- role: endpoints
616
-
679
+ namespaces:
680
+ names:
681
+ - openshift-template-service-broker
617
682
relabel_configs:
618
683
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
619
684
action: keep
620
685
regex: openshift-template-service-broker;apiserver;https
686
+ # Scrape config for the router
687
+ - job_name: 'openshift-router'
688
+ scheme: https
689
+ tls_config:
690
+ ca_file: /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
691
+ server_name: router.default.svc
692
+ bearer_token_file: /var/run/secrets/kubernetes.io/scraper/token
693
+ kubernetes_sd_configs:
694
+ - role: endpoints
695
+ namespaces:
696
+ names:
697
+ - default
698
+ relabel_configs:
699
+ - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
700
+ action: keep
701
+ regex: default;router;1936-tcp
621
702
622
703
alerting:
623
704
alertmanagers:
0 commit comments