--- # Copyright 2014, Rackspace US, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ## 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: "source" # Set the package install state for distribution and pip packages # # Options are 'present' and 'latest' tempest_package_state: "latest" tempest_pip_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_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: master tempest_developer_mode: False tempest_developer_constraints: - "git+{{ tempest_git_repo }}@{{ tempest_git_install_branch }}#egg=tempest" # TODO(odyssey4me): # This can be simplified once all the roles are using # python_venv_build. We can then switch to using a # set of constraints in pip.conf inside the venv, # perhaps prepared by giving a giving a list of # constraints to the role. tempest_pip_install_args: >- {{ tempest_developer_mode | ternary(pip_install_developer_constraints | default('--constraint /opt/developer-pip-constraints.txt'), '') }} {{ (pip_install_upper_constraints is defined) | ternary('--constraint ' + pip_install_upper_constraints | default(''), '') }} {{ 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" # 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.values() | sum(start=[]) | selectattr('install', 'equalto', true) | list }}" # tempest_workspace where tempest can be runned tempest_workspace: "{{ ansible_env.HOME }}/workspace" # The location where the test whitelist/blacklist will be placed tempest_test_whitelist_file_path: "{{ tempest_workspace }}/etc/tempest_whitelist.txt" tempest_test_blacklist_file_path: "{{ tempest_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: - "{{ (ansible_pkg_mgr == 'apt' and tempest_install_method == 'distro') | ternary('(?!.*\\.test_list_all_implied_roles)', '') ~ '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 being skipped by os_tempest # Example: # tempest_test_blacklist: # - 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' 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" # TODO(chkumar246): # The use of _type is to provide backwards compatibility for # overrides in S and can be removed in T. tempest_public_net_physical_name: "{{ tempest_public_net_physical_type | default('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 | default('127.0.0.1') }}/" 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_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_congress: "{{ groups['congress_all'] is defined and groups['congress_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_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_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_fwaas: "{{ (groups['neutron_all'] is defined) and (groups['neutron_all'] | length > 0) and (('firewall' in neutron_plugin_base | default([])) or ('firewall_v2' 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_nova_lxd: "{{ groups['nova_all'] is defined and groups['nova_all'] | length > 0 and nova_virt_type | default('kvm') == 'lxd' }}" 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_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 | length > 0) }}" tempest_service_available_zaqar: "{{ groups['zaqar_all'] is defined and groups['zaqar_all'] | length > 0 }}" 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-manilaclient - 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: : (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.3.5/cirros-0.3.5-x86_64-disk.img" checksum: "sha256:e137062a4dfbb4c225971b67781bc52183d14517170e16a3841d16f962ae7470" format: "qcow2" name: "cirros" - url: "http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img" checksum: "sha256:e137062a4dfbb4c225971b67781bc52183d14517170e16a3841d16f962ae7470" 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: {} ## The name of cloud from clouds.yaml tempest_cloud_name: "default" ## The name of domain from clouds.yaml tempest_domain_name: "default" # 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_bin: "/openstack/venvs/tempestconf/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://git.openstack.org/openstack/python-tempestconf tempest_tempestconf_git_install_branch: master tempest_tempestconf_developer_constraints: - "git+{{ tempest_tempestconf_git_repo }}@{{ tempest_tempestconf_git_install_branch }}#egg=python_tempestconf" tempest_tempestconf_pip_packages: - python-tempestconf tempest_tempestconf_profile: debug: true create: true out: "{{ tempest_workspace }}/etc/tempest.conf" network-id: "{{ tempest_neutron_public_network_id }}" overrides: auth.use_dynamic_credentials: true # Stackviz tarball url stackviz_tarball: "https://tarballs.openstack.org/package-stackviz-element/stackviz-latest.tar.gz" stackviz_venv_bin: "/openstack/venvs/stackviz/bin"