Kubernetes v1.36 documentation is no longer actively maintained. The version you are currently viewing is a static snapshot. For up-to-date information, see the latest version.
Dynamic Resource Allocation (DRA) adds powerful scheduling and device management
capabilities. Because DRA components update ResourceClaim status, cluster
administrators should configure authorization for those updates with explicit,
least-privilege RBAC.
Kubernetes v1.36 [beta](enabled by default)Starting in Kubernetes v1.36, DRA status updates use synthetic subresources and, in some cases, specialized node-aware verbs.
For DRA status updates,In addition to granting update permissions on the
resourceclaims/status subresource, cluster administrators must grant permissions on
specific "synthetic" subresources based on the exact fields a component needs to modify.
This enforces the principle of least privilege between the scheduler, custom controllers,
and DRA drivers.
The DRA authorization checks are divided into two synthetic subresources:
resourceclaims/bindingstatus.allocation and status.reservedFor.update and patch verbs.resourceclaims/driverstatus.devices.When authorizing updates to resourceclaims/driver, use the appropriate
specialized verb prefix:
associated-node:<verb> (for example, associated-node:update)arbitrary-node:<verb> (for example, arbitrary-node:patch)apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: dra-binding-updater
rules:
- apiGroups: ["resource.k8s.io"]
resources: ["resourceclaims/status"]
verbs: ["get", "patch", "update"]
- apiGroups: ["resource.k8s.io"]
resources: ["resourceclaims/binding"]
verbs: ["patch", "update"]
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: dra-node-driver-status-updater
rules:
- apiGroups: ["resource.k8s.io"]
resources: ["resourceclaims/status"]
verbs: ["get", "patch", "update"]
- apiGroups: ["resource.k8s.io"]
resources: ["resourceclaims/driver"]
verbs: ["associated-node:patch", "associated-node:update"]
resourceNames: ["dra.example.com"]
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: dra-multinode-status-updater
rules:
- apiGroups: ["resource.k8s.io"]
resources: ["resourceclaims/status"]
verbs: ["get", "patch", "update"]
- apiGroups: ["resource.k8s.io"]
resources: ["resourceclaims/driver"]
verbs: ["arbitrary-node:patch", "arbitrary-node:update"]
resourceNames: ["dra.example.com"]
To apply these patterns in a running cluster, see Harden Dynamic Resource Allocation in Your Cluster.