{{- if or .Values.rbac.create .Values.rbac.createClusterRole -}} apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ include "spark-operator.fullname" . }} labels: {{- include "spark-operator.labels" . | nindent 4 }} {{- with .Values.rbac.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} rules: - apiGroups: - "" resources: - pods - persistentvolumeclaims verbs: - "*" - apiGroups: - "" resources: - services - configmaps - secrets verbs: - create - get - delete - update - patch - apiGroups: - extensions - networking.k8s.io resources: - ingresses verbs: - create - get - delete - apiGroups: - "" resources: - nodes verbs: - get - apiGroups: - "" resources: - events verbs: - create - update - patch - apiGroups: - "" resources: - resourcequotas verbs: - get - list - watch - apiGroups: - apiextensions.k8s.io resources: - customresourcedefinitions verbs: - get - apiGroups: - admissionregistration.k8s.io resources: - mutatingwebhookconfigurations - validatingwebhookconfigurations verbs: - create - get - update - delete - apiGroups: - sparkoperator.k8s.io resources: - sparkapplications - sparkapplications/status - sparkapplications/finalizers - scheduledsparkapplications - scheduledsparkapplications/status - scheduledsparkapplications/finalizers verbs: - "*" {{- if .Values.batchScheduler.enable }} # required for the `volcano` batch scheduler - apiGroups: - scheduling.incubator.k8s.io - scheduling.sigs.dev - scheduling.volcano.sh resources: - podgroups verbs: - "*" {{- end }} {{ if .Values.webhook.enable }} - apiGroups: - batch resources: - jobs verbs: - delete {{- end }} {{- if gt (int .Values.replicaCount) 1 }} - apiGroups: - coordination.k8s.io resources: - leases resourceNames: - {{ .Values.leaderElection.lockName }} verbs: - get - update - patch - delete - apiGroups: - coordination.k8s.io resources: - leases verbs: - create {{- end }} --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: {{ include "spark-operator.fullname" . }} labels: {{- include "spark-operator.labels" . | nindent 4 }} {{- with .Values.rbac.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} subjects: - kind: ServiceAccount name: {{ include "spark-operator.serviceAccountName" . }} namespace: {{ .Release.Namespace }} roleRef: kind: ClusterRole name: {{ include "spark-operator.fullname" . }} apiGroup: rbac.authorization.k8s.io {{- end }}