{{- if .Values.global.rbac.create }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: {{ template "webhook.fullname" . }}:dynamic-serving namespace: {{ include "cert-manager.namespace" . }} labels: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: "webhook" {{- include "labels" . | nindent 4 }} rules: - apiGroups: [""] resources: ["secrets"] resourceNames: - '{{ template "webhook.fullname" . }}-ca' {{- $certmanagerNamespace := include "cert-manager.namespace" . }} {{- with (.Values.webhook.config.metricsTLSConfig).dynamic }} {{- if $certmanagerNamespace | eq .secretNamespace }} # Allow webhook to read and update the metrics CA Secret when dynamic TLS is # enabled for the metrics server and if the Secret is configured to be in the # same namespace as cert-manager. - {{ .secretName | quote }} {{- end }} {{- end }} verbs: ["get", "list", "watch", "update"] # It's not possible to grant CREATE permission on a single resourceName. - apiGroups: [""] resources: ["secrets"] verbs: ["create"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: {{ template "webhook.fullname" . }}:dynamic-serving namespace: {{ include "cert-manager.namespace" . }} labels: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: "webhook" {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: {{ template "webhook.fullname" . }}:dynamic-serving subjects: - kind: ServiceAccount name: {{ template "webhook.serviceAccountName" . }} namespace: {{ include "cert-manager.namespace" . }} --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ template "webhook.fullname" . }}:subjectaccessreviews labels: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: "webhook" {{- include "labels" . | nindent 4 }} rules: - apiGroups: ["authorization.k8s.io"] resources: ["subjectaccessreviews"] verbs: ["create"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: {{ template "webhook.fullname" . }}:subjectaccessreviews labels: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: "webhook" {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: {{ template "webhook.fullname" . }}:subjectaccessreviews subjects: - kind: ServiceAccount name: {{ template "webhook.serviceAccountName" . }} namespace: {{ include "cert-manager.namespace" . }} {{- end }}