aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Polenchuk <mpolenchuk@mirantis.com>2018-01-26 17:52:31 +0400
committerMichael Polenchuk <mpolenchuk@mirantis.com>2018-01-26 17:52:31 +0400
commit2bd6a0ed390285ec8f17cc8c71a9147485ca860b (patch)
treec18aec6596cb5ff46b94cc70b48a7308e448b461
parent8b48875e30afa4c60f27310df548a18c18e9af60 (diff)
[ovs/dpdk] Configure vxlan for baremetal scenario
* 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>
-rw-r--r--mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml1
-rwxr-xr-xmcp/config/states/networking_gw12
-rw-r--r--mcp/patches/0013-dpdk-Support-ovs-bridge-tagging.patch30
-rw-r--r--mcp/patches/patches.list1
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml.j2 (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml)15
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/init.yml2
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/compute.yml5
7 files changed, 55 insertions, 11 deletions
diff --git a/mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml b/mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml
index b475387bd..eec97eb96 100644
--- a/mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml
+++ b/mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml
@@ -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
index 000000000..ea7c87b01
--- /dev/null
+++ b/mcp/config/states/networking_gw
@@ -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
index 000000000..f73931ea8
--- /dev/null
+++ b/mcp/patches/0013-dpdk-Support-ovs-bridge-tagging.patch
@@ -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 #}
diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list
index 1b3bfeab0..34d913ab2 100644
--- a/mcp/patches/patches.list
+++ b/mcp/patches/patches.list
@@ -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
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml.j2
index cfe92020d..76fa17946 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml
+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml.j2
@@ -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 %}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/init.yml
index 7d85fda41..49af851cc 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/init.yml
+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/init.yml
@@ -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
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/compute.yml b/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/compute.yml
index 819fa5efa..c59cdaade 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/compute.yml
+++ b/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/compute.yml
@@ -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}