Test Request

Hardware Requirements

Testing Farm allows users to define hardware requirements for the testing environment. These hardware requirements are used to provision appropriate resources on supported infrastructures.

The CLI examples are shortened for brevity and concentrate only on the hardware selection. Additional required options will be required if you use them.

The hardware selection is currently supported only on the Red Hat Ranch. Support for Public Ranch is coming in Q2/2023.

Architecture

Testing Farm provides an ability to provision a guest with a given architecture.

Examples

With testing-farm CLI
$ testing-farm request --arch x86_64
In Testing Farm API:
...
{
    "environments": {[
        "arch": "x86_64"
    ]}
}
...

Selection by hostname

Testing Farm provides an ability to provision a guest with a specific hostname. Ability to request a hostname matching a filter is also needed, because of guests of similar nature often sharing (sub)domain.

Examples

With testing-farm CLI
$ testing-farm request --hardware hostname='=~ sheep.+'
In Testing Farm API:
...
{
    "environments": {[
        "hardware": {
            "hostname": "=~ sheep.+"
        }
    ]}
}
...

RAM size selection

Testing Farm provides an ability to provision a guest with specified amount of RAM. Most often, a specific amount of RAM is needed to accommodate a memory-hungry test, making the minimal requirement the most demanded one.

Examples

With testing-farm CLI
$ testing-farm request --hardware memory='>= 8 GiB'
In Testing Farm API:
...
{
    "environments": {[
        "hardware": {
            "memory": ">= 8 GiB"
        }
    ]}
}
...

Disk size selection

Testing Farm provides an ability to provision a guest with specified disk size. The guest will get the disk size according to one of the suitable flavors:

The default disk size is:

  • 50 GiB for 🌍 Public Ranch

  • 250 GiB for 🎩 Red Hat Ranch

Examples

With testing-farm CLI
$ testing-farm request --hardware disk.size='>= 80 GB'
In Testing Farm API:
...
{
    "environments": {[
        "disk": {
            "size": ">= 80 GB"
        }
    ]}
}
...

Selection by TPM version

Testing Farm provides an ability to provision a guest with specified Trusted Platform Modue (TPM) version.

Examples

With testing-farm CLI
$ testing-farm request --hardware tpm.version=2
In Testing Farm API:
...
{
    "environments": {[
        "hardware": {
            "tpm": {
                "version": "2"
            }
        }
    ]}
}
...

Selecting systems by their boot method - BIOS

Testing Farm provides an ability to provision a guest supporting a specific boot method. The most common ones are (legacy) BIOS and UEFI, but some architectures may support their own specific methods as well.

Examples

With testing-farm CLI
$ testing-farm request --hardware boot.method='bios'
$ testing-farm request --hardware boot.method='!= bios'
In Testing Farm API:
...
{
    "environments": {[
        "hardware": {
            "boot": {
                "method": "bios"
            }
        }
    ]}
}
...
...
{
    "environments": {[
        "hardware": {
            "boot": {
                "method": "!= bios"
            }
        }
    ]}
}
...

Selecting systems by their compatible distro

Testing Farm provides an ability to provision a guest supporting selected distributions (OS). It is possible to select a HW that is able to run a list of selected distributions.

Examples

With testing-farm CLI
$ testing-farm request --hardware compatible.distro='rhel-7' --hardware compatible.distro='rhel-8'

This functionality is currently broken with CLI. See the issue here.

In Testing Farm API:
...
{
    "environments": {[
        "hardware": {
            "compatible": {
                "distro": [
                    "rhel7",
                    "rhel8"
                ]
            }
        }
    ]}
}
...

Selection by the model name of processor

Testing Farm provides an ability to provision a guest with a CPU of a particular model name.

Examples

With testing-farm CLI
$ testing-farm request --hardware cpu.model-name='=~ Intel Xeon'
In Testing Farm API:
...
{
    "environments": {[
        "hardware": {
            "cpu": {
                "model-name": "=~ Intel Xeon"
            }
        }
    ]}
}
...

Selection by the model of processor

Testing Farm provides an ability to provision a guest with a CPU of a particular model.

Examples

With testing-farm CLI
$ testing-farm request --hardware cpu.model='1'
In Testing Farm API:
...
{
    "environments": {[
        "hardware": {
            "cpu": {
                "model": "1"
            }
        }
    ]}
}
...

Selection by the number of processors

Testing Farm provides an ability to provision a guest with a given (minimal) number of logical processors.

Examples

With testing-farm CLI
$ testing-farm request --hardware cpu.processors='>= 4'
In Testing Farm API:
...
{
    "environments": {[
        "hardware": {
            "cpu": {
                "processors": ">= 4"
            }
        }
    ]}
}
...

Selecting virtualized guests by their hypervisor

Testing Farm provides an ability to provision a guest that powered by a particular hypervisor.

Examples

With testing-farm CLI
$ testing-farm request --hardware virtualization.hypervisor="!= hyperv"
In Testing Farm API:
...
{
    "environments": {[
        "hardware": {
            "virtualization": {
                "hypervisor": "!= hyperv"
            }
        }
    ]}
}
...

Selecting virtualized and non-virtualized guests

Testing Farm provides an ability to provision a guest either virtualized or definitely not virtualized.

Examples

With testing-farm CLI
$ testing-farm request --hardware virtualization.is-virtualized='false'
In Testing Farm API:
...
{
    "environments": {[
        "hardware": {
            "virtualization": {
                "is-virtualized": "false"
            }
        }
    ]}
}
...