blob: 8f57d2dc80f522fea1fa920edb95ea89131841bf [file] [log] [blame]
Giorgi Lekveishvili725bb392023-05-05 18:24:27 +04001apiVersion: rbac.authorization.k8s.io/v1
2kind: ClusterRole
3metadata:
4 name: longhorn-role
5 labels: {{- include "longhorn.labels" . | nindent 4 }}
6rules:
7- apiGroups:
8 - apiextensions.k8s.io
9 resources:
10 - customresourcedefinitions
11 verbs:
12 - "*"
13- apiGroups: [""]
gio3e1b96b2026-07-21 18:52:35 +040014 resources: ["pods"]
15 verbs: ["get", "list", "watch", "delete", "deletecollection"]
16- apiGroups: [""]
17 resources: ["secrets", "services", "endpoints", "configmaps", "serviceaccounts", "pods/log"]
18 verbs: ["get", "list", "watch"]
19- apiGroups: [""]
20 resources: ["events", "persistentvolumes", "persistentvolumeclaims", "persistentvolumeclaims/status", "nodes"]
Giorgi Lekveishvili725bb392023-05-05 18:24:27 +040021 verbs: ["*"]
22- apiGroups: [""]
23 resources: ["namespaces"]
24 verbs: ["get", "list"]
25- apiGroups: ["apps"]
gio3e1b96b2026-07-21 18:52:35 +040026 resources: ["daemonsets", "statefulsets", "deployments", "replicasets"]
27 verbs: ["get", "list", "watch"]
Giorgi Lekveishvili725bb392023-05-05 18:24:27 +040028- apiGroups: ["batch"]
29 resources: ["jobs", "cronjobs"]
gio3e1b96b2026-07-21 18:52:35 +040030 verbs: ["get", "list", "watch"]
Giorgi Lekveishvili725bb392023-05-05 18:24:27 +040031- apiGroups: ["policy"]
gio3e1b96b2026-07-21 18:52:35 +040032 resources: ["poddisruptionbudgets"]
33 verbs: ["get", "list", "watch"]
Giorgi Lekveishvili725bb392023-05-05 18:24:27 +040034- apiGroups: ["scheduling.k8s.io"]
35 resources: ["priorityclasses"]
36 verbs: ["watch", "list"]
37- apiGroups: ["storage.k8s.io"]
gio3e1b96b2026-07-21 18:52:35 +040038 resources: ["storageclasses", "volumeattachments", "volumeattachments/status", "volumeattributesclasses", "csinodes", "csidrivers", "csistoragecapacities"]
Giorgi Lekveishvili725bb392023-05-05 18:24:27 +040039 verbs: ["*"]
40- apiGroups: ["snapshot.storage.k8s.io"]
41 resources: ["volumesnapshotclasses", "volumesnapshots", "volumesnapshotcontents", "volumesnapshotcontents/status"]
42 verbs: ["*"]
43- apiGroups: ["longhorn.io"]
gio3e1b96b2026-07-21 18:52:35 +040044 resources: ["volumes", "volumes/status", "enginefrontends", "enginefrontends/status", "engines", "engines/status", "replicas", "replicas/status", "settings", "settings/status",
Giorgi Lekveishvili725bb392023-05-05 18:24:27 +040045 "engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status",
gio16bb6382025-05-21 18:42:40 +040046 {{- if .Values.openshift.enabled }}
47 "engineimages/finalizers", "nodes/finalizers", "instancemanagers/finalizers",
48 {{- end }}
Giorgi Lekveishvili725bb392023-05-05 18:24:27 +040049 "sharemanagers", "sharemanagers/status", "backingimages", "backingimages/status",
50 "backingimagemanagers", "backingimagemanagers/status", "backingimagedatasources", "backingimagedatasources/status",
51 "backuptargets", "backuptargets/status", "backupvolumes", "backupvolumes/status", "backups", "backups/status",
52 "recurringjobs", "recurringjobs/status", "orphans", "orphans/status", "snapshots", "snapshots/status",
Giorgi Lekveishvili285ab622023-11-22 13:50:45 +040053 "supportbundles", "supportbundles/status", "systembackups", "systembackups/status", "systemrestores", "systemrestores/status",
gio16bb6382025-05-21 18:42:40 +040054 "volumeattachments", "volumeattachments/status", "backupbackingimages", "backupbackingimages/status"]
Giorgi Lekveishvili725bb392023-05-05 18:24:27 +040055 verbs: ["*"]
56- apiGroups: ["coordination.k8s.io"]
57 resources: ["leases"]
gio3e1b96b2026-07-21 18:52:35 +040058 verbs: ["get", "list", "watch"]
Giorgi Lekveishvili725bb392023-05-05 18:24:27 +040059- apiGroups: ["metrics.k8s.io"]
60 resources: ["pods", "nodes"]
61 verbs: ["get", "list"]
62- apiGroups: ["apiregistration.k8s.io"]
63 resources: ["apiservices"]
64 verbs: ["list", "watch"]
65- apiGroups: ["admissionregistration.k8s.io"]
66 resources: ["mutatingwebhookconfigurations", "validatingwebhookconfigurations"]
67 verbs: ["get", "list", "create", "patch", "delete"]
68- apiGroups: ["rbac.authorization.k8s.io"]
gio3e1b96b2026-07-21 18:52:35 +040069 resources: ["roles", "rolebindings"]
70 verbs: ["get", "list", "watch"]
71- apiGroups: ["discovery.k8s.io"]
72 resources: ["endpointslices"]
73 verbs: ["get", "list", "watch"]
74- apiGroups: ["rbac.authorization.k8s.io"]
75 resources: ["clusterrolebindings", "clusterroles"]
Giorgi Lekveishvili725bb392023-05-05 18:24:27 +040076 verbs: ["*"]
gio16bb6382025-05-21 18:42:40 +040077{{- if .Values.openshift.enabled }}
78---
79apiVersion: rbac.authorization.k8s.io/v1
80kind: ClusterRole
81metadata:
82 name: longhorn-ocp-privileged-role
83 labels: {{- include "longhorn.labels" . | nindent 4 }}
84rules:
85- apiGroups: ["security.openshift.io"]
86 resources: ["securitycontextconstraints"]
87 resourceNames: ["anyuid", "privileged"]
88 verbs: ["use"]
89{{- end }}