IB Cluster Inventory
This inventory is a collection of hosts against which jobs may be launched to deploy the InfiniBand cluster.
The predefined group named ib_host_manager must contain a single host for in-band tasks.
All hosts in this inventory must have Python 3.6 or greater.
All the hosts associated to ib_host_manager group must have the following:
Python ≥ 3.6
MLNX_OFED ≥ 5.6
MFT ≥ 4.20
MFT and MLNX_OFED packages are installed using the Host Package Deployment workflow.
Make sure both packages are installed when this workflow is not part of the bring-up flow.
If the user wants to define specific pass/fail criteria, the pass_fail_criteria variable should be utilized. This variable must consist of a dictionary as its value which will have a mapping of a job template (playbook name) to its user-defined criteria (dictionary). The criteria dictionary should contain two special keys, max_fail_percentage and action.
max_fail_percentage key expects an integer from 0-100 (percentage) as its value. The value represents a percentage (as integer) of failures which are acceptable during the execution of the supported job template. Its default value is 0, which means that in the case of any failures (one host or more) the job template will fail.
action defines the operation to perform if the actual failure percentage is greater than the max_fail_percentage value
Supported job template actions (operation types):
Action/Operation |
Description |
stop |
Fails the execution of the job |
Playbook name (key names supported for pass_fail_criteria) to job template name mapping:
Playbook Name |
Job Template Name |
hca_fw_update |
HCA Firmware Update |
ib_hca_fw_update |
IB HCA Firmware Update |
ib_cable_fw_update |
IB Cable Firmware Update |
ib_switch_fw_update |
IB Externally Managed Switch Firmware Update |
mlnxos_configure |
MLNX-OS Configure |
mlnxos_upgrade |
MLNX-OS Upgrade |
Example for pass_fail_criteria variable example (placed in the inventory variables list):
pass_fail_criteria: '{"hca_fw_update": {"max_fail_percentage": 40, "action": "stop"}, "ib_switch_fw_update": {"max_fail_percentage": 80, "action": "stop"}}'
In this example, the user provides criteria for two job templates: HCA Firmware Update (hca_fw_update) and IB Externally Managed Switch Firmware Update (ib_switch_fw_update).
For the HCA Firmware Update job template, the max_fail_percentage is set to 40. Supposing we have 3 total hosts. If only one host fails, then the job template will pass (33% actual failure which is smaller than 40%). If two hosts fail, the job template will fail (66% actual failure which is greater than 40%).
For the IB Externally Managed Switch Firmware Update job template, the max_fail_percentage is set to 80. For this job template to fail, over 80% of the hosts must fail.
Add one or more hosts to IB Cluster Inventory.
Go to Resources > Templates.
Click the "Launch Template" icon for "AWX Inventory Host Update".
Specify the following required variables:
api_url – URL to your cluster bring-up REST API
controller_host – URL to your AWX controller instance
controller_username – username for your AWX controller instance
controller_password – password for your AWX controller instance
inventory – inventory the host(s) should be made a member of (default: IB Cluster Inventory)
hostname – a hostname or a hostname expression of the end-host(s) to add/remove
Click the Next button.
Click the Launch button.
WarningYou may specify the controller_oauthtoken variable with OAuth token for your AWX controller instance instead of using controller_username and controller_password variables.
Select the Groups tab and click on a group named ib_host_manager.
Select the Hosts tab and click the "Add" button to add a new host to the group.
Select the "Add existing host" option and choose one host to be member of the group.
You can specify variable definitions and values to be applied to all hosts in this inventory.
To define variables for the IB Cluster Inventory:
Go to Inventories > IB Cluster Inventory and select the Details tab.
Click the Edit button, which opens the Edit details dialog.
Enter variables using either JSON or YAML syntax.
Click Save when finished.
This section describes all available variables for this inventory.
Cluster Bring-Up Web Framework Variables
Name |
Description |
api_url |
URL to your cluster bring-up REST API |
pypi_url |
URL to your cluster bring-up PyPI repository |
MLNX_OFED Upgrade Variables
Name |
Description |
ofed_package_url |
URL of the MLNX_OFED package to download (default: auto-detection). In addition, you must specify the ofed_version parameter or use its default value. |
ofed_dependencies |
List of all package dependencies for the MLNX_OFED package |
ofed_install_options |
List of optional arguments for the installation command |
ofed_version |
Version number of the MLNX_OFED package to install |
MFT Upgrade Variables
Name |
Description |
mft_package_url |
URL of the MFT package to download (default: auto-detection). In addition, you must specify the mft_version parameter or use its default value. |
mft_dependencies |
List of all package dependencies for the MFT package |
mft_install_options |
List of optional arguments for the installation command |
mft_version |
Version number of the MFT package to install |
UFM Telemetry Upgrade Variables
Name |
Description |
ufm_telemetry_package_url |
URL for NVIDIA® UFM® Telemetry to download |
HPC-X Upgrade Variables
Name |
Description |
hpcx_dir |
Target path for HPC-X installation folder (default: /opt/nvidia/hpcx) |
hpcx_package_url |
URL of the HPC-X package to download (default: auto-detection). In addition, you must specify the hpcx_version parameter or use its default value. |
hpcx_version |
Version number of the HPC-X package to install |
hpcx_install_once |
Specify whether to install HPC-X package via single host. May be used to install the package on a shared directory (default: false). |
ofed_version |
Version number of the OFED package that compatible to the HPC-X package (default: auto-detection). This variable is mandatory when MLNX_OFED is not installed on the host. |
ClusterKit Variables
Name |
Description |
clusterkit_hostname |
Hostname expression that represents the hostname to run tests on (default: all hosts in the inventory) |
clusterkit_options |
List of optional arguments for the tests |
MLNX-OS Upgrade Variables
Name |
Description |
mlnxos_switch_hostname |
Hostname expression that represents the names of the switches to upgrade. To skip this parameter using auto-detection of the MLNX-OS switches, UFM Telemetry is required. Make sure to run IB Network Discovery with ufm_telemetry_path parameter. |
mlnxos_image_url |
URL of the NVIDIA® MLNX-OS® image to download |
mlnxos_switch_username |
Username to authenticate against target switches |
mlnxos_switch_password |
Password to authenticate against target switches |
Externally Managed Switch Firmware Upgrade Variables
Name |
Description |
switch_fw_image_url |
URL of the firmware image to download |
switch_psid |
PSID of the externally managed switch device to upgrade |
HCA Firmware Upgrade Variables
Name |
Description |
hca_fw_image_url |
URL of the firmware image to download |
hca_psid |
PSID of the HCA device to upgrade |
Cable Firmware Upgrade (IFFU) Variables
Name |
Description |
iffu_auto_update |
Specify whether to update all supported cables/transceivers connected to the host/switch (default: true) |
iffu_fw_version |
Firmware version number of the cable image to update. This variable is mandatory when the cable image is not queryable. |
iffu_image_url |
URL of the firmware image to download |
cable_identifier |
Identifier of the cable/transceiver to update (e.g., OSFP, QSFP56) |
cable_part_number |
Part number of the cable/transceiver to upgrade |