Skip to content

Commit e2b565e

Browse files
committed
TELCODOCS-2202 Provide guidance on installing and configuring the DPU Operator 2
1 parent c16a10c commit e2b565e

17 files changed

+513
-0
lines changed

_topic_maps/_topic_map.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1425,6 +1425,20 @@ Topics:
14251425
File: configuring-sriov-operator
14261426
- Name: Uninstalling the SR-IOV Operator
14271427
File: uninstalling-sriov-operator
1428+
- Name: DPU Operator
1429+
Dir: dpu-operator
1430+
Distros: openshift-enterprise,openshift-origin
1431+
Topics:
1432+
- Name: About the DPU and the DPU Operator
1433+
File: about-dpu
1434+
- Name: Installing the DPU Operator
1435+
File: installing-dpu-operator
1436+
- Name: Configuring the DPU Operator
1437+
File: configuring-dpu-operator
1438+
- Name: Running a workload on the DPU
1439+
File: running-workload-on-dpu
1440+
- Name: Uninstalling the DPU Operator
1441+
File: uninstalling-dpu-operator
14281442
- Name: Network security
14291443
Dir: network_security
14301444
Distros: openshift-enterprise,openshift-origin

modules/nw-about-dpu.adoc

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * networking/metallb/about-dpu.adoc
4+
5+
:_mod-docs-content-type: CONCEPT
6+
[id="nw-about-dpu_{context}"]
7+
= Orchestrating DPUs with the DPU Operator
8+
9+
A DPU (Data Processing Unit) is a type of programmable processor that is considered one of the three fundamental pillars of computing, alongside CPUs and GPUs. While CPUs handle general computing tasks and GPUs accelerate specific workloads, the primary role of the DPU is to offload and accelerate data-centric workloads, such as networking, storage, and security functions.
10+
11+
DPUs are typically used in data centers and cloud environments to improve performance, reduce latency, and enhance security by offloading these tasks from the CPU. DPUs can also be used to create a more efficient and flexible infrastructure by enabling the deployment of specialized workloads closer to the data source.
12+
13+
The DPU Operator is responsible for managing the DPU devices and network attachments. The DPU Operator deploys the DPU daemon onto {product-title} compute nodes that interface through an API controlling the DPU daemon running on the DPU. The DPU Operator is responsible for the life-cycle management of the `ovn-kube` components and the necessary host network initialization on the DPU.
14+
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * networking/networking_operators/configuring-dpu-operator.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="nw-dpu-configuring-operator_{context}"]
7+
= Configuring the DPU Operator
8+
9+
To configure the DPU Operator follow these steps:
10+
11+
.Procedure
12+
13+
. Create a `DpuOperatorConfig` custom resource (CR) on both the host cluster and on each of the DPU clusters. The DPU Operator in each cluster is activated after this CR is created.
14+
15+
. Create a file named `dpu-operator-host-config.yaml` by using the following YAML:
16+
+
17+
[source,yaml]
18+
----
19+
apiVersion: config.openshift.io/v1
20+
kind: DpuOperatorConfig
21+
metadata:
22+
name: dpu-operator-config <1>
23+
spec:
24+
mode: host <2>
25+
----
26+
+
27+
<1> The name of the custom resource must be `dpu-operator-config`.
28+
<2> Set the value to `host` on the host cluster. On each DPU cluster, which runs a single MicroShift cluster per DPU, set the value to `dpu`.
29+
30+
. Create the resource by running the following command:
31+
+
32+
[source,terminal]
33+
----
34+
$ oc apply -f dpu-operator-host-config.yaml
35+
----
36+
37+
. You must label all nodes that either have an attached DPU or are functioning as a DPU. On the host cluster, this means labeling all compute nodes assuming each node has an attached DPU with `dpu=true`. On the DPU, where each MicroShift cluster consists of a single node, label that single node in each cluster with `dpu=true`. You can apply this label by running the following command:
38+
+
39+
[source,terminal]
40+
----
41+
$ oc label node <node-name> dpu=true
42+
----
43+
+
44+
.Example
45+
[source,terminal]
46+
----
47+
$ oc label node worker-1 dpu=true
48+
----

modules/nw-dpu-creating-a-sfc.adoc

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * networking/networking_operators/nw-dpu-running-workloads.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="nw-dpu-creating-a-sfc_{context}"]
7+
= Creating a service function chain on the DPU
8+
9+
Network service chaining, also known as service function chaining (SFC) is a capability that uses software-defined networking (SDN) capabilities to create a chain of connected network services, such as L4-7 services like firewalls, network address translation (NAT), and intrusion protection.
10+
11+
Follow this procedure on the DPU to create the network function `my-network-function` in the service function chain.
12+
13+
.Prerequisites
14+
15+
* Install the {oc-first}.
16+
* An account with `cluster-admin` privileges.
17+
* Install the DPU Operator.
18+
19+
.Procedure
20+
21+
. Save the following YAML file example as `sfc.yaml`:
22+
+
23+
[source,yaml]
24+
----
25+
apiVersion: config.openshift.io/v1
26+
kind: ServiceFunctionChain
27+
metadata:
28+
name: sfc
29+
namespace: openshift-dpu-operator
30+
spec:
31+
networkFunctions:
32+
- name: my-network-function <1>
33+
image: quay.io/example-org/my-network-function:latest <2>
34+
----
35+
+
36+
<1> The name of the network function. This name is used to identify the network function in the service function chain.
37+
<2> The URL to the container image that contains the network function. The image must be accessible from the DPU.
38+
39+
. Create the chain by running the following command on the DPU nodes:
40+
+
41+
[source,terminal]
42+
----
43+
$ oc apply -f sfc.yaml
44+
----
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * networking/networking_operators/installing-dpu-operator.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
7+
[id="nw-dpu-installing-operator-cli_{context}"]
8+
= Installing the DPU Operator by using the CLI
9+
10+
As a cluster administrator, you can install the DPU Operator by using the CLI.
11+
12+
[NOTE]
13+
====
14+
The CLI must be used to install the DPU Operator on the DPU cluster.
15+
====
16+
17+
.Prerequisites
18+
19+
* Install the OpenShift CLI (`oc`).
20+
* An account with `cluster-admin` privileges.
21+
22+
.Procedure
23+
24+
. Create the `openshift-dpu-operator` namespace by entering the following command:
25+
+
26+
[source,terminal]
27+
----
28+
$ cat << EOF| oc create -f -
29+
apiVersion: v1
30+
kind: Namespace
31+
metadata:
32+
name: openshift-dpu-operator
33+
annotations:
34+
workload.openshift.io/allowed: management
35+
EOF
36+
----
37+
38+
. Create an `OperatorGroup` custom resource (CR) by entering the following command:
39+
+
40+
[source,terminal]
41+
----
42+
$ cat << EOF| oc create -f -
43+
apiVersion: operators.coreos.com/v1
44+
kind: OperatorGroup
45+
metadata:
46+
name: dpu-operators
47+
namespace: openshift-dpu-operator
48+
spec:
49+
targetNamespaces:
50+
- openshift-dpu-operator
51+
EOF
52+
----
53+
54+
. Create a `Subscription` CR for the DPU Operator by entering the following command:
55+
+
56+
[source,terminal]
57+
----
58+
$ cat << EOF| oc create -f -
59+
apiVersion: operators.coreos.com/v1alpha1
60+
kind: Subscription
61+
metadata:
62+
name: openshift-dpu-operator-subscription
63+
namespace: openshift-dpu-operator
64+
spec:
65+
channel: stable
66+
name: dpu-operator
67+
source: redhat-operators
68+
sourceNamespace: openshift-marketplace
69+
EOF
70+
----
71+
72+
.Verification
73+
74+
. Check that the Operator is installed by entering the following command:
75+
+
76+
[source,terminal]
77+
----
78+
$ oc get csv -n openshift-dpu-operator \
79+
-o custom-columns=Name:.metadata.name,Phase:.status.phase
80+
----
81+
+
82+
.Example output
83+
[source,terminal,subs="attributes+"]
84+
----
85+
Name Phase
86+
dpu-operator.v4.{product-version}-202503130333 Succeeded
87+
----
88+
89+
. Change to the `openshift-dpu-operator` project:
90+
+
91+
[source,terminal]
92+
----
93+
$ oc project openshift-dpu-operator
94+
----
95+
96+
. Verify the DPU Operator is running by entering the following command:
97+
+
98+
[source,terminal]
99+
----
100+
$ oc get pods -n openshift-dpu-operator
101+
----
102+
+
103+
.Example output
104+
[source,terminal]
105+
----
106+
NAME READY STATUS RESTARTS AGE
107+
dpu-operator-controller-manager-6b7bbb5db8-7lvkj 2/2 Running 0 2m9s
108+
----
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
2+
// Module included in the following assemblies:
3+
//
4+
// * networking/networking_operators/installing-dpu-operator.adoc
5+
6+
:_mod-docs-content-type: PROCEDURE
7+
[id="nw-dpu-installing-operator-ui_{context}"]
8+
= Installing the DPU Operator using the web console
9+
10+
As a cluster administrator, you can install the DPU Operator by using the web console.
11+
12+
.Prerequisites
13+
14+
* Install the OpenShift CLI (`oc`).
15+
* An account with `cluster-admin` privileges.
16+
17+
.Procedure
18+
19+
. In the {product-title} web console, click *Operators* -> *OperatorHub*.
20+
21+
. Select *DPU Operator* from the list of available Operators, and then click *Install*.
22+
23+
. On the *Install Operator* page, under *Installed Namespace*, the *Operator recommended Namespace* option is preselected by default. No action is required.
24+
25+
.. Click *Install*.
26+
27+
.Verification
28+
29+
. Navigate to the *Operators* -> *Installed Operators* page.
30+
31+
. Ensure that *DPU Operator* is listed in the *openshift-dpu-operator* project with a *Status* of *InstallSucceeded*.
32+
+
33+
[NOTE]
34+
====
35+
During installation an Operator might display a *Failed* status.
36+
If the installation later succeeds with an *InstallSucceeded* message, you can ignore the *Failed* message.
37+
====
38+
39+
.Troubleshooting
40+
41+
* Inspect the *Operator Subscriptions* and *Install Plans* tabs for any failure or errors under *Status*.
42+
43+
* Navigate to the *Workloads* -> *Pods* page and check the logs for pods in the `openshift-dpu-operator` project.
44+
45+
* Check the namespace of the YAML file. If the annotation is missing, you can add the annotation `workload.openshift.io/allowed=management` to the Operator namespace with the following command:
46+
+
47+
[source,terminal]
48+
----
49+
$ oc annotate ns/openshift-dpu-operator workload.openshift.io/allowed=management
50+
----
51+
+
52+
[NOTE]
53+
====
54+
For {sno} clusters, the annotation `workload.openshift.io/allowed=management` is required for the namespace.
55+
====
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * networking/networking_operators/uninstalling-dpu-operator.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="nw-dpu-operator-uninstall_{context}"]
7+
= Uninstalling the DPU Operator
8+
9+
As a cluster administrator, you can uninstall the DPU Operator.
10+
11+
.Prerequisites
12+
13+
* You have access to an {product-title} cluster using an account with `cluster-admin` permissions.
14+
* You have the DPU Operator installed.
15+
16+
.Procedure
17+
18+
. Delete the `DpuOperatorConfig` CR that was created by running the following command
19+
+
20+
[source,terminal]
21+
----
22+
$ oc delete DpuOperatorConfig dpu-operator-config
23+
----
24+
25+
. Delete the subscription that was used to install the DPU Operator by running the following command:
26+
+
27+
[source,terminal]
28+
----
29+
$ oc delete Subscription openshift-dpu-operator-subscription -n openshift-dpu-operator
30+
----
31+
32+
. Remove the `OperatorGroup` resource that was created by running the following command:
33+
+
34+
[source,terminal]
35+
----
36+
$ oc delete OperatorGroup dpu-operators -n openshift-dpu-operator
37+
----
38+
39+
. Uninstall the DPU Operator as follows:
40+
41+
.. Check the installed operators by running the following command:
42+
+
43+
[source,terminal]
44+
----
45+
$ oc get csv -n openshift-dpu-operator
46+
----
47+
+
48+
.Example output:
49+
+
50+
[source,terminal]
51+
----
52+
NAME DISPLAY VERSION REPLACES PHASE
53+
dpu-operator.v4.18.0-202503130333 DPU Operator 4.18.0-202503130333 Failed
54+
----
55+
56+
.. Delete the DPU Operator by running the following command:
57+
+
58+
[source,terminal]
59+
----
60+
$ oc delete csv dpu-operator.v4.18.0-202503130333 -n openshift-dpu-operator
61+
----
62+
63+
. Delete the namespace that was created for the DPU Operator by running the following command:
64+
+
65+
[source,terminal]
66+
----
67+
$ oc delete namespace openshift-dpu-operator
68+
----
69+
70+
.Verification
71+
72+
. Verify that the DPU Operator is uninstalled by running the following command:
73+
+
74+
[source,terminal]
75+
----
76+
$ oc get csv -n openshift-dpu-operator
77+
----
78+
+
79+
.Example output:
80+
+
81+
[source,terminal]
82+
----
83+
No resources found in openshift-dpu-operator namespace.
84+
----

0 commit comments

Comments
 (0)