此内容没有您所选择的语言版本。
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:
Change to the
/home/stackdirectory:$ cd /home/stackDownload the tempest container:
$ podman pull registry.redhat.io/rhosp-rhel8/openstack-tempest:16.0This 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 thetempest list-pluginscommand 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.Create directories to use for exchanging data between the host machine and the container:
$ mkdir container_tempest tempest_workspaceCopy the necessary files to the
container_tempestdirectory. This directory is the file source for the container:$ cp stackrc overcloudrc tempest-deployer-input.conf container_tempestList 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 MBCreate 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"To get a list of available tempest plugins in the container, run the following command:
$ podman-tempest -c "rpm -qa | grep tempest"
6.2. Running containerized Tempest inside the container 复制链接链接已复制到粘贴板!
Create a tempest script that you can execute within the container to generate the
tempest.conffile and run the tempest tests. The script performs the following actions:-
Set the exit status for the command
set -e. -
Source the
overcloudrcfile if you want to run tempest against the overcloud. Source thestackrcfile if you want to run tempest against the undercloud. -
Run
tempest initto 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-configto generate thetempest.conffile. For more information about the options that you can include in thediscover-tempest-configcommand, rundiscover-tempest-config --help. -
Set
--outtohome/stack/tempest_workspace/tempest.confso that thetempest.conffile is accessible from the host machine. -
Set
--deployer-inputto point to thetempest-deployer-input.conffile 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 EOFIf you already have a
tempest.conffile and you want only to run the tempest tests, omitTEMPESTCONFfrom the script and replace it with a command to copy yourtempest.conffile from thecontainer_tempestdirectory to thetempest_workspace/etcdirectory:
$ cp /home/stack/container_tempest/tempest.conf /home/stack/tempest_workspace/etc/tempest.conf-
Set the exit status for the command
Set executable privileges on the
tempest_script.shscript:$ chmod +x container_tempest/tempest_script.shRun 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'-
Inspect the
.stestrdirectory for information about the test results. 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
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:
Source the
overcloudrcfile if you want to run tempest against the overcloud. Source thestackrcfile if you want to run tempest against the undercloud:# source /home/stack/container_tempest/overcloudrcRun
tempest initto create a tempest workspace. Use the shared directory so that the files are also accessible from the host:# tempest init /home/stack/tempest_workspaceGenerate the
tempest.conffile:# 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 ResellerAdminFor more information about the options that you can include in the
discover-tempest-configcommand, rundiscover-tempest-config --help.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"-
Inspect the
.stestrdirectory for information about the test results. 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