Configuring an SR-IOV InfiniBand network attachment
You can configure an InfiniBand (IB) network device by defining an object.
The following YAML describes an SriovIBNetwork
object:
The ipam Container Network Interface (CNI) plug-in provides IP address management (IPAM) for other CNI plug-ins.
You can use the following methods for IP address assignment:
Static assignment.
Dynamic assignment through a DHCP server. The DHCP server you specify must be reachable from the additional network.
Dynamic assignment through the Whereabouts IPAM CNI plug-in.
Static IP address assignment configuration
The following JSON describes the configuration for static IP address assignment:
Static assignment configuration
{
"ipam": {
"type": "static",
"addresses": [ (1)
{
"address": "<address>", (2)
"gateway": "<gateway>" (3)
}
],
"routes": [ (4)
{
"dst": "<dst>", (5)
"gw": "<gw>" (6)
}
],
"dns": { (7)
"nameservers": ["<nameserver>"], (8)
"domain": "<domain>", (9)
"search": ["<search_domain>"] (10)
}
}
Dynamic IP address assignment configuration
DHCP assignment configuration
Dynamic IP address assignment configuration with Whereabouts
The Whereabouts CNI plug-in allows the dynamic assignment of an IP address to an additional network without the use of a DHCP server.
The following JSON describes the configuration for dynamic IP address assignment with Whereabouts:
Whereabouts assignment configuration
{
"ipam": {
"type": "whereabouts",
"range": "<range>", (1)
"exclude": ["<exclude_part>, ..."], (2)
}
}
Static IP address assignment configuration example
You can configure ipam for static IP address assignment:
{
"ipam": {
"type": "static",
"addresses": [
{
"address": "191.168.1.7"
}
}
}
Dynamic IP address assignment configuration example using DHCP
You can configure ipam for DHCP:
Dynamic IP address assignment configuration example using Whereabouts
You can configure ipam to use Whereabouts:
{
"ipam": {
"range": "192.0.2.192/27",
"exclude": [
"192.0.2.192/30",
"192.0.2.196/32"
]
}
}
Prerequisites
Install the OpenShift CLI (
oc
).Log in as a user with
cluster-admin
privileges.
Procedure
Create a
SriovIBNetwork
object, and then save the YAML in the<name>.yaml
file, where<name>
is a name for this additional network. The object specification might resemble the following example:apiVersion: sriovnetwork.openshift.io/v1
kind: SriovIBNetwork
metadata:
name: attach1
namespace: openshift-sriov-network-operator
spec:
resourceName: net1
networkNamespace: project2
ipam: |-
{
"type": "host-local",
"subnet": "10.56.217.0/24",
"rangeStart": "10.56.217.171",
"rangeEnd": "10.56.217.181",
"gateway": "10.56.217.1"
}
To create the object, enter the following command:
where
<name>
specifies the name of the additional network.Optional: To confirm that the
NetworkAttachmentDefinition
object that is associated with theSriovIBNetwork
object that you created in the previous step exists, enter the following command. Replace<namespace>
with the networkNamespace you specified in theSriovIBNetwork
object.$ oc get net-attach-def -n <namespace>