[ovs/dpdk] Configure vxlan for baremetal scenario 97/51197/1
authorMichael Polenchuk <mpolenchuk@mirantis.com>
Fri, 26 Jan 2018 13:52:31 +0000 (17:52 +0400)
committerMichael Polenchuk <mpolenchuk@mirantis.com>
Fri, 26 Jan 2018 13:52:31 +0000 (17:52 +0400)
* switch ovs/dpdk scenario from vlan to vxlan mode
* force br-ex interface to mitigate race with incorrect state
* remove dpdk packages list (already in upstream)

Change-Id: Ib827cef2d67879fd2a86d286ca2118b22493274d
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml
mcp/config/states/networking_gw [new file with mode: 0755]
mcp/patches/0013-dpdk-Support-ovs-bridge-tagging.patch [new file with mode: 0644]
mcp/patches/patches.list
mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml.j2 [moved from mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml with 75% similarity]
mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/init.yml
mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/compute.yml

index b475387..eec97eb 100644 (file)
@@ -15,6 +15,7 @@ cluster:
     - dpdk
     - openstack_ha
     - networks
+    - networking_gw
 virtual:
   nodes:
     - cfg01
diff --git a/mcp/config/states/networking_gw b/mcp/config/states/networking_gw
new file mode 100755 (executable)
index 0000000..ea7c87b
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/bash -e
+##############################################################################
+# Copyright (c) 2018 Mirantis Inc., Enea AB and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x
+
+salt -I 'neutron:gateway' cmd.run 'ifup --force --ignore-errors br-ex'
diff --git a/mcp/patches/0013-dpdk-Support-ovs-bridge-tagging.patch b/mcp/patches/0013-dpdk-Support-ovs-bridge-tagging.patch
new file mode 100644 (file)
index 0000000..f73931e
--- /dev/null
@@ -0,0 +1,30 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: Copyright (c) 2018 Mirantis Inc., Enea AB and others.
+:
+: All rights reserved. This program and the accompanying materials
+: are made available under the terms of the Apache License, Version 2.0
+: which accompanies this distribution, and is available at
+: http://www.apache.org/licenses/LICENSE-2.0
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+From: Michael Polenchuk <mpolenchuk@mirantis.com>
+Date: Mon, 22 Jan 2018 15:22:47 +0400
+Subject: [PATCH] [dpdk] Support ovs bridge tagging
+
+Bring in "tag" option for dpdk/ovs bridges
+to support vlan-tagged vxlan mode.
+
+Change-Id: I7f1f88233694f2c8b968a6cf55584f32879ec042
+
+diff --git a/linux/network/dpdk.sls b/linux/network/dpdk.sls
+index 1ac9e25..05fe05f 100644
+--- a/linux/network/dpdk.sls
++++ b/linux/network/dpdk.sls
+@@ -110,7 +110,7 @@ linux_network_dpdk_bond_mode_{{ interface_name }}:
+
+ linux_network_dpdk_bridge_interface_{{ interface_name }}:
+   cmd.run:
+-    - name: "ovs-vsctl add-br {{ interface_name }} -- set bridge {{ interface_name }} datapath_type=netdev"
++    - name: "ovs-vsctl add-br {{ interface_name }} -- set bridge {{ interface_name }} datapath_type=netdev{% if interface.tag is defined %} -- set port {{ interface_name }} tag={{ interface.tag }}{% endif %}"
+     - unless: "ovs-vsctl show | grep {{ interface_name }}"
+
+     {# OVS dpdk needs ip address for vxlan termination on bridge br-prv #}
index 1b3bfea..34d913a 100644 (file)
@@ -17,3 +17,4 @@
 /usr/share/salt-formulas/env: 0010-maas-region-allow-timeout-override.patch
 /usr/share/salt-formulas/env: 0011-system.repo-Debian-Add-keyserver-proxy-support.patch
 /usr/share/salt-formulas/env: 0012-linux.storage.lvm-Disable-filter.patch
+/usr/share/salt-formulas/env: 0013-dpdk-Support-ovs-bridge-tagging.patch
@@ -5,6 +5,11 @@
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
+{%- if conf.idf is defined and conf.idf.net_config is defined -%}
+    {%- set vlan_private = conf['idf']['net_config']['private']['vlan'] -%}
+{%- else -%}
+    {%- set vlan_private = '1000' -%}
+{%- endif -%}
 ---
 classes:
   - cluster.baremetal-mcp-pike-common-ha.openstack_compute
@@ -23,11 +28,6 @@ parameters:
       libvirt_bin: /etc/default/libvirtd
   linux:
     network:
-      dpdk_pkgs:
-        - dpdk
-        - dpdk-dev
-        - dpdk-igb-uio-dkms
-        - dpdk-rte-kni-dkms
       interface:
         dpdk0:
           name: ${_param:dpdk0_name}
@@ -40,3 +40,8 @@ parameters:
         br-prv:
           enabled: true
           type: dpdk_ovs_bridge
+          address: ${_param:tenant_address}
+          netmask: 255.255.255.0
+          {%- if vlan_private and vlan_private != 'native' %}
+          tag: {{ vlan_private }}
+          {%- endif %}
index 7d85fda..49af851 100644 (file)
@@ -10,7 +10,7 @@ classes:
   - cluster.baremetal-mcp-pike-common-ha.openstack_init
 parameters:
   _param:
-    neutron_tenant_network_types: "flat,vlan"
+    neutron_tenant_network_types: "flat,vxlan"
     neutron_tenant_vlan_range: "1000:1030"
     nova_cpu_pinning: "5-7,13-15"
     compute_hugepages_size: 2M
index 819fa5e..c59cdaa 100644 (file)
@@ -19,11 +19,6 @@ parameters:
         tenant_network_types: ${_param:neutron_tenant_network_types}
   linux:
     network:
-      dpdk_pkgs:
-        - dpdk
-        - dpdk-dev
-        - dpdk-igb-uio-dkms
-        - dpdk-rte-kni-dkms
       interface:
         dpdk0:
           name: ${_param:dpdk0_name}