KEP-6072keps/sig-node/6072-dra-standard-numanode
DRA: Standard numaNode Device Attribute
Standardize resource.kubernetes.io/numaNode as a well-known DRA device attribute alongside the existing pcieRoot and pciBusID. The value can be: - A scalar int — the device's physical NUMA node (from the kernel's numa_node sysfs entry). Works without any feature gate. - An integer list (requires KEP-5491 DRAListTypeAttributes feature gate) — physical NUMA n… Full summary
Standardize resource.kubernetes.io/numaNode as a well-known DRA device attribute alongside the existing pcieRoot and pciBusID. The value can be: - A scalar int — the device's physical NUMA node (from the kernel's numa_node sysfs entry). Works without any feature gate. - An integer list (requires KEP-5491 DRAListTypeAttributes feature gate) — physical NUMA node first, followed by same-socket NUMA nodes at the minimum ACPI SLIT distance This enables cross-driver NUMA co-placement via matchAttribute with KEP-5491 non-empty intersection matching: yaml constraints: - matchAttribute: resource.kubernetes.io/numaNode requests: [gpu, nic, cpu, mem] CPU device 4 (scalar) ∩ NIC [6, 4, 5, 7] = {4} ≠ ∅ → match. (matchAttribute compares a scalar from one driver against a list from another, so the CPU driver can publish a plain 4 rather than a single-element list.) Today, six DRA drivers publish NUMA node information under five different vendor-specific attribute names. matchAttribute requires a common name. Users cannot write a cross-driver NUMA co-placement constraint without middleware. This proposal standardizes the name and semantics so that one constraint works across all drivers.
Facts
- Authors
- @johnahull
- Approvers
- @mrunalp
- Reviewers
- @ffromani
- PRR approvers
- @kannon92stable
- Tracking issue
- #6072(opens GitHub in a new tab) closedcompletedclosed 2026-08-18 18:51 UTCsig/nodestage/stablewg/device-management
- Milestones
- stable v1.37
- Participating SIGs
- sig-scheduling
- Feature gates
- none
- Created / last updated
- 2026-05-12 / none