Add vfio-gpu profile for testing KubeVirt DRA#218
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: Sreeja1725 The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Welcome @Sreeja1725! |
|
/cc @alaypatel07 |
5082c16 to
5cece08
Compare
|
Could you please add an e2e test? |
alaypatel07
left a comment
There was a problem hiding this comment.
I was able to run a POC with this, ran into issues due to kernel version mismatch, but was able to launch the example VMI provided here.
|
/wg-device-management |
|
@nojnhuh the e2e test for this will be in kubevirt, is that okay or do we need one here?
|
Something here would be good. If a change here will definitely break KubeVirt tests, we want to know before we even merge. It doesn't need to be super involved, just enough to make sure the feature is wired up and making some visible impact. |
|
For adding a e2e test, the example driver will need to maintain logic for installing KubeVirt. See this: #218 (comment) To begin with, I wanted to avoid depending on kubevirt here and strictly have kubevirt depend on dra-example-driver.
I am wondering if we can hold on to e2e test until little bit later and do it as a follow up. |
Any functionality or examples we add here should not depend on KubeVirt at all. Can we demonstrate the most basic functionality of the feature without KubeVirt? |
The DRA/Kubernetes allocation side can be tested here, and that is the only part we can demonstrate without a consumer like KubeVirt or Kata. We can show that the driver discovers the devices, publishes ResourceSlices, allocates a claim, and exposes the expected CDI/metadata artifacts. The full feature cannot be demonstrated in this repo without KubeVirt/Kata, because what happens after allocation is consumer behavior: something has to consume the device metadata and turn the allocated PCI device into a VM/sandbox attachment. |
We don't have to do anything interesting with the actual metadata. Could a simple example define a Pod that requests a device where metadata is known to be written, and then the Pod's container simply echoes the file? |
Yes that could be done, but it's already covered by the metadata feature: kubernetes/kubernetes#137699 |
We shouldn't be testing here whether Kubernetes implements the feature correctly, but we should have something that would indicate if the wiring in the example driver is missing or outright broken. |
|
Why do we need to add specific code to a project that is supposed to serve as a generic example for developers or a base project for forking? |
@nirdothan This project is not just used for example, it is also used e2e testing for multiple projects:
Using it for kubevirt e2e tests is a natural next step for this project. Secondly because this is an example for developers to fork, having the integration here will make it easier for developers to learn about supporting their device for KubeVirt. Given the above two benefits, forking was avoided and contributing to this project was preferred. |
e553c71 to
617d478
Compare
617d478 to
72779fe
Compare
Signed-off-by: carlory <baofa.fan@daocloud.io>
72779fe to
88673f0
Compare
|
@nojnhuh @nirdothan Can you please take a look? |
7c99a9e to
bdbfb08
Compare
|
PR needs rebase. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Signed-off-by: svarnam <svarnam@nvidia.com>
bdbfb08 to
df20712
Compare
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: Sreeja1725 The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Updates #200
Updates kubevirt/kubevirt#16481
References - kubevirt/enhancements#10
Adds a vfio-gpu device profile for KubeVirt PCI passthrough via DRA, kept separate from the existing simulated gpu profile (containers /pods).