blob: e1a01b9e336f0d2c8bc204a03b35211cc044a7a5 [file] [log] [blame]
Giorgi Lekveishviliea328da2026-07-29 12:15:15 +04001{{- if .Values.global.rbac.create }}
2apiVersion: rbac.authorization.k8s.io/v1
3kind: Role
4metadata:
5 name: {{ template "cert-manager.fullname" . }}:leaderelection
6 namespace: {{ .Values.global.leaderElection.namespace }}
7 labels:
8 app: {{ include "cert-manager.name" . }}
9 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
10 app.kubernetes.io/instance: {{ .Release.Name }}
11 app.kubernetes.io/component: "controller"
12 {{- include "labels" . | nindent 4 }}
13rules:
14 - apiGroups: ["coordination.k8s.io"]
15 resources: ["leases"]
16 resourceNames: ["cert-manager-controller"]
17 verbs: ["get", "update", "patch"]
18 - apiGroups: ["coordination.k8s.io"]
19 resources: ["leases"]
20 verbs: ["create"]
21
22---
23
24# grant cert-manager permission to manage the leaderelection configmap in the
25# leader election namespace
26apiVersion: rbac.authorization.k8s.io/v1
27kind: RoleBinding
28metadata:
29 name: {{ include "cert-manager.fullname" . }}:leaderelection
30 namespace: {{ .Values.global.leaderElection.namespace }}
31 labels:
32 app: {{ include "cert-manager.name" . }}
33 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
34 app.kubernetes.io/instance: {{ .Release.Name }}
35 app.kubernetes.io/component: "controller"
36 {{- include "labels" . | nindent 4 }}
37roleRef:
38 apiGroup: rbac.authorization.k8s.io
39 kind: Role
40 name: {{ template "cert-manager.fullname" . }}:leaderelection
41subjects:
42 - kind: ServiceAccount
43 name: {{ template "cert-manager.serviceAccountName" . }}
44 namespace: {{ include "cert-manager.namespace" . }}
45
46---
47
48{{- if .Values.serviceAccount.create }}
49apiVersion: rbac.authorization.k8s.io/v1
50kind: Role
51metadata:
52 name: {{ template "cert-manager.fullname" . }}-tokenrequest
53 namespace: {{ include "cert-manager.namespace" . }}
54 labels:
55 app: {{ include "cert-manager.name" . }}
56 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
57 app.kubernetes.io/instance: {{ .Release.Name }}
58 app.kubernetes.io/component: "controller"
59 {{- include "labels" . | nindent 4 }}
60rules:
61 - apiGroups: [""]
62 resources: ["serviceaccounts/token"]
63 resourceNames: ["{{ template "cert-manager.serviceAccountName" . }}"]
64 verbs: ["create"]
65
66---
67
68# grant cert-manager permission to create tokens for the serviceaccount
69apiVersion: rbac.authorization.k8s.io/v1
70kind: RoleBinding
71metadata:
72 name: {{ include "cert-manager.fullname" . }}-tokenrequest
73 namespace: {{ include "cert-manager.namespace" . }}
74 labels:
75 app: {{ include "cert-manager.name" . }}
76 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
77 app.kubernetes.io/instance: {{ .Release.Name }}
78 app.kubernetes.io/component: "controller"
79 {{- include "labels" . | nindent 4 }}
80roleRef:
81 apiGroup: rbac.authorization.k8s.io
82 kind: Role
83 name: {{ template "cert-manager.fullname" . }}-tokenrequest
84subjects:
85 - kind: ServiceAccount
86 name: {{ template "cert-manager.serviceAccountName" . }}
87 namespace: {{ include "cert-manager.namespace" . }}
88{{- end }}
89
90---
91
92# Issuer controller role
93apiVersion: rbac.authorization.k8s.io/v1
94kind: ClusterRole
95metadata:
96 name: {{ template "cert-manager.fullname" . }}-controller-issuers
97 labels:
98 app: {{ include "cert-manager.name" . }}
99 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
100 app.kubernetes.io/instance: {{ .Release.Name }}
101 app.kubernetes.io/component: "controller"
102 {{- include "labels" . | nindent 4 }}
103rules:
104 - apiGroups: ["cert-manager.io"]
105 resources: ["issuers", "issuers/status"]
106 verbs: ["update", "patch"]
107 - apiGroups: ["cert-manager.io"]
108 resources: ["issuers"]
109 verbs: ["get", "list", "watch"]
110 - apiGroups: [""]
111 resources: ["secrets"]
112 verbs: ["get", "list", "watch", "create", "update", "delete"]
113 - apiGroups: [""]
114 resources: ["events"]
115 verbs: ["create", "patch"]
116---
117
118# ClusterIssuer controller role
119apiVersion: rbac.authorization.k8s.io/v1
120kind: ClusterRole
121metadata:
122 name: {{ template "cert-manager.fullname" . }}-controller-clusterissuers
123 labels:
124 app: {{ include "cert-manager.name" . }}
125 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
126 app.kubernetes.io/instance: {{ .Release.Name }}
127 app.kubernetes.io/component: "controller"
128 {{- include "labels" . | nindent 4 }}
129rules:
130 - apiGroups: ["cert-manager.io"]
131 resources: ["clusterissuers", "clusterissuers/status"]
132 verbs: ["update", "patch"]
133 - apiGroups: ["cert-manager.io"]
134 resources: ["clusterissuers"]
135 verbs: ["get", "list", "watch"]
136 - apiGroups: [""]
137 resources: ["secrets"]
138 verbs: ["get", "list", "watch", "create", "update", "delete"]
139 - apiGroups: [""]
140 resources: ["events"]
141 verbs: ["create", "patch"]
142
143---
144
145# Certificates controller role
146apiVersion: rbac.authorization.k8s.io/v1
147kind: ClusterRole
148metadata:
149 name: {{ template "cert-manager.fullname" . }}-controller-certificates
150 labels:
151 app: {{ include "cert-manager.name" . }}
152 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
153 app.kubernetes.io/instance: {{ .Release.Name }}
154 app.kubernetes.io/component: "controller"
155 {{- include "labels" . | nindent 4 }}
156rules:
157 - apiGroups: ["cert-manager.io"]
158 resources: ["certificates", "certificates/status", "certificaterequests", "certificaterequests/status"]
159 verbs: ["update", "patch"]
160 - apiGroups: ["cert-manager.io"]
161 resources: ["certificates", "certificaterequests", "clusterissuers", "issuers"]
162 verbs: ["get", "list", "watch"]
163 # We require these rules to support users with the OwnerReferencesPermissionEnforcement
164 # admission controller enabled:
165 # https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
166 - apiGroups: ["cert-manager.io"]
167 resources: ["certificates/finalizers", "certificaterequests/finalizers"]
168 verbs: ["update"]
169 - apiGroups: ["acme.cert-manager.io"]
170 resources: ["orders"]
171 verbs: ["create", "delete", "get", "list", "watch"]
172 - apiGroups: [""]
173 resources: ["secrets"]
174 verbs: ["get", "list", "watch", "create", "update", "delete", "patch"]
175 - apiGroups: [""]
176 resources: ["events"]
177 verbs: ["create", "patch"]
178
179---
180
181# Orders controller role
182apiVersion: rbac.authorization.k8s.io/v1
183kind: ClusterRole
184metadata:
185 name: {{ template "cert-manager.fullname" . }}-controller-orders
186 labels:
187 app: {{ include "cert-manager.name" . }}
188 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
189 app.kubernetes.io/instance: {{ .Release.Name }}
190 app.kubernetes.io/component: "controller"
191 {{- include "labels" . | nindent 4 }}
192rules:
193 - apiGroups: ["acme.cert-manager.io"]
194 resources: ["orders", "orders/status"]
195 verbs: ["update", "patch"]
196 - apiGroups: ["acme.cert-manager.io"]
197 resources: ["orders", "challenges"]
198 verbs: ["get", "list", "watch"]
199 - apiGroups: ["cert-manager.io"]
200 resources: ["clusterissuers", "issuers"]
201 verbs: ["get", "list", "watch"]
202 - apiGroups: ["acme.cert-manager.io"]
203 resources: ["challenges"]
204 verbs: ["create", "delete"]
205 # We require these rules to support users with the OwnerReferencesPermissionEnforcement
206 # admission controller enabled:
207 # https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
208 - apiGroups: ["acme.cert-manager.io"]
209 resources: ["orders/finalizers"]
210 verbs: ["update"]
211 - apiGroups: ["cert-manager.io"]
212 resources: ["clusterissuers/finalizers", "issuers/finalizers"]
213 verbs: ["update"]
214 - apiGroups: [""]
215 resources: ["secrets"]
216 verbs: ["get", "list", "watch"]
217 - apiGroups: [""]
218 resources: ["events"]
219 verbs: ["create", "patch"]
220
221---
222
223# Challenges controller role
224apiVersion: rbac.authorization.k8s.io/v1
225kind: ClusterRole
226metadata:
227 name: {{ template "cert-manager.fullname" . }}-controller-challenges
228 labels:
229 app: {{ include "cert-manager.name" . }}
230 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
231 app.kubernetes.io/instance: {{ .Release.Name }}
232 app.kubernetes.io/component: "controller"
233 {{- include "labels" . | nindent 4 }}
234rules:
235 # Use to update challenge resource status
236 - apiGroups: ["acme.cert-manager.io"]
237 resources: ["challenges", "challenges/status"]
238 verbs: ["update", "patch"]
239 # Used to watch challenge resources
240 - apiGroups: ["acme.cert-manager.io"]
241 resources: ["challenges"]
242 verbs: ["get", "list", "watch"]
243 # Used to watch challenges, issuer and clusterissuer resources
244 - apiGroups: ["cert-manager.io"]
245 resources: ["issuers", "clusterissuers"]
246 verbs: ["get", "list", "watch"]
247 # Need to be able to retrieve ACME account private key to complete challenges
248 - apiGroups: [""]
249 resources: ["secrets"]
250 verbs: ["get", "list", "watch"]
251 # Used to create events
252 - apiGroups: [""]
253 resources: ["events"]
254 verbs: ["create", "patch"]
255 # HTTP01 rules
256 - apiGroups: [""]
257 resources: ["pods", "services"]
258 verbs: ["get", "list", "watch", "create", "delete"]
259 - apiGroups: ["networking.k8s.io"]
260 resources: ["ingresses"]
261 verbs: ["get", "list", "watch", "create", "delete", "update"]
262 - apiGroups: ["gateway.networking.k8s.io"]
263 resources: ["httproutes"]
264 verbs: ["get", "list", "watch", "create", "delete", "update"]
265 # We require the ability to specify a custom hostname when we are creating
266 # new ingress resources.
267 # See: https://github.com/openshift/origin/blob/21f191775636f9acadb44fa42beeb4f75b255532/pkg/route/apiserver/admission/ingress_admission.go#L84-L148
268 - apiGroups: ["route.openshift.io"]
269 resources: ["routes/custom-host"]
270 verbs: ["create"]
271 # We require these rules to support users with the OwnerReferencesPermissionEnforcement
272 # admission controller enabled:
273 # https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
274 - apiGroups: ["acme.cert-manager.io"]
275 resources: ["challenges/finalizers"]
276 verbs: ["update"]
277 # DNS01 rules (duplicated above)
278 - apiGroups: [""]
279 resources: ["secrets"]
280 verbs: ["get", "list", "watch"]
281
282---
283
284# ingress-shim controller role
285apiVersion: rbac.authorization.k8s.io/v1
286kind: ClusterRole
287metadata:
288 name: {{ template "cert-manager.fullname" . }}-controller-ingress-shim
289 labels:
290 app: {{ include "cert-manager.name" . }}
291 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
292 app.kubernetes.io/instance: {{ .Release.Name }}
293 app.kubernetes.io/component: "controller"
294 {{- include "labels" . | nindent 4 }}
295rules:
296 - apiGroups: ["cert-manager.io"]
297 resources: ["certificates", "certificaterequests"]
298 verbs: ["create", "update", "delete"]
299 - apiGroups: ["cert-manager.io"]
300 resources: ["certificates", "certificaterequests", "issuers", "clusterissuers"]
301 verbs: ["get", "list", "watch"]
302 - apiGroups: ["networking.k8s.io"]
303 resources: ["ingresses"]
304 verbs: ["get", "list", "watch"]
305 # We require these rules to support users with the OwnerReferencesPermissionEnforcement
306 # admission controller enabled:
307 # https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
308 - apiGroups: ["networking.k8s.io"]
309 resources: ["ingresses/finalizers"]
310 verbs: ["update"]
311 - apiGroups: ["gateway.networking.k8s.io"]
312 resources: ["gateways", "httproutes", "listenersets"]
313 verbs: ["get", "list", "watch"]
314 - apiGroups: ["gateway.networking.k8s.io"]
315 resources: ["gateways/finalizers", "httproutes/finalizers", "listenersets/finalizers"]
316 verbs: ["update"]
317 - apiGroups: [""]
318 resources: ["events"]
319 verbs: ["create", "patch"]
320
321---
322
323apiVersion: rbac.authorization.k8s.io/v1
324kind: ClusterRoleBinding
325metadata:
326 name: {{ template "cert-manager.fullname" . }}-controller-issuers
327 labels:
328 app: {{ include "cert-manager.name" . }}
329 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
330 app.kubernetes.io/instance: {{ .Release.Name }}
331 app.kubernetes.io/component: "controller"
332 {{- include "labels" . | nindent 4 }}
333roleRef:
334 apiGroup: rbac.authorization.k8s.io
335 kind: ClusterRole
336 name: {{ template "cert-manager.fullname" . }}-controller-issuers
337subjects:
338 - name: {{ template "cert-manager.serviceAccountName" . }}
339 namespace: {{ include "cert-manager.namespace" . }}
340 kind: ServiceAccount
341
342---
343
344apiVersion: rbac.authorization.k8s.io/v1
345kind: ClusterRoleBinding
346metadata:
347 name: {{ template "cert-manager.fullname" . }}-controller-clusterissuers
348 labels:
349 app: {{ include "cert-manager.name" . }}
350 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
351 app.kubernetes.io/instance: {{ .Release.Name }}
352 app.kubernetes.io/component: "controller"
353 {{- include "labels" . | nindent 4 }}
354roleRef:
355 apiGroup: rbac.authorization.k8s.io
356 kind: ClusterRole
357 name: {{ template "cert-manager.fullname" . }}-controller-clusterissuers
358subjects:
359 - name: {{ template "cert-manager.serviceAccountName" . }}
360 namespace: {{ include "cert-manager.namespace" . }}
361 kind: ServiceAccount
362
363---
364
365apiVersion: rbac.authorization.k8s.io/v1
366kind: ClusterRoleBinding
367metadata:
368 name: {{ template "cert-manager.fullname" . }}-controller-certificates
369 labels:
370 app: {{ include "cert-manager.name" . }}
371 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
372 app.kubernetes.io/instance: {{ .Release.Name }}
373 app.kubernetes.io/component: "controller"
374 {{- include "labels" . | nindent 4 }}
375roleRef:
376 apiGroup: rbac.authorization.k8s.io
377 kind: ClusterRole
378 name: {{ template "cert-manager.fullname" . }}-controller-certificates
379subjects:
380 - name: {{ template "cert-manager.serviceAccountName" . }}
381 namespace: {{ include "cert-manager.namespace" . }}
382 kind: ServiceAccount
383
384---
385
386apiVersion: rbac.authorization.k8s.io/v1
387kind: ClusterRoleBinding
388metadata:
389 name: {{ template "cert-manager.fullname" . }}-controller-orders
390 labels:
391 app: {{ include "cert-manager.name" . }}
392 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
393 app.kubernetes.io/instance: {{ .Release.Name }}
394 app.kubernetes.io/component: "controller"
395 {{- include "labels" . | nindent 4 }}
396roleRef:
397 apiGroup: rbac.authorization.k8s.io
398 kind: ClusterRole
399 name: {{ template "cert-manager.fullname" . }}-controller-orders
400subjects:
401 - name: {{ template "cert-manager.serviceAccountName" . }}
402 namespace: {{ include "cert-manager.namespace" . }}
403 kind: ServiceAccount
404
405---
406
407apiVersion: rbac.authorization.k8s.io/v1
408kind: ClusterRoleBinding
409metadata:
410 name: {{ template "cert-manager.fullname" . }}-controller-challenges
411 labels:
412 app: {{ include "cert-manager.name" . }}
413 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
414 app.kubernetes.io/instance: {{ .Release.Name }}
415 app.kubernetes.io/component: "controller"
416 {{- include "labels" . | nindent 4 }}
417roleRef:
418 apiGroup: rbac.authorization.k8s.io
419 kind: ClusterRole
420 name: {{ template "cert-manager.fullname" . }}-controller-challenges
421subjects:
422 - name: {{ template "cert-manager.serviceAccountName" . }}
423 namespace: {{ include "cert-manager.namespace" . }}
424 kind: ServiceAccount
425
426---
427
428apiVersion: rbac.authorization.k8s.io/v1
429kind: ClusterRoleBinding
430metadata:
431 name: {{ template "cert-manager.fullname" . }}-controller-ingress-shim
432 labels:
433 app: {{ include "cert-manager.name" . }}
434 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
435 app.kubernetes.io/instance: {{ .Release.Name }}
436 app.kubernetes.io/component: "controller"
437 {{- include "labels" . | nindent 4 }}
438roleRef:
439 apiGroup: rbac.authorization.k8s.io
440 kind: ClusterRole
441 name: {{ template "cert-manager.fullname" . }}-controller-ingress-shim
442subjects:
443 - name: {{ template "cert-manager.serviceAccountName" . }}
444 namespace: {{ include "cert-manager.namespace" . }}
445 kind: ServiceAccount
446
447{{- if .Values.global.rbac.aggregateClusterRoles }}
448---
449
450apiVersion: rbac.authorization.k8s.io/v1
451kind: ClusterRole
452metadata:
453 name: {{ template "cert-manager.fullname" . }}-cluster-view
454 labels:
455 app: {{ include "cert-manager.name" . }}
456 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
457 app.kubernetes.io/instance: {{ .Release.Name }}
458 app.kubernetes.io/component: "controller"
459 {{- include "labels" . | nindent 4 }}
460 rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
461rules:
462 - apiGroups: ["cert-manager.io"]
463 resources: ["clusterissuers"]
464 verbs: ["get", "list", "watch"]
465
466{{- end }}
467---
468
469apiVersion: rbac.authorization.k8s.io/v1
470kind: ClusterRole
471metadata:
472 name: {{ template "cert-manager.fullname" . }}-view
473 labels:
474 app: {{ include "cert-manager.name" . }}
475 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
476 app.kubernetes.io/instance: {{ .Release.Name }}
477 app.kubernetes.io/component: "controller"
478 {{- include "labels" . | nindent 4 }}
479 {{- if .Values.global.rbac.aggregateClusterRoles }}
480 rbac.authorization.k8s.io/aggregate-to-view: "true"
481 rbac.authorization.k8s.io/aggregate-to-edit: "true"
482 rbac.authorization.k8s.io/aggregate-to-admin: "true"
483 rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
484 {{- end }}
485rules:
486 - apiGroups: ["cert-manager.io"]
487 resources: ["certificates", "certificaterequests", "issuers"]
488 verbs: ["get", "list", "watch"]
489 - apiGroups: ["acme.cert-manager.io"]
490 resources: ["challenges", "orders"]
491 verbs: ["get", "list", "watch"]
492
493
494---
495
496apiVersion: rbac.authorization.k8s.io/v1
497kind: ClusterRole
498metadata:
499 name: {{ template "cert-manager.fullname" . }}-edit
500 labels:
501 app: {{ include "cert-manager.name" . }}
502 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
503 app.kubernetes.io/instance: {{ .Release.Name }}
504 app.kubernetes.io/component: "controller"
505 {{- include "labels" . | nindent 4 }}
506 {{- if .Values.global.rbac.aggregateClusterRoles }}
507 rbac.authorization.k8s.io/aggregate-to-edit: "true"
508 rbac.authorization.k8s.io/aggregate-to-admin: "true"
509 {{- end }}
510rules:
511 - apiGroups: ["cert-manager.io"]
512 resources: ["certificates", "certificaterequests", "issuers"]
513 verbs: ["create", "delete", "deletecollection", "patch", "update"]
514 - apiGroups: ["cert-manager.io"]
515 resources: ["certificates/status"]
516 verbs: ["update"]
517 {{- /*
518 Challenge and Order resources are not intended to be created or
519 modified directly by users.
520
521 Challenges: "create" is excluded. "patch" and "update" are retained
522 because spec is immutable after creation (ValidateChallengeUpdate)
523 and because users need them to remove stuck finalizers
524 (see cert-manager/cert-manager#3851, cert-manager/cert-manager#3870).
525
526 Orders: "create", "patch", and "update" are excluded.
527 */}}
528 - apiGroups: ["acme.cert-manager.io"]
529 resources: ["challenges"]
530 verbs: ["delete", "deletecollection", "patch", "update"]
531 - apiGroups: ["acme.cert-manager.io"]
532 resources: ["orders"]
533 verbs: ["delete", "deletecollection"]
534
535---
536
537{{- if not .Values.disableAutoApproval -}}
538
539# Permission to approve CertificateRequests referencing cert-manager.io Issuers and ClusterIssuers
540apiVersion: rbac.authorization.k8s.io/v1
541kind: ClusterRole
542metadata:
543 name: {{ template "cert-manager.fullname" . }}-controller-approve:cert-manager-io
544 labels:
545 app: {{ include "cert-manager.name" . }}
546 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
547 app.kubernetes.io/instance: {{ .Release.Name }}
548 app.kubernetes.io/component: "cert-manager"
549 {{- include "labels" . | nindent 4 }}
550rules:
551 - apiGroups: ["cert-manager.io"]
552 resources: ["signers"]
553 verbs: ["approve"]
554 {{- with .Values.approveSignerNames }}
555 resourceNames:
556 {{- range . }}
557 - {{ . | quote }}
558 {{- end }}
559 {{- end }}
560
561---
562
563apiVersion: rbac.authorization.k8s.io/v1
564kind: ClusterRoleBinding
565metadata:
566 name: {{ template "cert-manager.fullname" . }}-controller-approve:cert-manager-io
567 labels:
568 app: {{ include "cert-manager.name" . }}
569 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
570 app.kubernetes.io/instance: {{ .Release.Name }}
571 app.kubernetes.io/component: "cert-manager"
572 {{- include "labels" . | nindent 4 }}
573roleRef:
574 apiGroup: rbac.authorization.k8s.io
575 kind: ClusterRole
576 name: {{ template "cert-manager.fullname" . }}-controller-approve:cert-manager-io
577subjects:
578 - name: {{ template "cert-manager.serviceAccountName" . }}
579 namespace: {{ include "cert-manager.namespace" . }}
580 kind: ServiceAccount
581
582---
583
584{{- end -}}
585
586# Permission to:
587# - Update and sign CertificateSigningRequests referencing cert-manager.io Issuers and ClusterIssuers
588# - Perform SubjectAccessReviews to test whether users are able to reference Namespaced Issuers
589apiVersion: rbac.authorization.k8s.io/v1
590kind: ClusterRole
591metadata:
592 name: {{ template "cert-manager.fullname" . }}-controller-certificatesigningrequests
593 labels:
594 app: {{ include "cert-manager.name" . }}
595 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
596 app.kubernetes.io/instance: {{ .Release.Name }}
597 app.kubernetes.io/component: "cert-manager"
598 {{- include "labels" . | nindent 4 }}
599rules:
600 - apiGroups: ["certificates.k8s.io"]
601 resources: ["certificatesigningrequests"]
602 verbs: ["get", "list", "watch", "update"]
603 - apiGroups: ["certificates.k8s.io"]
604 resources: ["certificatesigningrequests/status"]
605 verbs: ["update", "patch"]
606 - apiGroups: ["certificates.k8s.io"]
607 resources: ["signers"]
608 resourceNames: ["issuers.cert-manager.io/*", "clusterissuers.cert-manager.io/*"]
609 verbs: ["sign"]
610 - apiGroups: ["authorization.k8s.io"]
611 resources: ["subjectaccessreviews"]
612 verbs: ["create"]
613
614---
615
616apiVersion: rbac.authorization.k8s.io/v1
617kind: ClusterRoleBinding
618metadata:
619 name: {{ template "cert-manager.fullname" . }}-controller-certificatesigningrequests
620 labels:
621 app: {{ include "cert-manager.name" . }}
622 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
623 app.kubernetes.io/instance: {{ .Release.Name }}
624 app.kubernetes.io/component: "cert-manager"
625 {{- include "labels" . | nindent 4 }}
626roleRef:
627 apiGroup: rbac.authorization.k8s.io
628 kind: ClusterRole
629 name: {{ template "cert-manager.fullname" . }}-controller-certificatesigningrequests
630subjects:
631 - name: {{ template "cert-manager.serviceAccountName" . }}
632 namespace: {{ include "cert-manager.namespace" . }}
633 kind: ServiceAccount
634{{- end }}