Skip to content

Commit 85563ec

Browse files
authoredFeb 13, 2023
Merge pull request #1314 from tkatila/gpu-helm-installation
Add INSTALL.md with pointers to plugin and operator installation + new HELM instructions
2 parents f559d87 + ce459f0 commit 85563ec

File tree

7 files changed

+132
-27
lines changed

7 files changed

+132
-27
lines changed
 

‎INSTALL.md

+132
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
# Installing device plugins to cluster
2+
3+
## Install device plugins via a DaemonSet
4+
5+
Each plugin can be installed via a DaemonSet. The install changes slightly based on the desired plugin. See install instructions per [plugin](README.md#plugins).
6+
7+
Installing plugins via DaemonSets deployes them to the ```default``` (or currently active) namespace. Use kubectl's ```--namespace``` argument to change the deployment namespace.
8+
9+
## Install device plugins via device plugin operator
10+
11+
A more advanced install method is via device plugin operator. Operator configures plugin deployments based on the supplied device plugin CRDs (Custom Resource Definitions). See installation instructions in the [operator README](cmd/operator/README.md#installation).
12+
13+
Operator installs device plugins to the same namespace where the operator itself is deployed. The default operator namespace is ```inteldeviceplugins-system```.
14+
15+
## Install with HELM charts
16+
17+
Device plugins can also be installed to a cluster using the device plugin [operator Helm chart](https://github.com/intel/helm-charts/tree/main/charts/device-plugin-operator) (depending on cert-manager and NFD). Individual plugin projects are under https://github.com/intel/helm-charts/tree/main/charts/.
18+
19+
These steps will install device plugin operator and plugins under ```inteldeviceplugins-system``` namespace. It's possible to change the target namespace by changing the ```--namespace``` value in the helm install command.
20+
21+
### Installing HELM repositories
22+
23+
```bash
24+
helm repo add jetstack https://charts.jetstack.io # for cert-manager
25+
helm repo add nfd https://kubernetes-sigs.github.io/node-feature-discovery/charts # for NFD
26+
helm repo add intel https://intel.github.io/helm-charts/ # for device-plugin-operator and plugins
27+
helm repo update
28+
```
29+
30+
### Installing cert-manager
31+
32+
```bash
33+
helm install --wait \
34+
cert-manager jetstack/cert-manager \
35+
--namespace cert-manager \
36+
--create-namespace \
37+
--version v1.11.0 \
38+
--set installCRDs=true
39+
```
40+
41+
NOTE: cert-manager install takes a while to complete.
42+
43+
### Installing NFD
44+
45+
```bash
46+
helm install nfd nfd/node-feature-discovery \
47+
--namespace node-feature-discovery --create-namespace --version 0.12.1 \
48+
--set 'master.extraLabelNs={gpu.intel.com,sgx.intel.com}' \
49+
--set 'master.resourceLabels={gpu.intel.com/millicores,gpu.intel.com/memory.max,gpu.intel.com/tiles,sgx.intel.com/epc}'
50+
```
51+
52+
### Installing operator
53+
54+
```bash
55+
helm install dp-operator intel/intel-device-plugins-operator --namespace inteldeviceplugins-system --create-namespace
56+
```
57+
58+
### Installing specific plugins
59+
60+
Replace PLUGIN with the desired plugin name. At least the following plugins are supported: **gpu, sgx, qat, dlb, dsa & iaa**.
61+
62+
```bash
63+
helm install <PLUGIN> intel/intel-device-plugins-<PLUGIN> --namespace inteldeviceplugins-system --create-namespace \
64+
--set nodeFeatureRule=true
65+
```
66+
67+
### Listing available versions
68+
69+
Use helm's search functionality to list available versions.
70+
71+
```bash
72+
helm search repo intel/intel-device-plugins-operator --versions
73+
helm search repo intel/intel-device-plugins-<plugin> --versions
74+
```
75+
76+
For example, operator chart versions with development versions included.
77+
```bash
78+
$ helm search repo intel/intel-device-plugins-operator --versions --devel
79+
NAME CHART VERSION APP VERSION DESCRIPTION
80+
intel/intel-device-plugins-operator 0.26.0 0.26.0 A Helm chart for Intel Device Plugins Operator ...
81+
intel/intel-device-plugins-operator 0.25.1 0.25.1 A Helm chart for Intel Device Plugins Operator ...
82+
intel/intel-device-plugins-operator 0.25.1-helm.0 0.25.0 A Helm chart for Intel Device Plugins Operator ...
83+
intel/intel-device-plugins-operator 0.25.0 0.25.0 A Helm chart for Intel Device Plugins Operator ...
84+
intel/intel-device-plugins-operator 0.24.1 0.24.1 A Helm chart for Intel Device Plugins Operator ...
85+
intel/intel-device-plugins-operator 0.24.1-helm.0 0.24.0 A Helm chart for Intel Device Plugins Operator ...
86+
intel/intel-device-plugins-operator 0.24.0 0.24.0 A Helm chart for Intel Device Plugins Operator ...
87+
```
88+
89+
### Customizing plugins
90+
91+
To customize plugin features, see the available chart values:
92+
```bash
93+
helm show values intel/intel-device-plugins-<PLUGIN>
94+
```
95+
96+
For example, qat plugin has these values:
97+
```bash
98+
$ helm show values intel/intel-device-plugins-qat
99+
name: qatdeviceplugin-sample
100+
101+
image:
102+
hub: intel
103+
tag: ""
104+
105+
initImage:
106+
hub: intel
107+
tag: ""
108+
109+
dpdkDriver: vfio-pci
110+
kernelVfDrivers:
111+
- c6xxvf
112+
- 4xxxvf
113+
maxNumDevices: 128
114+
logLevel: 4
115+
116+
nodeSelector:
117+
intel.feature.node.kubernetes.io/qat: 'true'
118+
119+
nodeFeatureRule: true
120+
```
121+
122+
### Uninstall
123+
124+
Uninstall each installed component with ```helm uninstall```:
125+
126+
```bash
127+
# repeat first step as many times as there are plugins installed
128+
helm uninstall -n inteldeviceplugins-system <PLUGIN>
129+
helm uninstall -n inteldeviceplugins-system dp-operator
130+
helm uninstall -n node-feature-discovery nfd
131+
helm uninstall -n cert-manager cert-manager
132+
```

‎deployments/dsa_plugin/overlays/namespace_kube-system/add-namespace-kube-system.yaml

-5
This file was deleted.

‎deployments/dsa_plugin/overlays/namespace_kube-system/kustomization.yaml

-4
This file was deleted.

‎deployments/gpu_plugin/overlays/namespace_kube-system/add-namespace-kube-system.yaml

-5
This file was deleted.

‎deployments/gpu_plugin/overlays/namespace_kube-system/kustomization.yaml

-4
This file was deleted.

‎deployments/vpu_plugin/overlays/namespace_kube-system/add-namespace-kube-system.yaml

-5
This file was deleted.

‎deployments/vpu_plugin/overlays/namespace_kube-system/kustomization.yaml

-4
This file was deleted.

0 commit comments

Comments
 (0)
Please sign in to comment.