[ovs/dpdk] Add opnfv.route_wrapper sls 57/52557/3
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Fri, 23 Feb 2018 21:10:33 +0000 (22:10 +0100)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Sun, 25 Feb 2018 22:44:22 +0000 (23:44 +0100)
- fix `route-br-ex` if-up.d script failing when route already exists
  by adding a wrapper around distro's '/sbin/route' binary in
  '/usr/local/sbin/route', exploiting default order in Ubuntu PATH;
- fix 'br-prv' duplicate entry in 'interfaces.d/ifcfg-br-prv' and
  'interfaces' caused by upstream bug [1];
- add barrier waiting for all baremetal nodes online before attempting
  reboot, trying to catch rare failures which are undetectable in logs
  as both a succesful reboot and a disconneted minion report 'n/c';

With the above in place, networking service should no longer fail
to start on cmp nodes w/ DPDK.

[1] https://github.com/saltstack/salt/issues/40262

Change-Id: I6d4895376ce323c14c997e6c9af2ea3eeeee0184
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
mcp/config/scenario/os-nosdn-ovs-ha.yaml
mcp/config/states/baremetal_init
mcp/config/states/networking_gw [deleted file]
mcp/patches/0004-network.dpdk-Move-ifcfg-br-prv-to-interfaces.u.patch [new file with mode: 0644]
mcp/patches/patches.list
mcp/salt-formulas/opnfv/route_wrapper.sls [new file with mode: 0644]

index a7ecba7..4962626 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -15,7 +15,6 @@ cluster:
     - dpdk
     - openstack_ha
     - networks
-    - networking_gw
 virtual:
   nodes:
     - cfg01
index c147728..d3a255d 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/bash -e
 ##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -26,7 +26,10 @@ salt -C 'kvm*' pkg.install bridge-utils
 salt -C 'kvm*' state.apply linux.network,linux.system.kernel
 salt -C 'kvm* or cmp*' state.apply salt.minion
 salt -C 'cmp*' state.apply linux.system
+# wrap distro `route` binary to silence errors when route already exists
+salt -C 'cmp*' state.apply opnfv.route_wrapper
 salt -C 'cmp*' state.apply linux.network || true
+wait_for 30.0 "salt -C 'kvm* or cmp*' test.ping"
 
 # disable dhcp offered routes on compute nodes
 salt -C 'cmp*' file.write /etc/dhcp/dhclient-enter-hooks.d/no-default-route \
diff --git a/mcp/config/states/networking_gw b/mcp/config/states/networking_gw
deleted file mode 100755 (executable)
index ea7c87b..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/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/0004-network.dpdk-Move-ifcfg-br-prv-to-interfaces.u.patch b/mcp/patches/0004-network.dpdk-Move-ifcfg-br-prv-to-interfaces.u.patch
new file mode 100644 (file)
index 0000000..180a9dd
--- /dev/null
@@ -0,0 +1,41 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: 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: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+Date: Sun, 25 Feb 2018 03:43:49 +0100
+Subject: [PATCH] network.dpdk: Move ifcfg-br-prv to interfaces.u
+
+Workaround for Upstream-Bug:
+https://github.com/saltstack/salt/issues/40262
+
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+---
+ linux/network/dpdk.sls | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/linux/network/dpdk.sls b/linux/network/dpdk.sls
+index 05fe05f..cc0ff9e 100644
+--- a/linux/network/dpdk.sls
++++ b/linux/network/dpdk.sls
+@@ -128,7 +128,7 @@ linux_network_dpdk_bridge_interface_{{ interface_name }}:
+         After=openvswitch-switch.service
+
+ {# enforce ip address and mtu for ovs dpdk br-prv #}
+-/etc/network/interfaces.d/ifcfg-{{ interface_name }}:
++/etc/network/interfaces.u/ifcfg-{{ interface_name }}:
+   file.managed:
+     - contents: |
+         auto {{ interface_name }}
+@@ -138,6 +138,7 @@ linux_network_dpdk_bridge_interface_{{ interface_name }}:
+         {%- if interface.mtu is defined %}
+         mtu {{ interface.mtu }}
+         {%- endif %}
++    - makedirs: True
+     - require:
+       - file: /etc/systemd/system/ifup@{{ interface_name }}.service.d/override.conf
+
index 1b50025..30e2b0c 100644 (file)
@@ -8,6 +8,7 @@
 /usr/share/salt-formulas/env: 0001-opendaylight-formula-neutron.patch
 /usr/share/salt-formulas/env: 0002-maas-region-skip-credentials-update.patch
 /usr/share/salt-formulas/env: 0003-maas-region-force-artifact-download.patch
+/usr/share/salt-formulas/env: 0004-network.dpdk-Move-ifcfg-br-prv-to-interfaces.u.patch
 /usr/share/salt-formulas/env: 0005-maas-module-Obtain-fabric-ID-from-CIDR.patch
 /usr/share/salt-formulas/env: 0006-maas-module-Add-VLAN-DHCP-enable-support.patch
 /usr/share/salt-formulas/env: 0007-network.interface-Fix-ifup-OVS-port-with-route.patch
diff --git a/mcp/salt-formulas/opnfv/route_wrapper.sls b/mcp/salt-formulas/opnfv/route_wrapper.sls
new file mode 100644 (file)
index 0000000..6132f31
--- /dev/null
@@ -0,0 +1,27 @@
+##############################################################################
+# 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
+##############################################################################
+/usr/local/sbin/route:
+  file.managed:
+    - contents: |
+        #!/bin/sh
+
+        # Workaround salt-managed routes breaking ifup when route already exists
+        route_binary='/sbin/route'
+        route_output=$("${route_binary}" "$@" 2>&1)
+        route_return=$?
+
+        if [ -n "${route_output}" ]; then
+            if echo "${route_output}" | grep -q 'SIOCADDRT: File exists'; then
+                exit 0
+            fi
+            echo "${route_output}"
+        fi
+        exit "${route_return}"
+    - user: root
+    - group: root
+    - mode: 755