summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Riedemann <mriedem.os@gmail.com>2019-02-28 15:10:24 -0500
committerMatt Riedemann <mriedem.os@gmail.com>2019-02-28 21:40:30 -0500
commit52613c01ceeb83173a8e873fb986153bfb673e8d (patch)
treecec288346e86c5b030daf770065b18c28878c8b3
parenta8c065dea946599a1b07d003cd21409c4cd58df0 (diff)
downloadnova-52613c01ceeb83173a8e873fb986153bfb673e8d.tar.gz
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
-rw-r--r--.zuul.yaml56
-rw-r--r--playbooks/legacy/nova-grenade-live-migration/post.yaml15
-rw-r--r--playbooks/legacy/nova-grenade-live-migration/run.yaml58
3 files changed, 109 insertions, 20 deletions
diff --git a/.zuul.yaml b/.zuul.yaml
index 148bbe3432..4fdd0b24a3 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -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
diff --git a/playbooks/legacy/nova-grenade-live-migration/post.yaml b/playbooks/legacy/nova-grenade-live-migration/post.yaml
new file mode 100644
index 0000000000..e07f5510ae
--- /dev/null
+++ b/playbooks/legacy/nova-grenade-live-migration/post.yaml
@@ -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
diff --git a/playbooks/legacy/nova-grenade-live-migration/run.yaml b/playbooks/legacy/nova-grenade-live-migration/run.yaml
new file mode 100644
index 0000000000..ac5833452a
--- /dev/null
+++ b/playbooks/legacy/nova-grenade-live-migration/run.yaml
@@ -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 }}'