Change Neutron's default ML2 driver to OVN
As part of the Victoria PTG the Neutron community [0] agreed on changing
the default backend driver from ML2/OVS to ML2/OVN in DevStack. A lot of
changes have been submitted towards this goal including but not limted
to:
* Moving the OVN module to DevStack:
https://review.opendev.org/c/openstack/devstack/+/734621
* Updating the OVN module to use distro packages instead of compiling
OVN from source: https://review.opendev.org/c/openstack/devstack/+/763402o
And now this patch is changing the the actual Q_AGENT,
Q_ML2_TENANT_NETWORK_TYPE and Q_ML2_PLUGIN_MECHANISM_DRIVERS values in
devstack to what is expected by OVN as well as updating the Zuul
templates to enable the OVN services.
[0] https://etherpad.opendev.org/p/neutron-victoria-ptg
Change-Id: I92054ce9d2ab7a42746ed5dececef583b0f8a833
Signed-off-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
diff --git a/.zuul.yaml b/.zuul.yaml
index 00129b5..e133bfa 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -468,6 +468,10 @@
SWIFT_HASH: 1234123412341234
DEBUG_LIBVIRT_COREDUMPS: true
NOVA_VNC_ENABLED: true
+ OVN_L3_CREATE_PUBLIC_NETWORK: true
+ OVN_DBS_LOG_LEVEL: dbg
+ ENABLE_CHASSIS_AS_GW: true
+ Q_USE_PROVIDERNET_FOR_PUBLIC: true
devstack_local_conf:
post-config:
$NEUTRON_CONF:
@@ -477,7 +481,11 @@
# Core services enabled for this branch.
# This list replaces the test-matrix.
# Shared services
- dstat: true
+ #
+ # NOTE(lucasagomes): disable dstat until bug
+ # https://bugs.launchpad.net/ubuntu/+source/dstat/+bug/1866619 is
+ # fixed. Also see: https://bugs.launchpad.net/neutron/+bug/1898863
+ dstat: false
etcd3: true
memory_tracker: true
mysql: true
@@ -496,13 +504,14 @@
n-sch: true
# Placement service
placement-api: true
+ # OVN services
+ ovn-controller: true
+ ovn-northd: true
+ ovs-vswitchd: true
+ ovsdb-server: true
# Neutron services
- q-agt: true
- q-dhcp: true
- q-l3: true
- q-meta: true
- q-metering: true
q-svc: true
+ q-ovn-metadata-agent: true
# Swift services
s-account: true
s-container: true
@@ -527,15 +536,24 @@
# Core services enabled for this branch.
# This list replaces the test-matrix.
# Shared services
- dstat: true
+ #
+ # NOTE(lucasagomes): disable dstat until bug
+ # https://bugs.launchpad.net/ubuntu/+source/dstat/+bug/1866619 is
+ # fixed. Also see: https://bugs.launchpad.net/neutron/+bug/1898863
+ dstat: false
memory_tracker: true
tls-proxy: true
# Nova services
n-cpu: true
# Placement services
placement-client: true
+ # OVN services
+ ovn-controller: true
+ ovn-northd: false
+ ovs-vswitchd: true
+ ovsdb-server: true
# Neutron services
- q-agt: true
+ q-ovn-metadata-agent: true
# Cinder services
c-bak: true
c-vol: true
@@ -549,6 +567,7 @@
# integrated gate, so specifying the services has not effect.
# ceilometer-*: false
devstack_localrc:
+ ENABLE_CHASSIS_AS_GW: false
# Subnode specific settings
GLANCE_HOSTPORT: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}:9292"
Q_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
diff --git a/lib/neutron_plugins/ml2 b/lib/neutron_plugins/ml2
index ae4b251..a58ba5c 100644
--- a/lib/neutron_plugins/ml2
+++ b/lib/neutron_plugins/ml2
@@ -8,14 +8,14 @@
set +o xtrace
# Default openvswitch L2 agent
-Q_AGENT=${Q_AGENT:-openvswitch}
+Q_AGENT=${Q_AGENT:-ovn}
if [ -f $TOP_DIR/lib/neutron_plugins/${Q_AGENT}_agent ]; then
source $TOP_DIR/lib/neutron_plugins/${Q_AGENT}_agent
fi
# Enable this to simply and quickly enable tunneling with ML2.
# Select either 'gre', 'vxlan', or 'gre,vxlan'
-Q_ML2_TENANT_NETWORK_TYPE=${Q_ML2_TENANT_NETWORK_TYPE:-"vxlan"}
+Q_ML2_TENANT_NETWORK_TYPE=${Q_ML2_TENANT_NETWORK_TYPE:-"geneve"}
# This has to be set here since the agent will set this in the config file
if [[ "$Q_ML2_TENANT_NETWORK_TYPE" == "gre" || "$Q_ML2_TENANT_NETWORK_TYPE" == "vxlan" ]]; then
Q_TUNNEL_TYPES=$Q_ML2_TENANT_NETWORK_TYPE
@@ -24,7 +24,7 @@
fi
# List of MechanismDrivers to load
-Q_ML2_PLUGIN_MECHANISM_DRIVERS=${Q_ML2_PLUGIN_MECHANISM_DRIVERS:-openvswitch,linuxbridge}
+Q_ML2_PLUGIN_MECHANISM_DRIVERS=${Q_ML2_PLUGIN_MECHANISM_DRIVERS:-ovn}
# Default GRE TypeDriver options
Q_ML2_PLUGIN_GRE_TYPE_OPTIONS=${Q_ML2_PLUGIN_GRE_TYPE_OPTIONS:-tunnel_id_ranges=$TENANT_TUNNEL_RANGES}
# Default VXLAN TypeDriver options