Skip to content

Commit 610050c

Browse files
authored
Merge pull request #76628 from sr1kar99/10702-multiarch-tuning-operator
OSDOCS#10702: Docs for Multiarch Tuning Operator
2 parents 7ccb917 + 7f1c7c6 commit 610050c

25 files changed

+659
-14
lines changed

_topic_maps/_topic_map.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -609,6 +609,8 @@ Topics:
609609
File: creating-multi-arch-compute-nodes-ibm-power
610610
- Name: Managing your cluster with multi-architecture compute machines
611611
File: multi-architecture-compute-managing
612+
- Name: Managing workloads on multi-architecture clusters by using the Multiarch Tuning Operator
613+
File: multiarch-tuning-operator
612614
- Name: Enabling encryption on a vSphere cluster
613615
File: vsphere-post-installation-encryption
614616
- Name: Configuring the vSphere connection settings after an installation
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
//Module included in the following assemblies
2+
//
3+
//post_installation_configuration/multiarch-tuning-operator.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="multi-architecture-creating-podplacement-config-using-cli_{context}"]
7+
= Creating the ClusterPodPlacementConfig object by using the CLI
8+
9+
You can create the `ClusterPodPlacementConfig` object by using the {oc-first}.
10+
11+
.Prerequisites
12+
13+
* You have installed `oc`.
14+
* You have logged in to `oc` as a user with `cluster-admin` privileges.
15+
* You have installed the Multiarch Tuning Operator.
16+
17+
.Procedure
18+
19+
. Create a `ClusterPodPlacementConfig` object YAML file:
20+
+
21+
.Example `ClusterPodPlacementConfig` object configuration
22+
[source,yaml]
23+
----
24+
apiVersion: multiarch.openshift.io/v1beta1
25+
kind: ClusterPodPlacementConfig
26+
metadata:
27+
name: cluster
28+
spec:
29+
logVerbosityLevel: Normal
30+
namespaceSelector:
31+
matchExpressions:
32+
- key: multiarch.openshift.io/exclude-pod-placement
33+
operator: DoesNotExist
34+
----
35+
36+
. Create the `ClusterPodPlacementConfig` object by running the following command:
37+
+
38+
[source,terminal]
39+
----
40+
$ oc create -f <file_name> <1>
41+
----
42+
<1> Replace `<file_name>` with the name of the `ClusterPodPlacementConfig` object YAML file.
43+
44+
.Verification
45+
46+
* To check that the `ClusterPodPlacementConfig` object is created, run the following command:
47+
+
48+
[source,terminal]
49+
----
50+
$ oc get clusterpodplacementconfig
51+
----
52+
+
53+
.Example output
54+
[source,terminal]
55+
----
56+
NAME AGE
57+
cluster 29s
58+
----
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+
//post_installation_configuration/multiarch-tuning-operator.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="multi-architecture-creating-podplacement-config-using-web-console_{context}"]
7+
8+
= Creating the ClusterPodPlacementConfig object by using the web console
9+
10+
You can create the `ClusterPodPlacementConfig` object by using the {product-title} web console.
11+
12+
.Prerequisites
13+
14+
* You have access to the cluster with `cluster-admin` privileges.
15+
* You have access to the {product-title} web console.
16+
* You have installed the Multiarch Tuning Operator.
17+
18+
.Procedure
19+
20+
. Log in to the {product-title} web console.
21+
22+
. Click *Operators* → *Installed Operators*.
23+
24+
. On the *Installed Operators* page, click *Multiarch Tuning Operator*.
25+
26+
. Click the *Cluster Pod Placement Config* tab.
27+
28+
. Select either *Form view* or *YAML view*.
29+
30+
. Configure the `ClusterPodPlacementConfig` object parameters.
31+
32+
. Click *Create*.
33+
34+
. Optional: If you want to edit the `ClusterPodPlacementConfig` object, perform the following actions:
35+
36+
.. Click the *Cluster Pod Placement Config* tab.
37+
.. Select *Edit ClusterPodPlacementConfig* from the options menu.
38+
.. Click *YAML* and edit the `ClusterPodPlacementConfig` object parameters.
39+
.. Click *Save*.
40+
41+
.Verification
42+
43+
* On the *Cluster Pod Placement Config* page, check that the `ClusterPodPlacementConfig` object is in the `Ready` state.
44+
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
//Module included in the following assemblies
2+
//
3+
//post_installation_configuration/multiarch-tuning-operator.adoc
4+
5+
:_mod-docs-content-type: CONCEPT
6+
[id="multi-architecture-creating-podplacement-config_{context}"]
7+
= Creating the ClusterPodPlacementConfig object
8+
9+
After installing the Multiarch Tuning Operator, you must create the `ClusterPodPlacementConfig` object.
10+
11+
[NOTE]
12+
====
13+
You can create only a single instance of the `ClusterPodPlacementConfig` object.
14+
====
15+
16+
The `ClusterPodPlacementConfig` object is used to enable or disable the pod placement operand of the Multiarch Tuning Operator.
17+
18+
.Example `ClusterPodPlacementConfig` object configuration
19+
[source,yaml]
20+
----
21+
apiVersion: multiarch.openshift.io/v1beta1
22+
kind: ClusterPodPlacementConfig
23+
metadata:
24+
name: cluster <1>
25+
spec:
26+
logVerbosityLevel: Normal <2>
27+
namespaceSelector: <3>
28+
matchExpressions:
29+
- key: multiarch.openshift.io/exclude-pod-placement
30+
operator: DoesNotExist
31+
----
32+
<1> You must set this field value to `cluster`.
33+
<2> Optional: You can set the field value to `Normal`, `Debug`, `Trace`, or `TraceAll`. The value is set to `Normal` by default.
34+
<3> Optional: You can configure the `namespaceSelector` to select the namespaces in which the Multiarch Tuning Operator's pod placement operand must process the `nodeAffinity` of the pods. All namespaces are considered by default.
35+
36+
In this example, the `operator` field value is set to `DoesNotExist`. Therefore, if the `key` field value (`multiarch.openshift.io/exclude-pod-placement`) is set as a label in a namespace, the operand does not process the `nodeAffinity` of the pods in that namespace. Instead, the operand processes the `nodeAffinity` of the pods in namespaces that do not contain the label.
37+
38+
If you want the operand to process the `nodeAffinity` of the pods only in specific namespaces, you can configure the `namespaceSelector` as follows:
39+
[source,yaml]
40+
----
41+
namespaceSelector:
42+
matchExpressions:
43+
- key: multiarch.openshift.io/include-pod-placement
44+
operator: Exists
45+
----
46+
47+
In this example, the `operator` field value is set to `Exists`. Therefore, the operand processes the `nodeAffinity` of the pods only in namespaces that contain the `multiarch.openshift.io/include-pod-placement` label.
48+
49+
[IMPORTANT]
50+
====
51+
The namespaces starting with `openshift-`, `kube-`, and `hypershift-` are excluded.
52+
====
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
//Module included in the following assemblies
2+
//
3+
//post_installation_configuration/multiarch-tuning-operator.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="multi-architecture-deleting-podplacement-config-using-cli_{context}"]
7+
= Deleting the ClusterPodPlacementConfig object by using the CLI
8+
9+
You can delete the `ClusterPodPlacementConfig` object by using the {oc-first}.
10+
11+
.Prerequisites
12+
13+
* You have installed `oc`.
14+
* You have logged in to `oc` as a user with `cluster-admin` privileges.
15+
16+
.Procedure
17+
18+
. Log in to the {oc-first}.
19+
20+
. Delete the `ClusterPodPlacementConfig` object by running the following command:
21+
+
22+
[source,terminal]
23+
----
24+
$ oc delete clusterpodplacementconfig cluster
25+
----
26+
27+
.Verification
28+
29+
* To check that the `ClusterPodPlacementConfig` object is deleted, run the following command:
30+
+
31+
[source,terminal]
32+
----
33+
$ oc get clusterpodplacementconfig
34+
----
35+
+
36+
.Example output
37+
[source,terminal]
38+
----
39+
No resources found
40+
----
41+
42+
.Next steps
43+
44+
* After deleting the `ClusterPodPlacementConfig` object, ensure that none of the pods are in the `Pending` phase due to the `SchedulingGated` reason. You can delete the scheduling gate from all of the gated pods by running the following command:
45+
+
46+
[source,terminal]
47+
----
48+
$ oc get pods -A -l multiarch.openshift.io/scheduling-gate=gated -o json | jq 'del(.items[].spec.schedulingGates[] | select(.name=="multiarch.openshift.io/scheduling-gate"))' | oc apply -f -
49+
----
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
//Module included in the following assemblies
2+
//
3+
//post_installation_configuration/multiarch-tuning-operator.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="multi-architecture-deleting-podplacement-config-using-web-console_{context}"]
7+
8+
= Deleting the ClusterPodPlacementConfig object by using the web console
9+
10+
You can delete the `ClusterPodPlacementConfig` object by using the {product-title} web console.
11+
12+
.Prerequisites
13+
14+
* You have access to the cluster with `cluster-admin` privileges.
15+
* You have access to the {product-title} web console.
16+
* You have created the `ClusterPodPlacementConfig` object.
17+
18+
.Procedure
19+
20+
. Log in to the {product-title} web console.
21+
22+
. Click *Operators* → *Installed Operators*.
23+
24+
. On the *Installed Operators* page, click *Multiarch Tuning Operator*.
25+
26+
. Click the *Cluster Pod Placement Config* tab.
27+
28+
. Select *Delete ClusterPodPlacementConfig* from the options menu.
29+
30+
. Click *Delete*.
31+
32+
.Verification
33+
34+
* On the *Cluster Pod Placement Config* page, check that the `ClusterPodPlacementConfig` object has been deleted.
35+
36+
.Next steps
37+
38+
* After deleting the `ClusterPodPlacementConfig` object, ensure that none of the pods are in the `Pending` phase due to the `SchedulingGated` reason. You can delete the scheduling gate from all the gated pods by running the following command in the {oc-first}:
39+
+
40+
[source,terminal]
41+
----
42+
$ oc get pods -A -l multiarch.openshift.io/scheduling-gate=gated -o json | jq 'del(.items[].spec.schedulingGates[] | select(.name=="multiarch.openshift.io/scheduling-gate"))' | oc apply -f -
43+
----
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
//Module included in the following assemblies
2+
//
3+
//post_installation_configuration/multiarch-tuning-operator.adoc
4+
5+
:_mod-docs-content-type: CONCEPT
6+
[id="multi-architecture-deleting-podplacement-config_{context}"]
7+
= Deleting the ClusterPodPlacementConfig object
8+
9+
You can delete the `ClusterPodPlacementConfig` object by using the {product-title} CLI or the {product-title} web console.
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
//Module included in the following assemblies
2+
//
3+
//post_installation_configuration/multiarch-tuning-operator.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="multi-architecture-installing-using-cli_{context}"]
7+
= Installing the Multiarch Tuning Operator by using the CLI
8+
9+
You can install the Multiarch Tuning Operator by using the {oc-first}.
10+
11+
.Prerequisites
12+
13+
* You have installed `oc`.
14+
* You have logged in to `oc` as a user with `cluster-admin` privileges.
15+
16+
.Procedure
17+
18+
. Create a new project named `openshift-multiarch-tuning-operator` by running the following command:
19+
+
20+
[source,terminal]
21+
----
22+
$ oc new-project openshift-multiarch-tuning-operator
23+
----
24+
25+
. Create an `OperatorGroup` object:
26+
27+
.. Create a YAML file with the configuration for creating an `OperatorGroup` object.
28+
+
29+
.Example YAML configuration for creating an `OperatorGroup` object:
30+
[source,yaml]
31+
----
32+
apiVersion: operators.coreos.com/v1
33+
kind: OperatorGroup
34+
metadata:
35+
name: openshift-multiarch-tuning-operator
36+
namespace: openshift-multiarch-tuning-operator
37+
spec: {}
38+
----
39+
40+
.. Create the `OperatorGroup` object by running the following command:
41+
+
42+
[source,terminal]
43+
----
44+
$ oc create -f <file_name> <1>
45+
----
46+
<1> Replace `<file_name>` with the name of the YAML file that contains the `OperatorGroup` object configuration.
47+
48+
. Create a `Subscription` object:
49+
50+
.. Create a YAML file with the configuration for creating a `Subscription` object.
51+
+
52+
.Example YAML configuration for creating a `Subscription` object:
53+
[source,yaml]
54+
----
55+
apiVersion: operators.coreos.com/v1alpha1
56+
kind: Subscription
57+
metadata:
58+
name: openshift-multiarch-tuning-operator
59+
namespace: openshift-multiarch-tuning-operator
60+
spec:
61+
channel: tech-preview
62+
name: multiarch-tuning-operator
63+
source: redhat-operators
64+
sourceNamespace: openshift-marketplace
65+
installPlanApproval: Automatic
66+
startingCSV: multiarch-tuning-operator.v0.9.0
67+
----
68+
69+
.. Create the `Subscription` object by running the following command:
70+
+
71+
[source,terminal]
72+
----
73+
$ oc create -f <file_name> <1>
74+
----
75+
<1> Replace `<file_name>` with the name of the YAML file that contains the `Subscription` object configuration.
76+
77+
[NOTE]
78+
====
79+
For more details about configuring the `Subscription` object and `OperatorGroup` object, see "Installing from OperatorHub using the CLI".
80+
====
81+
82+
.Verification
83+
84+
. To verify that the Multiarch Tuning Operator is installed, run the following command:
85+
+
86+
[source,terminal]
87+
----
88+
$ oc get csv -n openshift-multiarch-tuning-operator
89+
----
90+
+
91+
.Example output
92+
[source,terminal]
93+
----
94+
NAME DISPLAY VERSION REPLACES PHASE
95+
multiarch-tuning-operator.v0.9.0 Multiarch Tuning Operator 0.9.0 Succeeded
96+
----
97+
98+
. Optional: To verify that the `OperatorGroup` object is created, run the following command:
99+
+
100+
[source,terminal]
101+
----
102+
$ oc get operatorgroup -n openshift-multiarch-tuning-operator
103+
----
104+
+
105+
.Example output
106+
[source,terminal]
107+
----
108+
NAME AGE
109+
openshift-multiarch-tuning-operator-q8zbb 133m
110+
----
111+
112+
. Optional: To verify that the `Subscription` object is created, run the following command:
113+
+
114+
[source,terminal]
115+
----
116+
$ oc get subscription -n openshift-multiarch-tuning-operator
117+
----
118+
+
119+
.Example output
120+
[source,terminal]
121+
----
122+
NAME PACKAGE SOURCE CHANNEL
123+
multiarch-tuning-operator multiarch-tuning-operator multiarch-tuning-operator-catalog tech-preview
124+
----

0 commit comments

Comments
 (0)