mcpcontrol: policy based routing for INSTALLER_IP
[fuel.git] / mcp / scripts / lib_jump_deploy.sh
index 5efbfa6..b7fe4c7 100644 (file)
@@ -121,13 +121,16 @@ function __mount_image {
   sudo qemu-nbd --connect="${OPNFV_NBD_DEV}" --aio=native --cache=none \
     "${image_dir}/${image}"
   sudo kpartx -av "${OPNFV_NBD_DEV}"
-  sleep 5 # /dev/nbdNp1 takes some time to come up
   # Hardcode partition index to 1, unlikely to change for Ubuntu UCA image
+  sudo partx -uvn 1:1 "${OPNFV_NBD_DEV}"
   if sudo growpart "${OPNFV_NBD_DEV}" 1; then
     sudo kpartx -u "${OPNFV_NBD_DEV}"
     sudo e2fsck -pf "${OPNFV_MAP_DEV}"
     sudo resize2fs "${OPNFV_MAP_DEV}"
+  else
+    sleep 5 # /dev/nbdNp1 takes some time to come up
   fi
+  sudo partx -d "${OPNFV_NBD_DEV}"
   # grub-update does not like /dev/nbd*, so use a loop device to work around it
   sudo losetup "${OPNFV_LOOP_DEV}" "${OPNFV_MAP_DEV}"
   mkdir -p "${OPNFV_MNT_DIR}"
@@ -325,7 +328,9 @@ function create_networks {
          ${PREFIX}/brctl showstp ${all_vnode_networks[1]} > /dev/null 2>&1'
        ExecStart=/bin/sh -ec '\
          ${PREFIX}/brctl addif ${all_vnode_networks[0]} veth_mcp0 && \
-         ${PREFIX}/brctl addif ${all_vnode_networks[1]} veth_mcp2'
+         ${PREFIX}/brctl addif ${all_vnode_networks[1]} veth_mcp2 && \
+         ${PREFIX}/ip rule add to ${SALT_MASTER} iif docker0 table 200 && \
+         ${PREFIX}/ip route add ${SALT_MASTER} dev ${all_vnode_networks[0]} table 200'
        EOF
   sudo ln -sf "${FUEL_VETHC_SERVICE}" "/etc/systemd/system/multi-user.target.wants/"
   sudo ln -sf "${FUEL_VETHA_SERVICE}" "/etc/systemd/system/multi-user.target.wants/"
@@ -497,6 +502,7 @@ function cleanup_mounts {
       sudo losetup -d "${OPNFV_LOOP_DEV}"
   fi
   if [ -n "${OPNFV_NBD_DEV}" ]; then
+    sudo partx -d "${OPNFV_NBD_DEV}" || true
     sudo kpartx -d "${OPNFV_NBD_DEV}" || true
     sudo qemu-nbd -d "${OPNFV_NBD_DEV}" || true
   fi