initial commit
diff --git a/system/reclass/storage/salt.yml b/system/reclass/storage/salt.yml
new file mode 100644
index 0000000..e36bc5c
--- /dev/null
+++ b/system/reclass/storage/salt.yml
@@ -0,0 +1,16 @@
+classes:
+- service.reclass.storage.salt
+- service.git.client
+parameters:
+  reclass:
+    storage:
+      data_source:
+        engine: git
+        address:  '${_param:reclass_data_repository}'
+        branch: ${_param:reclass_data_revision}
+  salt:
+    master:
+      pillar:
+        engine: reclass
+        data_dir: /srv/salt/reclass
+
diff --git a/system/reclass/storage/system/monitoring_service_cluster.yml b/system/reclass/storage/system/monitoring_service_cluster.yml
new file mode 100644
index 0000000..d86a218
--- /dev/null
+++ b/system/reclass/storage/system/monitoring_service_cluster.yml
@@ -0,0 +1,31 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        monitoring_service_node01:
+          name: mon01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.monitoring.server
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:monitoring_service_node01_address}
+        monitoring_service_node02:
+          name: mon02
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.monitoring.server
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:monitoring_service_node02_address}
+        monitoring_service_node03:
+          name: mon03
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.monitoring.server
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:monitoring_service_node03_address}
diff --git a/system/reclass/storage/system/monitoring_service_single.yml b/system/reclass/storage/system/monitoring_service_single.yml
new file mode 100644
index 0000000..42353ef
--- /dev/null
+++ b/system/reclass/storage/system/monitoring_service_single.yml
@@ -0,0 +1,13 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        monitoring_service_node01:
+          name: mon01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.monitoring.server
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:monitoring_service_node01_address}
diff --git a/system/reclass/storage/system/opencontrail_analytics_cluster.yml b/system/reclass/storage/system/opencontrail_analytics_cluster.yml
new file mode 100644
index 0000000..f8055a6
--- /dev/null
+++ b/system/reclass/storage/system/opencontrail_analytics_cluster.yml
@@ -0,0 +1,37 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        opencontrail_analytics_node01:
+          name: nal01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.opencontrail.analytics
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:opencontrail_analytics_node01_address}
+            keepalived_vip_priority: 103
+            opencontrail_database_id: 1
+        opencontrail_analytics_node02:
+          name: nal02
+          domain: ${_param:cluster_domain}
+          classes:  
+          - cluster.${_param:cluster_name}.opencontrail.analytics
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:opencontrail_analytics_node02_address}
+            keepalived_vip_priority: 102
+            opencontrail_database_id: 2
+        opencontrail_analytics_node03:
+          name: nal03
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.opencontrail.analytics
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:opencontrail_analytics_node03_address}
+            keepalived_vip_priority: 101
+            opencontrail_database_id: 3
diff --git a/system/reclass/storage/system/opencontrail_control_cluster.yml b/system/reclass/storage/system/opencontrail_control_cluster.yml
new file mode 100644
index 0000000..0f882a3
--- /dev/null
+++ b/system/reclass/storage/system/opencontrail_control_cluster.yml
@@ -0,0 +1,37 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        opencontrail_control_node01:
+          name: ntw01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.opencontrail.control
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:opencontrail_control_node01_address}
+            keepalived_vip_priority: 103
+            opencontrail_database_id: 1
+        opencontrail_control_node02:
+          name: ntw02
+          domain: ${_param:cluster_domain}
+          classes:  
+          - cluster.${_param:cluster_name}.opencontrail.control
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:opencontrail_control_node02_address}
+            keepalived_vip_priority: 102
+            opencontrail_database_id: 2
+        opencontrail_control_node03:
+          name: ntw03
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.opencontrail.control
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:opencontrail_control_node03_address}
+            keepalived_vip_priority: 101
+            opencontrail_database_id: 3
diff --git a/system/reclass/storage/system/opencontrail_gateway_single.yml b/system/reclass/storage/system/opencontrail_gateway_single.yml
new file mode 100644
index 0000000..c6ae10f
--- /dev/null
+++ b/system/reclass/storage/system/opencontrail_gateway_single.yml
@@ -0,0 +1,13 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        opencontrail_gateway_node01:
+          name: gtw01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.opencontrail.gateway
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:opencontrail_gateway_address}
diff --git a/system/reclass/storage/system/openstack_compute_multi.yml b/system/reclass/storage/system/openstack_compute_multi.yml
new file mode 100644
index 0000000..572a6bf
--- /dev/null
+++ b/system/reclass/storage/system/openstack_compute_multi.yml
@@ -0,0 +1,20 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        openstack_compute_node01:
+          name: cmp01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+        openstack_compute_node02:
+          name: cmp02
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
diff --git a/system/reclass/storage/system/openstack_compute_single.yml b/system/reclass/storage/system/openstack_compute_single.yml
new file mode 100644
index 0000000..11bb4f5
--- /dev/null
+++ b/system/reclass/storage/system/openstack_compute_single.yml
@@ -0,0 +1,13 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        openstack_compute_node01:
+          name: cmp01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: 172.16.10.105
diff --git a/system/reclass/storage/system/openstack_control_cluster.yml b/system/reclass/storage/system/openstack_control_cluster.yml
new file mode 100644
index 0000000..482d826
--- /dev/null
+++ b/system/reclass/storage/system/openstack_control_cluster.yml
@@ -0,0 +1,40 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        openstack_control_node01:
+          name: ctl01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.control
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:openstack_control_node01_address}
+            keepalived_vip_priority: 103
+            opencontrail_database_id: 1
+            rabbitmq_cluster_role: master
+        openstack_control_node02:
+          name: ctl02
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.control
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:openstack_control_node02_address}
+            keepalived_vip_priority: 102
+            opencontrail_database_id: 2
+            rabbitmq_cluster_role: slave
+        openstack_control_node03:
+          name: ctl03
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.control
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:openstack_control_node03_address}
+            keepalived_vip_priority: 101
+            opencontrail_database_id: 3
+            rabbitmq_cluster_role: slave
diff --git a/system/reclass/storage/system/openstack_dashboard_single.yml b/system/reclass/storage/system/openstack_dashboard_single.yml
new file mode 100644
index 0000000..3a9f81a
--- /dev/null
+++ b/system/reclass/storage/system/openstack_dashboard_single.yml
@@ -0,0 +1,13 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        openstack_proxy_node01:
+          name: prx01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.dashboard
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: 172.16.10.121
diff --git a/system/reclass/storage/system/openstack_database_cluster.yml b/system/reclass/storage/system/openstack_database_cluster.yml
new file mode 100644
index 0000000..a46aaec
--- /dev/null
+++ b/system/reclass/storage/system/openstack_database_cluster.yml
@@ -0,0 +1,40 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        openstack_database_node01:
+          name: dbs01
+          domain: ${_param:cluster_domain}
+          classes:
+          - service.galera.master.cluster
+          - cluster.${_param:cluster_name}.openstack.database
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:openstack_database_node01_address}
+            keepalived_vip_priority: 103
+            mysql_cluster_role: master
+        openstack_database_node02:
+          name: dbs02
+          domain: ${_param:cluster_domain}
+          classes:  
+          - service.galera.slave.cluster
+          - cluster.${_param:cluster_name}.openstack.database
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:openstack_database_node02_address}
+            keepalived_vip_priority: 102
+            mysql_cluster_role: slave
+        openstack_database_node03:
+          name: dbs03
+          domain: ${_param:cluster_domain}
+          classes:
+          - service.galera.slave.cluster
+          - cluster.${_param:cluster_name}.openstack.database
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:openstack_database_node03_address}
+            keepalived_vip_priority: 101
+            mysql_cluster_role: slave
diff --git a/system/reclass/storage/system/openstack_gateway_single.yml b/system/reclass/storage/system/openstack_gateway_single.yml
new file mode 100644
index 0000000..4128f5a
--- /dev/null
+++ b/system/reclass/storage/system/openstack_gateway_single.yml
@@ -0,0 +1,13 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        openstack_gateway_node01:
+          name: gtw01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.gateway
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:openstack_gateway_address}
\ No newline at end of file
diff --git a/system/reclass/storage/system/openstack_message_queue_cluster.yml b/system/reclass/storage/system/openstack_message_queue_cluster.yml
new file mode 100644
index 0000000..ccf811f
--- /dev/null
+++ b/system/reclass/storage/system/openstack_message_queue_cluster.yml
@@ -0,0 +1,37 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        openstack_message_queue_node01:
+          name: msg01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.message_queue
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:openstack_message_queue_node01_address}
+            keepalived_vip_priority: 103
+            rabbitmq_cluster_role: master
+        openstack_message_queue_node02:
+          name: msg02
+          domain: ${_param:cluster_domain}
+          classes:  
+          - cluster.${_param:cluster_name}.openstack.message_queue
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:openstack_message_queue_node02_address}
+            keepalived_vip_priority: 102
+            rabbitmq_cluster_role: slave
+        openstack_message_queue_node03:
+          name: msg03
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.message_queue
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:openstack_message_queue_node03_address}
+            keepalived_vip_priority: 101
+            rabbitmq_cluster_role: slave
diff --git a/system/reclass/storage/system/openstack_proxy_cluster.yml b/system/reclass/storage/system/openstack_proxy_cluster.yml
new file mode 100644
index 0000000..9c89268
--- /dev/null
+++ b/system/reclass/storage/system/openstack_proxy_cluster.yml
@@ -0,0 +1,22 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        openstack_proxy_node01:
+          name: prx01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.proxy
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:openstack_proxy_node01_address}
+        openstack_proxy_node02:
+          name: prx02
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.proxy
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:openstack_proxy_node02_address}
diff --git a/system/reclass/storage/system/openstack_proxy_single.yml b/system/reclass/storage/system/openstack_proxy_single.yml
new file mode 100644
index 0000000..4cfcc87
--- /dev/null
+++ b/system/reclass/storage/system/openstack_proxy_single.yml
@@ -0,0 +1,13 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        openstack_proxy_node01:
+          name: prx01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.proxy
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:openstack_proxy_node01_address}
diff --git a/system/reclass/storage/system/physical_control_cluster.yml b/system/reclass/storage/system/physical_control_cluster.yml
new file mode 100644
index 0000000..606b410
--- /dev/null
+++ b/system/reclass/storage/system/physical_control_cluster.yml
@@ -0,0 +1,32 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        fuel_compute_node01:
+          name: kvm01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.fuel.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:fuel_compute_node01_address}
+        fuel_compute_node02:
+          name: kvm02
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.fuel.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:fuel_compute_node02_address}
+            deploy_address: 192.168.10.152
+        fuel_compute_node03:
+          name: kvm03
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.fuel.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:fuel_compute_node03_address}
diff --git a/system/reclass/storage/system/physical_control_full.yml b/system/reclass/storage/system/physical_control_full.yml
new file mode 100644
index 0000000..d43c1c4
--- /dev/null
+++ b/system/reclass/storage/system/physical_control_full.yml
@@ -0,0 +1,94 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        fuel_compute_node01:
+          name: kvm01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.fuel.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:fuel_compute_node01_address}
+            deploy_address: ${_param:fuel_compute_node01_deploy_address}
+        fuel_compute_node02:
+          name: kvm02
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.fuel.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:fuel_compute_node02_address}
+            deploy_address: ${_param:fuel_compute_node02_deploy_address}
+        fuel_compute_node03:
+          name: kvm03
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.fuel.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:fuel_compute_node03_address}
+            deploy_address: ${_param:fuel_compute_node03_deploy_address}
+        fuel_compute_node04:
+          name: kvm04
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.fuel.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:fuel_compute_node04_address}
+            deploy_address: ${_param:fuel_compute_node04_deploy_address}
+        fuel_compute_node05:
+          name: kvm05
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.fuel.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:fuel_compute_node05_address}
+            deploy_address: ${_param:fuel_compute_node05_deploy_address}
+        fuel_compute_node06:
+          name: kvm06
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.fuel.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:fuel_compute_node06_address}
+            deploy_address: ${_param:fuel_compute_node06_deploy_address}
+        fuel_compute_node07:
+          name: kvm07
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.fuel.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:fuel_compute_node07_address}
+            deploy_address: ${_param:fuel_compute_node07_deploy_address}
+        fuel_compute_node08:
+          name: kvm08
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.fuel.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:fuel_compute_node08_address}
+            deploy_address: ${_param:fuel_compute_node08_deploy_address}
+        fuel_compute_node09:
+          name: kvm09
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.fuel.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:fuel_compute_node09_address}
+            deploy_address: ${_param:fuel_compute_node09_deploy_address}
diff --git a/system/reclass/storage/system/physical_control_single.yml b/system/reclass/storage/system/physical_control_single.yml
new file mode 100644
index 0000000..7767c7e
--- /dev/null
+++ b/system/reclass/storage/system/physical_control_single.yml
@@ -0,0 +1,14 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        fuel_compute_node01:
+          name: kvm01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.fuel.compute
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:fuel_compute_node01_address}
+
diff --git a/system/reclass/storage/system/stacklight_log_cluster.yml b/system/reclass/storage/system/stacklight_log_cluster.yml
new file mode 100644
index 0000000..15d2c21
--- /dev/null
+++ b/system/reclass/storage/system/stacklight_log_cluster.yml
@@ -0,0 +1,35 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        stacklight_log_node01:
+          name: log01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.stacklight.log
+          - cluster.${_param:cluster_name}.stacklight.log_curator
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:stacklight_log_node01_address}
+            keepalived_vip_priority: 103
+        stacklight_log_node02:
+          name: log02
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.stacklight.log
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:stacklight_log_node02_address}
+            keepalived_vip_priority: 102
+        stacklight_log_node03:
+          name: log03
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.stacklight.log
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:stacklight_log_node03_address}
+            keepalived_vip_priority: 101
diff --git a/system/reclass/storage/system/stacklight_monitor_cluster.yml b/system/reclass/storage/system/stacklight_monitor_cluster.yml
new file mode 100644
index 0000000..be862f6
--- /dev/null
+++ b/system/reclass/storage/system/stacklight_monitor_cluster.yml
@@ -0,0 +1,34 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        stacklight_monitor_node01:
+          name: mon01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.stacklight.monitor
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:stacklight_monitor_node01_address}
+            keepalived_vip_priority: 103
+        stacklight_monitor_node02:
+          name: mon02
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.stacklight.monitor
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:stacklight_monitor_node02_address}
+            keepalived_vip_priority: 102
+        stacklight_monitor_node03:
+          name: mon03
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.stacklight.monitor
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:stacklight_monitor_node03_address}
+            keepalived_vip_priority: 101
diff --git a/system/reclass/storage/system/stacklight_server_cluster.yml b/system/reclass/storage/system/stacklight_server_cluster.yml
new file mode 100644
index 0000000..5a106b9
--- /dev/null
+++ b/system/reclass/storage/system/stacklight_server_cluster.yml
@@ -0,0 +1,38 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        stacklight_server_node01:
+          name: mon01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.stacklight.server
+          - system.influxdb.server.single
+          - system.elasticsearch.client.single
+          - system.grafana.client.single
+          - system.kibana.client.single
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:stacklight_monitor_node01_address}
+            keepalived_vip_priority: 103
+        stacklight_server_node02:
+          name: mon02
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.stacklight.server
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:stacklight_monitor_node02_address}
+            keepalived_vip_priority: 102
+        stacklight_server_node03:
+          name: mon03
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.stacklight.server
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:stacklight_monitor_node03_address}
+            keepalived_vip_priority: 101
diff --git a/system/reclass/storage/system/stacklight_server_single.yml b/system/reclass/storage/system/stacklight_server_single.yml
new file mode 100644
index 0000000..c931e89
--- /dev/null
+++ b/system/reclass/storage/system/stacklight_server_single.yml
@@ -0,0 +1,15 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        stacklight_server_node01:
+          name: mon01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.stacklight.server
+          - system.elasticsearch.client.single
+          - system.grafana.client.single
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:stacklight_monitor_node01_address}
diff --git a/system/reclass/storage/system/stacklight_telemetry_cluster.yml b/system/reclass/storage/system/stacklight_telemetry_cluster.yml
new file mode 100644
index 0000000..8791b98
--- /dev/null
+++ b/system/reclass/storage/system/stacklight_telemetry_cluster.yml
@@ -0,0 +1,34 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        stacklight_telemetry_node01:
+          name: mtr01
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.stacklight.telemetry
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:stacklight_telemetry_node01_address}
+            keepalived_vip_priority: 103
+        stacklight_telemetry_node02:
+          name: mtr02
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.stacklight.telemetry
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:stacklight_telemetry_node02_address}
+            keepalived_vip_priority: 102
+        stacklight_telemetry_node03:
+          name: mtr03
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.stacklight.telemetry
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:stacklight_telemetry_node03_address}
+            keepalived_vip_priority: 101