Move legacy-grenade-dsvm-neutron-multinode-live-migration in-tree

This moves the legacy-grenade-dsvm-neutron-multinode-live-migration
job from openstack-zuul-jobs in-tree. Nova is the only project
that runs this job and this allows nova to directly manage it.

The job will still use the same irrelevant-files list and is still
non-voting for the time being and only runs in the check queue.

It has been renamed to "nova-grenade-live-migration".

This change is meant to be backported to rocky, queens and pike
to allow us to drop legacy-grenade-dsvm-neutron-multinode-live-migration
from openstack-zuul-jobs where the job is branchless but restricted
to pike+ branches.

A follow up master-only (stein) change will make the job voting
and gate per the plan in the mailing list [1].

[1] http://lists.openstack.org/pipermail/openstack-discuss/2019-February/003341.html

Change-Id: Ie9b61775dbb92b10237688eaddaca606c1c73a23
This commit is contained in:
Matt Riedemann 2019-02-28 15:10:24 -05:00
parent a8c065dea9
commit 52613c01ce
3 changed files with 109 additions and 20 deletions

View File

@ -193,6 +193,41 @@
required-projects:
- openstack/oslo.versionedobjects
- job:
name: nova-grenade-live-migration
parent: nova-dsvm-multinode-base
description: |
Multi-node grenade job which runs nova/tests/live_migration/hooks tests.
In other words, this tests live migration with mixed-version compute
services which is important for things like rolling upgrade support.
The former name for this job was
"legacy-grenade-dsvm-neutron-multinode-live-migration".
run: playbooks/legacy/nova-grenade-live-migration/run.yaml
post-run: playbooks/legacy/nova-grenade-live-migration/post.yaml
required-projects:
- openstack-dev/grenade
- openstack-infra/devstack-gate
- openstack/nova
irrelevant-files:
# We define our own irrelevant-files because we need to run
# this if there are changes to nova/tests/live_migration/.
# TODO(mriedem): Move the nova/tests/live_migration/ scripts to gate/
# so this job can use the standard dsvm-irrelevant-files.
- ^api-.*$
- ^(test-|)requirements.txt$
- ^.*\.rst$
- ^.git.*$
- ^doc/.*$
- ^nova/hacking/.*$
- ^nova/locale/.*$
- ^nova/tests/(?!live_migration/).*$
- ^releasenotes/.*$
- ^setup.cfg$
- ^tests-py3.txt$
- ^tools/.*$
- ^tox.ini$
voting: false
- project:
# Please try to keep the list of job names sorted alphabetically.
templates:
@ -216,26 +251,6 @@
- devstack-plugin-ceph-tempest:
voting: false
irrelevant-files: *dsvm-irrelevant-files
# TODO(mriedem): We need to move this job definition in-tree from
# openstack-zuul-jobs.
- legacy-grenade-dsvm-neutron-multinode-live-migration:
voting: false
irrelevant-files:
# We define our own irrelevant-files because we need to run
# this if there are changes to nova/tests/live_migration/.
- ^api-.*$
- ^(test-|)requirements.txt$
- ^.*\.rst$
- ^.git.*$
- ^doc/.*$
- ^nova/hacking/.*$
- ^nova/locale/.*$
- ^nova/tests/(?!live_migration/).*$
- ^releasenotes/.*$
- ^setup.cfg$
- ^tests-py3.txt$
- ^tools/.*$
- ^tox.ini$
- neutron-grenade-multinode:
irrelevant-files: *dsvm-irrelevant-files
- neutron-tempest-linuxbridge:
@ -245,6 +260,7 @@
# code; we don't need to run this on all changes, nor do we run
# it in the gate.
- ^(?!nova/network/.*)(?!nova/virt/libvirt/vif.py).*$
- nova-grenade-live-migration
- nova-live-migration
- nova-lvm
- nova-next

View File

@ -0,0 +1,15 @@
- 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

View File

@ -0,0 +1,58 @@
- hosts: primary
name: nova-grenade-live-migration
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-infra/devstack-gate
dest: devstack-gate
EOF
/usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
git://git.openstack.org \
openstack-infra/devstack-gate
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
export PROJECTS="openstack-dev/grenade $PROJECTS"
export PYTHONUNBUFFERED=true
export DEVSTACK_GATE_CONFIGDRIVE=0
export DEVSTACK_GATE_NEUTRON=1
export DEVSTACK_GATE_TEMPEST_NOTESTS=1
export DEVSTACK_GATE_GRENADE=pullup
# By default grenade runs only smoke tests so we need to set
# RUN_SMOKE to False in order to run live migration tests using
# grenade
export DEVSTACK_LOCAL_CONFIG="RUN_SMOKE=False"
# LIVE_MIGRATE_BACK_AND_FORTH will tell Tempest to run a live
# migration of the same instance to one compute node and then back
# to the other, which is mostly only interesting for grenade since
# we have mixed level computes.
export DEVSTACK_LOCAL_CONFIG+=$'\n'"LIVE_MIGRATE_BACK_AND_FORTH=True"
export BRANCH_OVERRIDE=default
export DEVSTACK_GATE_TOPOLOGY="multinode"
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
function post_test_hook {
/opt/stack/new/nova/nova/tests/live_migration/hooks/run_tests.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 }}'