helm-charts/yunikorn/templates/rbac.yaml (112 lines of code) (raw):

# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ .Values.serviceAccount }} namespace: {{ .Release.Namespace }} annotations: "helm.sh/hook": pre-install "helm.sh/hook-weight": "0" --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: yunikorn-scheduler annotations: "helm.sh/hook": pre-install,pre-upgrade "helm.sh/hook-weight": "1" rules: - apiGroups: [""] resources: ["namespaces"] verbs: ["get", "watch", "list"] - apiGroups: ["scheduling.k8s.io"] resources: ["priorityclasses"] verbs: ["get", "watch", "list"] # Ensure permissions for volumeattachments as this was only added to the kube-scheduler role in v1.32. # This is required here as long as we support executing on prior releases of Kubernetes. - apiGroups: ["storage.k8s.io"] resources: ["volumeattachments"] verbs: ["get", "watch", "list"] - apiGroups: [""] resources: ["pods"] verbs: ["get", "watch", "list", "create", "patch", "update", "delete"] - apiGroups: ["sparkoperator.k8s.io"] resources: ["*"] verbs: ["*"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: yunikorn-scheduler annotations: "helm.sh/hook": pre-install,pre-upgrade "helm.sh/hook-weight": "1" rules: - apiGroups: [""] resources: ["secrets"] verbs: ["get", "watch", "list", "update"] - apiGroups: [""] resources: ["configmaps"] verbs: ["get", "watch", "list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: yunikorn-rbac annotations: "helm.sh/hook": pre-install,pre-upgrade "helm.sh/hook-weight": "2" subjects: - kind: ServiceAccount name: {{ .Values.serviceAccount }} namespace: {{ .Release.Namespace }} roleRef: kind: ClusterRole name: yunikorn-scheduler apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: yunikorn-rbac-kube-scheduler annotations: "helm.sh/hook": pre-install,pre-upgrade "helm.sh/hook-weight": "2" subjects: - kind: ServiceAccount name: {{ .Values.serviceAccount }} namespace: {{ .Release.Namespace }} roleRef: kind: ClusterRole name: system:kube-scheduler apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: yunikorn-rbac-volume-scheduler annotations: "helm.sh/hook": pre-install,pre-upgrade "helm.sh/hook-weight": "2" subjects: - kind: ServiceAccount name: {{ .Values.serviceAccount }} namespace: {{ .Release.Namespace }} roleRef: kind: ClusterRole name: system:volume-scheduler apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: yunikorn-rbac annotations: "helm.sh/hook": pre-install,pre-upgrade "helm.sh/hook-weight": "2" subjects: - kind: ServiceAccount name: {{ .Values.serviceAccount }} namespace: {{ .Release.Namespace }} roleRef: kind: Role name: yunikorn-scheduler apiGroup: rbac.authorization.k8s.io