Jesse Pretorius 81f6bda4c0 Execute service setup against a delegated host
In order to reduce the packages required to pip install
on to the hosts, we allow the service setup to be delegated
to a specific host, defaulting to the deploy host.

1. We no longer need tempest_requires_pip_packages,
   so it is removed.
2. The openstack_openrc role is executed in the playbook,
   so we do not need it as a meta-dep any more.
3. All uses of our custom keystone module have been
   replaced with standard Ansible modules.
4. Using the service delegation model, it makes no sense
   to run the resource creation on all hosts, so we
   use run_once instead.
5. Given that we're using developer mode for master
   integrated builds, and pip.conf is present, we need
   to use the CLI to create the virtualenv so that we
   can use the '--never-download' option.

Change-Id: I572db645b64a4a0ac6255bc36eaac1be13336989
2018-08-10 11:57:13 +00:00

247 lines
9.3 KiB
YAML

---
# 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
# 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') }}"
# 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"
# 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.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_image_dir_owner: "{{ lookup('env', 'USER') }}"
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: {}