moving virtual labs to new templates && system update

Change-Id: I713b73cbfe1a8f168dfd6dcaf5fd4ec34df47758
diff --git a/classes/cluster/virtual-mcp-ocata-cicd/infra/config.yml b/classes/cluster/virtual-mcp-ocata-cicd/infra/config.yml
index aff7d8b..ba54ac1 100644
--- a/classes/cluster/virtual-mcp-ocata-cicd/infra/config.yml
+++ b/classes/cluster/virtual-mcp-ocata-cicd/infra/config.yml
@@ -19,10 +19,6 @@
 - system.keystone.client.service.designate
 - system.mysql.client.single
 - system.reclass.storage.system.openstack_control_cluster
-- system.reclass.storage.system.openstack_compute_multi
-- system.reclass.storage.system.openstack_gateway_single
-- system.reclass.storage.system.openstack_dashboard_single
-- system.reclass.storage.system.cicd_control_cluster
 - cluster.virtual-mcp-ocata-cicd.openstack.proxy
 - cluster.virtual-mcp-ocata-cicd.stacklight.proxy
 - cluster.virtual-mcp-ocata-cicd.infra
@@ -55,9 +51,127 @@
             host: prx
         nginx_proxy_openstack_api_heat_cfn:
           enabled: false
+  salt:
+    master:
+      reactor:
+        reclass/minion/classify:
+        - salt://reclass/reactor/node_register.sls
   reclass:
     storage:
+      class_mapping:
+        common_node:
+          expression: all
+          node_param:
+            single_address:
+              value_template: <<node_control_ip>>
+            linux_system_codename:
+              value_template: <<node_os>>
+            salt_master_host:
+              value_template: <<node_master_ip>>
+        infra_config:
+          expression: <<node_hostname>>__startswith__cfg
+          cluster_param:
+            infra_config_address:
+              value_template: <<node_control_ip>>
+            infra_config_deploy_address:
+              value_template: <<node_deploy_ip>>
+            cluster_domain:
+              value_template: <<node_domain>>
+        openstack_control01:
+          expression: <<node_hostname>>__equals__ctl01
+          cluster_param:
+            openstack_control_node01_address:
+              value_template: <<node_control_ip>>
+        openstack_control02:
+          expression: <<node_hostname>>__equals__ctl02
+          cluster_param:
+            openstack_control_node02_address:
+              value_template: <<node_control_ip>>
+        openstack_control03:
+          expression: <<node_hostname>>__equals__ctl03
+          cluster_param:
+            openstack_control_node03_address:
+              value_template: <<node_control_ip>>
+        openstack_compute:
+          expression: <<node_hostname>>__startswith__cmp
+          node_class:
+            value_template:
+              - cluster.<<node_cluster>>.openstack.compute
+          node_param:
+            tenant_address:
+              value_template: <<node_tenant_ip>>
+            external_address:
+              value_template: <<node_external_ip>>
+        openstack_gateway:
+          expression: <<node_hostname>>__startswith__gtw
+          node_class:
+            value_template:
+              - cluster.<<node_cluster>>.openstack.gateway
+          node_param:
+            tenant_address:
+              value_template: <<node_tenant_ip>>
+            external_address:
+              value_template: <<node_external_ip>>
+          cluster_param:
+            openstack_gateway_node01_address:
+              value_template: <<node_control_ip>>
+        openstack_dashboard:
+          expression: <<node_hostname>>__startswith__prx
+          node_class:
+            value_template:
+              - cluster.<<node_cluster>>.openstack.dashboard
+              - cluster.<<node_cluster>>.openstack.proxy
+          cluster_param:
+            openstack_proxy_node01_address:
+              value_template: <<node_control_ip>>
+        cicd_control_node01:
+          expression: <<node_hostname>>__equals__cid01
+          cluster_param:
+            cicd_control_node01_address:
+              value_template: <<node_control_ip>>
+        cicd_control_node02:
+          expression: <<node_hostname>>__equals__cid02
+          cluster_param:
+            cicd_control_node02_address:
+              value_template: <<node_control_ip>>
+        cicd_control_node03:
+          expression: <<node_hostname>>__equals__cid03
+          cluster_param:
+            cicd_control_node03_address:
+              value_template: <<node_control_ip>>
       node:
+        cicd_control_node01:
+          name: ${_param:cicd_control_node01_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.cicd.control.master
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:cicd_control_node01_address}
+            keepalived_vip_priority: 103
+        cicd_control_node02:
+          name: ${_param:cicd_control_node02_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.cicd.control.slave
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:cicd_control_node02_address}
+            keepalived_vip_priority: 102
+            docker_swarm_role: worker
+        cicd_control_node03:
+          name: ${_param:cicd_control_node03_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.cicd.control.slave
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:cicd_control_node03_address}
+            keepalived_vip_priority: 101
+            docker_swarm_role: worker
         openstack_control_node01:
           classes:
           - service.galera.master.cluster
@@ -76,22 +190,3 @@
           params:
             mysql_cluster_role: slave
             linux_system_codename: xenial
-        openstack_compute_node01:
-          params:
-            single_address: 172.16.10.105
-            tenant_address: 10.1.0.105
-            external_address: 10.16.0.105
-        openstack_compute_node02:
-          params:
-            single_address: 172.16.10.106
-            tenant_address: 10.1.0.106
-            external_address: 10.16.0.106
-        openstack_gateway_node01:
-          params:
-            tenant_address: 10.1.0.110
-            external_address: 10.16.0.110
-        openstack_proxy_node01:
-          classes:
-          - cluster.virtual-mcp-ocata-cicd.openstack.proxy
-          params:
-            linux_system_codename: xenial
diff --git a/classes/cluster/virtual-mcp-ocata-cicd/openstack/compute.yml b/classes/cluster/virtual-mcp-ocata-cicd/openstack/compute.yml
index fb66a2f..d6fcac1 100644
--- a/classes/cluster/virtual-mcp-ocata-cicd/openstack/compute.yml
+++ b/classes/cluster/virtual-mcp-ocata-cicd/openstack/compute.yml
@@ -2,6 +2,7 @@
 - system.linux.system.repo.mcp.openstack
 - system.linux.system.repo.mcp.extra
 - system.linux.system.repo.saltstack.xenial
+- system.linux.network.hosts
 - system.nova.compute.cluster
 - system.neutron.compute.cluster
 - system.heka.alarm.openstack_compute
diff --git a/classes/cluster/virtual-mcp-ocata-cicd/openstack/init.yml b/classes/cluster/virtual-mcp-ocata-cicd/openstack/init.yml
index 7d4f5f2..4a0dafa 100644
--- a/classes/cluster/virtual-mcp-ocata-cicd/openstack/init.yml
+++ b/classes/cluster/virtual-mcp-ocata-cicd/openstack/init.yml
@@ -166,16 +166,6 @@
           names:
           - gtw01
           - gtw01.${_param:cluster_domain}
-        cmp01:
-          address: 172.16.10.105
-          names:
-          - cmp01
-          - cmp01.${_param:cluster_domain}
-        cmp02:
-          address: 172.16.10.106
-          names:
-          - cmp02
-          - cmp02.${_param:cluster_domain}
     system:
       user:
         root: