Native Zuul v3 version of tempest and rally jobs

Use the native Zuul v3 jobs defined in the zaqar-tempest-plugin
repository, so that they can be used on all branches.

Use rally-task-zaqar provided by rally-openstack
as base for zaqar-rally.

Clean up the legacy files, but leave the hooks which are also
used by the grenade jobs. They will be cleaned separately.

Depends-On: https://review.opendev.org/747543
Change-Id: I31dae00091b0de7bf723c086b1c81d5500601dd3
This commit is contained in:
Luigi Toscano 2020-08-22 23:23:38 +02:00
parent d4cece4b81
commit aeb81e2274
6 changed files with 11 additions and 503 deletions

View File

@ -14,22 +14,6 @@
post-run: playbooks/legacy/grenade-devstack-zaqar-base/post.yaml
timeout: 7800
- job:
name: zaqar-tempest-base
parent: legacy-dsvm-base
irrelevant-files:
- ^(test-|)requirements.txt$
- ^setup.cfg$
required-projects:
- openstack/devstack-gate
- openstack/python-zaqarclient
- openstack/tempest
- openstack/zaqar
- openstack/zaqar-tempest-plugin
run: playbooks/legacy/tempest-devstack-zaqar-base/run.yaml
post-run: playbooks/legacy/tempest-devstack-zaqar-base/post.yaml
timeout: 7800
- job:
name: zaqar-grenade-mongodb
parent: zaqar-grenade-base
@ -51,29 +35,6 @@
vars:
database_backend: swift
- job:
name: zaqar-tempest-mongodb
parent: zaqar-tempest-base
vars:
database_backend: mongodb
- job:
name: zaqar-tempest-redis
parent: zaqar-tempest-base
vars:
database_backend: redis
- job:
name: zaqar-tempest-swift
parent: zaqar-tempest-base
vars:
database_backend: swift
- job:
name: zaqar-tempest-swift-ipv6
parent: zaqar-tempest-swift
run: playbooks/legacy/tempest-devstack-zaqar-base/run-ipv6.yaml
- job:
name: zaqar-tox-integration
parent: openstack-tox
@ -84,32 +45,9 @@
- job:
name: zaqar-rally
parent: legacy-dsvm-base
run: playbooks/legacy/rally-dsvm-zaqar-zaqar/run.yaml
post-run: playbooks/legacy/rally-dsvm-zaqar-zaqar/post.yaml
timeout: 7800
required-projects:
- openstack/devstack-gate
- openstack/aodh
- openstack/ceilometer
- openstack/diskimage-builder
- openstack/ironic
- openstack/magnum
- openstack/networking-bgpvpn
- openstack/neutron
- openstack/neutron-vpnaas
- openstack/octavia
- openstack/panko
- openstack/python-magnumclient
- openstack/python-senlinclient
- openstack/python-watcherclient
- openstack/python-zaqarclient
- openstack/rally
- openstack/senlin
- openstack/tripleo-image-elements
- openstack/watcher
- openstack/zaqar
- openstack/zaqar-ui
parent: rally-task-zaqar
vars:
rally_task: rally-jobs/zaqar-zaqar.yaml
- project:
templates:
@ -122,13 +60,13 @@
check:
jobs:
- zaqar-tox-integration
- zaqar-tempest-redis
- zaqar-tempest-swift
- zaqar-tempest-mongodb
- zaqar-tempest-plugin-mongodb
- zaqar-tempest-plugin-redis
- zaqar-tempest-plugin-swift
- zaqar-tempest-plugin-swift-ipv6
- zaqar-grenade-mongodb
- zaqar-grenade-redis
- zaqar-grenade-swift
- zaqar-tempest-swift-ipv6
# TripleO jobs that deploy Zaqar.
# Note we don't use a project-template here, so it's easier
# to disable voting on one specific job if things go wrong.
@ -143,9 +81,9 @@
queue: zaqar
jobs:
- zaqar-tox-integration
- zaqar-tempest-mongodb
- zaqar-tempest-redis
- zaqar-tempest-swift
- zaqar-tempest-swift-ipv6
- zaqar-tempest-plugin-mongodb
- zaqar-tempest-plugin-redis
- zaqar-tempest-plugin-swift
- zaqar-tempest-plugin-swift-ipv6
- tripleo-ci-centos-7-scenario002-standalone
- heat-functional-convg-mysql-lbaasv2

View File

@ -1,41 +0,0 @@
- hosts: primary
tasks:
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=/logs/**
- --include=*/
- --exclude=*
- --prune-empty-dirs
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=/rally-plot/**
- --include=*/
- --exclude=*
- --prune-empty-dirs
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=/rally-plot/extra/index.html
- --include=*/
- --exclude=*
- --prune-empty-dirs

View File

@ -1,173 +0,0 @@
- hosts: all
name: Autoconverted job legacy-rally-dsvm-zaqar-zaqar from old job gate-rally-dsvm-zaqar-zaqar-ubuntu-xenial-nv
tasks:
- name: Ensure legacy workspace directory
file:
path: '{{ ansible_user_dir }}/workspace'
state: directory
- shell:
cmd: |
set -e
set -x
cat > clonemap.yaml << EOF
clonemap:
- name: openstack/devstack-gate
dest: devstack-gate
EOF
/usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
https://opendev.org \
openstack/devstack-gate
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
if [ $ZUUL_PROJECT == "openstack/rally" ] && [ $ZUUL_BRANCH != "master" ]; then
export DEVSTACK_GATE_FEATURE_MATRIX="/opt/stack/new/rally/devstack/features.yaml"
fi
export PROJECTS="openstack/rally $PROJECTS"
export DEVSTACK_GATE_NEUTRON=1
export DEVSTACK_GATE_HORIZON=1
export DEVSTACK_GATE_NEUTRON_EXTENSIONS=0
export DEVSTACK_GATE_IRONIC=0
export DEVSTACK_GATE_ZAQAR=1
export DEVSTACK_GATE_SENLIN=0
export DEVSTACK_GATE_WATCHER=0
export DEVSTACK_GATE_MAGNUM=0
export DEVSTACK_GATE_HEAT=0
export DEVSTACK_GATE_SWIFT=1
export DEVSTACK_GATE_TELEMETRY=0
export DEVSTACK_GATE_TEMPEST_LARGE_OPS=0
export DEVSTACK_GATE_EXERCISES=0
export DEVSTACK_GATE_PREPOPULATE_USERS=0
export DEVSTACK_GATE_USE_PYTHON3=True
export USE_KEYSTONE_V2API=0
export RALLY_SCENARIO=$ZUUL_SHORT_PROJECT_NAME-zaqar
if [ $USE_KEYSTONE_V2API -eq 1 ]; then
export IDENTITY_API_VERSION=2.0
else
export IDENTITY_API_VERSION=3
fi
DEVSTACK_LOCAL_CONFIG="enable_plugin rally https://opendev.org/openstack/rally"
DEVSTACK_LOCAL_CONFIG+=$'\n'"CINDER_ENABLE_V1_API=True"
DEVSTACK_LOCAL_CONFIG+=$'\n'"IDENTITY_API_VERSION=$IDENTITY_API_VERSION"
ENABLED_SERVICES=key,horizon,
ENABLED_SERVICES+=cinder,c-api,c-vol,c-sch,c-bak,
ENABLED_SERVICES+=g-api,g-reg,
ENABLED_SERVICES+=n-api,n-crt,n-cpu,n-sch,n-cond,
ENABLED_SERVICES+=q-qos,
if [ $DEVSTACK_GATE_SWIFT -eq 1 ];
then
ENABLED_SERVICES+=s-proxy,s-account,s-container,s-object,
else
export DEVSTACK_LOCAL_CONFIG+=$'\n'"disable_service s-account"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"disable_service s-container"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"disable_service s-object"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"disable_service s-proxy"
fi
if [ $DEVSTACK_GATE_HEAT -ne 0 ]; then
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin heat https://opendev.org/openstack/heat"
fi
export PROJECTS="openstack/neutron $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin neutron https://opendev.org/openstack/neutron"
if [ $DEVSTACK_GATE_NEUTRON_EXTENSIONS -ne 0 ]; then
export PROJECTS="openstack/octavia $PROJECTS"
export PROJECTS="openstack/neutron-fwaas $PROJECTS"
export PROJECTS="openstack/diskimage-builder $PROJECTS"
export PROJECTS="openstack/tripleo-image-elements $PROJECTS"
export PROJECTS="openstack/neutron-vpnaas $PROJECTS"
export PROJECTS="openstack/networking-bgpvpn $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin octavia https://opendev.org/openstack/octavia"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin neutron-fwaas https://opendev.org/openstack/neutron-fwaas"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin neutron-vpnaas https://opendev.org/openstack/neutron-vpnaas"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin networking-bgpvpn https://opendev.org/openstack/networking-bgpvpn.git"
export ENABLED_SERVICES+=q-lbaasv2,octavia,o-cw,o-hk,o-hm,o-api,q-fwaas,q-svc,q-agt,q-dhcp,q-l3,q-meta,
fi
if [ $DEVSTACK_GATE_IRONIC -ne 0 ]; then
export PROJECTS="openstack/ironic $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic https://opendev.org/openstack/ironic"
fi
if [ $DEVSTACK_GATE_ZAQAR -ne 0 ]; then
export PROJECTS="openstack/python-zaqarclient $PROJECTS"
export PROJECTS="openstack/zaqar-ui $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin zaqar https://opendev.org/openstack/zaqar"
fi
if [ $DEVSTACK_GATE_SENLIN -ne 0 ]; then
export PROJECTS="openstack/senlin $PROJECTS"
export PROJECTS="openstack/python-senlinclient $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin senlin https://opendev.org/openstack/senlin"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service sl-api sl-eng"
fi
if [ $DEVSTACK_GATE_WATCHER -ne 0 ]; then
export PROJECTS="openstack/watcher $PROJECTS"
export PROJECTS="openstack/python-watcherclient $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin watcher https://opendev.org/openstack/watcher"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service watcher-api watcher-decision-engine watcher-applier"
fi
if [ $DEVSTACK_GATE_MAGNUM -ne 0 ]||[ $RALLY_SCENARIO = "magnum" ]; then
export PROJECTS="openstack/magnum $PROJECTS"
export PROJECTS="openstack/python-magnumclient $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin magnum https://opendev.org/openstack/magnum"
fi
if [ $DEVSTACK_GATE_TELEMETRY -ne 0 ]; then
export PROJECTS="openstack/panko $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko https://opendev.org/openstack/panko"
export ENABLED_SERVICES+=panko-api,
export PROJECTS="openstack/ceilometer $PROJECTS"
export PROJECTS="openstack/aodh $PROJECTS"
export PROJECTS="openstack/gnocchi $PROJECTS"
export CEILOMETER_NOTIFICATION_TOPICS=notifications,profiler
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ceilometer https://opendev.org/openstack/ceilometer"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin aodh https://opendev.org/openstack/aodh"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin gnocchi https://opendev.org/openstack/gnocchi"
export ENABLED_SERVICES+=ceilometer-acompute,ceilometer-acentral,ceilometer-api,
export ENABLED_SERVICES+=ceilometer-anotification,ceilometer-collector,
export ENABLED_SERVICES+=aodh-api,aodh-evaluator,aodh-notifier,
fi
export ENABLED_SERVICES
export DEVSTACK_LOCAL_CONFIG
if [[ "$ZUUL_PROJECT" = "openstack/neutron" ]]; then
function gate_hook {
bash -xe $BASE/new/neutron/neutron/tests/contrib/gate_hook.sh rally $ZUUL_SHORT_PROJECT_NAME-zaqar
}
export -f gate_hook
fi
function post_test_hook {
$BASE/new/rally/tests/ci/rally-gate.sh
}
export -f post_test_hook
if [[ "$DEVSTACK_GATE_USE_PYTHON3" = "True" ]]; then
# Switch off glance->swift communication as swift fails under py3.x
function pre_test_hook {
local localconf=$BASE/new/devstack/local.conf
echo "[[post-config|\$GLANCE_API_CONF]]" >> $localconf
echo "[glance_store]" >> $localconf
echo "default_store=file" >> $localconf
}
export -f pre_test_hook
fi
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'

View File

@ -1,80 +0,0 @@
- hosts: primary
tasks:
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=**/*nose_results.html
- --include=*/
- --exclude=*
- --prune-empty-dirs
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=**/*testr_results.html.gz
- --include=*/
- --exclude=*
- --prune-empty-dirs
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=/.testrepository/tmp*
- --include=*/
- --exclude=*
- --prune-empty-dirs
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=**/*testrepository.subunit.gz
- --include=*/
- --exclude=*
- --prune-empty-dirs
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}/tox'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=/.tox/*/log/*
- --include=*/
- --exclude=*
- --prune-empty-dirs
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=/logs/**
- --include=*/
- --exclude=*
- --prune-empty-dirs

View File

@ -1,72 +0,0 @@
- hosts: all
name: Tempest Devstack Zaqar Base
tasks:
- name: Ensure legacy workspace directory
file:
path: '{{ ansible_user_dir }}/workspace'
state: directory
- shell:
cmd: |
set -e
set -x
cat > clonemap.yaml << EOF
clonemap:
- name: openstack/devstack-gate
dest: devstack-gate
EOF
/usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
https://opendev.org \
openstack/devstack-gate
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
cat << 'EOF' >>"/tmp/dg-local.conf"
[[local|localrc]]
enable_plugin zaqar https://opendev.org/openstack/zaqar
# Enable Zaqar Tempest plugin
TEMPEST_PLUGINS='/opt/stack/new/zaqar-tempest-plugin'
SERVICE_IP_VERSION=6
SERVICE_HOST=""
EOF
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
export PROJECTS="openstack/python-zaqarclient $PROJECTS"
export PYTHONUNBUFFERED=true
export ENABLED_SERVICES=tempest
export DEVSTACK_GATE_TEMPEST_REGEX="zaqar_tempest_plugin.tests"
export DEVSTACK_GATE_TEMPEST=0
export DEVSTACK_GATE_USE_PYTHON3=True
function gate_hook {
cd /opt/stack/new/zaqar/devstack/gate
./gate_hook.sh tempest "{{ database_backend }}"
}
export PROJECTS="openstack/zaqar-tempest-plugin $PROJECTS"
export -f gate_hook
function post_test_hook {
cd $BASE/new/tempest/tools
./verify-ipv6-only-deployments.sh
}
export -f post_test_hook
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'

View File

@ -1,64 +0,0 @@
- hosts: all
name: Tempest Devstack Zaqar Base
tasks:
- name: Ensure legacy workspace directory
file:
path: '{{ ansible_user_dir }}/workspace'
state: directory
- shell:
cmd: |
set -e
set -x
cat > clonemap.yaml << EOF
clonemap:
- name: openstack/devstack-gate
dest: devstack-gate
EOF
/usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
https://opendev.org \
openstack/devstack-gate
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
cat << 'EOF' >>"/tmp/dg-local.conf"
[[local|localrc]]
enable_plugin zaqar https://opendev.org/openstack/zaqar
# Enable Zaqar Tempest plugin
TEMPEST_PLUGINS='/opt/stack/new/zaqar-tempest-plugin'
USE_PYTHON3="True"
EOF
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
export PROJECTS="openstack/python-zaqarclient $PROJECTS"
export PYTHONUNBUFFERED=true
export ENABLED_SERVICES=tempest
export DEVSTACK_GATE_TEMPEST_REGEX="zaqar_tempest_plugin.tests"
export DEVSTACK_GATE_TEMPEST=0
function gate_hook {
cd /opt/stack/new/zaqar/devstack/gate
./gate_hook.sh tempest "{{ database_backend }}"
}
export PROJECTS="openstack/zaqar-tempest-plugin $PROJECTS"
export -f gate_hook
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'