Conform network scheme to tagged public interface 57/52457/3
authorMichael Polenchuk <mpolenchuk@mirantis.com>
Thu, 22 Feb 2018 14:47:28 +0000 (18:47 +0400)
committerMichael Polenchuk <mpolenchuk@mirantis.com>
Fri, 2 Mar 2018 13:24:24 +0000 (17:24 +0400)
Change-Id: I503c8ad32900406e1fa375cec9a91b454889d8bf
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
mcp/patches/0015-Set-ovs-bridges-as-L3-interfaces.patch [new file with mode: 0644]
mcp/patches/patches.list
mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute_pdf.yml.j2

diff --git a/mcp/patches/0015-Set-ovs-bridges-as-L3-interfaces.patch b/mcp/patches/0015-Set-ovs-bridges-as-L3-interfaces.patch
new file mode 100644 (file)
index 0000000..55cf093
--- /dev/null
@@ -0,0 +1,85 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: 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: Wed, 28 Feb 2018 17:54:28 +0400
+Subject: [PATCH] Set ovs bridges as L3 interfaces
+
+Change-Id: I1e83129cc184cf481bea21d7aa452bf60d9e0499
+
+diff --git a/linux/files/ovs_bridge b/linux/files/ovs_bridge
+new file mode 100644
+index 0000000..8c0f468
+--- /dev/null
++++ b/linux/files/ovs_bridge
+@@ -0,0 +1,14 @@
++auto {{ bridge_name }}
++allow-ovs {{ bridge_name }}
++iface {{ bridge_name }} inet {{ bridge.get('proto', 'manual') }}
++  ovs_type OVSBridge
++  {%- if bridge.get('proto', 'manual') == 'static' %}
++  address {{ bridge.address }}
++  netmask {{ bridge.netmask }}
++  {%- endif %}
++  {%- if bridge.gateway is defined %}
++  gateway {{ bridge.gateway }}
++  {%- endif %}
++  {%- if bridge.ovs_options is defined %}
++  ovs_options {{ bridge.ovs_options }}
++  {%- endif %}
+diff --git a/linux/files/ovs_port b/linux/files/ovs_port
+index 222ca8e..efb0307 100644
+--- a/linux/files/ovs_port
++++ b/linux/files/ovs_port
+@@ -1,6 +1,9 @@
+ auto {{ port_name }}
+ allow-{{ port.bridge }} {{ port_name }}
+ iface {{ port_name }} inet {{ port.get('proto', 'manual') }}
++{%- if '.' in port_name %}
++vlan-raw-device {{ port_name.split('.')[0] }}
++{%- endif %}
+ ovs_type {{ port.get('ovs_port_type', 'OVSIntPort') }}
+ mtu {{ port.get('mtu', '1500') }}
+ ovs_bridge {{ port.bridge }}
+diff --git a/linux/network/interface.sls b/linux/network/interface.sls
+index 7375b04..bbf2fa0 100644
+--- a/linux/network/interface.sls
++++ b/linux/network/interface.sls
+@@ -67,6 +67,32 @@ remove_cloud_init_file:
+ ovs_bridge_{{ interface_name }}:
+   openvswitch_bridge.present:
+   - name: {{ interface_name }}
++  file.managed:
++  - name: /etc/network/interfaces.u/ifcfg-{{ interface_name }}
++  - makedirs: True
++  - source: salt://linux/files/ovs_bridge
++  - defaults:
++      bridge: {{ interface|yaml }}
++      bridge_name: {{ interface_name }}
++  - template: jinja
++
++linux_interfaces_include_{{ interface_name }}:
++  file.prepend:
++  - name: /etc/network/interfaces
++  - text: |
++      source /etc/network/interfaces.d/*
++      # Workaround for Upstream-Bug: https://github.com/saltstack/salt/issues/40262
++      source /etc/network/interfaces.u/*
++
++ovs_bridge_up_{{ interface_name }}:
++  cmd.run:
++  - name: ifup {{ interface_name }}
++  - require:
++    - file: ovs_bridge_{{ interface_name }}
++    - openvswitch_bridge: ovs_bridge_{{ interface_name }}
++    - file: linux_interfaces_final_include
++  - unless:
++    - ip link show {{ interface_name }} | grep -q '\<UP\>'
+
+ {# add linux network interface into OVS bridge #}
+ {%- for int_name, int in network.interface.items() %}
index eb17cec..2dd6385 100644 (file)
@@ -16,3 +16,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-routes-Skip-network-restart-on-noifupdown.patch
+/usr/share/salt-formulas/env: 0015-Set-ovs-bridges-as-L3-interfaces.patch
index d0457ba..48b9a92 100644 (file)
@@ -71,23 +71,17 @@ parameters:
           enabled: true
           type: ovs_bridge
           mtu: ${_param:interface_mtu}
-        br-ex:
-          enabled: true
-          type: ovs_port
-          bridge: br-floating
           proto: static
-          {%- if nm.vlan_public and nm.vlan_public != 'native' %}
-          ovs_options: tag={{ nm.vlan_public }}
-          {%- endif %}
           address: ${_param:external_address}
-          netmask: 255.255.255.0
+          netmask: ${_param:opnfv_net_public_mask}
           route:
             public:
               address: 0.0.0.0
               netmask: 0.0.0.0
               gateway: ${_param:opnfv_net_public_gw}
-        {{ nm.cmp001.nic_public }}:
+        ovs_port_{{ nm.cmp001.nic_public }}:
           enabled: true
+          name: {{ nm.cmp001.nic_public }}{% if nm.vlan_public and nm.vlan_public != 'native' %}.{{ nm.vlan_public }}{% endif %}
           proto: manual
           ovs_port_type: OVSPort
           type: ovs_port