Skip to content

Commit 06328d1

Browse files
Merge pull request #6754 from zalando-incubator/prometheus/oauth-grant
prometheus: enable OAuth Grant flow for configured users
2 parents 581ac9a + 71cd0dd commit 06328d1

File tree

2 files changed

+50
-9
lines changed

2 files changed

+50
-9
lines changed

cluster/config-defaults.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,9 @@ prometheus_remote_min_backoff: "3s"
404404
# Maximum retry delay.
405405
prometheus_remote_max_backoff: "10s"
406406

407+
# Comma-separated list of user ids allowed to access Prometheus UI
408+
prometheus_ui_users: ""
409+
407410
# dashboard metrics scraper resource limits
408411
dashboard_metrics_scraper_cpu_min: "50m"
409412
dashboard_metrics_scraper_mem_min: "200Mi"
Lines changed: 47 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# TODO: Remove
12
apiVersion: networking.k8s.io/v1
23
kind: Ingress
34
metadata:
@@ -11,12 +12,49 @@ metadata:
1112
component: prometheus
1213
spec:
1314
rules:
14-
- host: system-prometheus.{{ .Values.hosted_zone }}
15-
http:
16-
paths:
17-
- backend:
18-
service:
19-
name: prometheus
20-
port:
21-
number: 80
22-
pathType: ImplementationSpecific
15+
- host: system-prometheus.{{ .Values.hosted_zone }}
16+
http:
17+
paths:
18+
- backend:
19+
service:
20+
name: prometheus
21+
port:
22+
number: 80
23+
pathType: ImplementationSpecific
24+
---
25+
apiVersion: zalando.org/v1
26+
kind: RouteGroup
27+
metadata:
28+
name: prometheus
29+
namespace: kube-system
30+
labels:
31+
application: kubernetes
32+
component: prometheus
33+
spec:
34+
hosts:
35+
- system-prometheus.{{ .Values.hosted_zone }}
36+
backends:
37+
- name: prometheus
38+
type: service
39+
serviceName: prometheus
40+
servicePort: 80
41+
defaultBackends:
42+
- backendName: prometheus
43+
routes:
44+
- pathSubtree: /
45+
predicates:
46+
- HeaderRegexp("Authorization", "Bearer .+")
47+
filters:
48+
- oauthTokeninfoAnyKV("realm", "/employees", "realm", "/services")
49+
50+
# {{ if .Cluster.ConfigItems.prometheus_ui_users }}
51+
# {{ $uidKVs := "" }}
52+
# {{ range $uid := split .Cluster.ConfigItems.prometheus_ui_users "," }}
53+
# {{ if $uidKVs }}{{ $uidKVs = printf `%s, ` $uidKVs }}{{ end }}
54+
# {{ $uidKVs = printf `%s"uid", "%s"` $uidKVs $uid }}
55+
# {{ end }}
56+
- pathSubtree: /
57+
filters:
58+
- oauthGrant()
59+
- oauthTokeninfoAnyKV({{ $uidKVs }})
60+
# {{ end }}

0 commit comments

Comments
 (0)