## Verbosity Options
debug: False
stestr_executable: "{{ _stestr_executable | default('stestr') }}"
# Install openstack tempest
# set the tempest_install_method to source or distro
# on choosing source it will install from git or venv
# on choosing distro it will install based on distribution
tempest_install_method: "{{ service_install_method | default('source') }}"
tempest_venv_python_executable: "{{ openstack_venv_python_executable | default(_tempest_venv_python_executable) | default('python3') }}"
# Set the package install state for distribution and pip packages
# # Options are 'present' and 'latest'
tempest_package_state: "latest"
# 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_facts['python']['executable']))
}}
# Toggle whether tempest actually executes
tempest_run: no
# Toggle whether tempest cleanup executes prior and after regular tempest run
tempest_cleanup: no
# if tempest_cleanup_dry_run is set to true, tempest cleanup will log all found
# leftover resources to a dry_run.json file, none resources will be deleted
# tempest_cleanup_dry_run: no
# Credential Provider Mechanisms
# If tempest_test_accounts is not an empty string, then use_dynamic_credentials will be turned off
tempest_test_accounts: ""
tempest_test_accounts_file_path: "{{ tempest_workspace }}/etc/tempest_accounts.yaml"
# tempest_create_isolated_networks has an effect only when use_dynamic_credentials is enabled
tempest_create_isolated_networks: true
# tempest_fixed_network_name does not have an effect when dynamic credentials are used together with tempest_create_isolated_networks
tempest_fixed_network_name: public
# Tempest Resources
# Toggle whether default resources are implemented
tempest_default_role_resources: yes
tempest_public_net_create: true
tempest_private_net_create: false
tempest_router_create: false
tempest_images_create: true
tempest_flavors_create: true
tempest_projects_create: "{{ tempest_public_net_create or tempest_private_net_create or tempest_router_create }}"
# Define 0 (serial) or more to use a non default concurrency
# tempest_run_concurrency:
# Define the worker file to be used by tempest
# This worker file is parsed to stestr to manually schedule tempest tests
# tempest_test_worker_file_path:
# We comment `tempest_git_repo` so that we do 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://opendev.org/openstack/tempest
tempest_git_install_branch: master
tempest_upper_constraints_url: >-
{{ requirements_git_url | default('https://releases.openstack.org/constraints/upper/' ~ requirements_git_install_branch | default('master')) }}
tempest_git_constraints:
- "--constraint {{ tempest_upper_constraints_url }}"
tempest_pip_install_args: "{{ pip_install_options | default('') }}"
# Name of the virtual env to deploy into
tempest_venv_tag: "{{ venv_tag | default('untagged') }}"
tempest_venv_bin: "/openstack/venvs/tempest-{{ tempest_venv_tag }}/bin"
# The location where the tempest logs will be placed
tempest_log_dir: "/var/log/tempest"
## Tempest Plugins
# Extra plugins can be defined in ``tempest_extra_plugins``.
# tempest_extra_plugins:
# - name: custom-tempest-plugin
# repo: https://opendev.org/openstack/custom-tempest-plugin
# branch: master
# install: true
tempest_extra_plugins: []
tempest_plugins: "{{ (_tempest_plugins + tempest_extra_plugins) | selectattr('install', 'equalto', true) }}"
tempest_plugin_barbican_git_repo: https://opendev.org/openstack/barbican-tempest-plugin
tempest_plugin_barbican_git_install_branch: master
tempest_plugin_blazar_git_repo: https://opendev.org/openstack/blazar-tempest-plugin
tempest_plugin_blazar_git_install_branch: master
tempest_plugin_cinder_git_repo: https://opendev.org/openstack/cinder-tempest-plugin
tempest_plugin_cinder_git_install_branch: master
tempest_plugin_cloudkitty_git_repo: https://opendev.org/openstack/cloudkitty-tempest-plugin
tempest_plugin_cloudkitty_git_install_branch: master
tempest_plugin_designate_git_repo: https://opendev.org/openstack/designate-tempest-plugin
tempest_plugin_designate_git_install_branch: master
tempest_plugin_glance_git_repo: https://opendev.org/openstack/glance-tempest-plugin
tempest_plugin_glance_git_install_branch: master
tempest_plugin_heat_git_repo: https://opendev.org/openstack/heat-tempest-plugin
tempest_plugin_heat_git_install_branch: master
tempest_plugin_ironic_git_repo: https://opendev.org/openstack/ironic-tempest-plugin
tempest_plugin_ironic_git_install_branch: master
tempest_plugin_keystone_git_repo: https://opendev.org/openstack/keystone-tempest-plugin
tempest_plugin_keystone_git_install_branch: master
tempest_plugin_magnum_git_repo: https://opendev.org/openstack/magnum-tempest-plugin
tempest_plugin_magnum_git_install_branch: master
tempest_plugin_manila_git_repo: https://opendev.org/openstack/manila-tempest-plugin
tempest_plugin_manila_git_install_branch: master
tempest_plugin_murano_git_repo: https://opendev.org/openstack/murano-tempest-plugin
tempest_plugin_murano_git_install_branch: master
tempest_plugin_neutron_git_repo: https://opendev.org/openstack/neutron-tempest-plugin
tempest_plugin_neutron_git_install_branch: master
tempest_plugin_novajoin_git_repo: https://opendev.org/x/novajoin-tempest-plugin
tempest_plugin_novajoin_git_install_branch: master
tempest_plugin_octavia_git_repo: https://opendev.org/openstack/octavia-tempest-plugin
tempest_plugin_octavia_git_install_branch: master
tempest_plugin_senlin_git_repo: https://opendev.org/openstack/senlin-tempest-plugin
tempest_plugin_senlin_git_install_branch: master
tempest_plugin_sahara_git_repo: https://opendev.org/openstack/sahara-tests
tempest_plugin_sahara_git_install_branch: master
tempest_plugin_telemetry_git_repo: https://opendev.org/openstack/telemetry-tempest-plugin
tempest_plugin_telemetry_git_install_branch: master
tempest_plugin_trove_git_repo: https://opendev.org/openstack/trove-tempest-plugin
tempest_plugin_trove_git_install_branch: master
tempest_plugin_zaqar_git_repo: https://opendev.org/openstack/zaqar-tempest-plugin
tempest_plugin_zaqar_git_install_branch: master
tempest_plugin_zun_git_repo: https://opendev.org/openstack/zun-tempest-plugin
tempest_plugin_zun_git_install_branch: master
# tempest_workspace where tempest can be runned
tempest_workspace: "{{ ansible_facts['env']['HOME'] }}/workspace"
# The location where the test include/exclude lists will be placed
tempest_includelist_file_path: "{{ tempest_workspace }}/etc/tempest_includelist.txt"
tempest_excludelist_file_path: "{{ tempest_workspace }}/etc/tempest_excludelist.txt"
# Variable prefixes that will be dynamically gathered to create the include/exclude list
tempest_test_search_includelist_pattern: 'tempest_test_includelist_'
tempest_test_search_excludelist_pattern: 'tempest_test_excludelist_'
# 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 includelist which tempest executes.
tempest_test_includelist: []
# Extra test to be executed
tempest_test_extra_test: []
# Tests being skipped by os_tempest
# Example:
# tempest_test_excludelist:
# - test: tempest.scenario.test.minimum_basic
# reason: This test is failing
# lp: 'https://bugs.launchpad.net/openstack-ansible/+bug/123456'
# bz: 'https://bugzilla.redhat.com/show_bug.cgi?id=123456'
# OR
# tempest_test_excludelist:
# - 'tempest.scenario.test.minimum_basic'
tempest_test_excludelist: []
# 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
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:
# If you choose vlan as private network provider type, you must set a physical
# name for it
# tempest_private_net_physical_name: "private"
# 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_name: "physnet1"
tempest_public_net_shared: False
# 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_compute_image_ssh_user: cirros
tempest_compute_run_ssh: True
tempest_network_ping_gateway: False
tempest_dashboard_url: "https://{{ external_lb_vip_address | default('127.0.0.1') }}/"
# var for setting tempest_service_available_{sevice_name} vars
# Example:
# tempest_services:
# - cinder
# - aodh
# It will set tempest_service_available_aodh and
# tempest_service_available_cinder to true.
tempest_services: []
tempest_service_available_aodh: "{{ groups['aodh_all'] is defined and groups['aodh_all'] | length > 0 }}"
tempest_service_available_barbican: "{{ groups['barbican_all'] is defined and groups['barbican_all'] | length > 0 }}"
tempest_service_available_blazar: "{{ groups['blazar_all'] is defined and groups['blazar_all'] | length > 0 }}"
tempest_service_available_ceilometer: "{{ groups['ceilometer_all'] is defined and groups['ceilometer_all'] | length > 0 }}"
tempest_service_available_cinder: "{{ groups['cinder_all'] is defined and groups['cinder_all'] | length > 0 }}"
tempest_service_available_cloudkitty: "{{ groups['cloudkitty_all'] is defined and groups['cloudkitty_all'] | length > 0 }}"
tempest_service_available_designate: "{{ groups['designate_all'] is defined and groups['designate_all'] | length > 0 }}"
tempest_service_available_glance: "{{ groups['glance_all'] is defined and groups['glance_all'] | length > 0 }}"
tempest_service_available_gnocchi: "{{ groups['gnocchi_all'] is defined and groups['gnocchi_all'] | length > 0 }}"
tempest_service_available_heat: "{{ groups['heat_all'] is defined and groups['heat_all'] | length > 0 }}"
tempest_service_available_horizon: "{{ groups['horizon_all'] is defined and groups['horizon_all'] | length > 0 }}"
tempest_service_available_ironic: "{{ groups['ironic_all'] is defined and groups['ironic_all'] | length > 0 }}"
tempest_service_available_magnum: "{{ groups['magnum_all'] is defined and groups['magnum_all'] | length > 0 }}"
tempest_service_available_manila: "{{ groups['manila_all'] is defined and groups['manila_all'] | length > 0 }}"
tempest_service_available_mistral: "{{ groups['mistral_all'] is defined and groups['mistral_all'] | length > 0 }}"
tempest_service_available_murano: "{{ groups['murano_all'] is defined and groups['murano_all'] | length > 0 }}"
tempest_service_available_neutron: "{{ groups['neutron_all'] is defined and groups['neutron_all'] | length > 0 }}"
tempest_service_available_neutron_bgpvpn: >-
{{ (groups['neutron_all'] is defined) and (groups['neutron_all'] | length > 0) and ('bgpvpn' in neutron_plugin_base | default([])) }}
tempest_service_available_neutron_vpnaas: >-
{{ (groups['neutron_all'] is defined) and (groups['neutron_all'] | length > 0) and ('vpnaas' in neutron_plugin_base | default([])) }}
tempest_service_available_nova: "{{ groups['nova_all'] is defined and groups['nova_all'] | length > 0 }}"
tempest_service_available_novajoin: False
tempest_service_available_octavia: "{{ groups['octavia_all'] is defined and groups['octavia_all'] | length > 0 }}"
tempest_service_available_sahara: "{{ groups['sahara_all'] is defined and groups['sahara_all'] | length > 0 }}"
tempest_service_available_senlin: "{{ groups['senlin_all'] is defined and groups['senlin_all'] | length > 0 }}"
tempest_service_available_swift: >-
{{
(groups['swift_all'] is defined and groups['swift_all'] | length > 0) or
(groups['ceph-rgw'] is defined and groups['ceph-rgw'] | length > 0) or
(ceph_rgws is defined and ceph_rgws | length > 0)
}}
tempest_service_available_trove: "{{ groups['trove_all'] is defined and groups['trove_all'] | length > 0 }}"
tempest_service_available_whitebox: False
tempest_service_available_whitebox_neutron: False
tempest_service_available_zaqar: "{{ groups['zaqar_all'] is defined and groups['zaqar_all'] | length > 0 }}"
tempest_service_available_zun: "{{ groups['zun_all'] is defined and groups['zun_all'] | length > 0 }}"
# Var for setting ssl verification
tempest_keystone_interface_insecure: "{{ (keystone_service_internaluri_insecure | default(false)) | bool }}"
tempest_pip_packages:
- "{{
(tempest_git_repo is defined) | ternary(
'git+' ~ (tempest_git_repo | default('https://opendev.org/openstack/tempest.git')) ~ '@' ~ tempest_git_install_branch ~ '#egg=tempest',
'tempest')
}}"
- cmd2
- ddt
- junitxml
- lxml
- nose
- python-cinderclient
- python-glanceclient
- python-heatclient
- python-keystoneclient
- python-manilaclient
- python-memcached
- python-neutronclient
- python-novaclient
- python-openstackclient
- python-senlinclient
- python-saharaclient
- python-subunit
- python-swiftclient
- python-troveclient
- testscenarios
- os-testr
# The list of images for tempest to download for the current architecture, as defined
# in this role vars/main.yml file
# To override this list, use a list of the form
# tempest_images:
# - url: ... where to download from (required)
# checksum: ... checksum to validate downloaded file, format: <algorithm>:<checksum> (optional)
# format: ... format to use when uploading to glance (required)
# name: ... name to use when uploading to glance (optional)
# properties: a dict of custom properties to attach to the image in glance (optional)
# <property>: <value>
tempest_images: "{{ tempest_images_map[ansible_facts['architecture']] }}"
# The location where images are downloaded to
tempest_image_dir: "{{ lookup('env', 'HOME') }}/tempest-images"
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:
- "tempest"
## Tunable overrides
tempest_tempest_conf_search_overrides_pattern: 'tempest_tempest_conf_overrides'
tempest_tempest_conf_overrides: {}
## The name of cloud from clouds.yaml
tempest_cloud_name: "default"
## The name of domain from clouds.yaml
tempest_domain_name: "Default"
## The name of interface from clouds.yaml
tempest_interface_name: "internal"
# The default endpoint type to use by tempest
tempest_endpoint_type: "internal"
# python-tempestconf variables
# The tempest_use_tempestconf by default is set to false, set to true if you
# want to generate the tempest.conf file with this tool, instead of
# tempest.conf from the template
tempest_use_tempestconf: false
tempest_tempestconf_venv_tag: "{{ venv_tag | default('untagged') }}"
tempest_tempestconf_venv_bin: "/openstack/venvs/tempestconf-{{ tempest_tempestconf_venv_tag }}/bin"
# We comment out `tempest_tempestconf_git_repo` so that the repo_build role does not attempt to
# build the wheel from this repo/branch. Instead, we want python-tempestconf to get built
# from the stable release defined in global requirements.
# tempest_tempestconf_git_repo: https://opendev.org/openinfra/python-tempestconf
tempest_tempestconf_git_install_branch: master
tempest_tempestconf_git_constraints:
- "--constraint {{ tempest_upper_constraints_url }}"
tempest_tempestconf_pip_packages:
- "{{
(tempest_tempestconf_git_repo is defined) | ternary(
'git+' ~ (tempest_tempestconf_git_repo | default(
'https://opendev.org/openinfra/python-tempestconf')
) ~ '@' ~ tempest_tempestconf_git_install_branch ~ '#egg=python_tempestconf',
'python_tempestconf')
}}"
tempest_tempestconf_profile:
debug: true
create: true
os-cloud: "{{ tempest_cloud_name }}"
out: "{{ tempest_workspace }}/etc/tempest.conf"
network-id: "{{ tempest_neutron_public_network_id }}"
overrides: "{{ tempest_tempestconf_profile_overrides }}"
tempest_tempestconf_profile_extras: {}
tempest_tempestconf_profile_overrides: "{{ tempest_tempest_conf_overrides }}"
# Stackviz tarball url
stackviz_pip_install_args: "{{ pip_install_options | default('--isolated') }}"
stackviz_tarball: "https://tarballs.opendev.org/openstack/stackviz/dist/stackviz-latest.tar.gz"
stackviz_venv_tag: "{{ venv_tag | default('untagged') }}"
stackviz_venv_bin: "/openstack/venvs/stackviz-{{ stackviz_venv_tag }}/bin"
tempest_run_stackviz: true