Add ability to install docker-ee

also:

- added retries to install ucp
- required packages moved to separate method

Related-Prod: https://mirantis.jira.com/browse/PRODX-2228
Change-Id: I3890d9518b5dfd9e969416cbed06af6a96bbeecb
diff --git a/de/heat-templates/top.yaml b/de/heat-templates/top.yaml
index 66f5680..45824d2 100644
--- a/de/heat-templates/top.yaml
+++ b/de/heat-templates/top.yaml
@@ -96,6 +96,12 @@
     default: 'system.compact.openstack.control'
   functions_override:
     type: string
+  docker_ee_url:
+    type: string
+    default: 'https://s3-us-west-2.amazonaws.com/internal-docker-ee-builds/docker-ee-linux'
+  docker_ee_release:
+    type: string
+    default: 'stable-19.03'
 
 resources:
   key_pair:
@@ -120,6 +126,8 @@
     type: MCP2::SrvInstances
     properties:
       metadata: {"role":"ucp"}
+      docker_ee_url: { get_param: docker_ee_url }
+      docker_ee_release: { get_param: docker_ee_release }
       node_type: "ucp"
       key_name: { get_param: "OS::stack_name" }
       image: { get_param: image }
@@ -149,6 +157,8 @@
           key_name: { get_param: "OS::stack_name" }
           image: { get_param: image }
           flavor: { get_param: masters_flavor }
+          docker_ee_url: { get_param: docker_ee_url }
+          docker_ee_release: { get_param: docker_ee_release }
           accessible_network: { get_attr: [accessible_network, public_network] }
           private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
           private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
@@ -176,6 +186,8 @@
           image: { get_param: image }
           flavor: { get_param: workers_flavor }
           key_name: { get_param: "OS::stack_name" }
+          docker_ee_url: { get_param: docker_ee_url }
+          docker_ee_release: { get_param: docker_ee_release }
           accessible_network: { get_attr: [accessible_network, public_network] }
           private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
           private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
@@ -201,6 +213,8 @@
           key_name: { get_param: "OS::stack_name" }
           image: { get_param: image }
           flavor: { get_param: cmps_flavor }
+          docker_ee_url: { get_param: docker_ee_url }
+          docker_ee_release: { get_param: docker_ee_release }
           accessible_network: { get_attr: [accessible_network, public_network] }
           private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
           private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
@@ -226,6 +240,8 @@
           key_name: { get_param: "OS::stack_name" }
           image: { get_param: image }
           flavor: { get_param: gtws_flavor }
+          docker_ee_url: { get_param: docker_ee_url }
+          docker_ee_release: { get_param: docker_ee_release }
           accessible_network: { get_attr: [accessible_network, public_network] }
           private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
           private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
@@ -251,6 +267,8 @@
           key_name: { get_param: "OS::stack_name" }
           image: { get_param: image }
           flavor: { get_param: lmas_flavor }
+          docker_ee_url: { get_param: docker_ee_url }
+          docker_ee_release: { get_param: docker_ee_release }
           accessible_network: { get_attr: [accessible_network, public_network] }
           private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
           private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
@@ -276,6 +294,8 @@
           key_name: { get_param: "OS::stack_name" }
           image: { get_param: image }
           flavor: { get_param: osds_flavor }
+          docker_ee_url: { get_param: docker_ee_url }
+          docker_ee_release: { get_param: docker_ee_release }
           accessible_network: { get_attr: [accessible_network, public_network] }
           private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
           private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }