Test Environment

This page describes details about the test environment.

Supported Architectures

Testing Farm supports a variety of hardware architectures, depending on the ranch being used.

🌍 Public Ranch

We currently support:

  • x86_64 in AWS

  • aarch64 in AWS

No other architectures are currently planned.

🎩 Red Hat Ranch

We currently support:

  • x86_64 in AWS with failover to Beaker and PSI OpenStack

  • aarch64 in AWS with failover to Beaker

  • ppc64le in Beaker

  • s390x in Beaker

Epel

Before Testing Farm starts installing artifacts into the test environment, it adds the EPEL repositories to the system.

Epel repository is added only for CentOS Stream distributions tested via the 🌍 Public ranch.

For RHEL the repository is not added by default, as this is not considered a best practice when testing RHEL.

For enabling the repository for RHEL you can use:

Implementation

The tag repository setup is implemented via the following guest-setup playbook:

Tag Repository

Before Testing Farm starts installing artifacts into the test environment, it adds the "tag repository" to the system. This repository contains all builds tagged with -candidate (i.e. which passed gating) that are not yet present in the nightly repository. It’s currently necessary as landing in nightly can take an indefinite amount of time due to the manual "pre-validation" and "attach to erratum" steps. Adding this repository greatly reduces the number of artifact installation failures.

The repository is auto-generated by the build system - Koji or Brew. The base url of the repository is set up according to the test environment operating system.

Tag repository is added:

  • for RHEL, CentOS Stream and Fedora based distributions

  • when testing on VM or Bare Metal, for container testing the setup is skipped

Tag repository details:

  • repository name: testing-farm-tag-repository

  • priority

    • 🌍 Public Ranch - 9 (higher than system repos)

    • 🎩 Red Hat Ranch - 999 (lower than system repos)

We are revisiting the usage of the tag repository for RHEL and Fedora in Testing Farm

Implementation

The tag repository setup is implemented via the following guest-setup playbooks:

Composes

Testing farm supports a variety of composes, depending on the ranch being used. The lists of composes for every ranch are available below:

When Compose YUM repositories are removed upstream, the composes become almost useless. If you would like to keep a compose for longer than the default time, you will need to request that it be tagged with by ENGCMP with do-not-remove. You will also need to change the keep_until date in variables-composes-yaml. Either request this from Testing Farm team or make a merge request.

Reserved Directories

This section describes special reserved directories in the testing environment. Your tests should avoid touching these, or unexpected failures can happen.

/var/ARTIFACTS for tmt based tests

This directory contains the tmt working directory used to save test artifacts and manage tmt tests execution.

/tmp/artifacts for STI based tests

This directory is used to store test artifacts produced by standard-test-roles.