- Configuring an SR-IOV InfiniBand network attachment
- InfiniBand device configuration object
- Configuration for ipam CNI plug-in
- Static IP address assignment configuration
- Dynamic IP address assignment configuration
- Dynamic IP address assignment configuration with Whereabouts
- Static IP address assignment configuration example
- Dynamic IP address assignment configuration example using DHCP
- Dynamic IP address assignment configuration example using Whereabouts
- Configuration for ipam CNI plug-in
- Configuring SR-IOV additional network
- Next steps
- Additional resources
- InfiniBand device configuration object
Configuring an SR-IOV InfiniBand network attachment
You can configure an InfiniBand (IB) network attachment for an Single Root I/O Virtualization (SR-IOV) device in the cluster.
InfiniBand device configuration object
You can configure an InfiniBand (IB) network device by defining an SriovIBNetwork
object.
The following YAML describes an SriovIBNetwork
object:
apiVersion: sriovnetwork.openshift.io/v1
kind: SriovIBNetwork
metadata:
name: <name> (1)
namespace: openshift-sriov-network-operator (2)
spec:
resourceName: <sriov_resource_name> (3)
networkNamespace: <target_namespace> (4)
ipam: |- (5)
{}
linkState: <link_state> (6)
capabilities: <capabilities> (7)
1 | A name for the object. The SR-IOV Network Operator creates a NetworkAttachmentDefinition object with same name. |
2 | The namespace where the SR-IOV Operator is installed. |
3 | The value for the spec.resourceName parameter from the SriovNetworkNodePolicy object that defines the SR-IOV hardware for this additional network. |
4 | The target namespace for the SriovIBNetwork object. Only pods in the target namespace can attach to the network device. |
5 | Optional: A configuration object for the IPAM CNI plug-in as a YAML block scalar. The plug-in manages IP address assignment for the attachment definition. |
6 | Optional: The link state of virtual function (VF). Allowed values are enable , disable and auto . |
7 | Optional: The capabilities to configure for this network. You can specify “{ “ips”: true }” to enable IP address support or “{ “infinibandGUID”: true }” to enable IB Global Unique Identifier (GUID) support. |
Configuration for ipam CNI plug-in
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)
}
}
}
1 | An array describing IP addresses to assign to the virtual interface. Both IPv4 and IPv6 IP addresses are supported. |
2 | An IP address and network prefix that you specify. For example, if you specify 10.10.21.10/24 , then the additional network is assigned an IP address of 10.10.21.10 and the netmask is 255.255.255.0 . |
3 | The default gateway to route egress network traffic to. |
4 | An array describing routes to configure inside the pod. |
5 | The IP address range in CIDR format, such as 192.168.17.0/24 , or 0.0.0.0/0 for the default route. |
6 | The gateway where network traffic is routed. |
7 | Optional: DNS configuration. |
8 | An of array of one or more IP addresses for to send DNS queries to. |
9 | The default domain to append to a hostname. For example, if the domain is set to example.com , a DNS lookup query for example-host is rewritten as example-host.example.com . |
10 | An array of domain names to append to an unqualified hostname, such as example-host , during a DNS lookup query. |
Dynamic IP address assignment configuration
The following JSON describes the configuration for dynamic IP address address assignment with DHCP.
Renewal of DHCP leases A pod obtains its original DHCP lease when it is created. The lease must be periodically renewed by a minimal DHCP server deployment running on the cluster. To trigger the deployment of the DHCP server, you must create a shim network attachment by editing the Cluster Network Operator configuration, as in the following example: Example shim network attachment definition
|
DHCP assignment configuration
{
"ipam": {
"type": "dhcp"
}
}
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)
}
}
1 | Specify an IP address and range in CIDR notation. IP addresses are assigned from within this range of addresses. |
2 | Optional: Specify a list of IP addresses and ranges in CIDR notation. IP addresses within an excluded address range are not assigned. |
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:
{
"ipam": {
"type": "dhcp"
}
}
Dynamic IP address assignment configuration example using Whereabouts
You can configure ipam to use Whereabouts:
{
"ipam": {
"type": "whereabouts",
"range": "192.0.2.192/27",
"exclude": [
"192.0.2.192/30",
"192.0.2.196/32"
]
}
}
Configuring SR-IOV additional network
You can configure an additional network that uses SR-IOV hardware by creating a SriovIBNetwork
object. When you create a SriovIBNetwork
object, the SR-IOV Operator automatically creates a NetworkAttachmentDefinition
object.
Do not modify or delete a |
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:
$ oc create -f <name>.yaml
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>