Skip to content

docs: KubeVirt with DRA - #473

Merged
mikemckiernan merged 4 commits into
NVIDIA:mainfrom
mikemckiernan:mmck-kubevirt-dra
Aug 21, 2026
Merged

docs: KubeVirt with DRA#473
mikemckiernan merged 4 commits into
NVIDIA:mainfrom
mikemckiernan:mmck-kubevirt-dra

Conversation

@mikemckiernan

@mikemckiernan mikemckiernan commented Aug 20, 2026

Copy link
Copy Markdown
Member

@mikemckiernan mikemckiernan self-assigned this Aug 20, 2026
@mikemckiernan mikemckiernan added the documentation Issue/PR focused on fixing/editing/adding documentation bits label Aug 20, 2026
@github-actions

Copy link
Copy Markdown

Documentation preview

https://nvidia.github.io/cloud-native-docs/review/pr-473

Comment thread gpu-operator/gpu-operator-kubevirt-dra.rst Outdated
Comment on lines +489 to +497
#. On the host, list the Fabric Manager partitions and their status:

.. code-block:: console

$ /run/nvidia/fmpm \
--unix-domain-socket /run/nvidia-fabricmanager/socket \
-l

Confirm that the partition selected for the claim reports ``isActive: 1``.

@varunrsekar varunrsekar Aug 20, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This does not exist.
You may use this example but : https://github.com/NVIDIA/go-nvfm/blob/main/examples/list-partitions/main.go
The steps are:

git clone https://github.com/NVIDIA/go-nvfm && cd go-nvfm
make example-list-partitions
kubectl cp ./list-partitions -n gpu-operator <driver-pod>:/run/nvidia/list-partitions
kubectl exec -n gpu-operator <driver-pod> -- bash -c "NVFM_UNIX_SOCKET_PATH=/run/nvidia-fabricmanager/socket /run/nvidia/list-partitions"

But I don't think we should include this validation step. cc: @shivamerla

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@varunrsekar this could be useful for savvy admins who want to check that the partitions are activated. Anyway the repo is public, they will report if any issues with it. We cannot use this directly? https://github.com/NVIDIA/Fabric-Manager-Client

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very grateful to you both for the review and letting me know the client isn't automatically installed. (Why?)

I revised to group the two verification/informational commands under an optional step that mentions "requires additional software." It's honest, hopefully prevents surprise, and still helps a determined admin gain more knowledge. Well, imo.

If it's still problematic, plmk and thanks again!

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We cannot use this directly? https://github.com/NVIDIA/Fabric-Manager-Client

No there's a couple of issues with it:

  1. A bug that prevents it from working with unix socket
  2. Building the binary require installing jsoncpp and the FM SDK

The go-nvfm examples have no dependeicies so would be easier to build.

this could be useful for savvy admins who want to check that the partitions are activated

And yeah its good if they know what they're doing. We're injecting a binary into the driver container and running something inside it so I was skeptical. Maybe we should come up with instructions using a debug container?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mikemckiernan FYI The verification steps require the client to be run inside the driver container to work.

"featureGates":{
"PassthroughSupport":true,
"DeviceMetadata":true,
"FabricManagerPartitioning":true # For NVLink 5 or later systems with NVSwitch-managed fabric.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a command to copy and paste... but I think the comment would break it?

@mikemckiernan mikemckiernan Aug 21, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe it does, but I was willing to include it because:

A) I didn't want two copy-paste commands that are identical except for one line--confusing, imo.
B) If I add "For NVLink5 or later...add the "FabricManagerPartitioning":true feature gate" above or below the code block, I fear it'll get missed. Conversely, if I put a "If you host isn't, remove..." above or below, also might not get read and I'm unsure if that was tested or could cause a problem.

My thinking is that nearly cut-n-paste that is clear and has the added bonus of failing-command-attention-getting behavior was the right choice.

If you have a suggestion, please share.

* Host services and workloads must release open handles to a GPU before it can be bound to ``vfio-pci``.
* KubeVirt supports exactly one allocated device for each named request.
Use one named request for each GPU, as shown in this procedure.
* Do not mix DRA and device-plugin GPU entries in the same virtual machine.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need another warning here, perhaps with input from engineering, about our race condition between GPU and VFIO allocation

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shivamerla, @varunrsekar, plmk if you agree with Babak's concern. I believe Babak is referring to the second bullet from the KubeVirt VFIO limitations and considerations in the DRA driver docs.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes Mike, better to highlight that limitation here as well as mixed workloads are allowed now by default with DRA.

Signed-off-by: Mike McKiernan <mmckiernan@nvidia.com>
Signed-off-by: Mike McKiernan <mmckiernan@nvidia.com>
Signed-off-by: Mike McKiernan <mmckiernan@nvidia.com>
Signed-off-by: Mike McKiernan <mmckiernan@nvidia.com>
@mikemckiernan
mikemckiernan merged commit 29d8f8c into NVIDIA:main Aug 21, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Issue/PR focused on fixing/editing/adding documentation bits

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants