{{- if .Values.rbac.create -}} kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: {{ template "descheduler.fullname" . }} labels: {{- include "descheduler.labels" . | nindent 4 }} rules: - apiGroups: ["events.k8s.io"] resources: ["events"] verbs: ["create", "update"] - apiGroups: [""] resources: ["nodes"] verbs: ["get", "watch", "list"] - apiGroups: [""] resources: ["namespaces"] verbs: ["get", "watch", "list"] - apiGroups: [""] resources: ["pods"] verbs: ["get", "watch", "list", "delete"] - apiGroups: [""] resources: ["pods/eviction"] verbs: ["create"] - apiGroups: ["scheduling.k8s.io"] resources: ["priorityclasses"] verbs: ["get", "watch", "list"] - apiGroups: ["policy"] resources: ["poddisruptionbudgets"] verbs: ["get", "watch", "list"] {{- if .Values.leaderElection.enabled }} - apiGroups: ["coordination.k8s.io"] resources: ["leases"] verbs: ["create", "update"] - apiGroups: ["coordination.k8s.io"] resources: ["leases"] resourceNames: ["{{ .Values.leaderElection.resourceName | default "descheduler" }}"] verbs: ["get", "patch", "delete"] {{- end }} {{- if and .Values.deschedulerPolicy .Values.deschedulerPolicy.metricsCollector .Values.deschedulerPolicy.metricsCollector.enabled }} - apiGroups: ["metrics.k8s.io"] resources: ["pods", "nodes"] verbs: ["get", "list"] {{- end }} {{- end -}}