neutron-tempest-plugin/zuul.d/master_jobs.yaml
Slawek Kaplonski 8988a01a96 Consolidate neutron-tempest-plugin-api with scenario jobs
That way we will run our API tests on the ML2/{OVS,OVN,Linuxbridge}
deployments which will give us slightly better coverage in some cases as
some API extensions may be available only with some specific backends
(see NDPProxy for example, which isn't available on the ML2/OVN case).

This will also allow us to drop neutron-tempest-plugin-api job and
having less jobs with same or better coverage is always good thing :)

Change-Id: Ie34e89636c56783000b4d72a479c23d8d1295002
2022-05-26 12:37:20 +02:00

1334 lines
47 KiB
YAML

- job:
name: neutron-tempest-plugin-base
parent: devstack-tempest
abstract: true
description: |
Perform setup common to all Neutron tempest tests
roles:
- zuul: openstack/devstack
required-projects:
- openstack/neutron
- openstack/neutron-tempest-plugin
- openstack/tempest
vars:
tempest_concurrency: 3 # out of 4
tox_envlist: all
# NOTE(slaweq): in case of some tests, which requires advanced image,
# default test timeout set to 1200 seconds may be not enough if job is
# run on slow node
tempest_test_timeout: 2400
tempest_test_regex: "\
(^neutron_tempest_plugin.api)|\
(^neutron_tempest_plugin.scenario)|\
(^tempest.api.compute.servers.test_attach_interfaces)|\
(^tempest.api.compute.servers.test_multiple_create)"
devstack_localrc:
USE_PYTHON3: true
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}"
PHYSICAL_NETWORK: public
IMAGE_URLS: https://cloud-images.ubuntu.com/minimal/releases/focal/release/ubuntu-20.04-minimal-cloudimg-amd64.img
CIRROS_VERSION: 0.5.1
DEFAULT_IMAGE_NAME: cirros-0.5.1-x86_64-uec
DEFAULT_IMAGE_FILE_NAME: cirros-0.5.1-x86_64-uec.tar.gz
ADVANCED_IMAGE_NAME: ubuntu-20.04-minimal-cloudimg-amd64
ADVANCED_INSTANCE_TYPE: ntp_image_256M
ADVANCED_INSTANCE_USER: ubuntu
CUSTOMIZE_IMAGE: true
BUILD_TIMEOUT: 784
# TODO(lucasagomes): Re-enable MOD_WSGI after
# https://bugs.launchpad.net/neutron/+bug/1912359 is implemented
NEUTRON_DEPLOY_MOD_WSGI: false
# TODO(ralonsoh): remove OVN_BUILD_FROM_SOURCE once the OS packages
# include at least OVN v20.12.0.
OVN_BUILD_FROM_SOURCE: True
OVN_BRANCH: "v21.03.0"
OVS_BRANCH: "8dc1733eaea866dce033b3c44853e1b09bf59fc7"
devstack_plugins:
neutron: https://opendev.org/openstack/neutron.git
neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin.git
tempest_plugins:
- neutron-tempest-plugin
# TODO(slaweq): find a way to put this list of extensions in
# neutron repository and keep it different per branch,
# then it could be removed from here
network_api_extensions_common: &api_extensions
- address-group
- address-scope
- agent
- allowed-address-pairs
- auto-allocated-topology
- availability_zone
- binding
- default-subnetpools
- dhcp_agent_scheduler
- dns-domain-ports
- dns-integration
- dns-integration-domain-keywords
- empty-string-filtering
- expose-port-forwarding-in-fip
- expose-l3-conntrack-helper
- ext-gw-mode
- external-net
- extra_dhcp_opt
- extraroute
- extraroute-atomic
- filter-validation
- fip-port-details
- flavors
- floating-ip-port-forwarding
- floatingip-pools
- ip-substring-filtering
- l3-conntrack-helper
- l3-flavors
- l3-ha
- l3_agent_scheduler
- metering
- multi-provider
- net-mtu
- net-mtu-writable
- network-ip-availability
- network_availability_zone
- network-segment-range
- pagination
- port-device-profile
- port-resource-request
- port-resource-request-groups
- port-mac-address-regenerate
- port-security
- port-security-groups-filtering
- project-id
- provider
- qos
- qos-fip
- quotas
- quota_details
- rbac-address-group
- rbac-address-scope
- rbac-policies
- rbac-security-groups
- rbac-subnetpool
- router
- router_availability_zone
- security-group
- security-groups-remote-address-group
- segment
- service-type
- sorting
- standard-attr-description
- standard-attr-revisions
- standard-attr-segment
- standard-attr-tag
- standard-attr-timestamp
- stateful-security-group
- subnet_allocation
- subnet-dns-publish-fixed-ip
- subnet-service-types
- subnetpool-prefix-ops
- tag-ports-during-bulk-creation
- trunk
- trunk-details
- uplink-status-propagation
devstack_services:
tempest: true
neutron-dns: true
neutron-log: true
neutron-qos: true
neutron-segments: true
neutron-trunk: true
neutron-uplink-status-propagation: true
neutron-network-segment-range: true
neutron-port-forwarding: true
neutron-conntrack-helper: true
neutron-tag-ports-during-bulk-creation: true
br-ex-tcpdump: true
br-int-flows: true
# Cinder services
c-api: false
c-bak: false
c-sch: false
c-vol: false
cinder: false
# We don't need Swift to be run in the Neutron jobs
s-account: false
s-container: false
s-object: false
s-proxy: false
devstack_local_conf:
post-config:
$NEUTRON_CONF:
QUOTAS:
quota_router: 100
quota_floatingip: 500
quota_security_group: 150
quota_security_group_rule: 1000
# NOTE(slaweq): We can get rid of this hardcoded absolute path when
# devstack-tempest job will be switched to use lib/neutron instead of
# lib/neutron-legacy
/$NEUTRON_CORE_PLUGIN_CONF:
ml2:
type_drivers: flat,geneve,vlan,gre,local,vxlan
ml2_type_vlan:
network_vlan_ranges: foo:1:10
ml2_type_vxlan:
vni_ranges: 1:2000
ml2_type_gre:
tunnel_id_ranges: 1:1000
network_log:
local_output_log_base: /tmp/test_log.log
$NEUTRON_L3_CONF:
agent:
availability_zone: nova
$NEUTRON_DHCP_CONF:
agent:
availability_zone: nova
test-config:
$TEMPEST_CONFIG:
neutron_plugin_options:
provider_vlans: foo,
agent_availability_zone: nova
image_is_advanced: true
available_type_drivers: flat,geneve,vlan,gre,local,vxlan
provider_net_base_segm_id: 1
irrelevant-files:
- ^(test-|)requirements.txt$
- lower-constraints.txt
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^.*\.conf\.sample$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^tools/.*$
- ^tox.ini$
- ^neutron/agent/.*$
- ^neutron/privileged/.*$
- ^neutron_lib/tests/unit/.*$
- ^neutron_tempest_plugin/scenario/.*$
- ^rally-jobs/.*$
- ^vagrant/.*$
- ^zuul.d/(?!(project)).*\.yaml
- job:
name: neutron-tempest-plugin-openvswitch
parent: neutron-tempest-plugin-base-nested-switch
timeout: 10000
vars:
devstack_services:
# Disable OVN services
br-ex-tcpdump: false
br-int-flows: false
ovn-controller: false
ovn-northd: false
ovs-vswitchd: false
ovsdb-server: false
q-ovn-metadata-agent: false
# Neutron services
neutron-local-ip-static: true
q-agt: true
q-dhcp: true
q-l3: true
q-meta: true
q-metering: true
network_api_extensions_openvswitch:
- local_ip
- qos-bw-minimum-ingress
network_available_features: &available_features
- ipv6_metadata
devstack_localrc:
Q_AGENT: openvswitch
Q_ML2_TENANT_NETWORK_TYPE: vxlan
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_openvswitch) | join(',') }}"
devstack_local_conf:
post-config:
$NEUTRON_CONF:
DEFAULT:
enable_dvr: false
l3_ha: true
# NOTE(slaweq): We can get rid of this hardcoded absolute path when
# devstack-tempest job will be switched to use lib/neutron instead of
# lib/neutron-legacy
/$NEUTRON_CORE_PLUGIN_CONF:
agent:
tunnel_types: vxlan,gre
ovs:
tunnel_bridge: br-tun
bridge_mappings: public:br-ex
openflow_processed_per_port: True
test-config:
$TEMPEST_CONFIG:
network-feature-enabled:
available_features: "{{ network_available_features | join(',') }}"
neutron_plugin_options:
available_type_drivers: flat,vlan,local,vxlan
firewall_driver: openvswitch
irrelevant-files: &openvswitch-scenario-irrelevant-files
- ^(test-|)requirements.txt$
- lower-constraints.txt
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^.*\.conf\.sample$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^tools/.*$
- ^tox.ini$
- ^neutron/agent/ovn/.*$
- ^neutron/agent/windows/.*$
- ^neutron/plugins/ml2/drivers/linuxbridge/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/plugins/ml2/drivers/ovn/.*$
- ^neutron/services/ovn_l3/.*$
- ^neutron/services/logapi/drivers/ovn/.*$
- ^neutron/services/portforwarding/drivers/ovn/.*$
- ^neutron/services/qos/drivers/linuxbridge/.*$
- ^neutron/services/qos/drivers/ovn/.*$
- ^neutron/services/trunk/drivers/linuxbridge/.*$
- ^neutron/services/trunk/drivers/ovn/.*$
- ^neutron/cmd/ovn/.*$
- ^neutron/common/ovn/.*$
- ^neutron_tempest_plugin/api/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
- ^neutron_tempest_plugin/services/bgp/.*$
- ^rally-jobs/.*$
- ^vagrant/.*$
- ^zuul.d/(?!(project)).*\.yaml
- job:
name: neutron-tempest-plugin-openvswitch-iptables_hybrid
parent: neutron-tempest-plugin-base-nested-switch
timeout: 10000
vars:
devstack_services:
# Disable OVN services
br-ex-tcpdump: false
br-int-flows: false
ovn-controller: false
ovn-northd: false
ovs-vswitchd: false
ovsdb-server: false
q-ovn-metadata-agent: false
# Neutron services
neutron-local-ip: true
q-agt: true
q-dhcp: true
q-l3: true
q-meta: true
q-metering: true
network_api_extensions_openvswitch:
- local_ip
- logging
network_available_features: *available_features
# TODO(slaweq): remove trunks subport_connectivity test from blacklist
# when bug https://bugs.launchpad.net/neutron/+bug/1838760 will be fixed
# TODO(akatz): remove established tcp session verification test when the
# bug https://bugzilla.redhat.com/show_bug.cgi?id=1965036 will be fixed
tempest_exclude_regex: "\
(^neutron_tempest_plugin.scenario.test_trunk.TrunkTest.test_subport_connectivity)|\
(^neutron_tempest_plugin.scenario.test_security_groups.NetworkSecGroupTest.test_established_tcp_session_after_re_attachinging_sg)"
devstack_localrc:
Q_AGENT: openvswitch
Q_ML2_TENANT_NETWORK_TYPE: vxlan
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_openvswitch) | join(',') }}"
devstack_local_conf:
post-config:
$NEUTRON_CONF:
DEFAULT:
enable_dvr: false
l3_ha: true
# NOTE(slaweq): We can get rid of this hardcoded absolute path when
# devstack-tempest job will be switched to use lib/neutron instead of
# lib/neutron-legacy
/$NEUTRON_CORE_PLUGIN_CONF:
agent:
tunnel_types: vxlan,gre
ovs:
tunnel_bridge: br-tun
bridge_mappings: public:br-ex
securitygroup:
firewall_driver: iptables_hybrid
test-config:
$TEMPEST_CONFIG:
network-feature-enabled:
available_features: "{{ network_available_features | join(',') }}"
neutron_plugin_options:
available_type_drivers: flat,vlan,local,vxlan
firewall_driver: iptables_hybrid
irrelevant-files:
- ^(test-|)requirements.txt$
- lower-constraints.txt
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^.*\.conf\.sample$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^tools/.*$
- ^tox.ini$
- ^neutron/agent/linux/openvswitch_firewall/.*$
- ^neutron/agent/ovn/.*$
- ^neutron/agent/windows/.*$
- ^neutron/plugins/ml2/drivers/linuxbridge/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/plugins/ml2/drivers/ovn/.*$
- ^neutron/services/ovn_l3/.*$
- ^neutron/services/logapi/drivers/ovn/.*$
- ^neutron/services/portforwarding/drivers/ovn/.*$
- ^neutron/services/qos/drivers/linuxbridge/.*$
- ^neutron/services/qos/drivers/ovn/.*$
- ^neutron/services/trunk/drivers/linuxbridge/.*$
- ^neutron/services/trunk/drivers/ovn/.*$
- ^neutron/cmd/ovn/.*$
- ^neutron/common/ovn/.*$
- ^neutron_tempest_plugin/api/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
- ^neutron_tempest_plugin/services/bgp/.*$
- ^rally-jobs/.*$
- ^vagrant/.*$
- ^zuul.d/(?!(project)).*\.yaml
# TODO(slaweq): remove that job's definition as soon as new job
# "neutron-tempest-plugin-openvswitch-iptables_hybrid" will be used in the
# neutron repo as a parent for a
# "neutron-ovs-tempest-plugin-scenario-iptables_hybrid-nftables" job
- job:
name: neutron-tempest-plugin-scenario-openvswitch-iptables_hybrid
parent: neutron-tempest-plugin-openvswitch-iptables_hybrid
- job:
name: neutron-tempest-plugin-openvswitch-distributed-dhcp
parent: neutron-tempest-plugin-openvswitch
timeout: 10000
vars:
# NOTE: DHCP extra options and dns services aren't supported with
# distributed DHCP L2 agent extension
tempest_exclude_regex: "\
(^neutron_tempest_plugin.scenario.test_dhcp.DHCPTest.test_extra_dhcp_opts)|\
(^neutron_tempest_plugin.scenario.test_internal_dns.InternalDNSTest.test_dns_domain_and_name)"
devstack_services:
q-dhcp: false
q-distributed-dhcp: true
- job:
name: neutron-tempest-plugin-openvswitch-iptables_hybrid-distributed-dhcp
parent: neutron-tempest-plugin-openvswitch-iptables_hybrid
timeout: 10000
vars:
# NOTE: DHCP extra options and dns services aren't supported with
# distributed DHCP L2 agent extension
tempest_exclude_regex: "\
(^neutron_tempest_plugin.scenario.test_dhcp.DHCPTest.test_extra_dhcp_opts)|\
(^neutron_tempest_plugin.scenario.test_internal_dns.InternalDNSTest.test_dns_domain_and_name)"
devstack_services:
q-dhcp: false
q-distributed-dhcp: true
- job:
name: neutron-tempest-plugin-linuxbridge
parent: neutron-tempest-plugin-base-nested-switch
timeout: 10000
roles:
- zuul: openstack/neutron
pre-run: playbooks/linuxbridge-scenario-pre-run.yaml
vars:
devstack_services:
# Disable OVN services
br-ex-tcpdump: false
br-int-flows: false
ovn-controller: false
ovn-northd: false
ovs-vswitchd: false
ovsdb-server: false
q-ovn-metadata-agent: false
# Neutron services
q-agt: true
q-dhcp: true
q-l3: true
q-meta: true
q-metering: true
# SG logging isn't supported by linuxbridge backend
neutron-log: false
network_api_extensions_linuxbridge:
- vlan-transparent
network_available_features: *available_features
# TODO(eolivare): remove VLAN Transparency tests from blacklist
# when bug https://bugs.launchpad.net/neutron/+bug/1907548 will be fixed
# TODO(slaweq): remove
# test_established_tcp_session_after_re_attachinging_sg from the
# exclude regex when bug https://bugs.launchpad.net/neutron/+bug/1936911
# will be fixed
# TODO(slaweq) remove test_floatingip_port_details from the exclude
# regex when bug https://bugs.launchpad.net/neutron/+bug/1799790 will be
# fixed
tempest_exclude_regex: "\
(^neutron_tempest_plugin.scenario.test_vlan_transparency.VlanTransparencyTest)|\
(^neutron_tempest_plugin.scenario.test_security_groups.NetworkSecGroupTest.test_established_tcp_session_after_re_attachinging_sg)|\
(^neutron_tempest_plugin.scenario.test_floatingip.FloatingIPPortDetailsTest.test_floatingip_port_details)"
devstack_localrc:
Q_AGENT: linuxbridge
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_linuxbridge) | join(',') }}"
Q_ML2_TENANT_NETWORK_TYPE: vxlan
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch,linuxbridge
devstack_local_conf:
post-config:
$NEUTRON_CONF:
DEFAULT:
enable_dvr: false
vlan_transparent: true
l3_ha: true
AGENT:
debug_iptables_rules: true
# NOTE(slaweq): We can get rid of this hardcoded absolute path when
# devstack-tempest job will be switched to use lib/neutron instead of
# lib/neutron-legacy
/$NEUTRON_CORE_PLUGIN_CONF:
ml2:
type_drivers: flat,vlan,local,vxlan
mechanism_drivers: linuxbridge
test-config:
$TEMPEST_CONFIG:
network-feature-enabled:
available_features: "{{ network_available_features | join(',') }}"
neutron_plugin_options:
available_type_drivers: flat,vlan,local,vxlan
q_agent: linuxbridge
firewall_driver: iptables
irrelevant-files:
- ^(test-|)requirements.txt$
- lower-constraints.txt
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^.*\.conf\.sample$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^tools/.*$
- ^tox.ini$
- ^neutron/agent/linux/openvswitch_firewall/.*$
- ^neutron/agent/ovn/.*$
- ^neutron/agent/windows/.*$
- ^neutron/plugins/ml2/drivers/openvswitch/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/plugins/ml2/drivers/ovn/.*$
- ^neutron/services/ovn_l3/.*$
- ^neutron/services/logapi/drivers/openvswitch/.*$
- ^neutron/services/logapi/drivers/ovn/.*$
- ^neutron/services/portforwarding/drivers/ovn/.*$
- ^neutron/services/qos/drivers/openvswitch/.*$
- ^neutron/services/qos/drivers/ovn/.*$
- ^neutron/services/trunk/drivers/openvswitch/.*$
- ^neutron/services/trunk/drivers/ovn/.*$
- ^neutron/cmd/ovn/.*$
- ^neutron/common/ovn/.*$
- ^neutron_tempest_plugin/api/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
- ^neutron_tempest_plugin/services/bgp/.*$
- ^rally-jobs/.*$
- ^vagrant/.*$
- ^zuul.d/(?!(project)).*\.yaml
# TODO(slaweq): remove that job's definition as soon as new job
# "neutron-tempest-plugin-linuxbridge" will be used in the neutron repo as
# a parent for a "neutron-linuxbridge-tempest-plugin-scenario-nftables" job
- job:
name: neutron-tempest-plugin-scenario-linuxbridge
parent: neutron-tempest-plugin-linuxbridge
- job:
name: neutron-tempest-plugin-ovn
parent: neutron-tempest-plugin-base-nested-switch
timeout: 10800
vars:
network_api_extensions_ovn:
- vlan-transparent
# TODO(jlibosva): Remove the NetworkWritableMtuTest test from the list
# once east/west fragmentation is supported in core OVN
tempest_exclude_regex: "\
(^neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest)"
devstack_localrc:
Q_AGENT: ovn
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_ovn) | join(',') }}"
Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn,logger
Q_ML2_PLUGIN_TYPE_DRIVERS: local,flat,vlan,geneve
Q_ML2_TENANT_NETWORK_TYPE: geneve
Q_USE_PROVIDERNET_FOR_PUBLIC: true
# NOTE(slaweq): In the job with OVN backend we can't use Ubuntu minimal
# image because kernel in that image don't supports MULTICAST traffic
# thus multicast scenario test with IGMP snooping enabled would fail
IMAGE_URLS: https://cloud-images.ubuntu.com/releases/bionic/release/ubuntu-18.04-server-cloudimg-amd64.img
ADVANCED_IMAGE_NAME: ubuntu-18.04-server-cloudimg-amd64
ADVANCED_INSTANCE_TYPE: ntp_image_384M
ADVANCED_INSTANCE_USER: ubuntu
CUSTOMIZE_IMAGE: false
ENABLE_CHASSIS_AS_GW: true
OVN_L3_CREATE_PUBLIC_NETWORK: true
OVN_DBS_LOG_LEVEL: dbg
ENABLE_TLS: True
OVN_IGMP_SNOOPING_ENABLE: True
# TODO(eolivare): Remove OVN_BUILD_FROM_SOURCE once vlan-transparency
# is included in an ovn released version
OVN_BUILD_FROM_SOURCE: True
OVN_BRANCH: "v21.06.0"
OVS_BRANCH: "a4b04276ab5934d087669ff2d191a23931335c87"
OVS_SYSCONFDIR: "/usr/local/etc/openvswitch"
devstack_services:
br-ex-tcpdump: true
br-int-flows: true
q-ovn-metadata-agent: true
ovn-controller: true
ovn-northd: true
ovs-vswitchd: true
ovsdb-server: true
q-agt: false
q-dhcp: false
q-l3: false
q-meta: false
q-metering: false
q-qos: true
# Cinder services
c-api: false
c-bak: false
c-sch: false
c-vol: false
cinder: false
s-account: false
s-container-sync: false
s-container: false
s-object: false
s-proxy: false
devstack_local_conf:
post-config:
$NEUTRON_CONF:
DEFAULT:
enable_dvr: false
vlan_transparent: true
/$NEUTRON_CORE_PLUGIN_CONF:
ml2:
type_drivers: local,flat,vlan,geneve
test-config:
$TEMPEST_CONFIG:
network-feature-enabled:
available_features: ""
neutron_plugin_options:
available_type_drivers: local,flat,vlan,geneve
is_igmp_snooping_enabled: True
firewall_driver: ovn
zuul_copy_output:
'{{ devstack_base_dir }}/data/ovs': 'logs'
'{{ devstack_base_dir }}/data/ovn': 'logs'
'{{ devstack_log_dir }}/ovsdb-server-nb.log': 'logs'
'{{ devstack_log_dir }}/ovsdb-server-sb.log': 'logs'
'/var/log/ovn': 'logs'
'/var/log/openvswitch': 'logs'
'/var/lib/ovn': 'logs'
irrelevant-files:
- ^(test-|)requirements.txt$
- lower-constraints.txt
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^.*\.conf\.sample$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^tools/.*$
- ^tox.ini$
- ^neutron/agent/dhcp/.*$
- ^neutron/agent/l2/.*$
- ^neutron/agent/l3/.*$
- ^neutron/agent/metadata/.*$
- ^neutron/agent/windows/.*$
- ^neutron/agent/dhcp_agent.py
- ^neutron/agent/l3_agent.py
- ^neutron/agent/metadata_agent.py
- ^neutron/agent/resource_cache.py
- ^neutron/agent/rpc.py
- ^neutron/agent/securitygroup_rpc.py
- ^neutron/plugins/ml2/drivers/linuxbridge/.*$
- ^neutron/plugins/ml2/drivers/openvswitch/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/services/qos/drivers/linuxbridge/.*$
- ^neutron/services/qos/drivers/openvswitch/.*$
- ^neutron/services/trunk/drivers/linuxbridge/.*$
- ^neutron/services/trunk/drivers/openvswitch/.*$
- ^neutron/scheduler/.*$
- ^neutron_tempest_plugin/api/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
- ^neutron_tempest_plugin/services/bgp/.*$
- ^rally-jobs/.*$
- ^vagrant/.*$
- ^zuul.d/(?!(project)).*\.yaml
# TODO(slaweq): remove that job's definition as soon as new job
# "neutron-tempest-plugin-ovn" will be used in the neutron-lib repo as
# instead of old "neutron-tempest-plugin-api" job
- job:
name: neutron-tempest-plugin-api
parent: neutron-tempest-plugin-ovn
- job:
name: neutron-tempest-plugin-dvr-multinode-scenario
parent: tempest-multinode-full
description: |
Perform setup for Neutron tempest tests in multinode with DVR scenario
roles:
- zuul: openstack/devstack
required-projects:
- openstack/neutron
- openstack/neutron-tempest-plugin
- openstack/tempest
pre-run: playbooks/dvr-multinode-scenario-pre-run.yaml
voting: false
vars:
tempest_concurrency: 4
tox_envlist: all
tempest_test_regex: ^neutron_tempest_plugin\.scenario
# NOTE(slaweq): in case of some tests, which requires advanced image,
# default test timeout set to 1200 seconds may be not enough if job is
# run on slow node
tempest_test_timeout: 2400
network_api_extensions_common: *api_extensions
network_api_extensions_dvr:
- dvr
devstack_localrc:
USE_PYTHON3: true
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_dvr) | join(',') }}"
PHYSICAL_NETWORK: default
CIRROS_VERSION: 0.5.1
DEFAULT_IMAGE_NAME: cirros-0.5.1-x86_64-uec
DEFAULT_IMAGE_FILE_NAME: cirros-0.5.1-x86_64-uec.tar.gz
IMAGE_URLS: https://cloud-images.ubuntu.com/minimal/releases/focal/release/ubuntu-20.04-minimal-cloudimg-amd64.img
ADVANCED_IMAGE_NAME: ubuntu-20.04-minimal-cloudimg-amd64
ADVANCED_INSTANCE_TYPE: ntp_image_256M
ADVANCED_INSTANCE_USER: ubuntu
CUSTOMIZE_IMAGE: true
BUILD_TIMEOUT: 784
Q_AGENT: openvswitch
Q_ML2_TENANT_NETWORK_TYPE: vxlan
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
devstack_plugins:
neutron: https://opendev.org/openstack/neutron.git
neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin.git
tempest_plugins:
- neutron-tempest-plugin
devstack_services:
tls-proxy: true
tempest: true
# Disable OVN services
br-ex-tcpdump: false
br-int-flows: false
ovn-controller: false
ovn-northd: false
ovs-vswitchd: false
ovsdb-server: false
q-ovn-metadata-agent: false
# Neutron services
q-agt: true
q-dhcp: true
q-l3: true
q-meta: true
q-metering: true
neutron-dns: true
neutron-qos: true
neutron-segments: true
neutron-trunk: true
neutron-log: true
neutron-port-forwarding: true
# Cinder services
c-api: false
c-bak: false
c-sch: false
c-vol: false
cinder: false
# We don't need Swift to be run in the Neutron jobs
s-account: false
s-container: false
s-object: false
s-proxy: false
devstack_local_conf:
post-config:
$NEUTRON_CONF:
quotas:
quota_router: 100
quota_floatingip: 500
quota_security_group: 100
quota_security_group_rule: 1000
DEFAULT:
router_distributed: True
# NOTE(slaweq): We can get rid of this hardcoded absolute path when
# devstack-tempest job will be switched to use lib/neutron instead of
# lib/neutron-legacy
"/$NEUTRON_CORE_PLUGIN_CONF":
ml2:
type_drivers: flat,geneve,vlan,gre,local,vxlan
mechanism_drivers: openvswitch,l2population
ml2_type_vlan:
network_vlan_ranges: foo:1:10
ml2_type_vxlan:
vni_ranges: 1:2000
ml2_type_gre:
tunnel_id_ranges: 1:1000
agent:
enable_distributed_routing: True
l2_population: True
tunnel_types: vxlan,gre
ovs:
tunnel_bridge: br-tun
bridge_mappings: public:br-ex
$NEUTRON_L3_CONF:
DEFAULT:
agent_mode: dvr_snat
agent:
availability_zone: nova
$NEUTRON_DHCP_CONF:
agent:
availability_zone: nova
"/etc/neutron/api-paste.ini":
"composite:neutronapi_v2_0":
use: "call:neutron.auth:pipeline_factory"
noauth: "cors request_id catch_errors osprofiler extensions neutronapiapp_v2_0"
keystone: "cors request_id catch_errors osprofiler authtoken keystonecontext extensions neutronapiapp_v2_0"
test-config:
$TEMPEST_CONFIG:
network-feature-enabled:
available_features: *available_features
neutron_plugin_options:
provider_vlans: foo,
agent_availability_zone: nova
image_is_advanced: true
available_type_drivers: flat,geneve,vlan,gre,local,vxlan
l3_agent_mode: dvr_snat
firewall_driver: openvswitch
group-vars:
subnode:
devstack_services:
tls-proxy: true
br-ex-tcpdump: false
br-int-flows: false
# Disable OVN services
ovn-controller: false
ovn-northd: false
ovs-vswitchd: false
ovsdb-server: false
q-ovn-metadata-agent: false
# Neutron services
q-agt: true
q-l3: true
q-meta: true
neutron-qos: true
neutron-trunk: true
neutron-log: true
neutron-port-forwarding: true
# Cinder services
c-bak: false
c-vol: false
# We don't need Swift to be run in the Neutron jobs
s-account: false
s-container: false
s-object: false
s-proxy: false
devstack_localrc:
USE_PYTHON3: true
Q_AGENT: openvswitch
Q_ML2_TENANT_NETWORK_TYPE: vxlan
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
devstack_local_conf:
post-config:
$NEUTRON_CONF:
DEFAULT:
router_distributed: True
# NOTE(slaweq): We can get rid of this hardcoded absolute path when
# devstack-tempest job will be switched to use lib/neutron instead of
# lib/neutron-legacy
"/$NEUTRON_CORE_PLUGIN_CONF":
agent:
enable_distributed_routing: True
l2_population: True
tunnel_types: vxlan,gre
ovs:
tunnel_bridge: br-tun
bridge_mappings: public:br-ex
$NEUTRON_L3_CONF:
DEFAULT:
agent_mode: dvr_snat
agent:
availability_zone: nova
irrelevant-files: *openvswitch-scenario-irrelevant-files
- job:
name: neutron-tempest-plugin-designate-scenario
parent: neutron-tempest-plugin-base-nested-switch
description: Neutron designate integration scenario
required-projects:
- openstack/designate
- openstack/designate-dashboard
- openstack/designate-tempest-plugin
timeout: 3600
vars:
network_api_extensions_common: *api_extensions
devstack_localrc:
DESIGNATE_BACKEND_DRIVER: bind9
# In this job advanced image is not needed, so it's name should be
# empty
ADVANCED_IMAGE_NAME: ""
NETWORK_API_EXTENSIONS: "{{ network_api_extensions_common | join(',') }}"
devstack_plugins:
designate: https://opendev.org/openstack/designate.git
devstack_services:
cinder: false
designate: true
tempest_plugins:
- designate-tempest-plugin
- neutron-tempest-plugin
tempest_test_regex: ^neutron_tempest_plugin\.scenario\.test_dns_integration
irrelevant-files:
- ^(test-|)requirements.txt$
- lower-constraints.txt
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^.*\.conf\.sample$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^tools/.*$
- ^tox.ini$
- ^neutron/agent/.*$
- ^neutron/cmd/.*$
- ^neutron/privileged/.*$
- ^neutron/plugins/ml2/drivers/.*$
- ^neutron/scheduler/.*$
- ^neutron/services/(?!externaldns).*$
- ^neutron_tempest_plugin/api/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
- ^neutron_tempest_plugin/services/bgp/.*$
- ^rally-jobs/.*$
- ^vagrant/.*$
- ^zuul.d/(?!(project)).*\.yaml
- job:
name: neutron-tempest-plugin-sfc
parent: neutron-tempest-plugin-base
timeout: 10800
required-projects:
- openstack/networking-sfc
- openstack/neutron
- openstack/neutron-tempest-plugin
- openstack/tempest
vars:
devstack_services:
# Disable OVN services
br-ex-tcpdump: false
br-int-flows: false
ovn-controller: false
ovn-northd: false
ovs-vswitchd: false
ovsdb-server: false
q-ovn-metadata-agent: false
# Enable Neutron services that are not used by OVN
q-agt: true
q-dhcp: true
q-l3: true
q-meta: true
q-metering: true
tempest_test_regex: ^neutron_tempest_plugin\.sfc
devstack_plugins:
networking-sfc: https://opendev.org/openstack/networking-sfc
neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin
network_api_extensions_sfc:
- flow_classifier
- sfc
devstack_localrc:
Q_AGENT: openvswitch
Q_ML2_TENANT_NETWORK_TYPE: vxlan
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_sfc) | join(',') }}"
# TODO(bcafarel): tests still fail from time to time in parallel
# https://bugs.launchpad.net/neutron/+bug/1851500
# https://bugs.launchpad.net/networking-sfc/+bug/1660366
tempest_concurrency: 1
irrelevant-files:
- ^(test-|)requirements.txt$
- lower-constraints.txt
- ^releasenotes/.*$
- ^doc/.*$
- ^.*\.conf\.sample$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^neutron_tempest_plugin/api/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|tap_as_a_service|vpnaas).*$
- ^neutron_tempest_plugin/services/bgp/.*$
- ^tools/.*$
- ^tox.ini$
- ^rally-jobs/.*$
- ^vagrant/.*$
- ^zuul.d/(?!(project)).*\.yaml
- job:
name: neutron-tempest-plugin-bgpvpn-bagpipe
parent: neutron-tempest-plugin-base
required-projects:
- openstack/networking-bagpipe
- openstack/networking-bgpvpn
vars:
devstack_services:
# Disable OVN services
br-ex-tcpdump: false
br-int-flows: false
ovn-controller: false
ovn-northd: false
ovs-vswitchd: false
ovsdb-server: false
q-ovn-metadata-agent: false
# Enable Neutron services that are not used by OVN
q-agt: true
q-dhcp: true
q-l3: true
q-meta: true
q-metering: true
tempest_test_regex: ^neutron_tempest_plugin\.bgpvpn
network_api_extensions_bgpvpn:
- bgpvpn
- bgpvpn-routes-control
devstack_localrc:
Q_AGENT: openvswitch
Q_ML2_TENANT_NETWORK_TYPE: vxlan
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
NETWORKING_BGPVPN_DRIVER: "BGPVPN:BaGPipe:networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe_v2.BaGPipeBGPVPNDriver:default"
BAGPIPE_DATAPLANE_DRIVER_IPVPN: "ovs"
BAGPIPE_BGP_PEERS: "-"
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_bgpvpn) | join(',') }}"
devstack_plugins:
networking-bgpvpn: https://git.openstack.org/openstack/networking-bgpvpn
networking-bagpipe: https://git.openstack.org/openstack/networking-bagpipe
irrelevant-files:
- ^(test-|)requirements.txt$
- lower-constraints.txt
- ^releasenotes/.*$
- ^doc/.*$
- ^.*\.conf\.sample$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^neutron_tempest_plugin/api/test_.*$
- ^neutron_tempest_plugin/(fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
- ^neutron_tempest_plugin/services/bgp/.*$
- ^tools/.*$
- ^tox.ini$
- ^rally-jobs/.*$
- ^vagrant/.*$
- ^zuul.d/(?!(project)).*\.yaml
- job:
name: neutron-tempest-plugin-dynamic-routing
parent: neutron-tempest-plugin-base
description: |
Perform setup common to all Neutron dynamic routing tempest tests
required-projects:
- openstack/neutron
- openstack/neutron-dynamic-routing
- openstack/os-ken
- openstack/tempest
pre-run: playbooks/dynamic-routing-pre-run.yaml
vars:
devstack_plugins:
neutron-dynamic-routing: https://opendev.org/openstack/neutron-dynamic-routing
neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin
network_api_extensions_bgp:
- bgp
- bgp_dragent_scheduler
- bgp_4byte_asn
devstack_localrc:
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_bgp) | join(',') }}"
Q_AGENT: openvswitch
Q_ML2_TENANT_NETWORK_TYPE: vxlan
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
devstack_services:
# Disable OVN services
br-ex-tcpdump: false
br-int-flows: false
ovn-controller: false
ovn-northd: false
ovs-vswitchd: false
ovsdb-server: false
q-ovn-metadata-agent: false
# Neutron services
q-agt: true
q-dhcp: true
q-meta: true
q-metering: true
q-l3: true
neutron-dr: true
neutron-dr-agent: true
tempest_concurrency: 1
tempest_test_regex: ^neutron_tempest_plugin\.neutron_dynamic_routing
irrelevant-files:
- ^(test-|)requirements.txt$
- lower-constraints.txt
- ^releasenotes/.*$
- ^doc/.*$
- ^.*\.conf\.sample$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^neutron_tempest_plugin/api/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|fwaas|sfc|tap_as_a_service|vpnaas).*$
- ^tools/.*$
- ^tox.ini$
- ^rally-jobs/.*$
- ^vagrant/.*$
- ^zuul.d/(?!(project)).*\.yaml
- job:
name: neutron-tempest-plugin-fwaas
parent: neutron-tempest-plugin-base
timeout: 10800
required-projects:
- openstack/devstack-gate
- openstack/neutron-fwaas
- openstack/neutron
- openstack/neutron-tempest-plugin
- openstack/tempest
vars:
tempest_concurrency: 4
tempest_test_regex: ^neutron_tempest_plugin\.fwaas
devstack_plugins:
neutron-fwaas: https://opendev.org/openstack/neutron-fwaas.git
neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin.git
network_api_extensions_fwaas:
- fwaas_v2
devstack_localrc:
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_fwaas) | join(',') }}"
Q_AGENT: openvswitch
Q_ML2_TENANT_NETWORK_TYPE: vxlan
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
devstack_services:
# Disable OVN services
br-ex-tcpdump: false
br-int-flows: false
ovn-controller: false
ovn-northd: false
q-ovn-metadata-agent: false
# Neutron services
q-agt: true
q-dhcp: true
q-meta: true
q-metering: true
q-l3: true
neutron-log: false
irrelevant-files:
- ^(test-|)requirements.txt$
- ^releasenotes/.*$
- ^doc/.*$
- ^.*\.conf\.sample$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^neutron_tempest_plugin/api/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
- ^neutron_tempest_plugin/services/bgp/.*$
- ^tools/.*$
- ^tox.ini$
- ^rally-jobs/.*$
- ^vagrant/.*$
- ^zuul.d/(?!(project)).*\.yaml
- job:
name: neutron-tempest-plugin-vpnaas
parent: neutron-tempest-plugin-base
timeout: 3900
required-projects:
- openstack/neutron
- openstack/neutron-vpnaas
- openstack/neutron-tempest-plugin
- openstack/tempest
vars:
tempest_test_regex: ^neutron_tempest_plugin\.vpnaas
devstack_plugins:
neutron-vpnaas: https://opendev.org/openstack/neutron-vpnaas.git
neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin.git
network_api_extensions_common: *api_extensions
network_api_extensions_vpnaas:
- vpnaas
devstack_localrc:
IPSEC_PACKAGE: strongswan
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_vpnaas) | join(',') }}"
Q_AGENT: openvswitch
Q_ML2_TENANT_NETWORK_TYPE: vxlan
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
devstack_services:
# Disable OVN services
br-ex-tcpdump: false
br-int-flows: false
ovn-controller: false
ovn-northd: false
ovs-vswitchd: false
ovsdb-server: false
q-ovn-metadata-agent: false
# Neutron services
q-agt: true
q-dhcp: true
q-meta: true
q-metering: true
q-l3: true
irrelevant-files:
- ^(test-|)requirements.txt$
- lower-constraints.txt
- ^releasenotes/.*$
- ^doc/.*$
- ^.*\.conf\.sample$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^neutron_tempest_plugin/api/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service).*$
- ^neutron_tempest_plugin/services/bgp/.*$
- ^tools/.*$
- ^tox.ini$
- ^rally-jobs/.*$
- ^vagrant/.*$
- ^zuul.d/(?!(project)).*\.yaml
- job:
name: neutron-tempest-plugin-tap-as-a-service
parent: neutron-tempest-plugin-base
description: |
Perform setup common to all tap-as-a-service tempest tests
roles:
- zuul: openstack/devstack
required-projects:
- openstack/devstack-gate
- openstack/neutron
- openstack/neutron-tempest-plugin
- openstack/tap-as-a-service
- openstack/tempest
vars:
tempest_test_regex: ^neutron_tempest_plugin\.tap_as_a_service
tox_envlist: all
network_api_extensions_tempest:
- taas
- taas-vlan-filter
devstack_localrc:
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}"
IMAGE_URLS: https://cloud-images.ubuntu.com/releases/bionic/release/ubuntu-18.04-server-cloudimg-amd64.img
ADVANCED_IMAGE_NAME: ubuntu-18.04-server-cloudimg-amd64
ADVANCED_INSTANCE_TYPE: ntp_image_384M
ADVANCED_INSTANCE_USER: ubuntu
CUSTOMIZE_IMAGE: false
BUILD_TIMEOUT: 784
Q_AGENT: openvswitch
Q_ML2_TENANT_NETWORK_TYPE: vxlan,vlan
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
devstack_local_conf:
post-config:
/$NEUTRON_CORE_PLUGIN_CONF:
AGENT:
tunnel_types: vxlan
ml2_type_vlan:
network_vlan_ranges: public
test-config:
$TEMPEST_CONFIG:
neutron_plugin_options:
image_is_advanced: true
advanced_image_flavor_ref: d1
taas:
provider_physical_network: public
provider_segmentation_id: 100
image_feature_enabled:
api_v2: true
devstack_plugins:
neutron: git://opendev.org/openstack/neutron.git
neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin.git
tap-as-a-service: git://opendev.org/openstack/tap-as-a-service.git
devstack_services:
# Disable OVN services
ovn-controller: false
ovn-northd: false
ovs-vswitchd: false
ovsdb-server: false
q-ovn-metadata-agent: false
# Enable Neutron services that are not used by OVN
q-agt: true
q-dhcp: true
q-l3: true
q-meta: true
q-metering: true
br-ex-tcpdump: true
br-int-flows: true
base: false
key: true
mysql: true
rabbit: true
g-api: true
g-reg: true
n-api: true
n-cond: true
n-cpu: true
n-crt: true
n-sch: true
placement-api: true
n-api-meta: true
q-svc: true
quantum: true
taas: true
taas_openvswitch_agent: true
tempest: true
dstat: true
irrelevant-files:
- ^(test-|)requirements.txt$
- lower-constraints.txt
- ^releasenotes/.*$
- ^doc/.*$
- ^.*\.conf\.sample$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^neutron_tempest_plugin/api/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|vpnaas).*$
- ^neutron_tempest_plugin/services/bgp/.*$
- ^tools/.*$
- ^tox.ini$
- ^rally-jobs/.*$
- ^vagrant/.*$
- ^zuul.d/(?!(project)).*\.yaml