Pass base url for binaries to cloud init

Related-Prod: PRODX-3456
Change-Id: Ia5856c09f6b9a558c27ba7da6334baffcddc0d7c
diff --git a/de/heat-templates/fragments/SrvInstancesBM.yaml b/de/heat-templates/fragments/SrvInstancesBM.yaml
index 5599d11..5307e16 100644
--- a/de/heat-templates/fragments/SrvInstancesBM.yaml
+++ b/de/heat-templates/fragments/SrvInstancesBM.yaml
@@ -52,6 +52,8 @@
     type: string
   docker_default_address_pool:
     type: string
+  binary_base_url:
+    type: string
   hardware_metadata:
     description: The content of lab metadata.
     default: ''
@@ -77,6 +79,7 @@
             $docker_ee_release: { get_param: docker_ee_release }
             $ucp_master_host: { get_param: ucp_master_host }
             $docker_ucp_image: { get_param: docker_ucp_image }
+            $binary_base_url: { get_param: binary_base_url }
             $docker_default_address_pool: { get_param: docker_default_address_pool }
             $node_metadata: { get_param: metadata }
             $control_network_cidr: { get_param: control_network_cidr }
diff --git a/de/heat-templates/fragments/SrvInstancesBMCeph.yaml b/de/heat-templates/fragments/SrvInstancesBMCeph.yaml
index 7c6a76d..caa3ff5 100644
--- a/de/heat-templates/fragments/SrvInstancesBMCeph.yaml
+++ b/de/heat-templates/fragments/SrvInstancesBMCeph.yaml
@@ -63,6 +63,8 @@
     type: string
   docker_default_address_pool:
     type: string
+  binary_base_url:
+    type: string
   public_net_id:
     type: string
     default: ''
@@ -92,6 +94,7 @@
             $wait_condition_notify: { get_attr: [ wait_handle, curl_cli ] }
             $docker_ee_url: { get_param: docker_ee_url }
             $docker_ee_release: { get_param: docker_ee_release }
+            $binary_base_url: { get_param: binary_base_url }
             $ucp_master_host: { get_param: ucp_master_host }
             $docker_ucp_image: { get_param: docker_ucp_image }
             $docker_default_address_pool: { get_param: docker_default_address_pool }
diff --git a/de/heat-templates/fragments/SrvInstancesBMCephOSD.yaml b/de/heat-templates/fragments/SrvInstancesBMCephOSD.yaml
index 4fa2615..d143f7d 100644
--- a/de/heat-templates/fragments/SrvInstancesBMCephOSD.yaml
+++ b/de/heat-templates/fragments/SrvInstancesBMCephOSD.yaml
@@ -77,6 +77,8 @@
     type: string
   docker_default_address_pool:
     type: string
+  binary_base_url:
+    type: string
   public_net_id:
     type: string
     default: ''
@@ -116,6 +118,7 @@
             $ucp_master_host: { get_param: ucp_master_host }
             $docker_ucp_image: { get_param: docker_ucp_image }
             $docker_default_address_pool: { get_param: docker_default_address_pool }
+            $binary_base_url: { get_param: binary_base_url }
             $node_metadata: { get_param: metadata }
             $control_network_cidr: { get_param: control_network_cidr }
             $private_floating_interface: { get_param: private_floating_interface }
diff --git a/de/heat-templates/fragments/SrvInstancesVM.yaml b/de/heat-templates/fragments/SrvInstancesVM.yaml
index f4158a2..cd08194 100644
--- a/de/heat-templates/fragments/SrvInstancesVM.yaml
+++ b/de/heat-templates/fragments/SrvInstancesVM.yaml
@@ -55,6 +55,8 @@
     default: 4789
   docker_default_address_pool:
     type: string
+  binary_base_url:
+    type: string
   hardware_metadata:
     description: The content of lab metadata.
     default: ''
@@ -104,6 +106,7 @@
             $docker_ucp_image: { get_param: docker_ucp_image }
             $docker_ucp_swarm_data_port: { get_param: docker_ucp_swarm_data_port }
             $docker_default_address_pool: { get_param: docker_default_address_pool }
+            $binary_base_url: { get_param: binary_base_url }
             $single_node: { get_param: single_node }
             $secure_overlay_enabled: { get_param: secure_overlay_enabled }
             $kubectl_version: { get_param: kubectl_version }
diff --git a/de/heat-templates/fragments/SrvInstancesVMCeph.yaml b/de/heat-templates/fragments/SrvInstancesVMCeph.yaml
index 0d72696..128ea7a 100644
--- a/de/heat-templates/fragments/SrvInstancesVMCeph.yaml
+++ b/de/heat-templates/fragments/SrvInstancesVMCeph.yaml
@@ -63,6 +63,8 @@
     type: string
   docker_default_address_pool:
     type: string
+  binary_base_url:
+    type: string
   public_net_id:
     type: string
   docker_ee_release:
@@ -106,6 +108,7 @@
             $ucp_master_host: { get_param: ucp_master_host }
             $docker_ucp_image: { get_param: docker_ucp_image }
             $docker_default_address_pool: { get_param: docker_default_address_pool }
+            $binary_base_url: { get_param: binary_base_url }
             $node_metadata: { get_param: metadata }
             $control_network_cidr: { get_param: control_network_cidr }
             $private_floating_interface: { get_param: private_floating_interface }
diff --git a/de/heat-templates/fragments/SrvInstancesVMCephOSD.yaml b/de/heat-templates/fragments/SrvInstancesVMCephOSD.yaml
index 31f544b..9c62210 100644
--- a/de/heat-templates/fragments/SrvInstancesVMCephOSD.yaml
+++ b/de/heat-templates/fragments/SrvInstancesVMCephOSD.yaml
@@ -77,6 +77,8 @@
     type: string
   docker_default_address_pool:
     type: string
+  binary_base_url:
+    type: string
   public_net_id:
     type: string
   docker_ee_release:
@@ -139,6 +141,7 @@
             $ucp_master_host: { get_param: ucp_master_host }
             $docker_ucp_image: { get_param: docker_ucp_image }
             $docker_default_address_pool: { get_param: docker_default_address_pool }
+            $binary_base_url: { get_param: binary_base_url }
             $node_metadata: { get_param: metadata }
             $control_network_cidr: { get_param: control_network_cidr }
             $private_floating_interface: { get_param: private_floating_interface }
diff --git a/de/heat-templates/multirack.yaml b/de/heat-templates/multirack.yaml
index abcae03..321fabd 100644
--- a/de/heat-templates/multirack.yaml
+++ b/de/heat-templates/multirack.yaml
@@ -135,6 +135,9 @@
     type: string
     description: Default address pool for Docker ucp specific local networks
     default: '10.10.1.0/16'
+  binary_base_url:
+    type: string
+    default: 'http://binary.mirantis.com'
   tunnel_interface:
     type: string
     default: ''
diff --git a/de/heat-templates/scripts/instance_boot.sh b/de/heat-templates/scripts/instance_boot.sh
index db1758b..9ed6b96 100644
--- a/de/heat-templates/scripts/instance_boot.sh
+++ b/de/heat-templates/scripts/instance_boot.sh
@@ -49,6 +49,7 @@
 DOCKER_EE_URL=${DOCKER_EE_URL:-$docker_ee_url}
 DOCKER_EE_RELEASE=${DOCKER_EE_RELEASE:-$docker_ee_release}
 DOCKER_UCP_IMAGE=${DOCKER_UCP_IMAGE:-$docker_ucp_image}
+BINARY_BASE_URL=${BINARY_BASE_URL:-$binary_base_url}
 UCP_DOCKER_SWARM_DATA_PORT=${UCP_DOCKER_SWARM_DATA_PORT:-$docker_ucp_swarm_data_port}
 FLOATING_NETWORK_PREFIXES=${FLOATING_NETWORK_PREFIXES:-$private_floating_network_cidr}
 IRONIC_MT_ENABLED=${IRONIC_MT_ENABLED:-$ironic_mt_enabled}
@@ -79,6 +80,7 @@
     DOCKER_RELEASE="${DOCKER_EE_RELEASE}"
     DOCKER_PACKAGES="${DOCKER_EE_PACKAGES}"
 fi
+BINARY_BASE_URL=${BINARY_BASE_URL:-"http://binary.mirantis.com"}
 
 ### COMMON FUNCTIONS ###
 function get_interface_prefix {
@@ -493,7 +495,7 @@
 
 function install_kubectl {
     local kubectl=/usr/local/bin/kubectl
-    curl --retry 6 --retry-delay 5 -L http://binary.mirantis.com/openstack/bin/utils/kubectl/kubectl-${KUBECTL_VERSION}-linux -o ${kubectl}
+    curl --retry 6 --retry-delay 5 -L ${BINARY_BASE_URL}/openstack/bin/utils/kubectl/kubectl-${KUBECTL_VERSION}-linux -o ${kubectl}
     chmod +x ${kubectl}
 cat << EOF >> ~/.bashrc
 source /usr/share/bash-completion/bash_completion
diff --git a/de/heat-templates/top.yaml b/de/heat-templates/top.yaml
index dbc47ec..3021eea 100644
--- a/de/heat-templates/top.yaml
+++ b/de/heat-templates/top.yaml
@@ -323,6 +323,9 @@
   docker_ucp_swarm_data_port:
     type: string
     default: 4789
+  binary_base_url:
+    type: string
+    default: 'http://binary.mirantis.com'
   tunnel_interface:
     type: string
     default: ''