Skip to content

Commit 0134278

Browse files
authored
Merge pull request #88371 from kquinn1204/TELCODOCS-2202
TELCODOCS-2202 Provide guidance on installing and configuring the DPU OPERATOR
2 parents 3a9bdcc + e2b565e commit 0134278

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
@@ -1443,6 +1443,20 @@ Topics:
14431443
File: configuring-sriov-operator
14441444
- Name: Uninstalling the SR-IOV Operator
14451445
File: uninstalling-sriov-operator
1446+
- Name: DPU Operator
1447+
Dir: dpu-operator
1448+
Distros: openshift-enterprise,openshift-origin
1449+
Topics:
1450+
- Name: About the DPU and the DPU Operator
1451+
File: about-dpu
1452+
- Name: Installing the DPU Operator
1453+
File: installing-dpu-operator
1454+
- Name: Configuring the DPU Operator
1455+
File: configuring-dpu-operator
1456+
- Name: Running a workload on the DPU
1457+
File: running-workload-on-dpu
1458+
- Name: Uninstalling the DPU Operator
1459+
File: uninstalling-dpu-operator
14461460
- Name: Network security
14471461
Dir: network_security
14481462
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)