openshift-psap / topsail

Test Orchestrator for Performance and Scalability of AI pLatforms
Apache License 2.0
11 stars 16 forks source link

TOPSAIL

Red Hat/PSAP's Test Orchestrator for Performance and Scalability of AI pLatforms

|lint| |nbsp| |consistency| |nbsp| |render_ansible| |nbsp| |render_docs|

This repository provides an extensive toolbox for performance and scale testing of Red Hat OpenShift AI <https://www.redhat.com/en/technologies/cloud-computing/openshift/openshift-ai>_ (RHOAI) platform.

The automation relies on:

Dependencies

The recommended way to run TOPSAIL either via a CI environment, or within TOPSAIL container via its Toolbx <https://containertoolbx.org/> launcher <https://github.com/openshift-psap/topsail/tree/main/launcher>.

Requirements:

.. code-block:: shell

oc version # fails if the cluster is not reachable

Note that TOPSAIL assumes that it has cluster-admin privileges to the cluster.

TOPSAIL orchestration and toolbox

TOPSAIL provides multiple levels of functionalities:

  1. the test orchestrations are top level. Most of the time, they are triggered via a CI engine, for end-to-end testing of a given RHOAI component. The test orchestration Python code and configuration is stored in the projects/*/testing directory.
  2. the toolbox commands operate between the orchestration code and the cluster. They are Ansible roles (projects/*/toolbox), in charge of a specific task to prepare the cluster, run a given test, capture the state of the cluster ... The Ansible roles have a thin Python layer on top of them (based on the Google Fire <https://github.com/google/python-fire>_ package) which provides a well-defined command-line interface (CLI). This CLI interface documents the parameters of the command, it allows its discovery via the ./run_toolbox.py entrypoint, and it generates artifacts for post-mortem troubleshooting.
  3. the post-processing visualization, provided via MatrixBenchmarking <https://github.com/openshift-psap/matrix-benchmarking>_ workload modules (projects/*/visualization). The modules are in charge of parsing the test artifacts, generating visualization reports, uploading KPIs to OpenSearch, and performing regression analyses.

TOPSAIL projects organization

TOPSAIL projects <https://github.com/openshift-psap/topsail/tree/main/projects>_ directories are organized following the different levels described above.

.. |lint| image:: https://github.com/openshift-psap/topsail/actions/workflows/ansible-lint.yml/badge.svg?event=schedule :alt: Linters build status :target: https://github.com/openshift-psap/topsail/actions/workflows/ansible-lint.yml .. |consistency| image:: https://github.com/openshift-psap/topsail/actions/workflows/check_consistency.yml/badge.svg?event=schedule :alt: Consistency build status :target: https://github.com/openshift-psap/topsail/actions/workflows/check_consistency.yml .. |render_ansible| image:: https://github.com/openshift-psap/topsail/actions/workflows/check_generated_ansible.yml/badge.svg?event=schedule :alt: Render Ansible build status :target: https://github.com/openshift-psap/topsail/actions/workflows/check_generated_ansible.yml .. |render_docs| image:: https://github.com/openshift-psap/topsail/actions/workflows/build_docs.yml/badge.svg?event=schedule :alt: Render docs build status :target: https://github.com/openshift-psap/topsail/actions/workflows/build_docs.yml .. |nbsp| unicode:: 0xA0 :trim: