@@ -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,18 @@ objects:
51
98
name : prometheus
52
99
namespace : " ${NAMESPACE}"
53
100
101
+ - apiVersion : authorization.openshift.io/v1
102
+ kind : RoleBinding
103
+ metadata :
104
+ name : prometheus-reader
105
+ namespace : " ${NAMESPACE}"
106
+ roleRef :
107
+ name : view
108
+ subjects :
109
+ - kind : ServiceAccount
110
+ name : prometheus-reader
111
+ namespace : " ${NAMESPACE}"
112
+
54
113
# Create a fully end-to-end TLS connection to the prometheus proxy
55
114
- apiVersion : route.openshift.io/v1
56
115
kind : Route
@@ -229,6 +288,8 @@ objects:
229
288
name : prometheus-config
230
289
- mountPath : /prometheus
231
290
name : prometheus-data
291
+ - mountPath : /var/run/secrets/kubernetes.io/scraper
292
+ name : prometheus-scraper-secret
232
293
233
294
# Deploy alertmanager behind prometheus-alert-buffer behind an oauth proxy
234
295
# use http port=4190 and https port=9943 to differ from prom-proxy
@@ -320,6 +381,9 @@ objects:
320
381
configMap :
321
382
defaultMode : 420
322
383
name : prometheus
384
+ - name : prometheus-scraper-secret
385
+ secret :
386
+ secretName : prometheus-scraper
323
387
- name : prometheus-proxy-secret
324
388
secret :
325
389
secretName : prometheus-proxy
@@ -603,21 +667,39 @@ objects:
603
667
- action: labelmap
604
668
regex: __meta_kubernetes_node_label_(.+)
605
669
670
+ # TODO: auto-generate these sections, or add a dynamic infrastructure scraper
606
671
# Scrape config for the template service broker
607
672
- job_name: 'openshift-template-service-broker'
608
673
scheme: https
609
674
tls_config:
610
675
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
611
676
server_name: apiserver.openshift-template-service-broker.svc
612
- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
613
-
677
+ bearer_token_file: /var/run/secrets/kubernetes.io/scraper/token
614
678
kubernetes_sd_configs:
615
679
- role: endpoints
616
-
680
+ namespaces:
681
+ names:
682
+ - openshift-template-service-broker
617
683
relabel_configs:
618
684
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
619
685
action: keep
620
686
regex: openshift-template-service-broker;apiserver;https
687
+ # Scrape config for the router
688
+ - job_name: 'openshift-router'
689
+ scheme: https
690
+ tls_config:
691
+ ca_file: /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
692
+ server_name: router.default.svc
693
+ bearer_token_file: /var/run/secrets/kubernetes.io/scraper/token
694
+ kubernetes_sd_configs:
695
+ - role: endpoints
696
+ namespaces:
697
+ names:
698
+ - default
699
+ relabel_configs:
700
+ - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
701
+ action: keep
702
+ regex: default;router;1936-tcp
621
703
622
704
alerting:
623
705
alertmanagers:
0 commit comments