blob: baae425f0540285d8bb264e874ea842c1521d323 [file] [log] [blame]
Giorgi Lekveishvilid1234c12023-06-19 10:37:06 +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:
gio33d62932026-07-23 16:39:35 +040042 - kind: ServiceAccount
Giorgi Lekveishvilid1234c12023-06-19 10:37:06 +040043 name: {{ template "cert-manager.serviceAccountName" . }}
44 namespace: {{ include "cert-manager.namespace" . }}
45
46---
47
gio33d62932026-07-23 16:39:35 +040048{{- if .Values.serviceAccount.create }}
49apiVersion: rbac.authorization.k8s.io/v1
50kind: Role
51metadata:
52 name: {{ template "cert-manager.serviceAccountName" . }}-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" . }}-{{ template "cert-manager.serviceAccountName" . }}-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.serviceAccountName" . }}-tokenrequest
84subjects:
85 - kind: ServiceAccount
86 name: {{ template "cert-manager.serviceAccountName" . }}
87 namespace: {{ include "cert-manager.namespace" . }}
88{{- end }}
89
90---
91
Giorgi Lekveishvilid1234c12023-06-19 10:37:06 +040092# 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"]
Giorgi Lekveishvilid1234c12023-06-19 10:37:06 +0400116---
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: [""]
212 resources: ["secrets"]
213 verbs: ["get", "list", "watch"]
214 - apiGroups: [""]
215 resources: ["events"]
216 verbs: ["create", "patch"]
217
218---
219
220# Challenges controller role
221apiVersion: rbac.authorization.k8s.io/v1
222kind: ClusterRole
223metadata:
224 name: {{ template "cert-manager.fullname" . }}-controller-challenges
225 labels:
226 app: {{ include "cert-manager.name" . }}
227 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
228 app.kubernetes.io/instance: {{ .Release.Name }}
229 app.kubernetes.io/component: "controller"
230 {{- include "labels" . | nindent 4 }}
231rules:
232 # Use to update challenge resource status
233 - apiGroups: ["acme.cert-manager.io"]
234 resources: ["challenges", "challenges/status"]
235 verbs: ["update", "patch"]
236 # Used to watch challenge resources
237 - apiGroups: ["acme.cert-manager.io"]
238 resources: ["challenges"]
239 verbs: ["get", "list", "watch"]
240 # Used to watch challenges, issuer and clusterissuer resources
241 - apiGroups: ["cert-manager.io"]
242 resources: ["issuers", "clusterissuers"]
243 verbs: ["get", "list", "watch"]
244 # Need to be able to retrieve ACME account private key to complete challenges
245 - apiGroups: [""]
246 resources: ["secrets"]
247 verbs: ["get", "list", "watch"]
248 # Used to create events
249 - apiGroups: [""]
250 resources: ["events"]
251 verbs: ["create", "patch"]
252 # HTTP01 rules
253 - apiGroups: [""]
254 resources: ["pods", "services"]
255 verbs: ["get", "list", "watch", "create", "delete"]
256 - apiGroups: ["networking.k8s.io"]
257 resources: ["ingresses"]
258 verbs: ["get", "list", "watch", "create", "delete", "update"]
259 - apiGroups: [ "gateway.networking.k8s.io" ]
260 resources: [ "httproutes" ]
261 verbs: ["get", "list", "watch", "create", "delete", "update"]
262 # We require the ability to specify a custom hostname when we are creating
263 # new ingress resources.
264 # See: https://github.com/openshift/origin/blob/21f191775636f9acadb44fa42beeb4f75b255532/pkg/route/apiserver/admission/ingress_admission.go#L84-L148
265 - apiGroups: ["route.openshift.io"]
266 resources: ["routes/custom-host"]
267 verbs: ["create"]
268 # We require these rules to support users with the OwnerReferencesPermissionEnforcement
269 # admission controller enabled:
270 # https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
271 - apiGroups: ["acme.cert-manager.io"]
272 resources: ["challenges/finalizers"]
273 verbs: ["update"]
274 # DNS01 rules (duplicated above)
275 - apiGroups: [""]
276 resources: ["secrets"]
277 verbs: ["get", "list", "watch"]
278
279---
280
281# ingress-shim controller role
282apiVersion: rbac.authorization.k8s.io/v1
283kind: ClusterRole
284metadata:
285 name: {{ template "cert-manager.fullname" . }}-controller-ingress-shim
286 labels:
287 app: {{ include "cert-manager.name" . }}
288 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
289 app.kubernetes.io/instance: {{ .Release.Name }}
290 app.kubernetes.io/component: "controller"
291 {{- include "labels" . | nindent 4 }}
292rules:
293 - apiGroups: ["cert-manager.io"]
294 resources: ["certificates", "certificaterequests"]
295 verbs: ["create", "update", "delete"]
296 - apiGroups: ["cert-manager.io"]
297 resources: ["certificates", "certificaterequests", "issuers", "clusterissuers"]
298 verbs: ["get", "list", "watch"]
299 - apiGroups: ["networking.k8s.io"]
300 resources: ["ingresses"]
301 verbs: ["get", "list", "watch"]
302 # We require these rules to support users with the OwnerReferencesPermissionEnforcement
303 # admission controller enabled:
304 # https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
305 - apiGroups: ["networking.k8s.io"]
306 resources: ["ingresses/finalizers"]
307 verbs: ["update"]
308 - apiGroups: ["gateway.networking.k8s.io"]
309 resources: ["gateways", "httproutes"]
310 verbs: ["get", "list", "watch"]
311 - apiGroups: ["gateway.networking.k8s.io"]
312 resources: ["gateways/finalizers", "httproutes/finalizers"]
313 verbs: ["update"]
314 - apiGroups: [""]
315 resources: ["events"]
316 verbs: ["create", "patch"]
317
318---
319
320apiVersion: rbac.authorization.k8s.io/v1
321kind: ClusterRoleBinding
322metadata:
323 name: {{ template "cert-manager.fullname" . }}-controller-issuers
324 labels:
325 app: {{ include "cert-manager.name" . }}
326 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
327 app.kubernetes.io/instance: {{ .Release.Name }}
328 app.kubernetes.io/component: "controller"
329 {{- include "labels" . | nindent 4 }}
330roleRef:
331 apiGroup: rbac.authorization.k8s.io
332 kind: ClusterRole
333 name: {{ template "cert-manager.fullname" . }}-controller-issuers
334subjects:
335 - name: {{ template "cert-manager.serviceAccountName" . }}
336 namespace: {{ include "cert-manager.namespace" . }}
337 kind: ServiceAccount
338
339---
340
341apiVersion: rbac.authorization.k8s.io/v1
342kind: ClusterRoleBinding
343metadata:
344 name: {{ template "cert-manager.fullname" . }}-controller-clusterissuers
345 labels:
346 app: {{ include "cert-manager.name" . }}
347 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
348 app.kubernetes.io/instance: {{ .Release.Name }}
349 app.kubernetes.io/component: "controller"
350 {{- include "labels" . | nindent 4 }}
351roleRef:
352 apiGroup: rbac.authorization.k8s.io
353 kind: ClusterRole
354 name: {{ template "cert-manager.fullname" . }}-controller-clusterissuers
355subjects:
356 - name: {{ template "cert-manager.serviceAccountName" . }}
357 namespace: {{ include "cert-manager.namespace" . }}
358 kind: ServiceAccount
359
360---
361
362apiVersion: rbac.authorization.k8s.io/v1
363kind: ClusterRoleBinding
364metadata:
365 name: {{ template "cert-manager.fullname" . }}-controller-certificates
366 labels:
367 app: {{ include "cert-manager.name" . }}
368 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
369 app.kubernetes.io/instance: {{ .Release.Name }}
370 app.kubernetes.io/component: "controller"
371 {{- include "labels" . | nindent 4 }}
372roleRef:
373 apiGroup: rbac.authorization.k8s.io
374 kind: ClusterRole
375 name: {{ template "cert-manager.fullname" . }}-controller-certificates
376subjects:
377 - name: {{ template "cert-manager.serviceAccountName" . }}
378 namespace: {{ include "cert-manager.namespace" . }}
379 kind: ServiceAccount
380
381---
382
383apiVersion: rbac.authorization.k8s.io/v1
384kind: ClusterRoleBinding
385metadata:
386 name: {{ template "cert-manager.fullname" . }}-controller-orders
387 labels:
388 app: {{ include "cert-manager.name" . }}
389 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
390 app.kubernetes.io/instance: {{ .Release.Name }}
391 app.kubernetes.io/component: "controller"
392 {{- include "labels" . | nindent 4 }}
393roleRef:
394 apiGroup: rbac.authorization.k8s.io
395 kind: ClusterRole
396 name: {{ template "cert-manager.fullname" . }}-controller-orders
397subjects:
398 - name: {{ template "cert-manager.serviceAccountName" . }}
399 namespace: {{ include "cert-manager.namespace" . }}
400 kind: ServiceAccount
401
402---
403
404apiVersion: rbac.authorization.k8s.io/v1
405kind: ClusterRoleBinding
406metadata:
407 name: {{ template "cert-manager.fullname" . }}-controller-challenges
408 labels:
409 app: {{ include "cert-manager.name" . }}
410 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
411 app.kubernetes.io/instance: {{ .Release.Name }}
412 app.kubernetes.io/component: "controller"
413 {{- include "labels" . | nindent 4 }}
414roleRef:
415 apiGroup: rbac.authorization.k8s.io
416 kind: ClusterRole
417 name: {{ template "cert-manager.fullname" . }}-controller-challenges
418subjects:
419 - name: {{ template "cert-manager.serviceAccountName" . }}
420 namespace: {{ include "cert-manager.namespace" . }}
421 kind: ServiceAccount
422
423---
424
425apiVersion: rbac.authorization.k8s.io/v1
426kind: ClusterRoleBinding
427metadata:
428 name: {{ template "cert-manager.fullname" . }}-controller-ingress-shim
429 labels:
430 app: {{ include "cert-manager.name" . }}
431 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
432 app.kubernetes.io/instance: {{ .Release.Name }}
433 app.kubernetes.io/component: "controller"
434 {{- include "labels" . | nindent 4 }}
435roleRef:
436 apiGroup: rbac.authorization.k8s.io
437 kind: ClusterRole
438 name: {{ template "cert-manager.fullname" . }}-controller-ingress-shim
439subjects:
440 - name: {{ template "cert-manager.serviceAccountName" . }}
441 namespace: {{ include "cert-manager.namespace" . }}
442 kind: ServiceAccount
443
gio33d62932026-07-23 16:39:35 +0400444{{- if .Values.global.rbac.aggregateClusterRoles }}
445---
446
447apiVersion: rbac.authorization.k8s.io/v1
448kind: ClusterRole
449metadata:
450 name: {{ template "cert-manager.fullname" . }}-cluster-view
451 labels:
452 app: {{ include "cert-manager.name" . }}
453 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
454 app.kubernetes.io/instance: {{ .Release.Name }}
455 app.kubernetes.io/component: "controller"
456 {{- include "labels" . | nindent 4 }}
457 rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
458rules:
459 - apiGroups: ["cert-manager.io"]
460 resources: ["clusterissuers"]
461 verbs: ["get", "list", "watch"]
462
463{{- end }}
Giorgi Lekveishvilid1234c12023-06-19 10:37:06 +0400464---
465
466apiVersion: rbac.authorization.k8s.io/v1
467kind: ClusterRole
468metadata:
469 name: {{ template "cert-manager.fullname" . }}-view
470 labels:
471 app: {{ include "cert-manager.name" . }}
472 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
473 app.kubernetes.io/instance: {{ .Release.Name }}
474 app.kubernetes.io/component: "controller"
475 {{- include "labels" . | nindent 4 }}
476 {{- if .Values.global.rbac.aggregateClusterRoles }}
477 rbac.authorization.k8s.io/aggregate-to-view: "true"
478 rbac.authorization.k8s.io/aggregate-to-edit: "true"
479 rbac.authorization.k8s.io/aggregate-to-admin: "true"
gio33d62932026-07-23 16:39:35 +0400480 rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
Giorgi Lekveishvilid1234c12023-06-19 10:37:06 +0400481 {{- end }}
482rules:
483 - apiGroups: ["cert-manager.io"]
484 resources: ["certificates", "certificaterequests", "issuers"]
485 verbs: ["get", "list", "watch"]
486 - apiGroups: ["acme.cert-manager.io"]
487 resources: ["challenges", "orders"]
488 verbs: ["get", "list", "watch"]
489
490
491---
492
493apiVersion: rbac.authorization.k8s.io/v1
494kind: ClusterRole
495metadata:
496 name: {{ template "cert-manager.fullname" . }}-edit
497 labels:
498 app: {{ include "cert-manager.name" . }}
499 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
500 app.kubernetes.io/instance: {{ .Release.Name }}
501 app.kubernetes.io/component: "controller"
502 {{- include "labels" . | nindent 4 }}
503 {{- if .Values.global.rbac.aggregateClusterRoles }}
504 rbac.authorization.k8s.io/aggregate-to-edit: "true"
505 rbac.authorization.k8s.io/aggregate-to-admin: "true"
506 {{- end }}
507rules:
508 - apiGroups: ["cert-manager.io"]
509 resources: ["certificates", "certificaterequests", "issuers"]
510 verbs: ["create", "delete", "deletecollection", "patch", "update"]
511 - apiGroups: ["cert-manager.io"]
512 resources: ["certificates/status"]
513 verbs: ["update"]
514 - apiGroups: ["acme.cert-manager.io"]
515 resources: ["challenges", "orders"]
516 verbs: ["create", "delete", "deletecollection", "patch", "update"]
517
518---
519
gio33d62932026-07-23 16:39:35 +0400520{{- if not .Values.disableAutoApproval -}}
521
Giorgi Lekveishvilid1234c12023-06-19 10:37:06 +0400522# Permission to approve CertificateRequests referencing cert-manager.io Issuers and ClusterIssuers
523apiVersion: rbac.authorization.k8s.io/v1
524kind: ClusterRole
525metadata:
526 name: {{ template "cert-manager.fullname" . }}-controller-approve:cert-manager-io
527 labels:
528 app: {{ include "cert-manager.name" . }}
529 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
530 app.kubernetes.io/instance: {{ .Release.Name }}
531 app.kubernetes.io/component: "cert-manager"
532 {{- include "labels" . | nindent 4 }}
533rules:
534 - apiGroups: ["cert-manager.io"]
535 resources: ["signers"]
536 verbs: ["approve"]
gio33d62932026-07-23 16:39:35 +0400537 {{- with .Values.approveSignerNames }}
538 resourceNames:
539 {{- range . }}
540 - {{ . | quote }}
541 {{- end }}
542 {{- end }}
Giorgi Lekveishvilid1234c12023-06-19 10:37:06 +0400543
544---
545
546apiVersion: rbac.authorization.k8s.io/v1
547kind: ClusterRoleBinding
548metadata:
549 name: {{ template "cert-manager.fullname" . }}-controller-approve:cert-manager-io
550 labels:
551 app: {{ include "cert-manager.name" . }}
552 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
553 app.kubernetes.io/instance: {{ .Release.Name }}
554 app.kubernetes.io/component: "cert-manager"
555 {{- include "labels" . | nindent 4 }}
556roleRef:
557 apiGroup: rbac.authorization.k8s.io
558 kind: ClusterRole
559 name: {{ template "cert-manager.fullname" . }}-controller-approve:cert-manager-io
560subjects:
561 - name: {{ template "cert-manager.serviceAccountName" . }}
562 namespace: {{ include "cert-manager.namespace" . }}
563 kind: ServiceAccount
564
565---
566
gio33d62932026-07-23 16:39:35 +0400567{{- end -}}
568
Giorgi Lekveishvilid1234c12023-06-19 10:37:06 +0400569# Permission to:
gio33d62932026-07-23 16:39:35 +0400570# - Update and sign CertificateSigningRequests referencing cert-manager.io Issuers and ClusterIssuers
Giorgi Lekveishvilid1234c12023-06-19 10:37:06 +0400571# - Perform SubjectAccessReviews to test whether users are able to reference Namespaced Issuers
572apiVersion: rbac.authorization.k8s.io/v1
573kind: ClusterRole
574metadata:
575 name: {{ template "cert-manager.fullname" . }}-controller-certificatesigningrequests
576 labels:
577 app: {{ include "cert-manager.name" . }}
578 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
579 app.kubernetes.io/instance: {{ .Release.Name }}
580 app.kubernetes.io/component: "cert-manager"
581 {{- include "labels" . | nindent 4 }}
582rules:
583 - apiGroups: ["certificates.k8s.io"]
584 resources: ["certificatesigningrequests"]
585 verbs: ["get", "list", "watch", "update"]
586 - apiGroups: ["certificates.k8s.io"]
587 resources: ["certificatesigningrequests/status"]
588 verbs: ["update", "patch"]
589 - apiGroups: ["certificates.k8s.io"]
590 resources: ["signers"]
591 resourceNames: ["issuers.cert-manager.io/*", "clusterissuers.cert-manager.io/*"]
592 verbs: ["sign"]
593 - apiGroups: ["authorization.k8s.io"]
594 resources: ["subjectaccessreviews"]
595 verbs: ["create"]
596
597---
598
599apiVersion: rbac.authorization.k8s.io/v1
600kind: ClusterRoleBinding
601metadata:
602 name: {{ template "cert-manager.fullname" . }}-controller-certificatesigningrequests
603 labels:
604 app: {{ include "cert-manager.name" . }}
605 app.kubernetes.io/name: {{ include "cert-manager.name" . }}
606 app.kubernetes.io/instance: {{ .Release.Name }}
607 app.kubernetes.io/component: "cert-manager"
608 {{- include "labels" . | nindent 4 }}
609roleRef:
610 apiGroup: rbac.authorization.k8s.io
611 kind: ClusterRole
612 name: {{ template "cert-manager.fullname" . }}-controller-certificatesigningrequests
613subjects:
614 - name: {{ template "cert-manager.serviceAccountName" . }}
615 namespace: {{ include "cert-manager.namespace" . }}
616 kind: ServiceAccount
617{{- end }}