Skip to content

Commit

Permalink
TELCODOCS-1990: Docfooding feedback #1 applied
Browse files Browse the repository at this point in the history
TELCODOCS-1990: Docfooding feedback #2 applied

TELCODOCS-1990: Docfooding feedback #3 applied

TELCODOCS-1990: Docfooding feedback #4 applied

TELCODOCS-1990: Docfooding feedback #5 applied

TELCODOCS-1990: Docfooding feedback #6 applied

TELCODOCS-1990: Docfooding feedback #7 applied

TELCODOCS-1990: Docfooding feedback #8 applied

TELCODOCS-1990: Docfooding feedback #9 applied

TELCODOCS-1990: Docfooding feedback #10 applied

TELCODOCS-1990: Docfooding feedback #11 applied

TELCODOCS-1990: Peer review feedback applied

TELCODOCS-1990: Dev review feedback applied

TELCODOCS-1990: Dev/Peer review feedback applied

TELCODOCS-1990: Dev/Peer #2 review feedback applied

TELCODOCS-1990: Dev #2 review feedback applied

TELCODOCS-1990: Peer review squad feedback applied
  • Loading branch information
Padraig O'Grady committed Jan 14, 2025
1 parent 3f9c013 commit b81a2f4
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 44 deletions.
10 changes: 3 additions & 7 deletions modules/cnf-performing-end-to-end-tests-running-cyclictest.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,12 @@ The `cyclictest` tool measures the real-time kernel scheduler latency on the spe

[NOTE]
====
When executing `podman` commands as a non-root or non-privileged user, mounting paths can fail with `permission denied` errors. To make the `podman` command work, append `:Z` to the volumes creation; for example, `-v $(pwd)/:/kubeconfig:Z`. This allows `podman` to do the proper SELinux relabeling.
When executing `podman` commands as a non-root or non-privileged user, mounting paths can fail with `permission denied` errors. Depending on your local operating system and SELinux configuration, you might also experience issues running these commands from your home directory. To make the `podman` commands work, run the commands from a folder that is not your home/<username> directory, and append `:Z` to the volumes creation. For example, `-v $(pwd)/:/kubeconfig:Z`. This allows `podman` to do the proper SELinux relabeling.
====

.Prerequisites

* You have logged in to `registry.redhat.io` with your Customer Portal credentials.
* You have installed the real-time kernel in the cluster.
* You have applied a cluster performance profile by using Node Tuning Operator.
* You have reviewed the prerequisites for running latency tests.
.Procedure

Expand All @@ -45,7 +41,7 @@ If the results exceed the latency threshold, the test fails.
+
[IMPORTANT]
====
For valid results, the test should run for at least 12 hours.
During testing shorter time periods, as shown, can be used to run the tests. However, for final verification and valid results, the test should run for at least 12 hours (43200 seconds).
====
+
.Example failure output
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,12 @@ The `hwlatdetect` tool is available in the `rt-kernel` package with a regular su

[NOTE]
====
When executing `podman` commands as a non-root or non-privileged user, mounting paths can fail with `permission denied` errors. To make the `podman` command work, append `:Z` to the volumes creation; for example, `-v $(pwd)/:/kubeconfig:Z`. This allows `podman` to do the proper SELinux relabeling.
When executing `podman` commands as a non-root or non-privileged user, mounting paths can fail with `permission denied` errors. Depending on your local operating system and SELinux configuration, you might also experience issues running these commands from your home directory. To make the `podman` commands work, run the commands from a folder that is not your home/<username> directory, and append `:Z` to the volumes creation. For example, `-v $(pwd)/:/kubeconfig:Z`. This allows `podman` to do the proper SELinux relabeling.
====

.Prerequisites

* You have installed the real-time kernel in the cluster.
* You have logged in to `registry.redhat.io` with your Customer Portal credentials.
* You have reviewed the prerequisites for running latency tests.
.Procedure

Expand All @@ -43,7 +41,7 @@ If the results exceed the latency threshold, the test fails.
+
[IMPORTANT]
====
For valid results, the test should run for at least 12 hours.
During testing shorter time periods, as shown, can be used to run the tests. However, for final verification and valid results, the test should run for at least 12 hours (43200 seconds).
====
+
.Example failure output
Expand Down
7 changes: 3 additions & 4 deletions modules/cnf-performing-end-to-end-tests-running-oslat.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,12 @@ The `oslat` test simulates a CPU-intensive DPDK application and measures all the

[NOTE]
====
When executing `podman` commands as a non-root or non-privileged user, mounting paths can fail with `permission denied` errors. To make the `podman` command work, append `:Z` to the volumes creation; for example, `-v $(pwd)/:/kubeconfig:Z`. This allows `podman` to do the proper SELinux relabeling.
When executing `podman` commands as a non-root or non-privileged user, mounting paths can fail with `permission denied` errors. Depending on your local operating system and SELinux configuration, you might also experience issues running these commands from your home directory. To make the `podman` commands work, run the commands from a folder that is not your home/<username> directory, and append `:Z` to the volumes creation. For example, `-v $(pwd)/:/kubeconfig:Z`. This allows `podman` to do the proper SELinux relabeling.
====

.Prerequisites

* You have logged in to `registry.redhat.io` with your Customer Portal credentials.
* You have applied a cluster performance profile by using the Node Tuning Operator.
* You have reviewed the prerequisites for running latency tests.
.Procedure

Expand All @@ -44,7 +43,7 @@ If the results exceed the latency threshold, the test fails.
+
[IMPORTANT]
====
For valid results, the test should run for at least 12 hours.
During testing shorter time periods, as shown, can be used to run the tests. However, for final verification and valid results, the test should run for at least 12 hours (43200 seconds).
====
+
.Example failure output
Expand Down
46 changes: 22 additions & 24 deletions modules/cnf-performing-end-to-end-tests-running-the-tests.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -15,46 +15,44 @@ Run the cluster latency tests to validate node tuning for your Cloud-native Netw

[NOTE]
====
When executing `podman` commands as a non-root or non-privileged user, mounting paths can fail with `permission denied` errors. To make the `podman` command work, append `:Z` to the volumes creation; for example, `-v $(pwd)/:/kubeconfig:Z`. This allows `podman` to do the proper SELinux relabeling.
When executing `podman` commands as a non-root or non-privileged user, mounting paths can fail with `permission denied` errors. Depending on your local operating system and SELinux configuration, you might also experience issues running these commands from your home directory. To make the `podman` commands work, run the commands from a folder that is not your home/<username> directory, and append `:Z` to the volumes creation. For example, `-v $(pwd)/:/kubeconfig:Z`. This allows `podman` to do the proper SELinux relabeling.
====

This procedure runs the three individual tests `hwlatdetect`, `cyclictest`, and `oslat`. For details on these individual tests, see their individual sections.

.Procedure

. Open a shell prompt in the directory containing the `kubeconfig` file.
+
You provide the test image with a `kubeconfig` file in current directory and its related `$KUBECONFIG` environment variable, mounted through a volume. This allows the running container to use the `kubeconfig` file from inside the container.

. Run the latency tests by entering the following command:
You provide the test image with a `kubeconfig` file in current directory and its related `$KUBECONFIG` environment variable, mounted through a volume. This allows the running container to use the `kubeconfig` file from inside the container.
+
[source,terminal,subs="attributes+"]
----
$ podman run -v $(pwd)/:/kubeconfig:Z -e KUBECONFIG=/kubeconfig/kubeconfig \
-e LATENCY_TEST_RUN=true -e DISCOVERY_MODE=true -e FEATURES=performance registry.redhat.io/openshift4/cnf-tests-rhel8:v{product-version} \
/usr/bin/test-run.sh -ginkgo.focus="\[performance\]\ Latency\ Test" --ginkgo.timeout="24h"
----

. Optional: Append `-ginkgo.dryRun` to run the latency tests in dry-run mode. This is useful for checking what the tests run.

. Optional: Append `-ginkgo.v` to run the tests with increased verbosity.

. Optional: To run the latency tests against a specific performance profile, run the following command, substituting appropriate values:
[NOTE]
====
In the following command, your local `kubeconfig` is mounted to kubeconfig/kubeconfig in the cnf-tests container, which allows access to the cluster.
====
+
. To run the latency tests, run the following command, substituting variable values as appropriate:
+
[source,terminal,subs="attributes+"]
----
$ podman run -v $(pwd)/:/kubeconfig:Z -e KUBECONFIG=/kubeconfig/kubeconfig \
-e LATENCY_TEST_RUN=true -e FEATURES=performance -e LATENCY_TEST_RUNTIME=600 -e MAXIMUM_LATENCY=20 \
-e PERF_TEST_PROFILE=<performance_profile> registry.redhat.io/openshift4/cnf-tests-rhel8:v{product-version} \
/usr/bin/test-run.sh -ginkgo.focus="[performance]\ Latency\ Test"
-e LATENCY_TEST_RUNTIME=600\
-e MAXIMUM_LATENCY=20 \
registry.redhat.io/openshift4/cnf-tests-rhel8:v{product-version} /usr/bin/test-run.sh \
--ginkgo.v --ginkgo.timeout="24h"
----
+
where:
The LATENCY_TEST_RUNTIME is shown in seconds, in this case 600 seconds (10 minutes). The test runs successfully when the maximum observed latency is lower than MAXIMUM_LATENCY (20 μs).
+
If the results exceed the latency threshold, the test fails.
+
--
<performance_profile> :: Is the name of the performance profile you want to run the latency tests against.
--
. Optional: Append `--ginkgo.dry-run` flag to run the latency tests in dry-run mode. This is useful for checking what commands the tests run.

. Optional: Append `-ginkgo.v` flag to run the tests with increased verbosity.

. Optional: Append `--ginkgo.timeout="24h"` flag to ensure the Ginkgo 2.0 test suite does not timeout before the latency tests complete.
+
[IMPORTANT]
====
For valid latency test results, run the tests for at least 12 hours.
During testing shorter time periods, as shown, can be used to run the tests. However, for final verification and valid results, the test should run for at least 12 hours (43200 seconds).
====
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,9 @@ The `cnf-tests` image also includes several tests that are not supported by Red

Your cluster must meet the following requirements before you can run the latency tests:

. You have configured a performance profile with the Node Tuning Operator.
* You have applied all the required CNF configurations. This includes the `PerformanceProfile` cluster and other configuration according to the reference design specifications (RDS) or your specific requirements.

. You have applied all the required CNF configurations in the cluster.

. You have a pre-existing `MachineConfigPool` CR applied in the cluster. The default worker pool is `worker-cnf`.
* You have logged in to `registry.redhat.io` with your Customer Portal credentials by using the `podman login` command.

[role="_additional-resources"]
.Additional resources
Expand Down

0 comments on commit b81a2f4

Please sign in to comment.