Add ceph cluster nodes, roles
diff --git a/tcp_tests/templates/heat-cicd-pike-contrail41-sl/underlay.hot b/tcp_tests/templates/heat-cicd-pike-contrail41-sl/underlay.hot
index 6285549..f3f0e12 100644
--- a/tcp_tests/templates/heat-cicd-pike-contrail41-sl/underlay.hot
+++ b/tcp_tests/templates/heat-cicd-pike-contrail41-sl/underlay.hot
@@ -52,6 +52,12 @@
     type: string
   cmp_flavor:
     type: string
+  cmn_flavor:
+    type: string
+  rgw_flavor:
+    type: string
+  osd_flavor:
+    type: string
   foundation_flavor:
     type: string
 
@@ -352,6 +358,87 @@
         - [ { get_attr: [networks, control_net_prefix] }, '88' ]
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
+  ceph_cmn_cluster:
+    type: MCP::MultipleInstance
+    depends_on: [cfg01_node]
+    properties:
+      env_name: { get_param: env_name }
+      mcp_version: { get_param: mcp_version }
+      instance_domain: {get_param: instance_domain}
+      instance01_name: cmn01
+      instance02_name: cmn02
+      instance03_name: cmn03
+      instance_flavor: {get_param: cmn_flavor}
+      network: { get_attr: [networks, network] }
+      underlay_userdata: { get_file: ./underlay-userdata.yaml }
+      instance01_control_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, control_net_prefix] }, '66' ]
+      instance02_control_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, control_net_prefix] }, '67' ]
+      instance03_control_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, control_net_prefix] }, '68' ]
+      instance_config_host: { get_attr: [cfg01_node, instance_address] }
+
+  ceph_rgw_cluster:
+    type: MCP::MultipleInstance
+    depends_on: [cfg01_node]
+    properties:
+      env_name: { get_param: env_name }
+      mcp_version: { get_param: mcp_version }
+      instance_domain: {get_param: instance_domain}
+      instance01_name: rgw01
+      instance02_name: rgw02
+      instance03_name: rgw03
+      instance_flavor: {get_param: rgw_flavor}
+      network: { get_attr: [networks, network] }
+      underlay_userdata: { get_file: ./underlay-userdata.yaml }
+      instance01_control_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, control_net_prefix] }, '76' ]
+      instance02_control_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, control_net_prefix] }, '77' ]
+      instance03_control_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, control_net_prefix] }, '78' ]
+      instance_config_host: { get_attr: [cfg01_node, instance_address] }
+
+  ceph_osd_cluster:
+    type: MCP::MultipleInstance
+    depends_on: [cfg01_node]
+    properties:
+      env_name: { get_param: env_name }
+      mcp_version: { get_param: mcp_version }
+      instance_domain: {get_param: instance_domain}
+      instance01_name: osd001
+      instance02_name: osd002
+      instance03_name: osd003
+      instance_flavor: {get_param: osd_flavor}
+      network: { get_attr: [networks, network] }
+      underlay_userdata: { get_file: ./underlay-userdata.yaml }
+      instance01_control_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, control_net_prefix] }, '201' ]
+      instance02_control_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, control_net_prefix] }, '202' ]
+      instance03_control_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, control_net_prefix] }, '203' ]
+      instance_config_host: { get_attr: [cfg01_node, instance_address] }
+
   prx01_virtual:
     type: MCP::SingleInstance
     depends_on: [control_cluster]