WIP Add doc for the SR-IOV Network Operator#16393
WIP Add doc for the SR-IOV Network Operator#16393pliurh wants to merge 3 commits intoopenshift:masterfrom
Conversation
zshi-redhat
left a comment
There was a problem hiding this comment.
It might be worth having a few examples of Pod spec for using SR-IOV in different mode, kernel mode, userspace mode and RDMA.
| Resources, which are generated and updated by the operator automatically. | ||
|
|
||
| One CR is created for each worker node, and shares the same name as the node. In | ||
| the interface list, you can the information of the network devices. |
There was a problem hiding this comment.
missing word at you can <> the information
| <1> The name of the CR. | ||
| <2> The namespace of the CR, this must be in the same namespace of operator. | ||
| <3> The resource name of SR-IOV device plugin. Prefix `openshift.io/` will be | ||
| add when it's referred in pod annotation. It's allowed to create multiple CRs of `SriovNetworkNodePolicy` for one resource name. |
There was a problem hiding this comment.
add -> added
pod annotation -> pod spec? or net-attach-def ?
| The SR-IOV Network Operator also introduces a CRD `SriovNetwork` for creating | ||
| the Custom Resource of `NetworkAttachmentDefinition` of SR-IOV CNI plugin. When | ||
| you create a CR of `SriovNetwork`, the operator will created a CR of | ||
| `NetworkAttachmentDefinition` according. |
|
|
||
| [NOTE] | ||
| ===== | ||
| You shall not modify or delete a Custom `SriovNetwork`, when it has been used by |
There was a problem hiding this comment.
Custom 'SriovNetwork' -> 'SriovNetwork' Custom Resource.
| ===== | ||
|
|
||
| The following is an example of a typical Custom Resource for | ||
| `SriovNetworkNodePolicy`. |
There was a problem hiding this comment.
'SriovNetworkNodePolicy' -> 'SriovNetwork'
| "rangeStart": "10.56.217.171", | ||
| "rangeEnd": "10.56.217.181", | ||
| "routes": [{ | ||
| "dst": "10.0.0.0/8" |
There was a problem hiding this comment.
overwrite default route is not possible with current ipam plugin, perhaps add an example of non-default route address.
| Range from 0 to 99. | ||
| <6> The MTU of the virtual functions. Range from 1 to 9000. Leave it blank if | ||
| you don't need to change the MTU. | ||
| <7> The number of the virtual functions for each SR-IOV network device. |
There was a problem hiding this comment.
for each SR-IOV network device => will be created for each SR-IOV physical network device
| <6> The MTU of the virtual functions. Range from 1 to 9000. Leave it blank if | ||
| you don't need to change the MTU. | ||
| <7> The number of the virtual functions for each SR-IOV network device. | ||
| <8> The vendor hex code of SR-IoV device. Allowed value "8086", "15b3". |
There was a problem hiding this comment.
might be good to add note that
- it's not necessary to fill all nicSelector filters in every policy
- some nicSelector filters may conflict with each other if not configured properly, such as
pfNamesandrootDevices.
| <11> The PCI addresses of SR-IoV physical function. | ||
| <12> The driver type of the virtual functions. Allowed value "netdevice", | ||
| "vfio-pci". Defaults to "netdevice". | ||
| <13> The RDMA mode. Defaults to false. |
There was a problem hiding this comment.
This may be worth more explanation or notes on
- which types of NIC are supported for RDMA mode in current release,
- supported RDMA mode is RoCE.
- consequence of configuring this option, it should not affect other non-RDMA capable network devices be discovered and used with the same resource name, this just enables SR-IOV device plugin to attach additional RDMA device spec (
/dev/infinibandetc) when RDMA device is allocated.
There was a problem hiding this comment.
I don' think we shall suggest user to use the same resource name for both RDMA and non-RDMA devices even it is doable, shall we? Since normally the RDMA devices shall be in a separated network.
There was a problem hiding this comment.
When RDMA flag is configured to true, it doesn't prevent user from using RDMA enabled VF as a network device. A device can be used in either mode.
| * Initialize the supported SR-IOV NIC models on nodes. | ||
| * Provision SR-IOV network device plugin on nodes. | ||
| * Provision SR-IOV CNI plugin executable on nodes. | ||
| * Manage configuration of SR-IOV device plugin. |
There was a problem hiding this comment.
SR-IOV device plugin -> SR-IOV network device plugin
|
This PR is created against openshift-docs:master, shall we do that in 4.2 branch? I didn't see the files in this PR included in modules directory on master branch. |
|
Hi @zshi-redhat! For 4.2 features, a PR against master is the correct approach. Then we'll cherry-pick the (squashed) commit into the 4.2 branch. @pliurh thanks for opening this PR! |
|
@vikram-redhat, what's the process for this? It's contributed content for a 4.2 feature. It's related to Multus, but SR-IOV is more complex so the feature includes an Operator. For docs this epic was considered out of scope. |
| kind: Namespace | ||
| metadata: | ||
| name: openshift-sriov | ||
| name: openshift-sriov-network-operator |
There was a problem hiding this comment.
This namespace name depends on openshift/sriov-network-operator#70
There was a problem hiding this comment.
change namespace back to 'sriov-network-operator' for 4.2. https://bugzilla.redhat.com/show_bug.cgi?id=1746222
| <11> The PCI addresses of SR-IoV physical function. | ||
| <12> The driver type of the virtual functions. Allowed value "netdevice", | ||
| "vfio-pci". Defaults to "netdevice". | ||
| <13> The RDMA mode. Defaults to false. |
There was a problem hiding this comment.
When RDMA flag is configured to true, it doesn't prevent user from using RDMA enabled VF as a network device. A device can be used in either mode.
| * The SR-IOV CNI plug-in plumbs VF interfaces allocated from the SR-IOV device | ||
| plug-in directly into a Pod. | ||
|
|
||
| You can use the {product-title} console to install SR-IOV, by deploying, |
There was a problem hiding this comment.
SR-IOV Operator will be the only interface user needs to interact with, perhaps move above two paragraphs about sriov network device plugin and sriov cni after introducing all the operator features. For example, maybe have detailed introduction of each component that managed by SR-IOV operator after listing the operator features.
| if a NetworkAttachmentDefinition CR of SRIOV CNI plugin is referred in the Pod | ||
| annotation. | ||
| ===== | ||
| + |
There was a problem hiding this comment.
Perhaps adding pod examples for both dpdk and rdma mode.
|
If you enable Allow edits from maintainers. I can edit this PR directly: https://help.github.com/en/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork (If it's enabled already, I can't tell. GitHub doesn't say.) |
It's enabled already. |
|
Perfect. Then I'll push any updates back to the PR for your review. |
|
Ended up with #16679 which is not what I intended; I may ultimately create a clean PR with the proposed changes. GitHub makes it inconvenient to push to someone else's PR. |
|
@jboxman can this be closed? |
|
@pliurh: 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/test-infra repository. |
|
Merged in #16679. |
https://jira.coreos.com/browse/SDN-416