Fix OVS bridge ifup
PROD-34658
Change-Id: I4a467b5e09495c3ad47df4a105ee9375d7e0591f
diff --git a/linux/files/ovs_bridge b/linux/files/ovs_bridge
index e51b676..fec5e16 100644
--- a/linux/files/ovs_bridge
+++ b/linux/files/ovs_bridge
@@ -1,4 +1,4 @@
-auto {{ bridge_name }}
+allow-ovs {{ bridge_name }}
iface {{ bridge_name }} inet {{ bridge.get('proto', 'static' if bridge.address is defined else 'manual') }}
mtu {{ bridge.get('mtu', '1500') }}
{%- if bridge.address is defined %}
diff --git a/linux/network/dpdk.sls b/linux/network/dpdk.sls
index 7c76803..821278c 100644
--- a/linux/network/dpdk.sls
+++ b/linux/network/dpdk.sls
@@ -162,7 +162,7 @@
file.managed:
- name: /etc/network/interfaces.u/ifcfg-{{ interface_name }}
- contents: |
- auto {{ interface_name }}
+ allow-ovs {{ interface_name }}
iface {{ interface_name }} inet static
address {{ interface.address }}
netmask {{ interface.netmask }}
diff --git a/linux/network/interface.sls b/linux/network/interface.sls
index 4a1b0b2..5fe6a6f 100644
--- a/linux/network/interface.sls
+++ b/linux/network/interface.sls
@@ -27,6 +27,19 @@
- pkgs: {{ network.bridge_pkgs }}
{%- endif %}
+ {%- if network.bridge == 'openvswitch' and grains.os_family == 'Debian' %}
+
+{# Debian/Ubuntu won't automatically ifup OVS bridges, workaround #}
+/etc/systemd/system/networking.service.d/ovs_workaround.conf:
+ file.managed:
+ - makedirs: true
+ - require:
+ - pkg: linux_network_bridge_pkgs
+ - contents: |
+ [Service]
+ ExecStart=/sbin/ifup --allow=ovs -a --read-environment
+ {%- endif %}
+
{%- endif %}
{%- for f in network.get('concat_iface_files', []) %}