Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 16 additions & 6 deletions _topic_map.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2015,12 +2015,6 @@ Topics:
- Name: Scaling the Cluster Monitoring Operator
File: scaling-cluster-monitoring-operator
Distros: openshift-origin,openshift-enterprise
- Name: The Node Feature Discovery Operator
File: psap-node-feature-discovery-operator
Distros: openshift-origin,openshift-enterprise
- Name: The Driver Toolkit
File: psap-driver-toolkit
Distros: openshift-origin,openshift-enterprise
- Name: Planning your environment according to object maximums
File: planning-your-environment-according-to-object-maximums
Distros: openshift-origin,openshift-enterprise
Expand Down Expand Up @@ -2051,6 +2045,22 @@ Topics:
File: ztp-deploying-disconnected
Distros: openshift-webscale
---
Name: Hardware enablement
Dir: hardware_enablement
Distros: openshift-origin,openshift-enterprise
Topics:
- Name: About hardware enablement on OpenShift
File: about-hardware-enablement
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To verify: no need for Distros here?

- Name: The Driver Toolkit
File: psap-driver-toolkit
Distros: openshift-origin,openshift-enterprise
- Name: The Special Resource Operator
File: psap-special-resource-operator
Distros: openshift-origin,openshift-enterprise
- Name: The Node Feature Discovery Operator
File: psap-node-feature-discovery-operator
Distros: openshift-origin,openshift-enterprise
---
Name: Backup and restore
Dir: backup_and_restore
Distros: openshift-origin,openshift-enterprise
Expand Down
12 changes: 12 additions & 0 deletions hardware_enablement/about-hardware-enablement.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[id="about-hardware-enablement"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could this either be:

  • Decomposed into more modules within an "About hardware enablement" assembly"
  • Incorporated as a module into other topics

Just a thought!

= About hardware enablement on OpenShift
include::modules/common-attributes.adoc[]
:context: about-hardware-enablement

toc::[]

Many applications require specialized hardware or software which depend on kernel modules or drivers. The recommended approach to load out-of-tree kernel modules on {op-system-first} nodes is to use driver containers. To deploy out-of-tree drivers at the same time as cluster installation (day-1) the kmods-via-containers framework can be used. For loading drivers or kernel modules on an existing {product-title} cluster (day-2) {product-title} offers several tools:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ISG ⚠️

Suggested change
Many applications require specialized hardware or software which depend on kernel modules or drivers. The recommended approach to load out-of-tree kernel modules on {op-system-first} nodes is to use driver containers. To deploy out-of-tree drivers at the same time as cluster installation (day-1) the kmods-via-containers framework can be used. For loading drivers or kernel modules on an existing {product-title} cluster (day-2) {product-title} offers several tools:
Many applications require specialized hardware or software that depends on kernel modules or drivers. The recommended approach to load out-of-tree kernel modules on {op-system-first} nodes is to use driver containers. To deploy out-of-tree drivers at the same time as cluster installation (day 1), use the kmods-via-containers framework. To load drivers or kernel modules on an existing {product-title} cluster (day 2), {product-title} offers several tools:

I would think about ways to rephrase or eliminate "day 1" and "day 2." We don't use those widely in customer-facing docs.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"The recommended approach..." is passive. Could restructure like:

"You can use driver containers to load out-of-tree kernel modules..."

(Just as an example.)

Similar idea for the sentence after it.


* The Driver Toolkit is a container image which is a part of every OpenShift release. It contains the kernel packages and other common dependencies needed for building a driver or kernel module. The Driver Toolkit can be used as a base image for driver container image builds on the {product-title}.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* The Driver Toolkit is a container image which is a part of every OpenShift release. It contains the kernel packages and other common dependencies needed for building a driver or kernel module. The Driver Toolkit can be used as a base image for driver container image builds on the {product-title}.
* The Driver Toolkit is a container image that is part of every OpenShift release. It contains the kernel packages and other common dependencies that are needed to build a driver or kernel module. The Driver Toolkit can be used as a base image for driver container image builds on the {product-title}.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unsure about the capitalization of "Driver Toolkit." Is this a branding decision?

* The Special Resource Operator (SRO) orchestrates the building and management of driver containers for loading kernel modules and drivers on an existing (day 2) OpenShift or Kubernetes cluster.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* The Special Resource Operator (SRO) orchestrates the building and management of driver containers for loading kernel modules and drivers on an existing (day 2) OpenShift or Kubernetes cluster.
* The Special Resource Operator (SRO) orchestrates the building and management of driver containers to load kernel modules and drivers on an existing (day 2) OpenShift or Kubernetes cluster.

* The Node Feature Discovery (NFD) Operator for adding node labels for CPU capabilities, kernel version, PCIe device vendor IDs, and more.
1 change: 1 addition & 0 deletions hardware_enablement/images
1 change: 1 addition & 0 deletions hardware_enablement/modules
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,7 @@ include::modules/psap-driver-toolkit.adoc[leveloffset=+1]
include::modules/psap-driver-toolkit-pulling.adoc[leveloffset=+1]

include::modules/psap-driver-toolkit-using.adoc[leveloffset=+1]

.Additional resources

* For more information about configuring registry storage for your cluster, see xref:../registry/configuring-registry-operator.adoc#registry-removed_configuring-registry-operator[Image Registry Operator in OpenShift Container Platform]
24 changes: 24 additions & 0 deletions hardware_enablement/psap-special-resource-operator.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[id="special-resource-operator"]
= The Special Resource Operator
include::modules/common-attributes.adoc[]
:context: special-resource-operator

toc::[]

Learn about the Special Resource Operator (SRO) and how you can use it to build and manage driver containers for loading kernel modules and device drivers on nodes in an {product-title} cluster.


:FeatureName: The Special Resource Operator
include::modules/technology-preview.adoc[leveloffset=+0]

include::modules/psap-special-resource-operator.adoc[leveloffset=+1]

include::modules/psap-special-resource-operator-installing.adoc[leveloffset=+1]

include::modules/psap-special-resource-operator-using.adoc[leveloffset=+1]

.Additional resources

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe mention something about SNO not having the image registry, and requiring enable or an external one?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a pointer to the additional resources in the prerequisites modules/special-resource-operator-using.adoc to make this more clear, but didn't add a specific mention of SNO because it's not specific to SNO. It also applies to baremetal installs, etc. Let me know if you think more clarification is needed

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For constructing these sections in assembly files, see our contribution guidelines: https://github.com/openshift/openshift-docs/blob/main/contributing_to_docs/doc_guidelines.adoc#anchoring-prerequisites-additional-resources-and-next-steps-titles-in-assemblies

Currently this uses the module format instead of the assembly one.


* For information about restoring the Image Registry Operator state before using the Special Resource Operator, see
xref:../registry/configuring-registry-operator.adoc#registry-removed_configuring-registry-operator[Image registry removed during installation].
* For details about installing the NFD Operator see xref:psap-node-feature-discovery-operator.adoc#installing-the-node-feature-discovery-operator_node-feature-discovery-operator[Node Feature Discovery (NFD) Operator].
6 changes: 3 additions & 3 deletions modules/psap-driver-toolkit-pulling.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Module included in the following assemblies:
//
// * scalability_and_performance/psap-driver-toolkit.adoc
// * hardware_enablement/psap-driver-toolkit.adoc

[id="pulling-the-driver-toolkit"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Look at https://github.com/openshift/openshift-docs/blob/main/contributing_to_docs/doc_guidelines.adoc#anchoring-in-module-files for module anchor formatting rules.

Suggested change
[id="pulling-the-driver-toolkit"]
[id="pulling-the-driver-toolkit_{context}"]

= Pulling the Driver Toolkit container image
Expand All @@ -18,8 +18,8 @@ The driver-toolkit image for the latest minor release will be tagged with the mi

.Prerequisites

* Obtain the image pull secret needed to perform an installation of {product-title}, from the link:https://console.redhat.com/openshift/install/pull-secret[Pull Secret] page on the {cloud-redhat-com} site.
* Install the OpenShift CLI (`oc`).
* You have obtained the image pull secret needed to perform an installation of {product-title}, from the link:https://cloud.redhat.com/openshift/install/pull-secret[Pull Secret] page on the {cloud-redhat-com} site.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ISG recommends simple present tense as much as possible. Simple past if necessary.

Ex: "You have the image..."/"You obtained the image..."

* You have installed the OpenShift CLI (`oc`).

.Procedure

Expand Down
14 changes: 10 additions & 4 deletions modules/psap-driver-toolkit-using.adoc
Original file line number Diff line number Diff line change
@@ -1,20 +1,26 @@
// Module included in the following assemblies:
//
// * scalability_and_performance/psap-driver-toolkit.adoc
// * hardware_enablement/psap-driver-toolkit.adoc

[id="using-the-driver-toolkit"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[id="using-the-driver-toolkit"]
[id="using-the-driver-toolkit_{context}"]

= Using the Driver Toolkit

As an example, the Driver Toolkit can be used as the base image for building a very simple kernel module called simple-kmod.

[NOTE]
====
The Driver Toolkit contains the necessary dependencies, `openssl, mokutil, keyutils`, needed to sign a kernel module. However, in this example, the simple-kmod kernel module is not signed and therefore cannot be loaded on systems with `Secure Boot` enabled.
====

[id="create-simple-kmod-image"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[id="create-simple-kmod-image"]
[id="create-simple-kmod-image_{context}"]

== Build and run the simple-kmod driver container on a cluster
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure about the structure here.

This H2 seems like it should be a separate module that is included in an assembly somewhere.


.Prerequisites

* An {product-title} cluster
* Install the OpenShift CLI (`oc`).
* Log in as a user with `cluster-admin` privileges.
* You have a running {product-title} cluster.
* You have configured the cluster.
* You have installed the OpenShift CLI (`oc`).
Comment on lines +21 to +22
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* You have configured the cluster.
* You have installed the OpenShift CLI (`oc`).
* You configured the cluster.
* You installed the OpenShift CLI (`oc`).

* You are logged into the OpenShift CLI as a user with `cluster-admin` privileges.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ ISG

Suggested change
* You are logged into the OpenShift CLI as a user with `cluster-admin` privileges.
* You are logged in to the OpenShift CLI as a user with `cluster-admin` privileges.


.Procedure

Expand Down
2 changes: 1 addition & 1 deletion modules/psap-driver-toolkit.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Module included in the following assemblies:
//
// * scalability_and_performance/psap-driver-toolkit.adoc
// * hardware_enablement/psap-driver-toolkit.adoc

[id="about-driver-toolkit"]
= About the Driver Toolkit
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Module included in the following assemblies:
//
// * scalability_and_performance/psap-node-feature-discovery-operator.adoc
// * hardware_enablement/psap-node-feature-discovery-operator.adoc

[id="installing-the-node-feature-discovery-operator_{context}"]
= Installing the Node Feature Discovery Operator
Expand Down
2 changes: 1 addition & 1 deletion modules/psap-node-feature-discovery-operator.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Module included in the following assemblies:
//
// * scalability_and_performance/psap-node-feature-discovery-operator.adoc
// * hardware_enablement/psap-node-feature-discovery-operator.adoc

ifeval::["{context}" == "red-hat-operators"]
:operators:
Expand Down
170 changes: 170 additions & 0 deletions modules/psap-special-resource-operator-installing.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
// Module included in the following assemblies:
//
// * hardware_enablement/psap-special-resource-operator.adoc

[id="installing-the-special-resource-operator_{context}"]
= Installing the Special Resource Operator

As a cluster administrator, you can install the Special Resource Operator (SRO) using the {product-title} CLI or the web console.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ ISG

Watch for this construction elsewhere.

Suggested change
As a cluster administrator, you can install the Special Resource Operator (SRO) using the {product-title} CLI or the web console.
As a cluster administrator, you can install the Special Resource Operator (SRO) by using the {product-title} CLI or the web console.


[id="install-operator-cli_{context}"]
== Installing the Special Resource Operator using the CLI

As a cluster administrator, you can install SRO using the CLI.

.Prerequisites

* You have a running {product-title} cluster.
* You have installed the OpenShift CLI (`oc`).
* You are logged into the OpenShift CLI as a user with `cluster-admin` privileges.
* You have installed the Node Feature Discovery (NFD) Operator.

.Procedure

. Create a namespace for the Special Resource Operator.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
. Create a namespace for the Special Resource Operator.
. Create a namespace for the Special Resource Operator:


.. Create the `Namespace` custom resource (CR) that defines the `openshift-special-resource-operator` namespace, and then save the YAML in the `sro-namespace.yaml` file:
+
[source,yaml]
----
apiVersion: v1
kind: Namespace
metadata:
name: openshift-special-resource-operator
----

.. Create the namespace by running the following command:
+
[source,terminal]
----
$ oc create -f sro-namespace.yaml
----

. Install SRO in the namespace you created in the previous step.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
. Install SRO in the namespace you created in the previous step.
. Install SRO in the namespace you created in the previous step:

Typically, the lead-ins on nested OLs end with colons.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could the items underneath this be moved up a level? Is the nesting important?


.. Create the `OperatorGroup` CR and save the YAML in the `sro-operatorgroup.yaml` file:
+
[source,yaml]
----
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
generateName: openshift-special-resource-operator-
name: openshift-special-resource-operator
namespace: openshift-special-resource-operator
spec:
targetNamespaces:
- openshift-special-resource-operator
----

.. Run the following `oc create` command to create the `OperatorGroup` CR:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alternative:

Suggested change
.. Run the following `oc create` command to create the `OperatorGroup` CR:
.. From a command line, create the `OperatorGroup` CR:

+
[source,terminal]
----
$ oc create -f sro-operatorgroup.yaml
----

.. Run the following command to get the `channel` value required for the next step.
+
[source,terminal]
----
$ oc get packagemanifest special-resource-operator -n openshift-marketplace -o jsonpath='{.status.defaultChannel}'
----
+
.Example output
[source,terminal]
----
4.9
----

.. Create the `Subscription` CR and save the YAML in the `sro-sub.yaml` file. If the output from the previous command is different than the `spec.channel` field, replace it with the output from the previous command:
+
.Example Subscription
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.Example Subscription
.Example subscription CR

Just attempting to get around the monospace rule for this title.

[source,yaml]
----
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: special-resource-operator
namespace: openshift-special-resource-operator
spec:
channel: "4.9"
installPlanApproval: Automatic
name: special-resource-operator
source: redhat-operators
sourceNamespace: openshift-marketplace
----

.. Create the subscription object by running the following command:
+
[source,terminal]
----
$ oc create -f sro-sub.yaml
----

.. Change to the `openshift-special-resource-operator` project:
+
[source,terminal]
----
$ oc project openshift-special-resource-operator
----

.Verification

* To verify that the Operator deployment is successful, run:
+
[source,terminal]
----
$ oc get pods
----
+
.Example output
[source,terminal]
----
NAME READY STATUS RESTARTS AGE
special-resource-controller-manager-7bfb544d45-xx62r 2/2 Running 0 2m28s
----
+
A successful deployment shows a `Running` status.

[id="install-operator-web-console_{context}"]
== Installing the Special Resource Operator using the web console
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This module needs to be broken in two.


As a cluster administrator, you can install the Special Resource Operator using the web console.

[NOTE]
====
It is recommended that you create the `Namespace` as detailed in the previous section.
====

.Procedure

. In the {product-title} web console, click *Operators* -> *OperatorHub*.

. Choose *Special Resource Operator* from the list of available Operators, and then click *Install*.

. On the *Install Operator* page, select *a specific namespace on the cluster*, select the namespace created in the previous section, and then click *Install*.

.Verification

To verify that the Special Resource Operator installed successfully:

. Navigate to the *Operators* -> *Installed Operators* page.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ ISG

Use only when a more direct verb, such as "click", "select", "browse", or "go to", is not applicable. Use only to provide direction to a location (for example, "Navigate to the directory that contains the files that you want to edit").

. Ensure that *Special Resource Operator* is listed in the *openshift-special-resource-operator* project with a *Status* of *InstallSucceeded*.
+
[NOTE]
====
During installation, an Operator might display a *Failed* status. If the installation later succeeds with an *InstallSucceeded* message, you can ignore the *Failed* message.
====

.Troubleshooting

If the Operator does not appear as installed, to troubleshoot further:

. Navigate to the *Operators* -> *Installed Operators* page and inspect the *Operator Subscriptions* and *Install Plans* tabs for any failure or errors under *Status*.
. Navigate to the *Workloads* -> *Pods* page and check the logs for pods in the `openshift-special-resource-operator` project.

[NOTE]
====
The Node Feature Discovery (NFD) Operator is a dependency of the Special Resource Operator (SRO). If the NFD Operator is not installed before installing SRO, the Operator Lifecycle Manager will automatically install the NFD Operator. However, the required Node Feature Discovery operand will not be deployed automatically. The Node Feature Discovery Operator documentation provides details about how to deploy NFD using the NFD Operator.
====
Loading