OpenStack-Ansible os_tempest role

This is the Ansible role to deploy OpenStack Tempest.

tags:openstack, cloud, ansible, os_tempest
category:*nix

Basic role example

- role: "os_tempest"
  ROLE_VARS...

Default variables

## Verbosity Options
debug: False

# Set the package install state for distribution packages
# # Options are 'present' and 'latest'
tempest_package_state: "latest"

# Toggle whether tempest actually executes
tempest_run: False

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"
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, no tempest plugins are installed.  Override ``tempest_plugins``
# as follows:
# tempest_plugins:
#   - name: designate-tempest-plugin
#     repo: https://git.openstack.org/openstack/designate-tempest-plugin
#     branch: master
#   - name: ironic-tempest-plugin
#     package: ironic
tempest_plugins: []

# The location where the test whitelist will be placed
tempest_test_whitelist_file_path: "{{ tempest_venv_bin | dirname }}/workspace/etc/tempest_whitelist.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_service_available_ceilometer | bool) | ternary('tempest.api.telemetry', '') }}"
  - "{{ (tempest_service_available_heat | bool) | ternary('tempest.api.orchestration.stacks.test_non_empty_stack', '') }}"
  - "{{ (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_backup_enabled | bool) | ternary('tempest.api.volume.admin.test_volumes_backup', '') }}"
  - "{{ (tempest_volume_multi_backend_enabled | bool) | ternary('tempest.api.volume.admin.test_multi_backend', '') }}"

# 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"
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: True
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_requires_pip_packages:
  - python-glanceclient
  - python-keystoneclient
  - python-neutronclient
  - python-novaclient
  - virtualenv
  - virtualenv-tools

tempest_pip_packages:
  - 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

# Please update SHA in tempest_images below when changing the cirros version.
cirros_version: 0.3.4
tempest_img_url: "http://download.cirros-cloud.net/{{ cirros_version }}/cirros-{{ cirros_version }}-x86_64-disk.img"
tempest_image_dir: "/opt/images"
tempest_images:
  - url: "{{ tempest_img_url }}"
    sha256: "34987d0d5702f8813f3ff9efe90e9e39e6926ec78658763580a79face67f3394"
tempest_image_file: "cirros-{{ cirros_version }}-x86_64-disk.img"
tempest_img_disk_format: qcow2
tempest_img_name: 'cirros'
tempest_enable_instance_password: True

# 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: {}

Required variables

None

Example playbook

- name: os_tempest role
  hosts: "hosts"
  user: root
  roles:
    - { role: "os_tempest" }

Table Of Contents

Project Source

This Page