Autodetect control interface IP when not specified

If CONTROL_NETWORK_CIDR is not specified pick ip information
for interface with default route.

Related-Prod: PRODX-11818
Change-Id: I9560fb37c6ea07f6f2ce6cb32717809de747bac9
diff --git a/de/heat-templates/scripts/instance_boot.sh b/de/heat-templates/scripts/instance_boot.sh
index 4a85ecb..f1f318e 100644
--- a/de/heat-templates/scripts/instance_boot.sh
+++ b/de/heat-templates/scripts/instance_boot.sh
@@ -63,8 +63,28 @@
     DOCKER_RELEASE="${DOCKER_EE_RELEASE}"
     DOCKER_PACKAGES="${DOCKER_EE_PACKAGES}"
 fi
-CONTROL_NETWORK_CIDR=${CONTROL_NETWORK_CIDR:-"10.10.0.0/24"}
-CONTROL_IP_ADDRESS=$(ip route get ${CONTROL_NETWORK_CIDR%/*} | head -n1 | fgrep -v ' via ' | awk '/ src / {print $6}')
+
+### COMMON FUNCTIONS ###
+function get_interface_prefix {
+    local interface=$1
+    local interface_ip
+    local interface_mask
+
+    interface_ip=$(ip addr show dev ${interface} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")
+    interface_mask=$(ip addr show dev ${interface} | grep -Po 'inet \K[\d.]+\/[\d]+' | egrep -v "127.0.|172.17" | cut -d'/' -f2)
+    echo "${interface_ip}/${interface_mask}"
+}
+### END COMMON FUNCTIONS ###
+
+DEFAULT_INTERFACE=$(ip route show |awk '/default/ {print $5}')
+
+if [[ -z ${CONTROL_NETWORK_CIDR} ]]; then
+    CONTROL_IP_ADDRESS=$(ip route get ${CONTROL_NETWORK_CIDR%/*} | head -n1 | fgrep -v ' via ' | awk '/ src / {print $6}')
+else
+    CONTROL_IP_ADDRESS=$(get_interface_prefix ${DEFAULT_INTERFACE} | awk -F '/' '{print $1}')
+fi
+
+
 PUBLIC_INTERFACE=${PUBLIC_INTERFACE:-ens4}
 UCP_USERNAME=${UCP_USERNAME:-admin}
 UCP_PASSWORD=${UCP_PASSWORD:-administrator}
@@ -78,7 +98,6 @@
 # Change default VXLAN port, need for https://mirantis.jira.com/browse/PRODX-11679
 UCP_DOCKER_SWARM_DATA_PORT=${UCP_DOCKER_SWARM_DATA_PORT:-4789}
 NTP_SERVERS=${NTP_SERVERS:-"ldap.scc.mirantis.net ldap.bud.mirantis.net"}
-DEFAULT_INTERFACE=$(ip route show default | awk '{print $5}')
 IRONIC_BAREMETAL_VXLAN_INTERFACE='vxlan10'
 HUGE_PAGES_1G_SIZE=$(echo "${HUGE_PAGES}" | awk -F ',' '{print $1}')
 HUGE_PAGES_2Mb_SIZE=$(echo "${HUGE_PAGES}" | awk -F ',' '{print $2}')
@@ -393,7 +412,7 @@
 
 function prepare_network {
     if [ -z "${CONTROL_IP_ADDRESS}" ]; then
-        wait_condition_send "FAILURE" "CONTROL_IP_ADDRESS is not found for the network ${CONTROL_NETWORK_CIDR}"
+        wait_condition_send "FAILURE" "CONTROL_IP_ADDRESS is not found."
         exit 1
     fi