From 5c304d817682d6c807b532b50a2f105479ac3fa2 Mon Sep 17 00:00:00 2001 From: Lucas Alvares Gomes Date: Thu, 11 Jun 2020 11:00:56 +0100 Subject: [PATCH] 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 --- .zuul.yaml | 35 +++++++++++++++++++++++++++-------- lib/neutron_plugins/ml2 | 6 +++--- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index 00129b5ca4..e133bfacd7 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 ae4b251d83..a58ba5cbcd 100644 --- a/lib/neutron_plugins/ml2 +++ b/lib/neutron_plugins/ml2 @@ -8,14 +8,14 @@ _XTRACE_NEUTRON_ML2=$(set +o | grep xtrace) 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 @@ elif [[ "$ENABLE_TENANT_TUNNELS" == "True" ]]; then 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