blob: 2aa59eee9dd2e6e7616bebb76e2f9cdb92b26c62 [file] [log] [blame]
Giorgi Lekveishvilid1234c12023-06-19 10:37:06 +04001{{- if .Values.cainjector.enabled }}
2{{- if .Values.global.rbac.create }}
3apiVersion: rbac.authorization.k8s.io/v1
4kind: ClusterRole
5metadata:
6 name: {{ template "cainjector.fullname" . }}
7 labels:
8 app: {{ include "cainjector.name" . }}
9 app.kubernetes.io/name: {{ include "cainjector.name" . }}
10 app.kubernetes.io/instance: {{ .Release.Name }}
11 app.kubernetes.io/component: "cainjector"
12 {{- include "labels" . | nindent 4 }}
13rules:
14 - apiGroups: ["cert-manager.io"]
15 resources: ["certificates"]
16 verbs: ["get", "list", "watch"]
17 - apiGroups: [""]
18 resources: ["secrets"]
19 verbs: ["get", "list", "watch"]
20 - apiGroups: [""]
21 resources: ["events"]
22 verbs: ["get", "create", "update", "patch"]
23 - apiGroups: ["admissionregistration.k8s.io"]
24 resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
Giorgi Lekveishvili0048a782023-06-20 18:32:21 +040025 verbs: ["get", "list", "watch", "update", "patch"]
Giorgi Lekveishvilid1234c12023-06-19 10:37:06 +040026 - apiGroups: ["apiregistration.k8s.io"]
27 resources: ["apiservices"]
Giorgi Lekveishvili0048a782023-06-20 18:32:21 +040028 verbs: ["get", "list", "watch", "update", "patch"]
Giorgi Lekveishvilid1234c12023-06-19 10:37:06 +040029 - apiGroups: ["apiextensions.k8s.io"]
30 resources: ["customresourcedefinitions"]
Giorgi Lekveishvili0048a782023-06-20 18:32:21 +040031 verbs: ["get", "list", "watch", "update", "patch"]
Giorgi Lekveishvilid1234c12023-06-19 10:37:06 +040032---
33apiVersion: rbac.authorization.k8s.io/v1
34kind: ClusterRoleBinding
35metadata:
36 name: {{ template "cainjector.fullname" . }}
37 labels:
38 app: {{ include "cainjector.name" . }}
39 app.kubernetes.io/name: {{ include "cainjector.name" . }}
40 app.kubernetes.io/instance: {{ .Release.Name }}
41 app.kubernetes.io/component: "cainjector"
42 {{- include "labels" . | nindent 4 }}
43roleRef:
44 apiGroup: rbac.authorization.k8s.io
45 kind: ClusterRole
46 name: {{ template "cainjector.fullname" . }}
47subjects:
48 - name: {{ template "cainjector.serviceAccountName" . }}
49 namespace: {{ include "cert-manager.namespace" . }}
50 kind: ServiceAccount
51
52---
53# leader election rules
54apiVersion: rbac.authorization.k8s.io/v1
55kind: Role
56metadata:
57 name: {{ template "cainjector.fullname" . }}:leaderelection
58 namespace: {{ .Values.global.leaderElection.namespace }}
59 labels:
60 app: {{ include "cainjector.name" . }}
61 app.kubernetes.io/name: {{ include "cainjector.name" . }}
62 app.kubernetes.io/instance: {{ .Release.Name }}
63 app.kubernetes.io/component: "cainjector"
64 {{- include "labels" . | nindent 4 }}
65rules:
66 # Used for leader election by the controller
67 # cert-manager-cainjector-leader-election is used by the CertificateBased injector controller
68 # see cmd/cainjector/start.go#L113
69 # cert-manager-cainjector-leader-election-core is used by the SecretBased injector controller
70 # see cmd/cainjector/start.go#L137
71 - apiGroups: ["coordination.k8s.io"]
72 resources: ["leases"]
73 resourceNames: ["cert-manager-cainjector-leader-election", "cert-manager-cainjector-leader-election-core"]
74 verbs: ["get", "update", "patch"]
75 - apiGroups: ["coordination.k8s.io"]
76 resources: ["leases"]
77 verbs: ["create"]
78
79---
80
81# grant cert-manager permission to manage the leaderelection configmap in the
82# leader election namespace
83apiVersion: rbac.authorization.k8s.io/v1
84kind: RoleBinding
85metadata:
86 name: {{ include "cainjector.fullname" . }}:leaderelection
87 namespace: {{ .Values.global.leaderElection.namespace }}
88 labels:
89 app: {{ include "cainjector.name" . }}
90 app.kubernetes.io/name: {{ include "cainjector.name" . }}
91 app.kubernetes.io/instance: {{ .Release.Name }}
92 app.kubernetes.io/component: "cainjector"
93 {{- include "labels" . | nindent 4 }}
94roleRef:
95 apiGroup: rbac.authorization.k8s.io
96 kind: Role
97 name: {{ template "cainjector.fullname" . }}:leaderelection
98subjects:
99 - kind: ServiceAccount
100 name: {{ template "cainjector.serviceAccountName" . }}
101 namespace: {{ include "cert-manager.namespace" . }}
102{{- end }}
103{{- end }}