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.

ResourceNameNamespace
ServiceAccountdirectpv-min-iodirectpv
ClusterRoledirectpv-min-ioCluster-scoped
ClusterRoleBindingdirectpv-min-ioCluster-scoped
Roledirectpv-min-iodirectpv
RoleBindingdirectpv-min-iodirectpv

ClusterRole permissions

The directpv-min-io ClusterRole grants the following permissions:

Core API resources

ResourceVerbsPurpose
endpointsget, list, watch, create, update, deleteLeader election and service discovery.
eventslist, watch, create, update, patchReport events for drives, volumes, and operations.
nodesget, list, watchDiscover cluster nodes for drive management.
persistentvolumesget, list, watch, create, delete, patchProvision and manage PersistentVolumes.
persistentvolumeclaimsget, list, watch, updateProcess PVC requests and update status.
persistentvolumeclaims/statuspatchUpdate PVC status during volume operations.
podsget, list, watchTrack pod assignments for volumes.

Policy API resources

ResourceVerbsPurpose
podsecuritypoliciesuseApply pod security policies (if enabled).

API extensions resources

ResourceVerbsPurpose
customresourcedefinitionsget, list, watch, create, update, delete, patchManage DirectPV CRDs.

Coordination API resources

ResourceVerbsPurpose
leasesget, list, watch, update, delete, createController leader election.

DirectPV API resources

ResourceVerbsPurpose
directpvdrivesget, list, watch, create, update, deleteManage drive resources.
directpvvolumesget, list, watch, create, update, deleteManage volume resources.
directpvnodesget, list, watch, create, update, deleteManage node resources.
directpvinitrequestsget, list, watch, create, update, deleteProcess drive initialization requests.

Snapshot API resources

ResourceVerbsPurpose
volumesnapshotcontentsget, listSupport volume snapshot operations.
volumesnapshotsget, listSupport volume snapshot operations.

Storage API resources

ResourceVerbsPurpose
csinodesget, list, watchTrack CSI node registrations.
storageclassesget, list, watchAccess storage class configurations.
volumeattachmentsget, list, watchTrack volume attachment status.

Complete permissions table

API GroupResourcesVerbs
(core)endpointsget, list, watch, create, update, delete
(core)eventslist, watch, create, update, patch
(core)nodesget, list, watch
(core)persistentvolumesget, list, watch, create, delete, patch
(core)persistentvolumeclaimsget, list, watch, update
(core)persistentvolumeclaims/statuspatch
(core)podsget, list, watch
policypodsecuritypoliciesuse
apiextensions.k8s.iocustomresourcedefinitionsget, list, watch, create, update, delete, patch
coordination.k8s.ioleasesget, list, watch, update, delete, create
directpv.min.iodirectpvdrivesget, list, watch, create, update, delete
directpv.min.iodirectpvvolumesget, list, watch, create, update, delete
directpv.min.iodirectpvnodesget, list, watch, create, update, delete
directpv.min.iodirectpvinitrequestsget, list, watch, create, update, delete
snapshot.storage.k8s.iovolumesnapshotcontentsget, list
snapshot.storage.k8s.iovolumesnapshotsget, list
storage.k8s.iocsinodesget, list, watch
storage.k8s.iostorageclassesget, list, watch
storage.k8s.iovolumeattachmentsget, 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.

On this page