You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
to be deployed on RDMA & GPU supporting nodes (required for GPUDirect workloads).
91
91
For NVIDIA GPU driver version < 465. Check [compatibility notes](#compatibility-notes) for details
92
92
- `ibKubernetes`: [InfiniBand Kubernetes](https://github.com/Mellanox/ib-kubernetes/) and related configurations.
93
-
- `SecondaryNetwork`: Specifies components to deploy in order to facilitate a secondary network in Kubernetes. It consists of the following optionally deployed components:
93
+
- `secondaryNetwork`: Specifies components to deploy in order to facilitate a secondary network in Kubernetes. It consists of the following optionally deployed components:
94
94
- [Multus-CNI](https://github.com/intel/multus-cni): Delegate CNI plugin to support secondary networks in Kubernetes
95
95
- CNI plugins: Currently only [containernetworking-plugins](https://github.com/containernetworking/plugins) is supported
96
96
- [IP Over Infiniband (IPoIB) CNI Plugin](https://github.com/Mellanox/ipoib-cni): Allow users to create an IPoIB child link and move it to the pod.
97
-
- IPAM CNI: Currently only [Whereabout IPAM CNI](https://github.com/k8snetworkplumbingwg/whereabouts) is supported
97
+
- IPAM CNI: [Whereabouts IPAM CNI](https://github.com/k8snetworkplumbingwg/whereabouts) and related configurations
98
+
- `nvIpam`: [NVIDIA Kubernetes IPAM](https://github.com/Mellanox/nvidia-k8s-ipam) and related configurations.
98
99
99
100
>__NOTE__: Any sub-state may be omitted if it is not required for the cluster.
100
101
102
+
>__NOTE__: NVIDIA IPAM and Whereabouts IPAM plugin can be deployed simultaneously in the same cluster
103
+
104
+
101
105
##### Example for NICClusterPolicy resource:
102
106
In the example below we request OFED driver to be deployed together with RDMA shared device plugin
# if config is missing or empty then multus config will be automatically generated from the CNI configuration file of the master plugin (the first file in lexicographical order in cni-conf-dir)
155
158
config: ''
156
159
ipamPlugin:
157
160
image: whereabouts
158
161
repository: ghcr.io/k8snetworkplumbingwg
159
-
version: v0.5.4-amd64
162
+
version: v0.6.1-amd64
160
163
```
161
164
162
165
Can be found at: `example/crs/mellanox.com_v1alpha1_nicclusterpolicy_cr.yaml`
163
166
167
+
NicClusterPolicy with [NVIDIA Kubernetes IPAM](https://github.com/Mellanox/nvidia-k8s-ipam) configuration
168
+
169
+
```
170
+
apiVersion: mellanox.com/v1alpha1
171
+
kind: NicClusterPolicy
172
+
metadata:
173
+
name: nic-cluster-policy
174
+
spec:
175
+
ofedDriver:
176
+
image: mofed
177
+
repository: nvcr.io/nvidia/mellanox
178
+
version: 23.04-0.5.3.3.1
179
+
startupProbe:
180
+
initialDelaySeconds: 10
181
+
periodSeconds: 10
182
+
livenessProbe:
183
+
initialDelaySeconds: 30
184
+
periodSeconds: 30
185
+
readinessProbe:
186
+
initialDelaySeconds: 10
187
+
periodSeconds: 30
188
+
rdmaSharedDevicePlugin:
189
+
image: k8s-rdma-shared-dev-plugin
190
+
repository: nvcr.io/nvidia/cloud-native
191
+
version: v1.3.2
192
+
# The config below directly propagates to k8s-rdma-shared-device-plugin configuration.
193
+
# Replace 'devices' with your (RDMA capable) netdevice name.
Can be found at: `example/crs/mellanox.com_v1alpha1_nicclusterpolicy_cr-nvidia-ipam.yaml`
229
+
164
230
#### NICClusterPolicy status
165
231
NICClusterPolicy `status` field reflects the current state of the system.
166
232
It contains a per sub-state and a global state `status`.
@@ -173,21 +239,31 @@ The global state reflects the logical _AND_ of each individual sub-state.
173
239
174
240
##### Example Status field of a NICClusterPolicy instance
175
241
```
176
-
Status:
177
-
Applied States:
178
-
Name: state-OFED
179
-
State: ready
180
-
Name: state-RDMA-device-plugin
181
-
State: ready
182
-
Name: state-NV-Peer
183
-
State: ignore
184
-
Name: state-cni-plugins
185
-
State: ignore
186
-
Name: state-Multus
187
-
State: ready
188
-
Name: state-whereabouts
189
-
State: ready
190
-
State: ready
242
+
status:
243
+
appliedStates:
244
+
- name: state-pod-security-policy
245
+
state: ignore
246
+
- name: state-multus-cni
247
+
state: ready
248
+
- name: state-container-networking-plugins
249
+
state: ignore
250
+
- name: state-ipoib-cni
251
+
state: ignore
252
+
- name: state-whereabouts-cni
253
+
state: ready
254
+
- name: state-OFED
255
+
state: ready
256
+
- name: state-SRIOV-device-plugin
257
+
state: ignore
258
+
- name: state-RDMA-device-plugin
259
+
state: ready
260
+
- name: state-NV-Peer
261
+
state: ignore
262
+
- name: state-ib-kubernetes
263
+
state: ignore
264
+
- name: state-nv-ipam-cni
265
+
state: ready
266
+
state: ready
191
267
```
192
268
193
269
>__NOTE__: An `ignore` State indicates that the sub-state was not defined in the custom resource
@@ -208,6 +284,9 @@ MacvlanNetwork CRD Spec includes the following fields:
208
284
In the example below we deploy MacvlanNetwork CRD instance with mode as bridge, MTU 1500, default route interface as master,
209
285
with resource "rdma/rdma_shared_device_a", that will be used to deploy NetworkAttachmentDefinition for macvlan to default namespace.
210
286
287
+
288
+
With [Whereabouts IPAM CNI](https://github.com/k8snetworkplumbingwg/whereabouts)
289
+
211
290
```
212
291
apiVersion: mellanox.com/v1alpha1
213
292
kind: MacvlanNetwork
@@ -238,6 +317,27 @@ spec:
238
317
239
318
Can be found at: `example/crs/mellanox.com_v1alpha1_macvlannetwork_cr.yaml`
240
319
320
+
With [NVIDIA Kubernetes IPAM](https://github.com/Mellanox/nvidia-k8s-ipam)
321
+
322
+
```
323
+
apiVersion: mellanox.com/v1alpha1
324
+
kind: MacvlanNetwork
325
+
metadata:
326
+
name: example-macvlannetwork
327
+
spec:
328
+
networkNamespace: "default"
329
+
master: "ens2f0"
330
+
mode: "bridge"
331
+
mtu: 1500
332
+
ipam: |
333
+
{
334
+
"type": "nv-ipam",
335
+
"poolName": "my-pool"
336
+
}
337
+
```
338
+
339
+
Can be found at: `example/crs/mellanox.com_v1alpha1_macvlannetwork_cr-nvidia-ipam.yaml`
340
+
241
341
### HostDeviceNetwork CRD
242
342
This CRD defines a HostDevice secondary network. It is translated by the Operator to a `NetworkAttachmentDefinition` instance as defined in [k8snetworkplumbingwg/multi-net-spec](https://github.com/k8snetworkplumbingwg/multi-net-spec).
0 commit comments