kubevirt / community

Community content
https://kubevirt.io
46 stars 101 forks source link

Design-proposal: KubeVirt DRA design proposal #293

Open rthallisey opened 1 month ago

rthallisey commented 1 month ago

DRA (Dynamic Resource Allocation) design proposal.

What this PR does / why we need it:

KubeVirt DRA integration will allow VM users fine-grained control of devices. This is important for many use-cases:

DRA is not a device-plugin replacement - it solves more problems.

Release note:

None
kubevirt-bot commented 1 month ago

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: Once this PR has been reviewed and has the lgtm label, please assign fabiand for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files: - **[OWNERS](https://github.com/kubevirt/community/blob/main/OWNERS)** Approvers can indicate their approval by writing `/approve` in a comment Approvers can cancel approval by writing `/approve cancel` in a comment
rthallisey commented 1 month ago

cc @varunrsekar

alaypatel07 commented 1 month ago

/label sig-api

kubevirt-bot commented 1 month ago

@alaypatel07: The label(s) /label sig-api cannot be applied. These labels are supported: good-first-issue. Is this label configured under labels -> additional_labels or labels -> restricted_labels in plugin.yaml?

In response to [this](https://github.com/kubevirt/community/pull/293#issuecomment-2117862541): >/label sig-api Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
maiqueb commented 1 month ago

/sig api /cc

alicefr commented 1 month ago

/cc

alicefr commented 1 month ago

@rthallisey one thing that is difficult for me to model with DRA is how we pass the device information. Today, there is an implicit API/mechanism between the device plugin and kubevirt how the device information are passed through environmental variables. For example, kubevirt cannot work out-of-the-box with any device plugins. Here, we kind have the some problem. Do you have any ideas how we could formalize more the mechanism how to pass the device information?

iholder101 commented 1 month ago

/sig compute /cc FYI @jean-edouard

fabiand commented 1 month ago

Hey. Does it make sense to split this proposal into two:

  1. Proposal/Design how DRA resources can be consumed by KubeVirt - this is mostly api integration and then plumbing
  2. Proposal/Design how DRA becomes a DRA provider for it's own resources. This is mostly about how we can change/extend the DP work to then expose DRA resources instead of DP.

Thoughts?

@alicefr @vladikr

rthallisey commented 2 days ago

@alicefr

@rthallisey one thing that is difficult for me to model with DRA is how we pass the device information. Today, there is an implicit API/mechanism between the device plugin and kubevirt how the device information are passed through environmental variables. For example, kubevirt cannot work out-of-the-box with any device plugins. Here, we kind have the some problem. Do you have any ideas how we could formalize more the mechanism how to pass the device information?

@varunrsekar is discussing this with upstream DRA folks. We're working on a path to formalize device info in vendor plugins.