os-vif/.zuul.yaml
Sean Mooney b837c1a74f add configurable per port bridges
This patch add a new configuration option to use
per port bridge when hybrid_plug is false.
This can be used with OVN to reduce packet loss
during a live migration.

OVN can only install openflow rules when a port both has
external_ids set and an ofport-id assigned.
Since the ofport-id is only assigned when a netdev matching
the port name exists connected to the dataplane, OVN cannot
install the flows until libvirt create the tap on the destination
host during a live migration.

On loaded systems this can result in multiple seconds of packet loss.
To address this we introduce per port bridges which are connencted
to the integration brige by a patch port pair. Since the patch port
will exist on the dataplane during pre live migration OVN can install
the flows on the integration bridge before we begin the migration reducing
or avoiding packet loss.

Change-Id: I0d55ccbef5b585330b5512e67e442b80304a2e73
Depends-On: https://review.opendev.org/c/openstack/nova/+/797428
Closes-Bug: #1933517
2021-07-12 19:12:01 +00:00

181 lines
5.1 KiB
YAML

- job:
name: openstack-tox-functional-ovs-with-sudo
parent: openstack-tox-functional-with-sudo
required-projects:
- opendev.org/openstack/devstack
pre-run: playbooks/openstack-tox-functional-ovs-with-sudo/pre.yaml
timeout: 600
- job:
name: os-vif-tempest-base
parent: devstack-tempest
timeout: 7800
description: |
Base integration test with Neutron networking and py3.
This is derived from tempest-full-py3 and adapted for
use in os-vif
required-projects:
- openstack/nova
- openstack/os-vif
- openstack/neutron
- openstack/tempest
vars:
tempest_concurrency: 4
tox_envlist: full
devstack_plugins:
neutron: https://opendev.org/openstack/neutron.git
devstack_localrc:
USE_PYTHON3: true
FORCE_CONFIG_DRIVE: true
ENABLE_VOLUME_MULTIATTACH: true
# NOTE(sean-k-mooney) we do not have to set
# DEVSTACK_PROJECT_FROM_GIT: "os-vif"
# in the local.conf because os-vif is listed as a required
# project and will be added to the LIB_FROM_GIT automatically.
devstack_services:
s-account: false
s-container: false
s-object: false
s-proxy: false
# without Swift, c-bak cannot run (in the Gate at least)
c-bak: false
- job:
name: os-vif-ovs-base
parent: os-vif-tempest-base
description: |
os-vif ovs base job, this should not be used directly.
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
devstack_localrc:
Q_AGENT: openvswitch
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
Q_DVR_MODE: dvr_snat
Q_ML2_TENANT_NETWORK_TYPE: vxlan
devstack_local_conf:
post-config:
$NEUTRON_CONF:
DEFAULT:
enable_dvr: yes
l3_ha: yes
$NEUTRON_L3_CONF:
agent:
availability_zone: nova
$NEUTRON_DHCP_CONF:
agent:
availability_zone: nova
"/$NEUTRON_CORE_PLUGIN_CONF":
ml2_type_vlan:
network_vlan_ranges: foo:1:10
agent:
tunnel_types: vxlan
- job:
name: os-vif-ovs-iptables
parent: os-vif-ovs-base
description: |
os-vif ovs iptables job (tests hybrid-plug=true)
vars:
devstack_local_conf:
post-config:
$NOVA_CONF:
os_vif_ovs:
isolate_vif: true
# NOTE(sean-k-mooney): i do not believe that the devstack role
# will merge the base /$NEUTRON_CORE_PLUGIN_CONF with the parent
# job so we redefine the entire section
"/$NEUTRON_CORE_PLUGIN_CONF":
ml2_type_vlan:
network_vlan_ranges: foo:1:10
agent:
tunnel_types: vxlan
securitygroup:
firewall_driver: iptables_hybrid
enable_ipset: false
- job:
name: os-vif-ovn
parent: os-vif-tempest-base
description: |
os-vif ovn job (tests hybrid-plug=false)
vars:
devstack_local_conf:
post-config:
$NOVA_CONF:
os_vif_ovs:
per_port_bridge: true
- job:
name: os-vif-linuxbridge
parent: os-vif-tempest-base
description: |
os-vif linux bridge job derived from neutron-tempest-linuxbridge
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
devstack_localrc:
Q_AGENT: linuxbridge
Q_ML2_PLUGIN_MECHANISM_DRIVERS: linuxbridge
Q_ML2_TENANT_NETWORK_TYPE: vxlan
devstack_local_conf:
post-config:
"/$NEUTRON_CORE_PLUGIN_CONF":
ml2:
type_drivers: flat,vlan,local,vxlan
ml2_type_vlan:
network_vlan_ranges: foo:1:10
agent:
tunnel_types: vxlan
securitygroup:
firewall_driver: iptables
- project:
templates:
- check-requirements
- openstack-lower-constraints-jobs
- openstack-python3-xena-jobs
- publish-openstack-docs-pti
- release-notes-jobs-python3
- openstack-cover-jobs
check:
jobs:
- kuryr-kubernetes-tempest:
voting: false
- openstack-tox-functional-ovs-with-sudo
- os-vif-ovn
- os-vif-ovs-iptables
- os-vif-linuxbridge
gate:
jobs:
- openstack-tox-functional-ovs-with-sudo
- os-vif-ovn
- os-vif-ovs-iptables
- os-vif-linuxbridge