|
| 1 | +# Create Intel DSA Device Plugin CR |
| 2 | + |
| 3 | +## Create a CR via web console |
| 4 | +1. Go to **Operator** -> **Installed Operators**. |
| 5 | +2. Open **Intel Device Plugins Operator**. |
| 6 | +3. Navigate to tab **Intel DSA Device Plugin**. |
| 7 | +4. Click **Create DSADevicePlugin** -> set correct parameters -> Click **Create** |
| 8 | +5. Optional: If you want to make any customizations, select YAML view and edit the details. When you are done, click **Create**. |
| 9 | + |
| 10 | +## Verify via web console |
| 11 | +1. Verify CR by checking the status of **Workloads** -> **DaemonSet** -> **intel-dsa-plugin**. |
| 12 | +2. Now `DsaDevicePlugin` is created. |
| 13 | + |
| 14 | +## Create CR via CLI |
| 15 | +Apply the CR yaml file: |
| 16 | +``` |
| 17 | +$ oc apply -f https://raw.githubusercontent.com/intel/intel-technology-enabling-for-openshift/main/device_plugins/dsa_device_plugin.yaml |
| 18 | +``` |
| 19 | + |
| 20 | +## Verify via CLI |
| 21 | +Verify that the device plugin CR is ready: |
| 22 | +``` |
| 23 | +$ oc get DsaDevicePlugin |
| 24 | +``` |
| 25 | +Output: |
| 26 | +``` |
| 27 | +NAME DESIRED READY NODE SELECTOR AGE |
| 28 | +dsadeviceplugin-sample 3 3 {"intel.feature.node.kubernetes.io/dsa":"true"} 98m |
| 29 | +``` |
| 30 | + |
| 31 | +# Verify DSA Device Plugin |
| 32 | +After the plugin is deployed, use below command to verify DSA resources: |
| 33 | +``` |
| 34 | +$ oc describe node srf-2 | grep dsa.intel.com |
| 35 | + dsa.intel.com/wq-user-dedicated: 0 |
| 36 | + dsa.intel.com/wq-user-shared: 160 |
| 37 | + dsa.intel.com/wq-user-dedicated: 0 |
| 38 | + dsa.intel.com/wq-user-shared: 160 |
| 39 | + ``` |
| 40 | + |
| 41 | +## DSA Resource Configuration |
| 42 | +By default the DSA plugin uses [this configuration file](https://github.com/intel/intel-device-plugins-for-kubernetes/blob/main/demo/dsa.conf). |
| 43 | +The dsa init container comes with a utility called `accel-config` which takes file as input and configures the DSA hardwares based on that. |
| 44 | +The default configuration has creates dedicated WQs for each DSA device so that it's four groups per device where each groups is with 1 WQ linked to 1 engine. |
| 45 | +Users can customise the config and can use the pre-customised config for their specific use case from [here](https://github.com/intel/idxd-config/tree/stable/contrib/configs) |
| 46 | +There's also a possibility for a node specific configuration by passing a node specific profile via configMap volume mount. |
| 47 | +Users can use the steps below to customize the DSA resource configuration: |
| 48 | +1. Create the configmap for DSA resource configuration |
| 49 | + ``` |
| 50 | + $ oc create configmap --namespace=openshift-operators intel-dsa-config --from-file=dsa[-$NODE_NAME].conf |
| 51 | +2. Create DSA device plugin CR with -provisioning-config set as the name of the ConfigMap (created in step 1) in the dsa_device_plugin.yaml file or set ConfigMap name in the provisioning-config option from web console. |
| 52 | +
|
| 53 | +# Run Intel DSA based workloads on RHOCP |
| 54 | +To run the Intel DSA based workloads as an unprivileged pod, you need to use a customised SCC. The customized `dsa-scc` Security Context Constraint (SCC) is provided to bind with service account and run the DSA based workload. |
| 55 | +
|
| 56 | +See [Verify Intel DSA Provisioning](/tests/l2/dsa/README.md) for the detailed steps. |
0 commit comments