Este conteúdo não está disponível no idioma selecionado.

Chapter 6. Running containerized Tempest


This section contains information about running tempest from a container on the undercloud. You can run tempest against the overcloud or the undercloud. Containerized tempest requires the same resources as non-containerized tempest.

6.1. Preparing the Tempest container

Complete the following steps to download and configure your tempest container:

  1. Change to the /home/stack directory:

    $ cd /home/stack
    Copy to Clipboard Toggle word wrap
  2. Download the tempest container:

    $ podman pull registry.redhat.io/rhosp-rhel8/openstack-tempest:16.0
    Copy to Clipboard Toggle word wrap

    This container includes all tempest plugins. Running tempest tests globally with this container includes tests for plugins. For example, if you run the tempest run --regex '(*.)' command, tempest runs all plugin tests. These tempest tests fail if your deployment does not contain configuration for all plugins. Run the tempest list-plugins command to view all installed plugins. To exclude tests, you must include the tests that you want to exclude in a blacklist file. For more information, see Chapter 5, Using Tempest.

  3. Create directories to use for exchanging data between the host machine and the container:

    $ mkdir container_tempest tempest_workspace
    Copy to Clipboard Toggle word wrap
  4. Copy the necessary files to the container_tempest directory. This directory is the file source for the container:

    $ cp stackrc overcloudrc tempest-deployer-input.conf container_tempest
    Copy to Clipboard Toggle word wrap
  5. List the available container images:

    $ podman images
    REPOSITORY                                                  TAG        IMAGE ID            CREATED             SIZE
    registry.redhat.io/rhosp-rhel8/openstack-tempest   latest     881f7ac24d8f        10 days ago         641 MB
    Copy to Clipboard Toggle word wrap
  6. Create an alias to facilitate easier command entry. Ensure that you use absolute paths when mounting the directories:

    $ alias podman-tempest="podman run -i --privileged=true\
        -v "$(pwd)"/container_tempest:/home/stack/container_tempest:z \
        -v "$(pwd)"/tempest_workspace:/home/stack/tempest_workspace:z \
        registry.redhat.io/rhosp-rhel8/openstack-tempest:16.0 \
        /bin/bash"
    Copy to Clipboard Toggle word wrap
  7. To get a list of available tempest plugins in the container, run the following command:

    $ podman-tempest -c "rpm -qa | grep tempest"
    Copy to Clipboard Toggle word wrap

6.2. Running containerized Tempest inside the container

  1. Create a tempest script that you can execute within the container to generate the tempest.conf file and run the tempest tests. The script performs the following actions:

    • Set the exit status for the command set -e.
    • Source the overcloudrc file if you want to run tempest against the overcloud. Source the stackrc file if you want to run tempest against the undercloud.
    • Run tempest init to create a tempest workspace. Use the shared directory so that the files are also accessible from the host.
    • Change directory to tempest_workspace
    • Export the TEMPESTCONF environment variable for ease of use at a later stage.
    • Execute discover-tempest-config to generate the tempest.conf file. For more information about the options that you can include in the discover-tempest-config command, run discover-tempest-config --help.
    • Set --out to home/stack/tempest_workspace/tempest.conf so that the tempest.conf file is accessible from the host machine.
    • Set --deployer-input to point to the tempest-deployer-input.conf file in the shared directory.
    • Run tempest tests. This example script runs the smoke test tempest run --smoke.

      $ cat <<'EOF'>> /home/stack/container_tempest/tempest_script.sh
      set -e
      source /home/stack/container_tempest/overcloudrc
      tempest init /home/stack/tempest_workspace
      pushd /home/stack/tempest_workspace
      
      export TEMPESTCONF="/usr/bin/discover-tempest-config"
      
      $TEMPESTCONF \
        --out /home/stack/tempest_workspace/etc/tempest.conf \
        --deployer-input /home/stack/container_tempest/tempest-deployer-input.conf \
        --debug \
        --create \
        object-storage.reseller_admin ResellerAdmin
      
      tempest run --smoke
      
      EOF
      Copy to Clipboard Toggle word wrap

      If you already have a tempest.conf file and you want only to run the tempest tests, omit TEMPESTCONF from the script and replace it with a command to copy your tempest.conf file from the container_tempest directory to the tempest_workspace/etc directory:

    $ cp /home/stack/container_tempest/tempest.conf /home/stack/tempest_workspace/etc/tempest.conf
    Copy to Clipboard Toggle word wrap
  2. Set executable privileges on the tempest_script.sh script:

    $ chmod +x container_tempest/tempest_script.sh
    Copy to Clipboard Toggle word wrap
  3. Run the tempest script from the container using the alias that you created in a previous step:

    $ podman-tempest -c 'set -e; /home/stack/container_tempest/tempest_script.sh'
    Copy to Clipboard Toggle word wrap
  4. Inspect the .stestr directory for information about the test results.
  5. If you want to rerun the tempest tests, you must first remove and recreate the tempest workspace:

    $ sudo rm -rf /home/stack/tempest_workspace
    $ mkdir /home/stack/tempest_workspace
    Copy to Clipboard Toggle word wrap

6.3. Running Containerized Tempest outside the container

The container generates or retrieves the tempest.conf file and runs tests. You can perform these operations from outside the container:

  1. Source the overcloudrc file if you want to run tempest against the overcloud. Source the stackrc file if you want to run tempest against the undercloud:

    # source /home/stack/container_tempest/overcloudrc
    Copy to Clipboard Toggle word wrap
  2. Run tempest init to create a tempest workspace. Use the shared directory so that the files are also accessible from the host:

    # tempest init /home/stack/tempest_workspace
    Copy to Clipboard Toggle word wrap
  3. Generate the tempest.conf file:

    # discover-tempest-config \
    --out /home/stack/tempest_workspace/tempest.conf \
    --deployer-input /home/stack/container_tempest/tempest-deployer-input-conf \
    --debug \
    --create \
    object-storage.reseller_admin ResellerAdmin
    Copy to Clipboard Toggle word wrap

    For more information about the options that you can include in the discover-tempest-config command, run discover-tempest-config --help.

  4. Execute tempest tests. For example, run the following command to execute the tempest smoke test using the alias you created in a previous step:

    # podman-tempest -c "tempest run --smoke"
    Copy to Clipboard Toggle word wrap
  5. Inspect the .stestr directory for information about the test results.
  6. If you want to rerun the tempest tests, you must first remove and recreate the tempest workspace:

    $ sudo rm -rf /home/stack/tempest_workspace
    $ mkdir /home/stack/tempest_workspace
    Copy to Clipboard Toggle word wrap
Voltar ao topo
Red Hat logoGithubredditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar. Explore nossas atualizações recentes.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja o Blog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

Theme

© 2025 Red Hat