
python-tempestconf-tempest-packstack/devstack-demo zuul job uses generate-tempestconf-file role to generate tempest.conf. Since demo is a non-admin user with non-admin user we cannot use --create option but it was used since it is a bug, so we need to check for admin/demo user then enable the proper option. Used Jinja templates for creating tempest configuration script Create test-demo-user role which prepares resources for a demo user. Create generate-accounts-file role, which generates accounts.yaml file for Tempest needed for running tests as user who doesn't have persmissions to create resources. Change-Id: I727a6cfd154cb3f95c33da02440f25ae1765153f Story: #2001695 Co-Authored-By: Martin Kopec <mkopec@redhat.com>
67 lines
2.8 KiB
YAML
67 lines
2.8 KiB
YAML
- hosts: all
|
|
roles:
|
|
# the role is inherited from openstack-dev/devstack project
|
|
- run-devstack
|
|
|
|
- hosts: tempest
|
|
vars:
|
|
# It's important that OS_AUTH_URL is in this format:
|
|
# <protocol>://<host>/identity/v3
|
|
# In some cases it can be only: <protocol>://<host>:5000
|
|
# https://github.com/openstack-dev/devstack/blob/2c9343e5db44fa7a41ca6924737331dd9088ef8f/openrc#L87-L89
|
|
# (mkopec) That would end up with an HTTP MaxRetryError to <host>:5000,
|
|
# therefor OS_AUTH_URL is defined manually
|
|
set_auth_url: "OS_AUTH_URL=$SERVICE_PROTOCOL://$SERVICE_HOST/identity/v3"
|
|
devstack_base_dir: "/opt/stack"
|
|
test_demo_user: "{{ test_demo is defined }}"
|
|
tasks:
|
|
# setup-tempest-* and acl-devstack-files roles are inherited from
|
|
# openstack/tempest project
|
|
- name: Setup Tempest Run Directory
|
|
include_role:
|
|
name: setup-tempest-run-dir
|
|
- name: Setup Tempest Data Directory
|
|
include_role:
|
|
name: setup-tempest-data-dir
|
|
- name: ACL devstack files
|
|
include_role:
|
|
name: acl-devstack-files
|
|
- name: Edit clouds.yaml file
|
|
include_role:
|
|
name: tempestconf-workaround-auth-url
|
|
- name: Generate tempest configuration file
|
|
include_role:
|
|
name: generate-tempestconf-file
|
|
vars:
|
|
source_credentials_commands: "export HOST_IP={{ ansible_default_ipv4.address }}; source {{ devstack_base_dir }}/devstack/openrc {{ user }} {{ user }}; {{ set_auth_url }}"
|
|
aditional_tempestconf_params: "auth.tempest_roles Member"
|
|
- name: Generate tempest configuration file based on cloud credentials
|
|
include_role:
|
|
name: generate-tempestconf-file-cloud
|
|
# Let's create tempest.conf with admin permissions needed for
|
|
# tempest accounts file generation
|
|
- name: Generate configuration file for Tempest as admin
|
|
include_role:
|
|
name: generate-tempestconf-file
|
|
vars:
|
|
aditional_tempestconf_params: "auth.tempest_roles Member"
|
|
output_path: "/etc/openstack/tempest_admin.conf"
|
|
source_credentials_commands: "export HOST_IP={{ ansible_default_ipv4.address }}; source {{ devstack_base_dir }}/devstack/openrc admin admin; {{ set_auth_url }}"
|
|
test_demo_user: False
|
|
user: admin
|
|
when: test_demo is defined
|
|
- name: Generate accounts file for Tempest
|
|
include_role:
|
|
name: generate-accounts-file
|
|
vars:
|
|
accounts_file_destination: "/etc/openstack"
|
|
source_credentials_commands: "export HOST_IP={{ ansible_default_ipv4.address }}; source {{ devstack_base_dir }}/devstack/openrc admin admin; {{ set_auth_url }}"
|
|
tempest_config_file: "/etc/openstack/tempest_admin.conf"
|
|
when: test_demo is defined
|
|
# run-tempest role is inherited from openstack/tempest project
|
|
- name: Run Tempest Tests
|
|
include_role:
|
|
name: run-tempest
|
|
vars:
|
|
tempest_concurrency: 2
|