Skip to content

DRA: ResourceSlice Mixins #5234

Open
Open
@mortent

Description

@mortent

Enhancement Description

DRA requires that drivers publish all available devices on a node/cluster in ResourceSlice objects. There are scenarios where the number of devices can be pretty large and each device might have a relatively large amount of metadata associated with it, primarily in the form of Attributes or Capacity. This has a few consequences:

  • Several of the devices might have similar metadata, resulting in a lot of duplication between the published devices.
  • The size of the data required to specify each device reduces the number of devices that can be defined in a single ResourceSlice without hitting the Kubernetes size limit.

The latter can be addressed by splitting the devices across multiple ResourceSlices within a single pool, but that isn't always an option. In particular, DRA currently doesn't allow sharing counters across ResourceSlices.

Mixins provides a way to define shared metadata for devices or counter sets separately from devices and then include them by reference. This enables less duplication of information in ResourceSlices and smaller footprint for each device in terms of size.

This was originally part of #4815, but missed the 1.33 deadline, so this functionality is being split out into a separate KEP.

Please keep this description up to date. This will help the Enhancement Team to track the evolution of the enhancement efficiently.

Metadata

Metadata

Assignees

Labels

lead-opted-inDenotes that an issue has been opted in to a releasesig/nodeCategorizes an issue or PR as relevant to SIG Node.sig/schedulingCategorizes an issue or PR as relevant to SIG Scheduling.stage/alphaDenotes an issue tracking an enhancement targeted for Alpha statuswg/device-managementCategorizes an issue or PR as relevant to WG Device Management.

Type

No type

Projects

Status

🏗 In progress

Status

Needs Triage

Status

No status

Status

Triage

Status

Pre-Alpha

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions