Change networks and subnets schemes due to different
ways of deploying BM cloud or virtaul

Add heat template for BM deploy (heat-bm-cicd-queens-contrail-sl)
Add bm-eu-cloud.env with parameters for BM deploy
Normalize output for getting correct IP of foundation node
Align all virtual models to new changes

Change-Id: I1e0daac4e82aea06e75de61d2fc5041e6ec4d138
diff --git a/tcp_tests/templates/heat-cicd-queens-dvr-sl/underlay.hot b/tcp_tests/templates/heat-cicd-queens-dvr-sl/underlay.hot
index f759b3a..6020707 100644
--- a/tcp_tests/templates/heat-cicd-queens-dvr-sl/underlay.hot
+++ b/tcp_tests/templates/heat-cicd-queens-dvr-sl/underlay.hot
@@ -79,6 +79,16 @@
     properties:
       stack_name: { get_param: "OS::stack_name" }
       env_name: { get_param: env_name }
+  subnets:
+    depends_on: [networks]
+    type: MCP::Subnets
+    properties:
+      stack_name: { get_param: "OS::stack_name" }
+      env_name: { get_param: env_name }
+      management_net: { list_join: ['-', [ 'management_net', { get_param: env_name } ]] }
+      control_net: { list_join: ['-', [ 'control_net', { get_param: env_name } ]] }
+      tenant_net: { list_join: ['-', [ 'tenant_net', { get_param: env_name } ]] }
+      external_net: { list_join: ['-', [ 'external_net', { get_param: env_name } ]] }
 
   #flavors:
   #  type: MCP::Flavors
@@ -90,17 +100,20 @@
       env_name: { get_param: env_name }
       mcp_version: { get_param: mcp_version }
       cfg01_flavor: { get_param: cfg_flavor }
+      management_net: { list_join: ['-', [ 'management_net', { get_param: env_name } ]] }
+      control_net: { list_join: ['-', [ 'control_net', { get_param: env_name } ]] }
+      tenant_net: { list_join: ['-', [ 'tenant_net', { get_param: env_name } ]] }
+      external_net: { list_join: ['-', [ 'external_net', { get_param: env_name } ]] }
       tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '15' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '15' ]
       external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '15' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '15' ]
       instance_name: cfg01
       instance_domain: {get_param: instance_domain}
-      network: { get_attr: [networks, network] }
 
   control_cluster:
     type: MCP::MultipleInstance
@@ -113,44 +126,43 @@
       instance02_name: ctl02
       instance03_name: ctl03
       instance_flavor: {get_param: ctl_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] }, '11' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '11' ]
       instance02_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '12' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '12' ]
       instance03_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '13' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '13' ]
       instance01_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '11' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '11' ]
       instance02_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '12' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '12' ]
       instance03_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '13' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '13' ]
       instance01_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '11' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '11' ]
       instance02_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '12' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '12' ]
       instance03_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '13' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '13' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -165,44 +177,43 @@
       instance02_name: dbs02
       instance03_name: dbs03
       instance_flavor: {get_param: dbs_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] }, '51' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '51' ]
       instance02_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '52' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '52' ]
       instance03_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '53' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '53' ]
       instance01_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '51' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '51' ]
       instance02_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '52' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '52' ]
       instance03_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '53' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '53' ]
       instance01_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '51' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '51' ]
       instance02_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '52' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '52' ]
       instance03_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '53' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '53' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -217,44 +228,43 @@
       instance02_name: kvm02
       instance03_name: kvm03
       instance_flavor: {get_param: kvm_fake_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] }, '241' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '241' ]
       instance02_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '242' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '242' ]
       instance03_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '243' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '243' ]
       instance01_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '241' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '241' ]
       instance02_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '242' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '242' ]
       instance03_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '243' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '243' ]
       instance01_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '241' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '241' ]
       instance02_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '242' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '242' ]
       instance03_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '243' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '243' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -269,44 +279,43 @@
       instance02_name: msg02
       instance03_name: msg03
       instance_flavor: {get_param: msg_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] }, '41' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '41' ]
       instance02_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '42' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '42' ]
       instance03_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '43' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '43' ]
       instance01_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '41' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '41' ]
       instance02_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '42' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '42' ]
       instance03_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '43' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '43' ]
       instance01_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '41' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '41' ]
       instance02_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '42' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '42' ]
       instance03_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '43' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '43' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -321,44 +330,43 @@
       instance02_name: cid02
       instance03_name: cid03
       instance_flavor: {get_param: cid_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] }, '91' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '91' ]
       instance02_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '92' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '92' ]
       instance03_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '93' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '93' ]
       instance01_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '91' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '91' ]
       instance02_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '92' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '92' ]
       instance03_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '93' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '93' ]
       instance01_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '91' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '91' ]
       instance02_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '92' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '92' ]
       instance03_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '93' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '93' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -373,44 +381,43 @@
       instance02_name: mon02
       instance03_name: mon03
       instance_flavor: {get_param: mon_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] }, '71' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '71' ]
       instance02_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '72' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '72' ]
       instance03_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '73' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '73' ]
       instance01_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '71' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '71' ]
       instance02_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '72' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '72' ]
       instance03_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '73' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '73' ]
       instance01_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '71' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '71' ]
       instance02_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '72' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '72' ]
       instance03_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '73' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '73' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -425,44 +432,43 @@
       instance02_name: log02
       instance03_name: log03
       instance_flavor: {get_param: log_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] }, '61' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '61' ]
       instance02_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '62' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '62' ]
       instance03_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '63' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '63' ]
       instance01_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '61' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '61' ]
       instance02_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '62' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '62' ]
       instance03_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '63' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '63' ]
       instance01_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '61' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '61' ]
       instance02_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '62' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '62' ]
       instance03_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '63' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '63' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -477,44 +483,43 @@
       instance02_name: mtr02
       instance03_name: mtr03
       instance_flavor: {get_param: mtr_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] }, '97' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '97' ]
       instance02_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '98' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '98' ]
       instance03_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '99' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '99' ]
       instance01_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '97' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '97' ]
       instance02_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '98' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '98' ]
       instance03_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '99' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '99' ]
       instance01_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '97' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '97' ]
       instance02_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '98' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '98' ]
       instance03_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '99' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '99' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -527,20 +532,19 @@
       instance_domain: {get_param: instance_domain}
       instance_name: prx01
       instance_flavor: {get_param: prx_flavor}
-      network: { get_attr: [networks, network] }
       underlay_userdata: { get_file: ./underlay-userdata.yaml }
       control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '81' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '81' ]
       tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '81' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '81' ]
       external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '81' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '81' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -553,20 +557,19 @@
       instance_domain: {get_param: instance_domain}
       instance_name: prx02
       instance_flavor: {get_param: prx_flavor}
-      network: { get_attr: [networks, network] }
       underlay_userdata: { get_file: ./underlay-userdata.yaml }
       control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '82' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '82' ]
       tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '82' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '82' ]
       external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '82' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '82' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -579,20 +582,19 @@
       instance_domain: {get_param: instance_domain}
       instance_name: cmp001
       instance_flavor: {get_param: cmp_flavor}
-      network: { get_attr: [networks, network] }
       underlay_userdata: { get_file: ./underlay-userdata.yaml }
       control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '101' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '101' ]
       tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '101' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '101' ]
       external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '101' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '101' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -605,20 +607,19 @@
       instance_domain: {get_param: instance_domain}
       instance_name: cmp002
       instance_flavor: {get_param: cmp_flavor}
-      network: { get_attr: [networks, network] }
       underlay_userdata: { get_file: ./underlay-userdata.yaml }
       control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '102' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '102' ]
       tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '102' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '102' ]
       external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '102' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '102' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -632,20 +633,27 @@
       instance_name: foundation
       instance_image: { get_param: foundation_image }
       instance_flavor: {get_param: foundation_flavor}
-      network: { get_attr: [networks, network] }
+      management_net: { list_join: ['-', [ 'management_net', { get_param: env_name } ]] }
+      control_net: { list_join: ['-', [ 'control_net', { get_param: env_name } ]] }
+      tenant_net: { list_join: ['-', [ 'tenant_net', { get_param: env_name } ]] }
+      external_net: { list_join: ['-', [ 'external_net', { get_param: env_name } ]] }
       underlay_userdata: { get_file: ./underlay--user-data-foundation.yaml }
+      management_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [subnets, management_net_prefix] }, '5' ]
       control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '5' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '5' ]
       tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '5' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '5' ]
       external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '5' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '5' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -660,44 +668,43 @@
       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' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '66' ]
       instance02_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '67' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '67' ]
       instance03_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '68' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '68' ]
       instance01_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '66' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '66' ]
       instance02_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '67' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '67' ]
       instance03_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '68' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '68' ]
       instance01_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '66' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '66' ]
       instance02_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '67' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '67' ]
       instance03_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '68' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '68' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -712,44 +719,43 @@
       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' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '76' ]
       instance02_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '77' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '77' ]
       instance03_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '78' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '78' ]
       instance01_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '76' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '76' ]
       instance02_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '77' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '77' ]
       instance03_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '78' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '78' ]
       instance01_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '76' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '76' ]
       instance02_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '77' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '77' ]
       instance03_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '78' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '78' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -764,44 +770,43 @@
       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' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '201' ]
       instance02_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '202' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '202' ]
       instance03_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '203' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '203' ]
       instance01_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '201' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '201' ]
       instance02_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '202' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '202' ]
       instance03_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '203' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '203' ]
       instance01_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '201' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '201' ]
       instance02_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '202' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '202' ]
       instance03_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '203' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '203' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -816,44 +821,43 @@
       instance02_name: gtw02
       instance03_name: gtw03
       instance_flavor: {get_param: gtw_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] }, '224' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '224' ]
       instance02_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '225' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '225' ]
       instance03_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '226' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '226' ]
       instance01_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '224' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '224' ]
       instance02_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '225' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '225' ]
       instance03_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '226' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '226' ]
       instance01_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '224' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '224' ]
       instance02_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '225' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '225' ]
       instance03_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '226' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '226' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -868,44 +872,43 @@
       instance02_name: kmn02
       instance03_name: kmn03
       instance_flavor: {get_param: kmn_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] }, '45' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '45' ]
       instance02_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '46' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '46' ]
       instance03_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '47' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '47' ]
       instance01_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '45' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '45' ]
       instance02_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '46' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '46' ]
       instance03_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '47' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '47' ]
       instance01_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '45' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '45' ]
       instance02_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '46' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '46' ]
       instance03_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '47' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '47' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -918,20 +921,19 @@
       instance_domain: {get_param: instance_domain}
       instance_name: dns01
       instance_flavor: {get_param: dns_flavor}
-      network: { get_attr: [networks, network] }
       underlay_userdata: { get_file: ./underlay-userdata.yaml }
       control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '113' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '113' ]
       tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '113' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '113' ]
       external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '113' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '113' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -944,20 +946,19 @@
       instance_domain: {get_param: instance_domain}
       instance_name: dns02
       instance_flavor: {get_param: dns_flavor}
-      network: { get_attr: [networks, network] }
       underlay_userdata: { get_file: ./underlay-userdata.yaml }
       control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '114' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '114' ]
       tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '114' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '114' ]
       external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '114' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '114' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
@@ -972,58 +973,49 @@
       instance02_name: mdb02
       instance03_name: mdb03
       instance_flavor: {get_param: mdb_flavor}
-      network: { get_attr: [networks, network] }
+      network: { get_attr: [subnets, network] }
       underlay_userdata: { get_file: ./underlay-userdata.yaml }
       instance01_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '84' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '84' ]
       instance02_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '85' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '85' ]
       instance03_control_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, control_net_prefix] }, '86' ]
+        - [ { get_attr: [subnets, control_net_prefix] }, '86' ]
       instance01_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '84' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '84' ]
       instance02_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '85' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '85' ]
       instance03_tenant_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, tenant_net_prefix] }, '86' ]
+        - [ { get_attr: [subnets, tenant_net_prefix] }, '86' ]
       instance01_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '84' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '84' ]
       instance02_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '85' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '85' ]
       instance03_external_net_static_ip:
         list_join:
         - '.'
-        - [ { get_attr: [networks, external_net_prefix] }, '86' ]
+        - [ { get_attr: [subnets, external_net_prefix] }, '86' ]
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
 outputs:
-
-  control_subnet_cidr:
-    description: Control network CIDR
-    value: { get_param: control_subnet_cidr }
-
-  management_subnet_cidr:
-    description: Admin network CIDR
-    value: { get_param: management_subnet_cidr }
-
-  foundation_floating:
+  foundation_public_ip:
     description: foundation node IP address (floating) from external network
     value:
       get_attr: