Add context with advanced computes

The patch adds context which adds compute
nodes with advanced computing features

Related-PROD: PRODX-8314
Change-Id: Ib516dac4f3079fa35223c6430b208c1bad991490
diff --git a/de/heat-templates/top.yaml b/de/heat-templates/top.yaml
index 58b634e..1dbc91c 100644
--- a/de/heat-templates/top.yaml
+++ b/de/heat-templates/top.yaml
@@ -34,6 +34,10 @@
     type: number
     description: Number of cmp workers to deploy
     default: 0
+  acmp_size:
+    type: number
+    description: Number of advanced cmp workers to deploy
+    default: 0
   gtw_size:
     type: number
     description: Number of gtw workers to deploy
@@ -171,6 +175,9 @@
   cmp_metadata:
     type: json
     default: {}
+  acmp_metadata:
+    type: json
+    default: {}
   gtw_metadata:
     type: json
     default: {}
@@ -201,6 +208,9 @@
   cmps_flavor:
     type: string
     default: 'system.compact.openstack.control'
+  acmps_flavor:
+    type: string
+    default: 'system.compact.openstack.control.ephemeral.numa'
   gtws_flavor:
     type: string
     default: 'system.compact.openstack.control'
@@ -443,6 +453,51 @@
           tf_data_subnet_id: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_subnet_id] }, ""]}
           hardware_metadata: { get_param: hardware_metadata}
 
+  acmps:
+    type: OS::Heat::ResourceGroup
+    depends_on:
+     - ucp
+    properties:
+      count: { get_param: acmp_size }
+      resource_def:
+        type: MCP2::SrvInstancesCephOSD
+        properties:
+          metadata: { get_param: acmp_metadata }
+          node_type: "worker"
+          key_name: { get_param: "OS::stack_name" }
+          image: { get_param: image }
+          flavor: { get_param: acmps_flavor }
+          docker_ee_url: { get_param: docker_ee_url }
+          docker_ee_release: { get_param: docker_ee_release }
+          docker_ucp_image: { get_param: docker_ucp_image}
+          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] }
+          private_floating_interface: { get_param: private_floating_interface }
+          private_floating_network_cidr: { get_param: private_floating_network_cidr }
+          accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
+          public_net_id: { get_param: public_net_id }
+          control_network_cidr: { get_param: control_network_cidr }
+          ucp_master_host: { get_attr: [ucp, server_private_ip] }
+          functions_override: { get_param: functions_override }
+          storage_frontend_interface: { get_param: storage_frontend_interface }
+          storage_frontend_network: { get_attr: [storage_network, storage_frontend_network_id] }
+          storage_frontend_subnet_id: { get_attr: [storage_network, storage_frontend_subnet_id] }
+          storage_frontend_network_cidr: { get_param: storage_frontend_network_cidr }
+          storage_backend_interface: { get_param: storage_backend_interface }
+          storage_backend_network: { get_attr: [storage_network, storage_backend_network_id] }
+          storage_backend_subnet_id: { get_attr: [storage_network, storage_backend_subnet_id] }
+          storage_backend_network_cidr: { get_param: storage_backend_network_cidr }
+          ironic_baremetal_network: { get_attr: [ironic_baremetal_network, ironic_baremetal_network_id] }
+          ironic_baremetal_subnet_id: { get_attr: [ironic_baremetal_network, ironic_baremetal_subnet_id] }
+          ironic_baremetal_network_cidr: { get_param: ironic_baremetal_network_cidr }
+          ironic_baremetal_tunnel_cidr: { get_param: ironic_baremetal_tunnel_cidr }
+          ironic_mt_enabled: { get_param: ironic_mt_enabled }
+          tungstenfabric_enabled: { get_param: tungstenfabric_enabled }
+          tf_data_network: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_network_id] }, ""]}
+          tf_data_subnet_id: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_subnet_id] }, ""]}
+          hardware_metadata: { get_param: hardware_metadata}
+
   gtws:
     type: OS::Heat::ResourceGroup
     depends_on:
@@ -698,6 +753,9 @@
   cmps_ips:
     description: Private IP addresses of the deployed cmp instances
     value: { get_attr: [cmps, server_public_ip] }
+  acmps_ips:
+    description: Private IP addresses of the deployed cmp instances with high computing features
+    value: { get_attr: [acmps, server_public_ip] }
   gtws_ips:
     description: Private IP addresses of the deployed gtw instances
     value: { get_attr: [gtws, server_public_ip] }
@@ -762,6 +820,9 @@
   cmps_wc_data:
     description: Metadata from cmps
     value: { get_attr: [cmps, wc_data] }
+  acmps_wc_data:
+    description: Metadata from cmps with high computing features
+    value: { get_attr: [acmps, wc_data] }
   gtws_wc_data:
     description: Metadata from gtws
     value: { get_attr: [gtws, wc_data] }
@@ -784,4 +845,4 @@
     value: { get_param: tungstenfabric_enabled }
   data_network_vsrx_ip:
     description: IP address of vsrx in tungsten fabric data network
-    value: { get_param: data_network_vsrx_ip }
\ No newline at end of file
+    value: { get_param: data_network_vsrx_ip }