Platform Verification#
You can use the NVIDIA Holoscan for Media Verification Tool to validate cluster readiness and assess key performance characteristics of the Holoscan for Media platform.
Prerequisites#
Cluster Environment#
You need one of the following environments:
A cluster certified for Holoscan for Media
A Holoscan for Media local development setup with Kubernetes
Workstation Tooling#
The jump node that runs the tool must have the following installed:
Python 3.10 or 3.12
kubectlinstalled and configured for the target clusterocinstalled, for token-based login to OpenShift clusters
Cluster Access and Permissions#
A valid
kubeconfigfor the target cluster. For OpenShift clusters, thekubeconfigmust include a user token.Permissions to create commonly used resources, such as namespaces, pods, jobs, ConfigMaps, and secrets
Verify Cluster Access#
Before proceeding, verify that you can access the cluster using a token:
Check the current context:
oc config view --minify --raw
If the output does not include users > user > token, log in to the cluster with a token that you generate from the OpenShift web console:
oc login --token=<token> --server=<cluster_url>
NGC API Key (NVIDIA Container Registry)#
The tool needs an NGC API key to pull container images from NVIDIA NGC:
Follow the steps in Create Image Pull Secret to create an NGC API key.
Make sure that an image pull secret exists in the default namespace and that the
image-pull-secretparameter in the test configuration references it.
Rivermax License and Secret#
Network validation tests require the Rivermax license. Create a Kubernetes secret from the license file:
Create the Rivermax license secret, replacing
<path_to_license>with the actual path:kubectl create secret generic rivermax-license --from-file=<path_to_license>
Verify that you created the secret:
kubectl get secret rivermax-license
Installation of the Verification Tool#
Download the
h4m-verification-tool.tar.gzfile from the Verification Tool resource using an NGC API key.Alternatively, download the file on the command line. Replace the
<API-KEY>placeholder with your NGC API key:curl -fsSLO "https://api.ngc.nvidia.com/v2/org/nvidia/team/holoscan-for-media/resources/h4m-verification-tool/versions/0.1.1/files/h4m-verification-tool.tar.gz" -H "Authorization: Bearer <API-KEY>"
Extract the archive:
tar -xvf h4m-verification-tool.tar.gz
The archive includes
run_tests.py,requirements.txt, Python 3.10 and 3.12 binaries, and the standard and NVIDIA Cloud Native Stack sample configurations.Edit the supplied configuration for the deployed platform:
sample_test.yamlfor a standard deploymentsample_test_cns.yamlfor a Cloud Native Stack deployment
Configure the common parameters as follows:
Name
Description
Default
image-pull-secretName of the NGC secretUsekubectl get secretsto list the secretsngc-api-keyimage-nameName of the image to use for the testnvcr.io/nvidia/holoscan-for-media/h4m-verification-tool-internals:0.1.0
Cluster-Specific Test Configuration#
By default, the Rivermax and Platform tests use worker nodes labeled for container workloads. For virtual machine (VM) Platform Checks, set workload-type: vm. To override automatic placement, set node-list to a list of node names, or set node-selector.
Use the sample configuration from the extracted archive as the source of truth, and edit it in place for the target cluster.
If a Rivermax test fails or underperforms, inspect its <Rivermax_test>/<timestamp>_<nodes>/device_topology.json file, which records the following:
Sender and receiver pods and nodes
NIC PCIe addresses and paths
For GPU tests, GPU PCIe addresses and paths
Use these paths to verify that the selected NIC and GPU share the expected PCIe switch or root complex. For GPUDirect failures, also inspect the Platform Checks gpu_topology, pcie_config, and nvidia_peermem artifacts, and the receiver-drop and SR-IOV metrics.
For a Cloud Native Stack deployment, set scheduler-name to default-scheduler.
Set up a Python virtual environment:
If they are not already installed, install
pipandvenv:sudo apt update && sudo apt install python3-pip python3-venv
Run the following commands to create the Python virtual environment and install the requirements:
python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip pip install -r requirements.txt
Running the Verification Tool#
Run the tool using the following command:
python3 run_tests.py sample_test.yaml
The tool saves test results in a timestamped directory similar to the following:
cluster-validation-suite_<date_time>/
├── test_runner_<date_time>.log
├── Platform_Checks/
├── Rivermax_<test>/
│ └── <timestamp>_<nodes>/
│ └── device_topology.json
├── Global_Results_Summary.json
└── test_report.html
test_runner_<date_time>.log: Verification tool execution logPlatform_Checks/: Platform validation outputs and logsRivermax_<test>/: Rivermax logs and test artifactsGlobal_Results_Summary.json: Summary of test outcomestest_report.html: HTML report with the result of each test