Skip to main content
Dynamic Resource Allocation is Kubernetes’ structured device-allocation API (GA in 1.34), replacing opaque extended-resource integers for GPUs and other accelerators. Workloads request devices through ResourceClaims, drivers publish inventory through ResourceSlices, and DeviceClasses define selectable device categories with CEL expressions. These are built-in resource.k8s.io APIs, not CRDs - Radar discovers them automatically on any cluster that serves the group (1.32+ with the feature enabled, 1.34+ by default).

What Radar Shows

ResourceClaim Detail View:
  • Allocation lifecycle status: Pending (no device assigned), Allocated (devices assigned and reserved), or Unreserved - allocated but not held by any consumer, flagged with a warning since a long-lived unreserved claim leaks a device
  • Device requests with their DeviceClass - handles every served API shape (exactly and firstAvailable subrequests in v1/v1beta2, flat deviceClassName in v1beta1)
  • Allocation results: driver, pool, and device for each assigned request
  • Reserved-for consumers with clickable Pod links
  • Per-device health conditions when drivers report them
Related Resources, both directions:
  • Pods show their ResourceClaims - direct references and template-generated claims (resolved through status.resourceClaimStatuses)
  • Claims link back to their DeviceClasses and to the Pods holding the reservation
DeviceClass Detail View: CEL selector expressions and opaque driver configuration. A class with zero selectors matches all devices - Radar says so instead of showing an empty section. ResourceSlice Detail View: the per-node device inventory a driver publishes - driver, pool, node link, and each device with its attributes (product name, driver version) and capacity (memory). Resource Browser: claims list with allocation status, device class, allocated driver, and reservation columns - all filterable. ResourceSlices list driver, pool, node, and device count.

Supported Kinds

KindGroupTopologyDetail ViewAI Summary
ResourceClaimresource.k8s.io (v1, v1beta2)RelationshipsYesYes
ResourceClaimTemplateresource.k8s.io (v1, v1beta2)-YesYes
DeviceClassresource.k8s.io (v1, v1beta2)RelationshipsYesYes
ResourceSliceresource.k8s.io (v1, v1beta2)-YesYes
GPU visibility doesn’t require DRA: Radar also renders classic extended resources (nvidia.com/gpu, amd.com/gpu, gpu.intel.com/*) on node capacity, pod requests, and as a GPU column in the nodes and pods tables - it appears automatically when GPU-bearing rows load.

RBAC

Radar’s Helm chart grants read access to the resource.k8s.io group by default (rbac.crdGroups.dra: true), so DRA objects show up with no extra setup. Set it to false if your org scopes Radar’s RBAC more tightly and you don’t run DRA.