Skip to content

Commit 628bf27

Browse files
Merge pull request Mellanox#265 from e0ne/nv-ipam-ocp
feat: Use NV-IPAM form OCP examples
2 parents 816d0bc + 0014761 commit 628bf27

File tree

1 file changed

+70
-23
lines changed

1 file changed

+70
-23
lines changed

docs/openshift/deployment-guide-openshift.rst

Lines changed: 70 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ See Deployment Examples for OCP:
220220
Deployment Examples For OpenShift Container Platform
221221
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
222222

223-
In OCP, some components are deployed by default like Multus and WhereAbouts, whereas others, such as NFD and SR-IOV Network Operator must be deployed manually, as described in the Installation section.
223+
In OCP, some components are deployed by default like Multus and CNI Plugins, whereas others, such as NFD and SR-IOV Network Operator must be deployed manually, as described in the Installation section.
224224

225225
In addition, since there is no use of the Helm chart, the configuration should be done via the NicClusterPolicy CRD.
226226

@@ -274,8 +274,28 @@ SR-IOV device plugin, single SR-IOV resource pool:
274274
}
275275
]
276276
}
277+
nvIpam:
278+
image: nvidia-k8s-ipam
279+
repository: |nvidia-ipam-repository|
280+
version: |nvidia-ipam-version|
281+
imagePullSecrets: []
282+
enableWebhook: false
277283
278284
Following the deployment, the Network Operator should be configured, and K8s networking deployed to use it in pod configuration.
285+
286+
To create an NV-IPAM IPPool, apply:
287+
288+
.. code-block:: yaml
289+
290+
apiVersion: nv-ipam.nvidia.com/v1alpha1
291+
kind: IPPool
292+
metadata:
293+
name: my-pool
294+
spec:
295+
subnet: 192.168.0.0/24
296+
perNodeBlockSize: 100
297+
gateway: 192.168.0.1
298+
279299
The `host-device-net.yaml`` configuration file for such a deployment:
280300

281301
.. code-block:: yaml
@@ -289,18 +309,8 @@ The `host-device-net.yaml`` configuration file for such a deployment:
289309
resourceName: "hostdev"
290310
ipam: |
291311
{
292-
"type": "whereabouts",
293-
"datastore": "kubernetes",
294-
"kubernetes": {
295-
"kubeconfig": "/etc/cni/net.d/whereabouts.d/whereabouts.kubeconfig"
296-
},
297-
"range": "192.168.3.225/28",
298-
"exclude": [
299-
"192.168.3.229/30",
300-
"192.168.3.236/32"
301-
],
302-
"log_file" : "/var/log/whereabouts.log",
303-
"log_level" : "info"
312+
"type": "nv-ipam",
313+
"poolName": "my-pool"
304314
}
305315
306316
The `pod.yaml` configuration file for such a deployment:
@@ -360,8 +370,29 @@ Note that the SR-IOV Network Operator is required as described in the Deployment
360370
readinessProbe:
361371
initialDelaySeconds: 10
362372
periodSeconds: 30
373+
nvIpam:
374+
image: nvidia-k8s-ipam
375+
repository: |nvidia-ipam-repository|
376+
version: |nvidia-ipam-version|
377+
imagePullSecrets: []
378+
enableWebhook: false
379+
380+
SriovNetworkNodePolicy and K8s networking should be deployed.
381+
382+
NV-IPAM IPPool should be created before SriovNetwork:
383+
384+
.. code-block:: yaml
385+
386+
apiVersion: nv-ipam.nvidia.com/v1alpha1
387+
kind: IPPool
388+
metadata:
389+
name: my-pool
390+
namespace: openshift-sriov-network-operator
391+
spec:
392+
subnet: 192.168.0.0/24
393+
perNodeBlockSize: 100
394+
gateway: 192.168.0.1
363395
364-
Sriovnetwork node policy and K8s networking should be deployed.
365396
`sriovnetwork-node-policy.yaml` configuration file for such a deployment:
366397

367398
.. code-block:: yaml
@@ -399,14 +430,8 @@ The `sriovnetwork.yaml` configuration file for such a deployment:
399430
resourceName: "sriovlegacy"
400431
ipam: |
401432
{
402-
"datastore": "kubernetes",
403-
"kubernetes": {
404-
"kubeconfig": "/etc/cni/net.d/whereabouts.d/whereabouts.kubeconfig"
405-
},
406-
"log_file": "/tmp/whereabouts.log",
407-
"log_level": "debug",
408-
"type": "whereabouts",
409-
"range": "192.168.101.0/24"
433+
"type": "nv-ipam",
434+
"poolName": "my-pool"
410435
}
411436
412437
@@ -483,7 +508,25 @@ The following is an example of RDMA Shared with MacVlanNetwork:
483508
image: k8s-rdma-shared-dev-plugin
484509
repository: |k8s-rdma-shared-dev-plugin-repository|
485510
version: |k8s-rdma-shared-dev-plugin-version|
511+
nvIpam:
512+
image: nvidia-k8s-ipam
513+
repository: |nvidia-ipam-repository|
514+
version: |nvidia-ipam-version|
515+
imagePullSecrets: []
516+
enableWebhook: false
517+
518+
To create an NV-IPAM IPPool, apply:
519+
520+
.. code-block:: yaml
486521
522+
apiVersion: nv-ipam.nvidia.com/v1alpha1
523+
kind: IPPool
524+
metadata:
525+
name: my-pool
526+
spec:
527+
subnet: 192.168.0.0/24
528+
perNodeBlockSize: 100
529+
gateway: 192.168.0.1
487530
488531
The `macvlan-net-ocp.yaml` configuration file for such a deployment in an OpenShift Platform:
489532

@@ -498,7 +541,11 @@ The `macvlan-net-ocp.yaml` configuration file for such a deployment in an OpenSh
498541
master: enp4s0f0np0
499542
mode: bridge
500543
mtu: 1500
501-
ipam: '{"type": "whereabouts", "range": "16.0.2.0/24", "gateway": "16.0.2.1"}'
544+
ipam: |
545+
{
546+
"type": "nv-ipam",
547+
"poolName": "my-pool"
548+
}
502549
503550
The `pod.yaml` configuration file for such a deployment:
504551

0 commit comments

Comments
 (0)