From 9214e85db2f15984f7d49d855834f218feaf1164 Mon Sep 17 00:00:00 2001 From: Michael Polenchuk Date: Thu, 22 Feb 2018 18:47:28 +0400 Subject: Conform network scheme to tagged public interface Change-Id: I503c8ad32900406e1fa375cec9a91b454889d8bf Signed-off-by: Michael Polenchuk --- .../0015-Set-ovs-bridges-as-L3-interfaces.patch | 85 ++++++++++++++++++++++ mcp/patches/patches.list | 1 + .../openstack_compute_pdf.yml.j2 | 12 +-- 3 files changed, 89 insertions(+), 9 deletions(-) create mode 100644 mcp/patches/0015-Set-ovs-bridges-as-L3-interfaces.patch 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 index 000000000..55cf093f4 --- /dev/null +++ b/mcp/patches/0015-Set-ovs-bridges-as-L3-interfaces.patch @@ -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 +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 '\' + + {# add linux network interface into OVS bridge #} + {%- for int_name, int in network.interface.items() %} diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list index eb17cec7b..2dd6385af 100644 --- a/mcp/patches/patches.list +++ b/mcp/patches/patches.list @@ -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 diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute_pdf.yml.j2 index d0457bafc..48b9a9286 100644 --- a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute_pdf.yml.j2 +++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute_pdf.yml.j2 @@ -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 -- cgit 1.2.3-korg