This is the Ansible role to deploy OpenStack Tempest.
tags: | openstack, cloud, ansible, os_tempest |
---|---|
category: | *nix |
- role: "os_tempest"
ROLE_VARS...
To clone or view the source code for this repository, visit the role repository for os_tempest.
## Verbosity Options
debug: False
# Set the package install state for distribution and pip packages
# # Options are 'present' and 'latest'
tempest_package_state: "latest"
tempest_pip_package_state: "latest"
tempest_upper_constraints_url: "https://opendev.org/openstack/requirements/raw/{{ requirements_git_install_branch | default('master') }}/upper-constraints.txt"
# Set the host which will execute the shade modules
# for the service setup. The host must already have
# clouds.yaml properly configured.
tempest_service_setup_host: "{{ openstack_service_setup_host | default('localhost') }}"
tempest_service_setup_host_python_interpreter: "{{ openstack_service_setup_host_python_interpreter | default((tempest_service_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_python['executable'])) }}"
# Toggle whether tempest actually executes
tempest_run: no
# Define 0 (serial) or more to use a non default concurrency
#tempest_run_concurrency:
# We comment `tempest_git_repo` so that the repo_build role does not attempt to
# build the wheel from this repo/branch. Instead, we want tempest to get built
# from the stable release defined in global requirements.
#tempest_git_repo: https://git.openstack.org/openstack/tempest
tempest_git_install_branch: '19.0.0'
tempest_developer_mode: False
tempest_developer_constraints:
- "git+{{ tempest_git_repo }}@{{ tempest_git_install_branch }}#egg=tempest"
# Name of the virtual env to deploy into
tempest_venv_tag: untagged
tempest_venv_bin: "/openstack/venvs/tempest-{{ tempest_venv_tag }}/bin"
# venv_download, even when true, will use the fallback method of building the
# venv from scratch if the venv download fails.
tempest_venv_download: "{{ not tempest_developer_mode | bool }}"
tempest_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/tempest.tgz
# The location where the tempest logs will be placed
tempest_log_dir: "/var/log/tempest"
## Tempest Plugins
# By default, the following tempest plugins are installed.
# Override ``tempest_plugins`` variable with your own plugins, depending
# on your installation.
# The structure of each item of the list is the following:
# - name: designate-tempest-plugin #name of the plugin
# repo: https://git.openstack.org/openstack/designate-tempest-plugin #for installing the plugin from sources
# branch: master #for installing the plugin from sources
# install_test_requirements: True #for installing the plugin with its test_requirements (default: True)
# - name: ironic-tempest-plugin
# package: ironic #for installing the plugin from packages
tempest_plugins: "{{ _tempest_plugins['keystone'] + _tempest_plugins['cinder'] + _tempest_plugins['heat'] + _tempest_plugins['neutron'] }}"
# The location where the test whitelist/blacklist will be placed
tempest_test_whitelist_file_path: "{{ tempest_venv_bin | dirname }}/workspace/etc/tempest_whitelist.txt"
tempest_test_blacklist_file_path: "{{ tempest_venv_bin | dirname }}/workspace/etc/tempest_blacklist.txt"
# Tests to execute:
# This sets up a list of tests to execute based on what's deployed in the environment.
# The list gets added to the whitelist which tempest executes.
tempest_test_whitelist:
- "tempest.api.identity.admin.v3"
- "tempest.api.identity.v3"
- "{{ (tempest_service_available_ceilometer | bool) | ternary('tempest.api.telemetry', '') }}"
- "{{ (tempest_service_available_heat | bool) | ternary('tempest.api.orchestration.stacks.test_non_empty_stack', '') }}"
# TODO(odyssey4me):
# Once the issue with this test is worked out, re-enable it.
#- "{{ (tempest_service_available_nova | bool) | ternary('tempest.scenario.test_minimum_basic', '') }}"
- "{{ (tempest_service_available_nova | bool) | ternary('tempest.scenario.test_server_basic_ops', '') }}"
- "{{ (tempest_service_available_swift | bool) | ternary('tempest.scenario.test_object_storage_basic_ops', '') }}"
- "{{ (tempest_volume_multi_backend_enabled | bool) | ternary('tempest.api.volume.admin.test_multi_backend', '') }}"
# TODO(evrardjp): Bring this back when upstream is fixed
# (revert of https://github.com/openstack/cinder/commit/737c50b4ea54e2e63d6e3fe8a73d22b393df4205)
# - "{{ (tempest_volume_backup_enabled | bool) | ternary('tempest.api.volume.admin.test_volumes_backup', '') }}"
# Tests to NOT execute:
# This sets up a list of tests to skip, which can even include those included in the whitelist.
tempest_test_blacklist: []
# Toggle fatal deprecations
tempest_fatal_deprecations: False
# Private network configuration
# Currently supports 2 types
# vlan - will need to make sure your seg id and subnet cidr are correct
# vxlan - default, can change subnet cidr and seg id
# This needs to coincide with tempest_network_tenant_network_cidr and
# tempest_network_tenant_network_mask_bits below
tempest_private_net_name: "private"
tempest_private_subnet_name: "private-subnet"
tempest_private_subnet_cidr: "192.168.74.0/28"
tempest_private_net_provider_type: "vxlan"
tempest_private_net_seg_id: 1
# Public network configuration
# Currently supports 2 types
# Flat - default
# Vlan - make sure you override seg id, cidr, provider and physical
tempest_public_net_name: "public"
tempest_public_subnet_name: "public-subnet"
tempest_public_subnet_cidr: "10.1.13.0/24"
# Neutron default gateway to first ip of subnet, usually .1
# tempest_public_subnet_gateway_ip:
tempest_public_net_provider_type: "flat"
tempest_public_net_physical_type: "flat"
tempest_public_net_seg_id: ""
tempest_public_router_external: "True"
# Example allocation range:
# tempest_public_subnet_allocation_pools: "10.1.13.150-10.1.13.200"
tempest_public_subnet_allocation_pools: ""
tempest_compute_ssh_user: cirros
tempest_compute_image_ssh_user: cirros
tempest_compute_run_ssh: True
tempest_compute_console_output_enabled: True
tempest_compute_resize_enabled: True
tempest_compute_snapshot_enabled: True
tempest_compute_change_password: False
tempest_network_tenant_network_cidr: "192.168.74.0/24"
tempest_network_tenant_network_mask_bits: 28
tempest_dashboard_url: "https://{{ external_lb_vip_address }}/"
tempest_service_available_aodh: False
tempest_service_available_ceilometer: False
tempest_service_available_cinder: True
tempest_service_available_glance: True
tempest_service_available_heat: True
tempest_service_available_horizon: True
tempest_service_available_ironic: False
tempest_service_available_neutron: True
tempest_service_available_nova: True
tempest_service_available_sahara: False
tempest_service_available_swift: True
tempest_service_available_zaqar: False
tempest_image_api_v1_enabled: False
tempest_image_api_v2_enabled: True
tempest_swift_enabled: True
tempest_swift_container_sync: True
tempest_swift_object_versioning: True
tempest_swift_discoverable_apis:
- bulk
- object
- container_quotas
- container_sync
- slo
- tempurl
tempest_volume_backend_names: [ backend1, backend2 ]
tempest_volume_backup_enabled: False
tempest_volume_multi_backend_enabled: False
tempest_main_group: tempest_all
tempest_pip_packages:
- cmd2<0.9.0 # >=0.9.0 is python3 only
- ddt
- junitxml
- lxml
- nose
- python-ceilometerclient
- python-cinderclient
- python-glanceclient
- python-heatclient
- python-keystoneclient
- python-memcached
- python-neutronclient
- python-novaclient
- python-openstackclient
- python-saharaclient
- python-subunit
- python-swiftclient
- tempest
- testscenarios
- os-testr
# The list of images for tempest to download.
# url: where to download from (required)
# checksum: the checksum of the downloaded file to validate against, format: <algorithm>:<checksum> (optional)
# format: format to use when uploading to glance (required)
# name: name to use when uploading to glance - default is to use the downloaded file's name (optional)
tempest_images:
- url: "http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img"
checksum: "sha256:a8dd75ecffd4cdd96072d60c2237b448e0c8b2bc94d57f10fdbc8c481d9005b8"
format: "qcow2"
name: "cirros"
- url: "http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img"
checksum: "sha256:a8dd75ecffd4cdd96072d60c2237b448e0c8b2bc94d57f10fdbc8c481d9005b8"
format: "qcow2"
name: "cirros"
# The location where images are downloaded to
tempest_image_dir: "/opt/cache/files"
tempest_enable_instance_password: True
tempest_flavors:
- name: tempest1
id: 201
ram: 256
disk: 1
vcpus: 1
- name: tempest2
id: 202
ram: 512
disk: 1
vcpus: 1
# The projects for tempest to use
tempest_projects:
- "demo"
- "alt_demo"
# The users for tempest to use
tempest_users:
- name: "demo"
- name: "alt_demo"
# The keystone roles for tempest to use
tempest_roles: []
# This variable is used by the repo_build process to determine
# which host group to check for members of before building the
# pip packages required by this role. The value is picked up
# by the py_pkgs lookup.
tempest_role_project_group: utility_all
## Tunable overrides
tempest_tempest_conf_overrides: {}
This role needs pip >= 7.1 installed on the target host.
---
- name: os_tempest role
hosts: "hosts"
user: root
roles:
- { role: "os_tempest" }
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.