From 23ec2726abee1b15685d46deb2c7d3911744c253 Mon Sep 17 00:00:00 2001 From: James Denton Date: Wed, 25 Mar 2020 17:04:39 +0000 Subject: [PATCH] Implements support for OVS+DVR in an MNAIO This patch implements support for deploying an MNAIO with Open vSwitch and DVR. Change-Id: I0fb03e2eb0ead198c64019eb0cdd06451e1e7c94 Implements: openvswitch+dvr --- multi-node-aio/README.rst | 9 ++++++++ multi-node-aio/playbooks/deploy-osa.yml | 3 ++- multi-node-aio/playbooks/group_vars/all.yml | 1 + .../playbooks/osa/openstack_user_config.yml | 21 +++++++++++++++++++ .../playbooks/osa/user_mnaio_variables.yml | 7 ++++++- 5 files changed, 39 insertions(+), 2 deletions(-) diff --git a/multi-node-aio/README.rst b/multi-node-aio/README.rst index ffe7b277..e518f9e5 100644 --- a/multi-node-aio/README.rst +++ b/multi-node-aio/README.rst @@ -62,6 +62,7 @@ at this time include: * ML2/LinuxBridge * ML2/Open Virtual Network (OVN) +* ML2/Open vSwitch w/ DVR (OVS) To deploy an MNAIO with support for OVN, set the following parameter(s) prior to executing the build: @@ -71,6 +72,14 @@ to executing the build: export MNAIO_ANSIBLE_PARAMETERS="-e osa_enable_networking_ovn=true" ./build.sh +To deploy an MNAIO with support for OVS+DVR, set the following parameter(s) prior +to executing the build: + +.. code-block:: bash + + export MNAIO_ANSIBLE_PARAMETERS="-e osa_enable_networking_ovs_dvr=true" + ./build.sh + When your ready, run the build script by executing ``bash ./build.sh``. The build script current executes a deployment of OpenStack Ansible using the master branch. If you want to do something other than deploy master you can set the diff --git a/multi-node-aio/playbooks/deploy-osa.yml b/multi-node-aio/playbooks/deploy-osa.yml index 5da93c00..f901baa0 100644 --- a/multi-node-aio/playbooks/deploy-osa.yml +++ b/multi-node-aio/playbooks/deploy-osa.yml @@ -117,7 +117,8 @@ group: root when: - pre_config_osa | default(true) | bool - - osa_enable_networking_ovn | default(false) | bool + - (osa_enable_networking_ovn | default(false) | bool) or + (osa_enable_networking_ovs_dvr | default(false) | bool) - name: Drop NEUTRON OVN env.d config template: diff --git a/multi-node-aio/playbooks/group_vars/all.yml b/multi-node-aio/playbooks/group_vars/all.yml index b3207c5f..c8806c9c 100644 --- a/multi-node-aio/playbooks/group_vars/all.yml +++ b/multi-node-aio/playbooks/group_vars/all.yml @@ -158,6 +158,7 @@ osa_enable_orchestration: true osa_enable_dashboard: true osa_enable_network: true osa_enable_networking_ovn: false +osa_enable_networking_ovs_dvr: false osa_enable_meter: false osa_enable_object_storage: "{{ not (enable_ceph_storage | bool) }}" osa_enable_legacy_os_infra: "{{ (osa_enable_image | bool) and (osa_enable_orchestration | bool) and (osa_enable_dashboard | bool) and (osa_enable_compute | bool) }}" diff --git a/multi-node-aio/playbooks/osa/openstack_user_config.yml b/multi-node-aio/playbooks/osa/openstack_user_config.yml index 57f20368..c80643e4 100644 --- a/multi-node-aio/playbooks/osa/openstack_user_config.yml +++ b/multi-node-aio/playbooks/osa/openstack_user_config.yml @@ -60,6 +60,27 @@ global_overrides: net_name: "flat" group_binds: - neutron_ovn_controller +{% elif osa_enable_networking_ovs_dvr | bool %} + - network: + container_bridge: "br-vxlan" + container_type: "veth" + container_interface: "eth10" + ip_from_q: "tunnel" + type: "vxlan" + range: "1:1000" + net_name: "vxlan" + group_binds: + - neutron_openvswitch_agent + - network: + container_bridge: "br-provider" + container_type: "veth" + container_interface: "eth11" + network_interface: "br-vlan" + type: "vlan" + range: "1:1" + net_name: "vlan" + group_binds: + - neutron_openvswitch_agent {% else %} - network: container_bridge: "br-vxlan" diff --git a/multi-node-aio/playbooks/osa/user_mnaio_variables.yml b/multi-node-aio/playbooks/osa/user_mnaio_variables.yml index 9954c3e7..180659c9 100644 --- a/multi-node-aio/playbooks/osa/user_mnaio_variables.yml +++ b/multi-node-aio/playbooks/osa/user_mnaio_variables.yml @@ -196,7 +196,11 @@ magnum_api_uwsgi_ini_overrides: stats: "/tmp/magnum-api-uwsgi-stats.sock" {% endif %} -{% if osa_enable_networking_ovn | bool %} +{% if osa_enable_networking_ovs_dvr | bool %} +neutron_plugin_type: ml2.ovs.dvr +neutron_ml2_drivers_type: "vlan,local,flat,vxlan" + +{% elif osa_enable_networking_ovn | bool %} neutron_plugin_type: ml2.ovn neutron_plugin_base: @@ -204,3 +208,4 @@ neutron_plugin_base: neutron_ml2_drivers_type: "vlan,local,flat,geneve" {% endif %} +