Browse Source

Rehome networking-ovn CI jobs to neutron repository

As networking-ovn driver is going to be in neutron tree now, lets move
also networking-ovn jobs definitions to the neutron repo.

Change-Id: Ie1c66c773ee2d217b25bd915189e56254744a3d4
Related-Blueprint: neutron-ovn-merge
changes/94/696094/4
Slawek Kaplonski 3 years ago
parent
commit
9c6d3e073e
  1. 399
      .zuul.yaml
  2. 8
      doc/source/contributor/testing/ci_scenario_jobs.rst
  3. 15
      playbooks/legacy/neutron-ovn-grenade/post.yaml
  4. 84
      playbooks/legacy/neutron-ovn-grenade/run.yaml
  5. 4
      playbooks/multinode-setup.yaml

399
.zuul.yaml

@ -35,6 +35,8 @@
- ^setup.cfg$
- ^tools/.*$
- ^tox.ini$
- ^vagrant/.*$
- ^migration/.*$
- neutron-tempest-dvr-ha-multinode-full
- neutron-tempest-iptables_hybrid
- ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa:
@ -42,8 +44,7 @@
irrelevant-files: *tempest-irrelevant-files
- tempest-slow-py3:
irrelevant-files: *tempest-irrelevant-files
- networking-ovn-tempest-dsvm-ovs-release:
irrelevant-files: *tempest-irrelevant-files
- neutron-ovn-tempest-ovs-release
- networking-midonet-tempest-aio-ml2-centos-7:
voting: false
irrelevant-files: *tempest-irrelevant-files
@ -60,6 +61,19 @@
- neutron-tempest-with-uwsgi:
voting: false
- neutron-centos-7-tripleo-standalone
- neutron-ovn-rally-task
# TripleO jobs that deploy OVN.
# Note we don't use a project-template here, so it's easier
# to disable voting on one specific job if things go wrong.
# In Stein and beyond, fs010 will run using
# networking-ovn-tripleo-ci-centos-7-containers-multinode.
# If you need any support to debug these jobs in case of
# failures, please reach us on #tripleo IRC channel.
- neutron-ovn-tripleo-ci-centos-7-containers-multinode
- neutron-ovn-tempest-slow:
voting: false
- neutron-ovn-tempest-full-multinode-ovs-master:
voting: false
gate:
jobs:
- neutron-functional
@ -75,11 +89,21 @@
irrelevant-files: *tempest-irrelevant-files
- tempest-ipv6-only:
irrelevant-files: *tempest-irrelevant-files
- neutron-ovn-tempest-ovs-release
- neutron-ovn-rally-task
- neutron-ovn-tripleo-ci-centos-7-containers-multinode
experimental:
jobs:
- neutron-ovn-tempest-ovs-master
- neutron-ovn-grenade
periodic:
jobs:
- neutron-functional
- neutron-tempest-postgres-full
- neutron-tempest-with-os-ken-master
- neutron-ovn-tempest-ovs-master-fedora
- job:
name: neutron-functional
@ -162,6 +186,52 @@
- ^tools/.*$
- ^tox.ini$
- job:
name: neutron-ovn-rally-task
parent: rally-task-at-devstack
required-projects:
- name: openstack/devstack
- name: openstack/devstack-gate
- name: openstack/rally
- name: openstack/rally-openstack
- name: openstack/networking-ovn
irrelevant-files: *tempest-irrelevant-files
vars:
devstack_plugins:
rally-openstack: https://opendev.org/openstack/rally-openstack
networking-ovn: https://opendev.org/openstack/networking-ovn
zuul_copy_output:
'{{ devstack_base_dir }}/data/ovs': 'logs'
extensions_to_txt:
db: true
devstack_services:
ovn-northd: true
ovn-controller: true
ovs-vswitchd: true
ovsdb-server: true
networking-ovn-metadata-agent: true
br-ex-tcpdump: true
br-int-flows: true
q-dhcp: false
q-l3: false
q-agt: false
q-meta: false
q-metering: false
devstack_localrc:
USE_PYTHON3: true
PHYSICAL_NETWORK: public
Q_USE_PROVIDERNET_FOR_PUBLIC: true
ENABLE_CHASSIS_AS_GW: true
OVN_L3_CREATE_PUBLIC_NETWORK: true
OVN_BRANCH: master
devstack_local_conf:
post-config:
"${RALLY_CONF_DIR}/${RALLY_CONF_FILE}":
openstack:
neutron_bind_l2_agent_types: "OVN Controller Gateway agent"
rally_task: rally-jobs/task-neutron.yaml
timeout: 7800
- job:
name: neutron-tempest-dvr
parent: tempest-integrated-networking
@ -224,6 +294,20 @@
- openstack/neutron
irrelevant-files: *tempest-irrelevant-files
- job:
name: neutron-ovn-grenade
parent: legacy-dsvm-base
run: playbooks/legacy/neutron-ovn-grenade/run.yaml
post-run: playbooks/legacy/neutron-ovn-grenade/post.yaml
timeout: 9000
irrelevant-files: *tempest-irrelevant-files
required-projects:
- openstack/grenade
- openstack/devstack-gate
- openstack/neutron-tempest-plugin
- openstack/tempest
- openstack/networking-ovn
- job:
name: neutron-tempest-dvr-ha-multinode-full
parent: tempest-multinode-full-py3
@ -429,3 +513,314 @@
tempest_test_whitelist:
- 'tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops'
irrelevant-files: *tempest-irrelevant-files
- job:
name: neutron-ovn-tripleo-ci-centos-7-containers-multinode
parent: tripleo-ci-base-multinode
vars:
nodes: 1ctlr
featureset: '010'
irrelevant-files: *tempest-irrelevant-files
- job:
name: neutron-ovn-grenade
parent: legacy-dsvm-base
run: playbooks/legacy/grenade-dsvm-networking-ovn/run.yaml
post-run: playbooks/legacy/grenade-dsvm-networking-ovn/post.yaml
timeout: 9000
irrelevant-files: *tempest-irrelevant-files
required-projects:
- openstack/grenade
- openstack/devstack-gate
- openstack/neutron-tempest-plugin
- openstack/tempest
- openstack/networking-ovn
- job:
name: neutron-ovn-base
description: Base job for devstack/tempest to test Neutron with ovn driver.
# TODO(slaweq): consider changing parent to be tempest-integrated-networking
# job instead of devstack-tempest
parent: devstack-tempest
timeout: 10800
required-projects:
- openstack/devstack-gate
- openstack/networking-ovn
- openstack/neutron
- openstack/neutron-tempest-plugin
- openstack/octavia
- openstack/tempest
irrelevant-files: *tempest-irrelevant-files
vars:
tox_envlist: all-plugin
tempest_test_regex: "^(?!.*\
(?:.*\\[.*slow.*\\])|\
(?:tempest.api.network.admin.test_quotas.QuotasTest.test_lbaas_quotas.*)|\
(?:tempest.api.network.test_load_balancer.*)|\
(?:tempest.scenario.test_load_balancer.*)|\
(?:tempest.api.network.admin.test_load_balancer.*)|\
(?:tempest.api.network.admin.test_lbaas.*)|\
(?:tempest.api.network.test_fwaas_extensions.*)|\
(?:tempest.api.network.test_metering_extensions.*)|\
(?:tempest.thirdparty.boto.test_s3.*)|\
(?:tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_port_security_macspoofing_port)|\
(?:tempest.api.identity*)|\
(?:tempest.api.image*)|\
(?:tempest.api.volume*)|\
(?:tempest.api.compute.images*)|\
(?:tempest.api.compute.keypairs*)|\
(?:tempest.api.compute.certificates*)|\
(?:tempest.api.compute.flavors*)|\
(?:tempest.api.compute.test_quotas*)|\
(?:tempest.api.compute.test_versions*)|\
(?:tempest.api.compute.volumes*)|\
(?:tempest.api.compute.admin.test_flavor*)|\
(?:tempest.api.compute.admin.test_volume*)|\
(?:tempest.api.compute.admin.test_hypervisor*)|\
(?:tempest.api.compute.admin.test_aggregate*)|\
(?:tempest.api.compute.admin.test_quota*)|\
(?:tempest.scenario.test_volume*))\
((^neutron_tempest_plugin.api)|\
(^neutron_tempest_plugin.scenario)|\
(tempest.(api|scenario|thirdparty))).*$"
tempest_concurrency: 2
devstack_localrc:
Q_USE_PROVIDERNET_FOR_PUBLIC: true
PHYSICAL_NETWORK: public
ENABLE_CHASSIS_AS_GW: true
OVN_L3_CREATE_PUBLIC_NETWORK: true
OVN_DBS_LOG_LEVEL: dbg
USE_PYTHON3: True
DOWNLOAD_DEFAULT_IMAGES: false
IMAGE_URLS: "http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img,https://cloud-images.ubuntu.com/releases/xenial/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img"
DEFAULT_IMAGE_NAME: cirros-0.4.0-x86_64-disk
DEFAULT_IMAGE_FILE_NAME: cirros-0.4.0-x86_64-disk.img
ADVANCED_IMAGE_NAME: ubuntu-16.04-server-cloudimg-amd64-disk1
ADVANCED_INSTANCE_TYPE: ds512M
ADVANCED_INSTANCE_USER: ubuntu
BUILD_TIMEOUT: 784
devstack_plugins:
networking-ovn: https://opendev.org/openstack/networking-ovn
neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin
octavia: https://opendev.org/openstack/octavia
zuul_copy_output:
'{{ devstack_base_dir }}/data/ovs': 'logs'
extensions_to_txt:
db: true
devstack_services:
br-ex-tcpdump: true
br-int-flows: true
c-api: true
c-sch: true
c-vol: true
dstat: true
g-api: true
g-reg: true
keystone: true
n-api-meta: true
n-api: true
n-cauth: true
n-cond-cell1: true
n-cpu: true
n-novnc-cell1: true
n-sch: true
n-super-cond: true
networking-ovn-metadata-agent: true
o-api: true
o-hk: true
ovn-controller: true
ovn-northd: true
ovn-octavia: true
ovs-vswitchd: true
ovsdb-server: true
placement-api: true
q-svc: true
q-dns: true
c-bak: false
etcd: false
peakmem_tracker: false
q-agt: false
q-dhcp: false
q-l3: false
q-meta: false
q-metering: false
s-account: false
s-container-sync: false
s-container: false
s-object: false
s-proxy: false
- job:
name: neutron-ovn-tempest-ovs-master
description: Job testing for devstack/tempest testing Neutron with ovn driver and OVN master branch
parent: neutron-ovn-base
vars:
devstack_localrc:
OVN_BRANCH: master
- job:
name: neutron-ovn-tempest-ovs-release
description: Job testing for devstack/tempest testing Neutron with ovn driver and latest released OVN branch
parent: neutron-ovn-base
vars:
devstack_localrc:
OVN_BRANCH: branch-2.12
- job:
name: neutron-ovn-tempest-ovs-master-fedora
description: Job testing for devstack/tempest testing Neutron with ovn driver and OVN master branch and Fedora
parent: neutron-ovn-tempest-ovs-master
nodeset: devstack-single-node-fedora-latest
- job:
name: neutron-ovn-multinode-base
description: Base multinode job for devstack/tempest to test Neutron with ovn driver.
abstract: true
parent: tempest-multinode-full-py3
timeout: 10800
required-projects:
- openstack/devstack-gate
- openstack/networking-ovn
- openstack/neutron
- openstack/neutron-tempest-plugin
- openstack/octavia
- openstack/tempest
irrelevant-files: *tempest-irrelevant-files
roles:
- zuul: zuul/zuul-jobs
- zuul: openstack/neutron-tempest-plugin
pre-run: playbooks/multinode-setup.yaml
vars:
devstack_localrc:
Q_USE_PROVIDERNET_FOR_PUBLIC: true
PHYSICAL_NETWORK: public
ENABLE_CHASSIS_AS_GW: true
OVN_L3_CREATE_PUBLIC_NETWORK: true
OVN_DBS_LOG_LEVEL: dbg
DOWNLOAD_DEFAULT_IMAGES: false
IMAGE_URLS: "http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img,https://cloud-images.ubuntu.com/releases/xenial/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img"
DEFAULT_IMAGE_NAME: cirros-0.4.0-x86_64-disk
DEFAULT_IMAGE_FILE_NAME: cirros-0.4.0-x86_64-disk.img
ADVANCED_IMAGE_NAME: ubuntu-16.04-server-cloudimg-amd64-disk1
ADVANCED_INSTANCE_TYPE: ds512M
ADVANCED_INSTANCE_USER: ubuntu
BUILD_TIMEOUT: 784
devstack_plugins:
networking-ovn: https://opendev.org/openstack/networking-ovn
neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin
octavia: https://opendev.org/openstack/octavia
zuul_copy_output:
'{{ devstack_base_dir }}/data/ovs': 'logs'
extensions_to_txt:
db: true
devstack_services:
c-bak: false
etcd: false
br-ex-tcpdump: true
br-int-flows: true
networking-ovn-metadata-agent: true
o-api: true
o-hk: true
ovn-controller: true
ovn-northd: true
ovn-octavia: true
ovs-vswitchd: true
ovsdb-server: true
placement-api: true
peakmem_tracker: false
q-svc: true
q-agt: false
q-dhcp: false
q-l3: false
q-meta: false
q-metering: false
# When running python3 Swift should be disabled for now
s-account: false
s-container: false
s-object: false
s-proxy: false
group-vars:
subnode:
devstack_services:
ovn-controller: true
ovn-northd: false
ovn-octavia: false
ovs-vswitchd: true
ovsdb-server: true
# NOTE(slaweq): it's just to check if this will force devstack to
# configure neutron and ML2 plugin on subnodes
q-fake: true
q-svc: false
q-agt: false
q-dhcp: false
q-l3: false
q-meta: false
q-metering: false
networking-ovn-metadata-agent: true
devstack_localrc:
Q_USE_PROVIDERNET_FOR_PUBLIC: true
PHYSICAL_NETWORK: public
ENABLE_CHASSIS_AS_GW: false
OVN_DBS_LOG_LEVEL: dbg
USE_PYTHON3: True
- job:
name: neutron-ovn-tempest-slow
parent: neutron-ovn-multinode-base
vars:
tox_envlist: slow-serial
tempest_test_regex: ""
# TODO(slaweq): remove test_port_security_macspoofing_port test from
# blacklist when bug https://bugs.launchpad.net/tempest/+bug/1728886
# will be fixed
tempest_black_regex: "(?:tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_port_security_macspoofing_port)"
- job:
# TODO(slaweq): propose job with ovs-release and move -master one to
# experimental queue
name: neutron-ovn-tempest-full-multinode-ovs-master
parent: neutron-ovn-multinode-base
vars:
tox_envlist: all-plugin
tempest_test_regex: "^(?!.*\
(?:.*\\[.*slow.*\\])|\
(?:tempest.api.network.admin.test_quotas.QuotasTest.test_lbaas_quotas.*)|\
(?:tempest.api.network.test_load_balancer.*)|\
(?:tempest.scenario.test_load_balancer.*)|\
(?:tempest.api.network.admin.test_load_balancer.*)|\
(?:tempest.api.network.admin.test_lbaas.*)|\
(?:tempest.api.network.test_fwaas_extensions.*)|\
(?:tempest.api.network.test_metering_extensions.*)|\
(?:tempest.thirdparty.boto.test_s3.*)|\
(?:tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_port_security_macspoofing_port)|\
(?:tempest.api.identity*)|\
(?:tempest.api.image*)|\
(?:tempest.api.volume*)|\
(?:tempest.api.compute.images*)|\
(?:tempest.api.compute.keypairs*)|\
(?:tempest.api.compute.certificates*)|\
(?:tempest.api.compute.flavors*)|\
(?:tempest.api.compute.test_quotas*)|\
(?:tempest.api.compute.test_versions*)|\
(?:tempest.api.compute.volumes*)|\
(?:tempest.api.compute.admin.test_flavor*)|\
(?:tempest.api.compute.admin.test_volume*)|\
(?:tempest.api.compute.admin.test_hypervisor*)|\
(?:tempest.api.compute.admin.test_aggregate*)|\
(?:tempest.api.compute.admin.test_quota*)|\
(?:tempest.scenario.test_volume*))\
((^neutron_tempest_plugin.api)|\
(^neutron_tempest_plugin.scenario)|\
(tempest.(api|scenario|thirdparty))).*$"
# TODO(slaweq): live_migration related test from the blacklist when bug
# https://bugzilla.redhat.com/show_bug.cgi?id=1716335 will be fixed
tempest_black_regex: "\
(^tempest.api.compute.admin.test_live_migration.LiveAutoBlockMigrationV225Test)|\
(^tempest.api.compute.admin.test_live_migration.LiveMigrationTest)"
devstack_localrc:
OVN_BRANCH: master
group-vars:
subnode:
devstack_localrc:
OVN_BRANCH: master

8
doc/source/contributor/testing/ci_scenario_jobs.rst

@ -88,6 +88,14 @@ Below is a summary of those jobs.
+----------------------------------------------+----------------------------------+---------+-------+-------------+-----------------+----------+-------+--------+------------+-------------+
|tempest-ipv6-only |tempest smoke + IPv6 tests | 3.6 | 1 | openvswitch | openvswitch | legacy | False | False | True | Yes |
+----------------------------------------------+----------------------------------+---------+-------+-------------+-----------------+----------+-------+--------+------------+-------------+
|neutron-ovn-tempest-ovs-release |Various tempest api, scenario | 3.6 | 1 | ovn | ovn | --- | False | False | True | Yes |
| |and neutron_tempest_plugi tests | | | | | | | | | |
+----------------------------------------------+----------------------------------+---------+-------+-------------+-----------------+----------+-------+--------+------------+-------------+
|neutron-ovn-tempest-slow |tempest slow tests | 3.6 | 2 | ovn | ovn | --- | False | False | True | No |
+----------------------------------------------+----------------------------------+---------+-------+-------------+-----------------+----------+-------+--------+------------+-------------+
|neutron-ovn-tempest-multinode-ovs-master |Various tempest api, scenario | 3.6 | 2 | ovn | ovn | --- | False | False | True | No |
| |and neutron_tempest_plugi tests | | | | | | | | | |
+----------------------------------------------+----------------------------------+---------+-------+-------------+-----------------+----------+-------+--------+------------+-------------+
Grenade jobs running in Neutron CI
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

15
playbooks/legacy/neutron-ovn-grenade/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

84
playbooks/legacy/neutron-ovn-grenade/run.yaml

@ -0,0 +1,84 @@
- hosts: all
name: Autoconverted job legacy-grenade-dsvm-networking-ovn from old job gate-grenade-dsvm-networking-ovn-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
cat << 'EOF' >>"/tmp/dg-local.conf"
[[local|localrc]]
enable_plugin neutron-tempest-plugin https://opendev.org/openstack/neutron-tempest-plugin
EOF
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
export PYTHONUNBUFFERED=true
# Because we are testing a non standard project, add
# our project repository. This makes zuul do the right
# reference magic for testing changes.
export PROJECTS="openstack/networking-ovn openstack/neutron-tempest-plugin openstack/grenade $PROJECTS"
# TODO(slaweq): this should be probably moved to the grenade repo or
# to the neutron devstack plugin
export GRENADE_PLUGINRC="enable_grenade_plugin networking-ovn https://opendev.org/openstack/networking-ovn"
export DEVSTACK_GATE_GRENADE=pullup
export DEVSTACK_GATE_NEUTRON=1
export DEVSTACK_GATE_TEMPEST=1
export DEVSTACK_GATE_TEMPEST_ALL_PLUGINS=1
export BRANCH_OVERRIDE=default
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
# Keep localrc to be able to set some vars in pre_test_hook
export KEEP_LOCALRC=1
function pre_test_hook {
if [ -f $BASE/new/networking-ovn/devstack/pre_test_hook.sh ] ; then
. $BASE/new/networking-ovn/devstack/pre_test_hook.sh
fi
}
export -f pre_test_hook
function post_test_hook {
if [ -f $BASE/new/networking-ovn/devstack/post_test_hook.sh ] ; then
. $BASE/new/networking-ovn/devstack/post_test_hook.sh
fi
}
export -f post_test_hook
export DEVSTACK_GATE_SETTINGS=/opt/stack/new/networking-ovn/devstack/devstackgaterc
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 }}'

4
playbooks/multinode-setup.yaml

@ -0,0 +1,4 @@
- hosts: all
roles:
- multi-node-bridge
- multi-node-setup
Loading…
Cancel
Save