forked from netobserv/documents
-
Notifications
You must be signed in to change notification settings - Fork 0
/
dex.yaml
executable file
·256 lines (256 loc) · 5.78 KB
/
dex.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: dex
namespace: openshift-logging
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: dex
rules:
- apiGroups:
- "dex.coreos.com"
resources:
- "*"
verbs:
- "*"
- apiGroups:
- "apiextensions.k8s.io"
resources:
- "customresourcedefinitions"
verbs:
- "create"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: dex
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: dex
subjects:
- kind: ServiceAccount
name: dex
namespace: openshift-logging
---
kind: OAuthClient
apiVersion: oauth.openshift.io/v1
metadata:
name: dex
secret: password
redirectURIs:
- "https://dex-openshift-logging.apps.<MY_CLUSTER_URL>/dex/callback"
grantMethod: prompt
---
apiVersion: v1
kind: Secret
metadata:
name: dex-openshift
namespace: openshift-config
type: Opaque
data:
clientSecret: cGFzc3dvcmQ=
---
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
spec:
identityProviders:
- name: dex
mappingMethod: claim
type: OpenID
openID:
clientID: openshift
clientSecret:
name: dex-openshift
ca:
name: kube-root-ca.crt
claims:
preferredUsername:
- preferred_username
name:
- name
email:
- email
extraScopes:
- email
- profile
issuer: https://dex-openshift-logging.apps.<MY_CLUSTER_URL>/dex
---
apiVersion: v1
kind: ConfigMap
metadata:
name: dex
namespace: openshift-logging
data:
config.yaml: |
issuer: https://dex-openshift-logging.apps.<MY_CLUSTER_URL>/dex/
storage:
type: kubernetes
config:
inCluster: true
grpc:
addr: 127.0.0.1:5557
tlsCert: /etc/dex/tls/tls.crt
tlsKey: /etc/dex/tls/tls.key
tlsClientCA: /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
web:
https: 0.0.0.0:5556
tlsCert: /etc/dex/tls/tls.crt
tlsKey: /etc/dex/tls/tls.key
telemetry:
http: 0.0.0.0:5558
logger:
level: debug
format: text
oauth2:
responseTypes: ["code", "token", "id_token"]
skipApprovalScreen: false
alwaysShowLoginScreen: true
passwordConnector: local
connectors:
- type: openshift
id: openshift
name: OpenShift
config:
issuer: https://api.<MY_CLUSTER_URL>:6443
clientID: dex
clientSecret: password
redirectURI: https://dex-openshift-logging.apps.<MY_CLUSTER_URL>/dex/callback
rootCA: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
staticClients:
- id: openshift
name: openshift
redirectURIs:
- 'https://oauth-openshift.apps.<MY_CLUSTER_URL>/oauth2callback/dex'
secret: password
- id: grafana
name: grafana
redirectURIs:
- 'http://grafana.default.svc.cluster.local/login/generic_oauth'
- 'http://grafana-default.apps.<MY_CLUSTER_URL>/login/generic_oauth'
secret: password
- id: tenant-a
name: tenant-a
redirectURIs:
- 'http://localhost:8080/oidc/tenant-a/callback'
- 'https://lokistack-gateway-http-lokistack-dev.openshift-logging.svc.cluster.local:8080/oidc/tenant-a/callback'
- 'http://gateway-openshift-logging.apps.<MY_CLUSTER_URL>/oidc/tenant-a/callback'
secret: password
enablePasswordDB: true
staticPasswords:
- email: "admin@example.com"
# bcrypt hash of the string "password"
hash: "$2a$10$2b2cU8CPhOTaGrs1HRQuAueS7JTT5ZHsHSzYiFPm1leZck7Mc8T4W"
username: "admin"
userID: "08a8684b-db88-4b73-90a9-3cd1661f5466"
- email: "foo@example.com"
# bcrypt hash of the string "password"
hash: "$2a$10$2b2cU8CPhOTaGrs1HRQuAueS7JTT5ZHsHSzYiFPm1leZck7Mc8T4W"
username: "foo"
userID: "41331323-6f44-45e6-b3b9-2c4b60c02be5"
---
kind: User
apiVersion: user.openshift.io/v1
metadata:
name: admin
identities:
# <identity provider>:<userID base64 encoded> local
- 'dex:CiQwOGE4Njg0Yi1kYjg4LTRiNzMtOTBhOS0zY2QxNjYxZjU0NjYSBWxvY2Fs'
---
kind: User
apiVersion: user.openshift.io/v1
metadata:
name: foo
identities:
# <identity provider>:<userID base64 encoded> local
- 'dex:CiQ0MTMzMTMyMy02ZjQ0LTQ1ZTYtYjNiOS0yYzRiNjBjMDJiZTUSBWxvY2Fs'
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: dex
namespace: openshift-logging
spec:
replicas:
selector:
matchLabels:
app: dex
template:
metadata:
labels:
app: dex
spec:
serviceAccountName: dex
containers:
- image: ghcr.io/dexidp/dex:v2.30.0
name: dex
command: ["/usr/local/bin/dex", "serve", "/etc/dex/cfg/config.yaml"]
ports:
- name: web
containerPort: 5556
- name: api
containerPort: 5557
- name: telemetry
containerPort: 5558
volumeMounts:
- name: config
mountPath: /etc/dex/cfg
- name: tls
mountPath: /etc/dex/tls
volumes:
- name: config
configMap:
name: dex
items:
- key: config.yaml
path: config.yaml
- name: tls
secret:
secretName: dex
---
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.openshift.io/serving-cert-secret-name: dex
name: dex
namespace: openshift-logging
spec:
type: ClusterIP
ports:
- name: web
port: 5556
protocol: TCP
targetPort: 5556
- name: api
port: 5557
protocol: TCP
targetPort: 5557
- name: telemetry
port: 5558
protocol: TCP
targetPort: 5558
selector:
app: dex
---
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: dex
namespace: openshift-logging
spec:
path: /
port:
targetPort: 5556
tls:
termination: reencrypt
to:
kind: Service
name: dex
weight: 100
wildcardPolicy: None