RBAC Reference
This page documents the Role-Based Access Control (RBAC) permissions that DirectPV requires to operate in your Kubernetes cluster.
Overview
DirectPV automatically creates the following RBAC resources during installation with the Helm chart. Administrators do not need to manually configure these permissions.
| Resource | Name | Namespace |
|---|---|---|
| ServiceAccount | directpv-min-io |
directpv |
| ClusterRole | directpv-min-io |
Cluster-scoped |
| ClusterRoleBinding | directpv-min-io |
Cluster-scoped |
| Role | directpv-min-io |
directpv |
| RoleBinding | directpv-min-io |
directpv |
ClusterRole permissions
The directpv-min-io ClusterRole grants the following permissions:
Core API resources
| Resource | Verbs | Purpose |
|---|---|---|
endpoints |
get, list, watch, create, update, delete | Leader election and service discovery. |
events |
list, watch, create, update, patch | Report events for drives, volumes, and operations. |
nodes |
get, list, watch | Discover cluster nodes for drive management. |
persistentvolumes |
get, list, watch, create, delete, patch | Provision and manage PersistentVolumes. |
persistentvolumeclaims |
get, list, watch, update | Process PVC requests and update status. |
persistentvolumeclaims/status |
patch | Update PVC status during volume operations. |
pods |
get, list, watch | Track pod assignments for volumes. |
Policy API resources
| Resource | Verbs | Purpose |
|---|---|---|
podsecuritypolicies |
use | Apply pod security policies (if enabled). |
API extensions resources
| Resource | Verbs | Purpose |
|---|---|---|
customresourcedefinitions |
get, list, watch, create, update, delete | Manage DirectPV CRDs. |
Coordination API resources
| Resource | Verbs | Purpose |
|---|---|---|
leases |
get, list, watch, update, delete, create | Controller leader election. |
DirectPV API resources
| Resource | Verbs | Purpose |
|---|---|---|
directpvdrives |
get, list, watch, create, update, delete | Manage drive resources. |
directpvvolumes |
get, list, watch, create, update, delete | Manage volume resources. |
directpvnodes |
get, list, watch, create, update, delete | Manage node resources. |
directpvinitrequests |
get, list, watch, create, update, delete | Process drive initialization requests. |
Snapshot API resources
| Resource | Verbs | Purpose |
|---|---|---|
volumesnapshotcontents |
get, list | Support volume snapshot operations. |
volumesnapshots |
get, list | Support volume snapshot operations. |
Storage API resources
| Resource | Verbs | Purpose |
|---|---|---|
csinodes |
get, list, watch | Track CSI node registrations. |
storageclasses |
get, list, watch | Access storage class configurations. |
volumeattachments |
get, list, watch | Track volume attachment status. |
Complete permissions table
| API Group | Resources | Verbs |
|---|---|---|
| (core) | endpoints |
get, list, watch, create, update, delete |
| (core) | events |
list, watch, create, update, patch |
| (core) | nodes |
get, list, watch |
| (core) | persistentvolumes |
get, list, watch, create, delete, patch |
| (core) | persistentvolumeclaims |
get, list, watch, update |
| (core) | persistentvolumeclaims/status |
patch |
| (core) | pods |
get, list, watch |
policy |
podsecuritypolicies |
use |
apiextensions.k8s.io |
customresourcedefinitions |
get, list, watch, create, update, delete, patch |
coordination.k8s.io |
leases |
get, list, watch, update, delete, create |
directpv.min.io |
directpvdrives |
get, list, watch, create, update, delete |
directpv.min.io |
directpvvolumes |
get, list, watch, create, update, delete |
directpv.min.io |
directpvnodes |
get, list, watch, create, update, delete |
directpv.min.io |
directpvinitrequests |
get, list, watch, create, update, delete |
snapshot.storage.k8s.io |
volumesnapshotcontents |
get, list |
snapshot.storage.k8s.io |
volumesnapshots |
get, list |
storage.k8s.io |
csinodes |
get, list, watch |
storage.k8s.io |
storageclasses |
get, list, watch |
storage.k8s.io |
volumeattachments |
get, list, watch |
Security considerations
DirectPV requires the cluster-wide permissions of the resources created during installation to:
- Discover and manage drives across all nodes.
- Provision PersistentVolumes in response to PVCs from any namespace.
- Track pod assignments for volume scheduling.
The permissions are scoped to the minimum required for CSI driver operation. DirectPV does not require permissions to modify secrets, configmaps, or other sensitive resources outside its operational scope.
Installation requirements
The administrator installing DirectPV must have sufficient privileges to create ClusterRoles, ClusterRoleBindings, and other cluster-scoped resources. Once installed, DirectPV operates using its own ServiceAccount with the permissions documented above.