Merge "Adding pure_repos to the AIO model"
diff --git a/README.rst b/README.rst
index 3257e23..cc8cc13 100755
--- a/README.rst
+++ b/README.rst
@@ -2,36 +2,165 @@
 MCP Virtual Labs Models
 =======================
 
-OpenStack Reclass models for Mk-based cloud deployments for QA.
+Virtual reclass models for MCP based deployments for Dev & QA purposes.
+
+Features implemented are expected to be backported to:
+- cookiecutter repository
+- system level reclass
+- formula default metadata
 
 
 Available deployments
 =====================
 
+AAA/Identity
+--------------------
 
-MCP 0.5 DVR (Openstack Mitaka)
-------------------------------
+Model to develop and verify AAA/Identity integrations as separate product
 
+Deployment:
 * 1 config node
-* 3 control nodes
-* 1 compute node
+* 3 identity node (idm/idp)
+* 2 proxy node
 
+Clusters:
+* aaa-ha-freeipa
 
-MCP 0.5 OVS (Openstack Mitaka)
-------------------------------
+Contacts: Petr Michalec, Adam Hecko, Florian S.
 
-* 1 config node
-* 3 control nodes
-* 1 compute node
-* 1 monitor node
-
-
-MCP 1.0 OpenContrail (Openstack Mitaka)
+MCP DriveTrain
 ---------------------------------------
 
+Clusters:
+* model-manager
+* drivetrain-ha
+* drivetrain-ha-clusters
+
+MCP OpenContrail (Openstack Mitaka)
+---------------------------------------
+
+Deployment:
 * 1 config node
 * 3 control nodes
 * 2 compute nodes
 * 1 monitor node
 * 1 meter node
 * 1 log node
+
+Clusters:
+* os-aio-contrail
+* os-aio-ovs
+* os-ha-contrail
+* os-ha-contrail-40
+* os-ha-ovs
+* os-ha-ovs-syndic
+* virtual-mcp05-dvr
+* virtual-mcp05-ovs
+* virtual-mcp10-contrail
+* virtual-mcp10-dvr
+* virtual-mcp10-ovs
+* virtual-mcp11-aio
+* virtual-mcp11-contrail
+* virtual-mcp11-contrail-nfv
+* virtual-mcp11-dvr
+* virtual-mcp11-k8s-calico
+* virtual-mcp11-k8s-calico-dyn
+* virtual-mcp11-k8s-calico-minimal
+* virtual-mcp11-k8s-contrail
+* virtual-mcp11-ovs
+* virtual-mcp11-ovs-dpdk
+* virtual-mcp11-ovs-ironic
+* virtual-mcp-ocata-cicd
+* virtual-mcp-ocata-dvr
+* virtual-mcp-ocata-ovs
+
+MCP Kunbernetes
+---------------
+
+Deployment:
+* 1 config node
+* 3 control nodes
+* 2 compute nodes
+
+Clusters:
+* k8s-aio-calico
+* k8s-aio-contrail
+* k8s-ha-calico
+* k8s-ha-calico-syndic
+* k8s-ha-contrail
+
+Stacklight
+----------
+
+Clusters:
+* sl-k8s-calico
+* sl-k8s-contrail
+* sl-os-contrail
+* sl-os-ovs
+
+Ceph
+--------
+
+Clusters:
+* ceph-ha
+
+
+Model validation
+================
+
+Models are validated on each commit with latest system-level reclass.
+
+Models can be validated locally in docker instance with test-kitchen. Resources:
+* https://github.com/salt-formulas/salt-formulas/tree/master/deploy/model
+* https://salt-formulas.readthedocs.io/en/latest/develop/testing-formulas.html#requirements
+
+Examples:
+.. code-block:: shell
+
+  ➜  mcp-virtual-lab git:(master) ✗ kitchen list
+  Instance                                  Driver  Provisioner  Verifier  Transport  Last Action    Last Error
+  cluster-aaa-ha-freeipa                    Docker  Shell        Busser    Ssh        Converged      <None>
+  cluster-ceph-ha                           Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-drivetrain-ha                     Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-drivetrain-ha-clusters            Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-k8s-aio-calico                    Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-k8s-aio-contrail                  Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-k8s-ha-calico                     Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-k8s-ha-calico-syndic              Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-k8s-ha-contrail                   Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-model-manager                     Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-os-aio-contrail                   Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-os-aio-ovs                        Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-os-ha-contrail                    Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-os-ha-contrail-40                 Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-os-ha-ovs                         Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-os-ha-ovs-syndic                  Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-sl-k8s-calico                     Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-sl-k8s-contrail                   Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-sl-os-contrail                    Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-sl-os-ovs                         Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp05-dvr                 Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp05-ovs                 Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp10-contrail            Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp10-dvr                 Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp10-ovs                 Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-aio                 Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-contrail            Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-contrail-nfv        Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-dvr                 Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-k8s-calico          Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-k8s-calico-dyn      Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-k8s-calico-minimal  Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-k8s-contrail        Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-ovs                 Docker  Shell        Busser    Ssh        Converged      <None>
+  cluster-virtual-mcp11-ovs-dpdk            Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-ovs-ironic          Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp-ocata-cicd            Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp-ocata-dvr             Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp-ocata-ovs             Docker  Shell        Busser    Ssh        <Not Created>  <None>
+
+.. code-block:: shell
+
+  ➜  kitchen converge aaa-ha-freeipa
+
+
diff --git a/classes/cluster/aaa_ha_freeipa/aaa/freeipa_client.yml b/classes/cluster/aaa-ha-freeipa/aaa/freeipa_client.yml
similarity index 94%
rename from classes/cluster/aaa_ha_freeipa/aaa/freeipa_client.yml
rename to classes/cluster/aaa-ha-freeipa/aaa/freeipa_client.yml
index 438737a..79b3d57 100644
--- a/classes/cluster/aaa_ha_freeipa/aaa/freeipa_client.yml
+++ b/classes/cluster/aaa-ha-freeipa/aaa/freeipa_client.yml
@@ -8,7 +8,7 @@
 - system.freeipa.client.nsupdate
 - system.freeipa.client.keytab.krb5
 - system.freeipa.client.keytab.apache2
-- cluster.aaa_ha_freeipa.aaa
+- cluster.aaa-ha-freeipa.aaa
 parameters:
   _param:
     keepalived_vip_interface: ${_param:primary_interface}
diff --git a/classes/cluster/aaa_ha_freeipa/aaa/freeipa_server.yml b/classes/cluster/aaa-ha-freeipa/aaa/freeipa_server.yml
similarity index 97%
rename from classes/cluster/aaa_ha_freeipa/aaa/freeipa_server.yml
rename to classes/cluster/aaa-ha-freeipa/aaa/freeipa_server.yml
index 271479c..ebf3496 100644
--- a/classes/cluster/aaa_ha_freeipa/aaa/freeipa_server.yml
+++ b/classes/cluster/aaa-ha-freeipa/aaa/freeipa_server.yml
@@ -5,7 +5,7 @@
 #- system.salt.minion.cert.
 - system.mysql.client
 - system.freeipa.server.cluster
-- cluster.aaa_ha_freeipa.aaa
+- cluster.aaa-ha-freeipa.aaa
 parameters:
   _param:
     linux_system_codename: centos
diff --git a/classes/cluster/aaa_ha_freeipa/aaa/init.yml b/classes/cluster/aaa-ha-freeipa/aaa/init.yml
similarity index 99%
rename from classes/cluster/aaa_ha_freeipa/aaa/init.yml
rename to classes/cluster/aaa-ha-freeipa/aaa/init.yml
index 0cd8e4f..c09e5b7 100644
--- a/classes/cluster/aaa_ha_freeipa/aaa/init.yml
+++ b/classes/cluster/aaa-ha-freeipa/aaa/init.yml
@@ -1,5 +1,5 @@
 classes:
-#- cluster.aaa_ha_freeipa.aaa
+#- cluster.aaa-ha-freeipa.aaa
 - system.linux.system.single
 - system.openssh.server.team.lab
 - system.openssh.server.team.tcpcloud
diff --git a/classes/cluster/aaa_ha_freeipa/infra/config.yml b/classes/cluster/aaa-ha-freeipa/infra/config.yml
similarity index 96%
rename from classes/cluster/aaa_ha_freeipa/infra/config.yml
rename to classes/cluster/aaa-ha-freeipa/infra/config.yml
index 70e3c07..e69242a 100644
--- a/classes/cluster/aaa_ha_freeipa/infra/config.yml
+++ b/classes/cluster/aaa-ha-freeipa/infra/config.yml
@@ -8,9 +8,9 @@
 - system.mysql.client
 - system.reclass.storage.salt
 - system.reclass.storage.system.infra_idm_cluster
-- cluster.aaa_ha_freeipa.infra
-- cluster.aaa_ha_freeipa.aaa
-- cluster.aaa_ha_freeipa
+- cluster.aaa-ha-freeipa.infra
+- cluster.aaa-ha-freeipa.aaa
+- cluster.aaa-ha-freeipa
 parameters:
   _param:
     salt_master_base_environment: prd
@@ -23,10 +23,10 @@
     salt_master_host: 127.0.0.1
   salt:
     master:
-      enabled: true
       reactor:
         reclass/minion/classify:
         - salt://reclass/reactor/node_register.sls
+
   reclass:
     storage:
       class_mapping:
diff --git a/classes/cluster/aaa-ha-freeipa/infra/idm.yml b/classes/cluster/aaa-ha-freeipa/infra/idm.yml
new file mode 100644
index 0000000..95f6f6b
--- /dev/null
+++ b/classes/cluster/aaa-ha-freeipa/infra/idm.yml
@@ -0,0 +1,2 @@
+classes:
+- cluster.aaa-ha-freeipa.infra
diff --git a/classes/cluster/aaa_ha_freeipa/infra/init.yml b/classes/cluster/aaa-ha-freeipa/infra/init.yml
similarity index 95%
rename from classes/cluster/aaa_ha_freeipa/infra/init.yml
rename to classes/cluster/aaa-ha-freeipa/infra/init.yml
index 783c19f..fbe95d7 100644
--- a/classes/cluster/aaa_ha_freeipa/infra/init.yml
+++ b/classes/cluster/aaa-ha-freeipa/infra/init.yml
@@ -13,7 +13,7 @@
     # infra service addresses
     infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
-    infra_config_deploy_address: 192.168.10.100
+    infra_config_deploy_address: 192.168.10.90
 
     cluster_domain: virtual-aaa-freeipa.local
     cluster_name: virtual-aaa-freeipa
diff --git a/classes/cluster/aaa-ha-freeipa/infra/prx.yml b/classes/cluster/aaa-ha-freeipa/infra/prx.yml
new file mode 100644
index 0000000..95f6f6b
--- /dev/null
+++ b/classes/cluster/aaa-ha-freeipa/infra/prx.yml
@@ -0,0 +1,2 @@
+classes:
+- cluster.aaa-ha-freeipa.infra
diff --git a/classes/cluster/aaa-ha-freeipa/init.yml b/classes/cluster/aaa-ha-freeipa/init.yml
new file mode 100644
index 0000000..5dfab8e
--- /dev/null
+++ b/classes/cluster/aaa-ha-freeipa/init.yml
@@ -0,0 +1,6 @@
+classes:
+- system.linux.network.dynamic_hosts
+- cluster.aaa-ha-freeipa.aaa.freeipa_server
+- cluster.aaa-ha-freeipa.infra
+- cluster.overrides
+
diff --git a/classes/cluster/aaa_ha_freeipa/init.yml b/classes/cluster/aaa_ha_freeipa/init.yml
deleted file mode 100644
index c9a2bed..0000000
--- a/classes/cluster/aaa_ha_freeipa/init.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-classes:
-- cluster.aaa_ha_freeipa.aaa.freeipa_server
-- cluster.aaa_ha_freeipa.infra
-- cluster.overrides
-
diff --git a/classes/cluster/ceph_ha/ceph/cfs.yml b/classes/cluster/ceph-ha/ceph/cfs.yml
similarity index 74%
rename from classes/cluster/ceph_ha/ceph/cfs.yml
rename to classes/cluster/ceph-ha/ceph/cfs.yml
index 084de38..634177a 100644
--- a/classes/cluster/ceph_ha/ceph/cfs.yml
+++ b/classes/cluster/ceph-ha/ceph/cfs.yml
@@ -1,4 +1,4 @@
 classes:
 - system.linux.system.repo.ubuntu
 - system.linux.network.hosts
-- cluster.ceph_ha.infra
+- cluster.ceph-ha.infra
diff --git a/classes/cluster/ceph_ha/ceph/common.yml b/classes/cluster/ceph-ha/ceph/common.yml
similarity index 85%
rename from classes/cluster/ceph_ha/ceph/common.yml
rename to classes/cluster/ceph-ha/ceph/common.yml
index 5117d12..98708f9 100644
--- a/classes/cluster/ceph_ha/ceph/common.yml
+++ b/classes/cluster/ceph-ha/ceph/common.yml
@@ -1,6 +1,6 @@
 classes:
 - system.linux.system.repo.ceph
-- cluster.ceph_ha.infra
+- cluster.ceph-ha.infra
 parameters:
   ceph:
     common:
diff --git a/classes/cluster/ceph_ha/ceph/init.yml b/classes/cluster/ceph-ha/ceph/init.yml
similarity index 100%
rename from classes/cluster/ceph_ha/ceph/init.yml
rename to classes/cluster/ceph-ha/ceph/init.yml
diff --git a/classes/cluster/ceph_ha/ceph/mon.yml b/classes/cluster/ceph-ha/ceph/mon.yml
similarity index 68%
rename from classes/cluster/ceph_ha/ceph/mon.yml
rename to classes/cluster/ceph-ha/ceph/mon.yml
index 055a2c8..96fa0b4 100644
--- a/classes/cluster/ceph_ha/ceph/mon.yml
+++ b/classes/cluster/ceph-ha/ceph/mon.yml
@@ -1,4 +1,4 @@
 classes:
 - system.ceph.mon.cluster
-- cluster.ceph_ha.ceph.common
+- cluster.ceph-ha.ceph.common
 - system.linux.network.hosts
diff --git a/classes/cluster/ceph_ha/ceph/mon_init.yml b/classes/cluster/ceph-ha/ceph/mon_init.yml
similarity index 100%
rename from classes/cluster/ceph_ha/ceph/mon_init.yml
rename to classes/cluster/ceph-ha/ceph/mon_init.yml
diff --git a/classes/cluster/ceph_ha/ceph/osd.yml b/classes/cluster/ceph-ha/ceph/osd.yml
similarity index 97%
rename from classes/cluster/ceph_ha/ceph/osd.yml
rename to classes/cluster/ceph-ha/ceph/osd.yml
index 85e650a..2d7cb2a 100644
--- a/classes/cluster/ceph_ha/ceph/osd.yml
+++ b/classes/cluster/ceph-ha/ceph/osd.yml
@@ -1,7 +1,7 @@
 classes:
 - service.ceph.osd.cluster
 - system.linux.network.hosts
-- cluster.ceph_ha.ceph.common
+- cluster.ceph-ha.ceph.common
 parameters:
   ceph:
     osd:
diff --git a/classes/cluster/ceph_ha/ceph/rgw.yml b/classes/cluster/ceph-ha/ceph/rgw.yml
similarity index 93%
rename from classes/cluster/ceph_ha/ceph/rgw.yml
rename to classes/cluster/ceph-ha/ceph/rgw.yml
index eb6e409..fba17bf 100644
--- a/classes/cluster/ceph_ha/ceph/rgw.yml
+++ b/classes/cluster/ceph-ha/ceph/rgw.yml
@@ -1,8 +1,8 @@
 classes:
 - system.linux.system.repo.ceph
 - system.linux.system.repo.ubuntu
-- cluster.ceph_ha.ceph.common
-- cluster.ceph_ha.infra
+- cluster.ceph-ha.ceph.common
+- cluster.ceph-ha.infra
 parameters:
   _param:
     keepalived_ceph_monitor_vip_address: ${_param:ceph_monitor_address}
diff --git a/classes/cluster/ceph_ha/infra/config.yml b/classes/cluster/ceph-ha/infra/config.yml
similarity index 98%
rename from classes/cluster/ceph_ha/infra/config.yml
rename to classes/cluster/ceph-ha/infra/config.yml
index 123cb65..cc97968 100644
--- a/classes/cluster/ceph_ha/infra/config.yml
+++ b/classes/cluster/ceph-ha/infra/config.yml
@@ -6,8 +6,8 @@
 - system.salt.master.api
 - system.reclass.storage.salt
 - system.reclass.storage.system.ceph_mon_cluster
-- cluster.ceph_ha.ceph
-- cluster.ceph_ha.infra
+- cluster.ceph-ha.ceph
+- cluster.ceph-ha.infra
 parameters:
   _param:
     salt_master_base_environment: prd
diff --git a/classes/cluster/ceph_ha/infra/init.yml b/classes/cluster/ceph-ha/infra/init.yml
similarity index 89%
rename from classes/cluster/ceph_ha/infra/init.yml
rename to classes/cluster/ceph-ha/infra/init.yml
index 01a74ea..41a4387 100644
--- a/classes/cluster/ceph_ha/infra/init.yml
+++ b/classes/cluster/ceph-ha/infra/init.yml
@@ -6,7 +6,7 @@
 - system.linux.system.repo.ubuntu
 - system.openssh.server.team.members.mlos
 - system.openssh.server.team.tcpcloud
-- cluster.ceph_ha.ceph
+- cluster.ceph-ha.ceph
 - cluster.overrides
 parameters:
   _param:
@@ -14,10 +14,10 @@
     # infra service addresses
     infra_config_hostname: cfg01
 #    infra_config_address: 172.16.10.100
-#    infra_config_deploy_address: 192.168.10.100
+#    infra_config_deploy_address: 192.168.10.90
 
-    cluster_domain: ceph_ha.local
-    cluster_name: ceph_ha
+    cluster_domain: ceph-ha.local
+    cluster_name: ceph-ha
     apt_mk_version: nightly
     primary_interface: ens3
   linux:
diff --git a/classes/cluster/drivetrain_ha_clusters/cicd/control/init.yml b/classes/cluster/drivetrain-ha-clusters/cicd/control/init.yml
similarity index 99%
rename from classes/cluster/drivetrain_ha_clusters/cicd/control/init.yml
rename to classes/cluster/drivetrain-ha-clusters/cicd/control/init.yml
index 50f5983..9091fb8 100644
--- a/classes/cluster/drivetrain_ha_clusters/cicd/control/init.yml
+++ b/classes/cluster/drivetrain-ha-clusters/cicd/control/init.yml
@@ -90,7 +90,7 @@
   # Rundeck
   - system.rundeck.client.runbook
 
-  - cluster.drivetrain_ha_clusters
+  - cluster.drivetrain-ha-clusters
 parameters:
   _param:
     cluster_node01_name: ci01
diff --git a/classes/cluster/drivetrain_ha_clusters/cicd/control/master.yml b/classes/cluster/drivetrain-ha-clusters/cicd/control/master.yml
similarity index 92%
rename from classes/cluster/drivetrain_ha_clusters/cicd/control/master.yml
rename to classes/cluster/drivetrain-ha-clusters/cicd/control/master.yml
index f7d7d0f..dadabbb 100644
--- a/classes/cluster/drivetrain_ha_clusters/cicd/control/master.yml
+++ b/classes/cluster/drivetrain-ha-clusters/cicd/control/master.yml
@@ -16,7 +16,7 @@
   # ..jobs
   - system.jenkins.client.job.aptly
   - system.jenkins.client.job.git-mirrors.downstream.pipelines
-  - system.jenkins.client.job.deploy.lab.mk.physical
+  - system.jenkins.client.job.deploy.lab.release.mcp10
   - system.jenkins.client.job.deploy.update.package
   - system.jenkins.client.job.deploy.update.config
   # Gerrit
@@ -43,4 +43,4 @@
   # ..projects
   - system.rundeck.client.project.cicd
   # At last
-  - cluster.drivetrain_ha_clusters.cicd.control
+  - cluster.drivetrain-ha-clusters.cicd.control
diff --git a/classes/cluster/drivetrain-ha-clusters/cicd/control/slave.yml b/classes/cluster/drivetrain-ha-clusters/cicd/control/slave.yml
new file mode 100644
index 0000000..b5d63e2
--- /dev/null
+++ b/classes/cluster/drivetrain-ha-clusters/cicd/control/slave.yml
@@ -0,0 +1,3 @@
+classes:
+  - cluster.drivetrain-ha-clusters.cicd.control
+  - system.docker.swarm.manager
diff --git a/classes/cluster/drivetrain_ha_clusters/cicd/init.yml b/classes/cluster/drivetrain-ha-clusters/cicd/init.yml
similarity index 100%
rename from classes/cluster/drivetrain_ha_clusters/cicd/init.yml
rename to classes/cluster/drivetrain-ha-clusters/cicd/init.yml
diff --git a/classes/cluster/drivetrain_ha_clusters/cicd/worker.yml b/classes/cluster/drivetrain-ha-clusters/cicd/worker.yml
similarity index 75%
rename from classes/cluster/drivetrain_ha_clusters/cicd/worker.yml
rename to classes/cluster/drivetrain-ha-clusters/cicd/worker.yml
index 13280b0..7d856cc 100644
--- a/classes/cluster/drivetrain_ha_clusters/cicd/worker.yml
+++ b/classes/cluster/drivetrain-ha-clusters/cicd/worker.yml
@@ -2,5 +2,5 @@
 - system.linux.system.single
 - system.jenkins.slave.docker
 - system.aptly.client.publisher
-- cluster.drivetrain_ha_clusters
+- cluster.drivetrain-ha-clusters
 
diff --git a/classes/cluster/drivetrain_ha_clusters/infra/config.yml b/classes/cluster/drivetrain-ha-clusters/infra/config.yml
similarity index 98%
rename from classes/cluster/drivetrain_ha_clusters/infra/config.yml
rename to classes/cluster/drivetrain-ha-clusters/infra/config.yml
index 25e78fa..c4ad9a6 100644
--- a/classes/cluster/drivetrain_ha_clusters/infra/config.yml
+++ b/classes/cluster/drivetrain-ha-clusters/infra/config.yml
@@ -4,7 +4,7 @@
 - system.salt.minion.ca.salt_master
 - system.reclass.storage.salt
 - system.sphinx.server.doc.reclass
-- cluster.drivetrain_ha_clusters
+- cluster.drivetrain-ha-clusters
 parameters:
   _param:
     reclass_data_repository: "https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab"
diff --git a/classes/cluster/drivetrain_ha_clusters/infra/init.yml b/classes/cluster/drivetrain-ha-clusters/infra/init.yml
similarity index 88%
rename from classes/cluster/drivetrain_ha_clusters/infra/init.yml
rename to classes/cluster/drivetrain-ha-clusters/infra/init.yml
index da06ecd..c5a0164 100644
--- a/classes/cluster/drivetrain_ha_clusters/infra/init.yml
+++ b/classes/cluster/drivetrain-ha-clusters/infra/init.yml
@@ -10,13 +10,13 @@
 - system.openssh.server.team.oss_team
 parameters:
   _param:
-    cluster_domain: drivetrain_ha_clusters.local
-    cluster_name: drivetrain_ha_clusters
+    cluster_domain: drivetrain-ha-clusters.local
+    cluster_name: drivetrain-ha-clusters
     apt_mk_version: nightly
     admin_email: root@localhosti
     infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
-    infra_config_deploy_address: 192.168.10.100
+    infra_config_deploy_address: 192.168.10.90
     salt_minion_ca_host: ci01.${_param:cluster_domain}
     salt_minion_ca_authority: salt_master_ca
     salt_api_password: hovno12345!
diff --git a/classes/cluster/drivetrain-ha-clusters/init.yml b/classes/cluster/drivetrain-ha-clusters/init.yml
new file mode 100644
index 0000000..634ecc6
--- /dev/null
+++ b/classes/cluster/drivetrain-ha-clusters/init.yml
@@ -0,0 +1,6 @@
+classes:
+- system.linux.network.dynamic_hosts
+- cluster.drivetrain-ha-clusters.infra
+- cluster.drivetrain-ha-clusters.cicd
+- cluster.overrides
+
diff --git a/classes/cluster/drivetrain_ha/bootstrap_vars b/classes/cluster/drivetrain-ha/bootstrap_vars
similarity index 100%
rename from classes/cluster/drivetrain_ha/bootstrap_vars
rename to classes/cluster/drivetrain-ha/bootstrap_vars
diff --git a/classes/cluster/drivetrain_ha_clusters/cicd/control/init.yml b/classes/cluster/drivetrain-ha/cicd/control/init.yml
similarity index 99%
copy from classes/cluster/drivetrain_ha_clusters/cicd/control/init.yml
copy to classes/cluster/drivetrain-ha/cicd/control/init.yml
index 50f5983..12e785d 100644
--- a/classes/cluster/drivetrain_ha_clusters/cicd/control/init.yml
+++ b/classes/cluster/drivetrain-ha/cicd/control/init.yml
@@ -90,7 +90,8 @@
   # Rundeck
   - system.rundeck.client.runbook
 
-  - cluster.drivetrain_ha_clusters
+  - cluster.drivetrain-ha.cicd
+ # - cluster.drivetrain-ha
 parameters:
   _param:
     cluster_node01_name: ci01
@@ -109,6 +110,8 @@
     cluster_public_host: ${_param:control_public_host}
     glusterfs_service_host: ${_param:control_vip_address}
 
+    admin_email: root@localhost
+
     # Haproxy SSL configuration
     cluster_ssl_certificate:
       enabled: true
diff --git a/classes/cluster/drivetrain_ha/cicd/control/master.yml b/classes/cluster/drivetrain-ha/cicd/control/master.yml
similarity index 93%
rename from classes/cluster/drivetrain_ha/cicd/control/master.yml
rename to classes/cluster/drivetrain-ha/cicd/control/master.yml
index 4437b9e..3a84699 100644
--- a/classes/cluster/drivetrain_ha/cicd/control/master.yml
+++ b/classes/cluster/drivetrain-ha/cicd/control/master.yml
@@ -16,7 +16,7 @@
   # ..jobs
   - system.jenkins.client.job.aptly
   - system.jenkins.client.job.git-mirrors.downstream.pipelines
-  - system.jenkins.client.job.deploy.lab.mk.physical
+  - system.jenkins.client.job.deploy.lab.release.mcp10
   - system.jenkins.client.job.deploy.update.package
   - system.jenkins.client.job.deploy.update.config
   # Gerrit
@@ -43,4 +43,4 @@
   # ..projects
   - system.rundeck.client.project.cicd
   # At last
-  - cluster.drivetrain_ha
+  - cluster.drivetrain-ha
diff --git a/classes/cluster/drivetrain_ha/cicd/control/slave.yml b/classes/cluster/drivetrain-ha/cicd/control/slave.yml
similarity index 62%
rename from classes/cluster/drivetrain_ha/cicd/control/slave.yml
rename to classes/cluster/drivetrain-ha/cicd/control/slave.yml
index bdc7137..f46c1e4 100644
--- a/classes/cluster/drivetrain_ha/cicd/control/slave.yml
+++ b/classes/cluster/drivetrain-ha/cicd/control/slave.yml
@@ -1,3 +1,3 @@
 classes:
 - system.docker.swarm.manager
-- cluster.drivetrain_ha
+- cluster.drivetrain-ha
diff --git a/classes/cluster/drivetrain_ha/cicd/init.yml b/classes/cluster/drivetrain-ha/cicd/init.yml
similarity index 100%
rename from classes/cluster/drivetrain_ha/cicd/init.yml
rename to classes/cluster/drivetrain-ha/cicd/init.yml
diff --git a/classes/cluster/drivetrain_ha/cicd/worker.yml b/classes/cluster/drivetrain-ha/cicd/worker.yml
similarity index 80%
rename from classes/cluster/drivetrain_ha/cicd/worker.yml
rename to classes/cluster/drivetrain-ha/cicd/worker.yml
index ec89b93..9dc8d0c 100644
--- a/classes/cluster/drivetrain_ha/cicd/worker.yml
+++ b/classes/cluster/drivetrain-ha/cicd/worker.yml
@@ -2,5 +2,5 @@
 - system.linux.system.single
 - system.jenkins.slave.docker
 - system.aptly.client.publisher
-- cluster.drivetrain_ha
+- cluster.drivetrain-ha
 
diff --git a/classes/cluster/drivetrain_ha/infra/config.yml b/classes/cluster/drivetrain-ha/infra/config.yml
similarity index 99%
rename from classes/cluster/drivetrain_ha/infra/config.yml
rename to classes/cluster/drivetrain-ha/infra/config.yml
index 3ab5749..4e413b5 100644
--- a/classes/cluster/drivetrain_ha/infra/config.yml
+++ b/classes/cluster/drivetrain-ha/infra/config.yml
@@ -4,7 +4,7 @@
 - system.salt.minion.ca.salt_master
 - system.reclass.storage.salt
 - system.sphinx.server.doc.reclass
-- cluster.drivetrain_ha
+- cluster.drivetrain-ha
 parameters:
   _param:
     reclass_data_repository: "https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab"
diff --git a/classes/cluster/drivetrain_ha/infra/init.yml b/classes/cluster/drivetrain-ha/infra/init.yml
similarity index 87%
rename from classes/cluster/drivetrain_ha/infra/init.yml
rename to classes/cluster/drivetrain-ha/infra/init.yml
index 0e2ecb7..f3fe176 100644
--- a/classes/cluster/drivetrain_ha/infra/init.yml
+++ b/classes/cluster/drivetrain-ha/infra/init.yml
@@ -10,12 +10,12 @@
 - system.openssh.server.team.oss_team
 parameters:
   _param:
-    cluster_domain: drivetrain_ha.local
-    cluster_name: drivetrain_ha
+    cluster_domain: drivetrain-ha.local
+    cluster_name: drivetrain-ha
     apt_mk_version: nightly
     infra_config_hostname: cid01
     infra_config_address: 172.16.10.100
-    infra_config_deploy_address: 192.168.10.100
+    infra_config_deploy_address: 192.168.10.90
     salt_minion_ca_host: cid01.${_param:cluster_domain}
     salt_minion_ca_authority: salt_master_ca
   linux:
diff --git a/classes/cluster/drivetrain-ha/init.yml b/classes/cluster/drivetrain-ha/init.yml
new file mode 100644
index 0000000..fa0c93c
--- /dev/null
+++ b/classes/cluster/drivetrain-ha/init.yml
@@ -0,0 +1,7 @@
+classes:
+- system.linux.network.dynamic_hosts
+- cluster.drivetrain-ha.cicd.control
+- cluster.drivetrain-ha.infra
+#- cluster.drivetrain-ha.cicd
+- cluster.overrides
+
diff --git a/classes/cluster/drivetrain_ha/cicd/control/init.yml b/classes/cluster/drivetrain_ha/cicd/control/init.yml
deleted file mode 100644
index a8977d6..0000000
--- a/classes/cluster/drivetrain_ha/cicd/control/init.yml
+++ /dev/null
@@ -1,402 +0,0 @@
-classes:
-  # GlusterFS
-  - system.glusterfs.server.cluster
-  - system.glusterfs.server.volume.aptly
-  - system.glusterfs.server.volume.elasticsearch
-  - system.glusterfs.server.volume.devops_portal
-  - system.glusterfs.server.volume.gerrit
-  - system.glusterfs.server.volume.jenkins
-  - system.glusterfs.server.volume.mongodb
-  - system.glusterfs.server.volume.mysql
-  - system.glusterfs.server.volume.openldap
-  - system.glusterfs.server.volume.postgresql
-  - system.glusterfs.server.volume.pushkin
-  - system.glusterfs.server.volume.registry
-  - system.glusterfs.server.volume.rundeck
-  - system.glusterfs.server.volume.security_monkey
-    #- system.glusterfs.server.volume.salt
-
-  - system.glusterfs.client.cluster
-  - system.glusterfs.client.volume.aptly
-  - system.glusterfs.client.volume.devops_portal
-  - system.glusterfs.client.volume.elasticsearch
-  - system.glusterfs.client.volume.gerrit
-  - system.glusterfs.client.volume.jenkins
-  - system.glusterfs.client.volume.mongodb
-  - system.glusterfs.client.volume.mysql
-  - system.glusterfs.client.volume.openldap
-  - system.glusterfs.client.volume.postgresql
-  - system.glusterfs.client.volume.pushkin
-  - system.glusterfs.client.volume.registry
-  - system.glusterfs.client.volume.rundeck
-  - system.glusterfs.client.volume.security_monkey
-    #- system.glusterfs.client.volume.salt
-
-  # Docker
-  - system.docker.host
-  # Docker services
-  - system.docker.swarm.stack.aptly
-  - system.docker.swarm.stack.devops_portal
-  - system.docker.swarm.stack.docker
-  - system.docker.swarm.stack.elasticsearch
-  - system.docker.swarm.stack.gerrit
-  - system.docker.swarm.stack.janitor_monkey
-  - system.docker.swarm.stack.jenkins
-  - system.docker.swarm.stack.ldap
-  - system.docker.swarm.stack.postgresql
-  - system.docker.swarm.stack.pushkin
-  - system.docker.swarm.stack.rundeck
-  - system.docker.swarm.stack.security_monkey
-  # Docker networks
-  - system.docker.swarm.network.runbook
-
-  # Aptly
-  # We need aptly-publisher.yml on each node for our Jenkins slaves in docker
-  - system.aptly.client.publisher
-
-  # Keepalived
-  - system.keepalived.cluster.instance.cicd_control_vip
-
-  # HAProxy
-  - system.salt.minion.cert.proxy
-  - system.haproxy.proxy.single
-  - system.haproxy.proxy.listen.cicd.aptly
-  - system.haproxy.proxy.listen.cicd.gerrit
-  - system.haproxy.proxy.listen.cicd.jenkins
-  - system.haproxy.proxy.listen.docker.registry
-  - system.haproxy.proxy.listen.docker.visualizer
-  - system.haproxy.proxy.listen.mysql
-  - system.haproxy.proxy.listen.openldap
-  - system.haproxy.proxy.listen.oss.devops_portal
-  - system.haproxy.proxy.listen.oss.elasticsearch
-  - system.haproxy.proxy.listen.oss.janitor_monkey
-  - system.haproxy.proxy.listen.oss.mongodb
-  - system.haproxy.proxy.listen.oss.postgresql
-  - system.haproxy.proxy.listen.oss.pushkin
-  - system.haproxy.proxy.listen.oss.rundeck
-  - system.haproxy.proxy.listen.oss.security_monkey
-  - system.haproxy.proxy.listen.phpldapadmin
-  - system.haproxy.proxy.listen.stats
-
-  # OSS Tooling
-  - system.devops_portal.service.elasticsearch
-  - system.devops_portal.service.gerrit
-  - system.devops_portal.service.janitor_monkey
-  - system.devops_portal.service.jenkins
-  - system.devops_portal.service.pushkin
-  - system.devops_portal.service.rundeck
-  - system.devops_portal.service.security_monkey
-
-  # Rundeck
-  - system.rundeck.client.runbook
-
-  - cluster.drivetrain_ha.cicd
- # - cluster.drivetrain_ha
-parameters:
-  _param:
-    cluster_node01_name: ci01
-    cluster_node01_address: ${_param:control_node01_address}
-    cluster_node02_name: ci02
-    cluster_node02_address: ${_param:control_node02_address}
-    cluster_node03_name: ci03
-    cluster_node03_address: ${_param:control_node03_address}
-
-    keepalived_vip_virtual_router_id: 180
-    keepalived_vip_priority: 103
-    keepalived_vip_password: password
-    keepalived_vip_interface: ens3
-
-    cluster_vip_address: ${_param:control_vip_address}
-    cluster_public_host: ${_param:control_public_host}
-    glusterfs_service_host: ${_param:control_vip_address}
-
-    admin_email: root@localhost
-
-    # Haproxy SSL configuration
-    cluster_ssl_certificate:
-      enabled: true
-      pem_file: /etc/haproxy/ssl/${_param:cluster_public_host}-all.pem
-    haproxy_bind_address: ${_param:cluster_vip_address}
-    haproxy_mysql_source_port: 13306
-
-    docker_registry_http_secret: aikemee4AhK0Eechai2eh6aa3eeWiet9
-
-    # CI/CD service databases
-    mysql_admin_password: password
-    mysql_gerrit_password: password
-
-    # OpenLDAP
-    openldap_organisation: ${_param:cluster_name}
-    openldap_dn: 'dc=cicd-lab-dev,dc=local'
-    openldap_domain: ${linux:system:domain}
-    openldap_admin_password: password
-    openldap_config_password: password
-    openldap_readonly_password: password
-
-    # PostgreSQL
-    postgresql_client_user: ${_param:postgresql_admin_user}
-    postgresql_client_password: ${_param:postgresql_admin_user_password}
-    postgresql_client_host: ${_param:haproxy_postgresql_bind_host}
-    postgresql_client_port: ${_param:haproxy_postgresql_bind_port}
-
-    # CI/CD service setup
-    # Jenkins
-    jenkins_client_user: admin
-    jenkins_client_password: ${_param:openldap_admin_password}
-    jenkins_admin_email: ${_param:admin_email}
-    jenkins_admin_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQD3hnJDKW4R+aXxdaSJSQmV4a6tRmRI1CECkccApr0h15dXGhgeRyrtMsXKpVkQpweQX+75rJHVcNvHpCsR3wLhS/vgOowQh+Xc7bvl9MzoYBGUw5VZyRD4HoHrp2FEUHQqwnOYubFdHBnOi6HZDdf1axFzjmymQX/XvuAd4vCmtW/wumaJ6tH/VlM57ik5jsWwKQIQZl7ODmlGusycuD5QEPade+cHEijGbLtRyMrP+BFJAzVmav2jeu1CtLD8AaKHB+mtfbHYhFkYhLlmFenztbB9S2kJhuSDjB4c8Xxj3N0O1rhKAJPi2o4LS8boa38EnTz55wq02/DxNMSgs9H0BFKK5qRuhaG4GBvwYC9HR/uzH4abFdNAr2kBLMbAo49qwJL4dfyY87T3JLSEUpg1Ycr31A2e1v8kBOCMipFOkOwlVm1F2P178YJmCcIl2NnzIvfI7SKvVgjgmoxfDZu55CMqf+W6hlMrchhGvXmTDFNfW7cr8ak4GCgZLUIkzWPRcgfwLN+328JhCgGeHfSkQBzMD4sZR0yw3Pc939gMXkRIsfDNnTJ8qZTDkiYfktUt3pRp8AudqQ++cf95nf2lTOyGehXkn7oHGAQfJ9mlSOTTM/e9shtT+jqsB5HW0BRVqtsm7cvyhYKQZCfWOhInBg4hfK5rJVGjCSLckTa4jQ==
-    jenkins_admin_private_key: |
-      -----BEGIN RSA PRIVATE KEY-----
-      MIIJKAIBAAKCAgEA94ZyQyluEfml8XWkiUkJleGurUZkSNQhApHHAKa9IdeXVxoY
-      Hkcq7TLFyqVZEKcHkF/u+ayR1XDbx6QrEd8C4Uv74DqMEIfl3O275fTM6GARlMOV
-      WckQ+B6B66dhRFB0KsJzmLmxXRwZzouh2Q3X9WsRc45spkF/177gHeLwprVv8Lpm
-      ierR/1ZTOe4pOY7FsCkCEGZezg5pRrrMnLg+UBD2nXvnBxIoxmy7UcjKz/gRSQM1
-      Zmr9o3rtQrSw/AGihwfprX2x2IRZGIS5ZhXp87WwfUtpCYbkg4weHPF8Y9zdDta4
-      SgCT4tqOC0vG6Gt/BJ08+ecKtNvw8TTEoLPR9ARSiuakboWhuBgb8GAvR0f7sx+G
-      mxXTQK9pASzGwKOPasCS+HX8mPO09yS0hFKYNWHK99QNntb/JATgjIqRTpDsJVZt
-      Rdj9e/GCZgnCJdjZ8yL3yO0ir1YI4JqMXw2bueQjKn/luoZTK3IYRr15kwxTX1u3
-      K/GpOBgoGS1CJM1j0XIH8Czft9vCYQoBnh30pEAczA+LGUdMsNz3Pd/YDF5ESLHw
-      zZ0yfKmUw5ImH5LVLd6UafALnakPvnH/eZ39pUzshnoV5J+6BxgEHyfZpUjk0zP3
-      vbIbU/o6rAeR1tAUVarbJu3L8oWCkGQn1joSJwYOIXyuayVRowki3JE2uI0CAwEA
-      AQKCAgACfDUVe4sBXzJNVFMMldEk0hlA4B4NpSOXtQL8fLAVcOayFy76ztgdfY8C
-      09orEqI+ztfFZfgo3nM2c+2Cxmxu+qZSwAO7/sFOEIz8aBLOmnhSuAv91Mj41MWV
-      Kh8N4ojoDP/AHs0rFCcmLby4Qy1R53tLX7iziqDP97ikVCz6X4P6NMTmyZbGK4W2
-      ZS/AxjAx7pd4tq5o/zgLX8DCKg9mGmV/e0j8hzAlnd3bmlp+8AysYP3eQ2C8jXVo
-      YAwO261YEbpE5agtdla2qk56OeoZak+VUnaBg/szXurGe542GneVuI4tIAhcFLms
-      X1xl5P5ne3SrRaiT3El1AoSe4G9RMNPPuUfVj6t8Wl6ON0I0xR00ZhJdwIUpUD0g
-      WS445fCr7txOBYAJ974oe4fE08wopvgS+rCspcHTFmc6lSM0Fi0TrTqBwuSqPwlj
-      Jal9l/jFGVCTISYT1XejV5IIncaEAFH8exfWPdRuYLiaid28u2YhdnAz1YyeXEJW
-      6e+8EoigSZR7PGpyY4mQ9R5Nu6vG+4b6AIKhDxVb+rs9K18ShFJQYV7Y8OeHE7Fg
-      0zmYHmgmp4SFaanXtzanTsda9XvkQ6l3jzjbB/Zy9W0lkht1YSjIzXwLsuwvU0ov
-      t5JTozjKLYd/vvNLNEEechCzqN6skmjicTEo4WLOq/DnUyzYuQKCAQEA/m94O6Uy
-      RjGY2K/6qiBLTSAXpT11rSuLfLyiia/sUgKlF1TVKaSxKbEmH8pOT/3fudadvi/Z
-      AggZezRz5UVLLsGigmGHG4Yx/xq9SHSbtlgVuo+JsIeVY6SqzAPbBOozF+oko8nj
-      NeagkxYtFveHgzCxo2yJ27isuR96a84z7ktptC9pzi82gq4fXqNnX7V86ltg6Gk9
-      GpXiuUZGfJMKAlTjodShHYF/Jh3sjURVTIwS8LG4LZQ62HPgApwhiXqk+azLBRYj
-      h4qq3yop/9pPz566aniamcQtoOdhxMW66/Xu6HPvxxPXkwSuiBizu2ATv0wR6pW3
-      x53g37Su3ZZ5FwKCAQEA+QwZPwLMZGFUN0l+u1dWgXtPgP28y+YFk8RDSJsUD5PT
-      EjIfe8jwbu0p2HbpJTwB9XvDnJ1yZ9hdtR+m5fa47P7+bgqU9Ivayt0VSHJmjPe4
-      zbBwXZhifRn5a/SZ5TzlZxKVZCfFjBPBq0VOYSX+pM/c9qvKpO/NK2ffO11fQmwf
-      S/Eba0NBjHPFrsSYBHezqpYG+cGKlZjSxdfpJO0gKc//QKdV1eE9n0yewpQ74QaN
-      cO4BDju2cMHLM/5KhpBTwdiLuU/NOdihhdgDc9ovGw7di7IIQy6XYUvlMzfL67vQ
-      dX7XRKlCzpKeeyBcPftvc1J1eVoIvxaOg9tmeTNZ+wKCAQBTJsbaZ1CY1BipqEl5
-      U/iIChbwL7fHklWRvGw6Jz5KRwcBKv5HD8W+ZGCbPxh81/FH4LXItAZtvYvmUewW
-      X6EEdM/RYGIxQpgQUQLPLRy+aOchA0vyXz0ZRXV0G0Z2wrtT83dp987DjM2phDPU
-      L60f2MgVKqGbJy17iqgNl2QtWoP/GQexFIjyCEnEOg7MnplmVdrD2bDYgWeJOUhL
-      6hn5TRjfiIfnBq0xHdJzEIP38kc2Vj5k1u6sUqJA+BmVvnkwB6KJ1QRjhZP2Pude
-      8E/pAGzX4vZTjmODFFtFXYGLH+KmIU2ZeAiZyYvoenoyoGGTwR6R1cAsApK9SWVk
-      kYqdAoIBAQDnACXaoEndQbnPnkgClLwUVcAksTYRGkZKDV0rV0yANmktE3jIZFU/
-      TpPlyEXw13wpqqaB+jhHwhUJD1bLLtHQYaS1hPMs8Rv71p0LGbGtR4kOoH1ZEyMn
-      TpRfYf3s91MBC+etgoZlq12T8zEEQy2yyWr3Edlgq1zuyeXxNmZJQei1k+oOz89Y
-      63mM5aTrX+wyaf4GY1Kb96hpAh+qtJeEsPzdh1jCja2OuI75hG0WB/HhsaEhBpnu
-      dJJ6o3+U2QIXZzgSpsaAxULs1rQ9HT9cJamxDW1Eg06+XJs3qqVm/koY8ZHSif0B
-      hlWhdx6YD0QM/4sfCDfcppuCCls+SDdJAoIBAGOmLLREQcl+ybvEkIcV/ZBEtTQG
-      lkKx7qp7dn1EKNDS12iahNprSL/kW56oQExe2ASnnRT0Og7mXk5nD6SowqbUBqEg
-      /KXRK+tujXHHnXq+lPPpOoCXZPRt0PxI10Nkutn8fYIfTu0oTbDp2K9nWP5vFhpP
-      PkFlXvAGNZbZ69VgDmNTqJZ1tSGTJKJqy/t8h49XNKRKmzNkbHFroLbeI5RTsNcW
-      +GWI3ciQTOkRCmaVFlMoQv/f8SFSRSfxk6lncb7gm9dS0j6Xvs+PgmHtNj1kNQk3
-      W4N2eiliSdd5DY6NUs5HJcH8tsxUZ6omhJ/2E5JozQ8WeQdwbe3AvCYRbmU=
-      -----END RSA PRIVATE KEY-----
-
-    jenkins_security_ldap_server: ${_param:cluster_vip_address}
-    jenkins_security_ldap_root_dn: ${_param:openldap_dn}
-    jenkins_security_ldap_manager_dn: "cn=admin,${_param:openldap_dn}"
-    jenkins_security_ldap_manager_password: ${_param:openldap_admin_password}
-    # XXX: doesn't work for some unknown reason
-#   jenkins_security_ldap_user_search_base: ou=people,${_param:openldap_dn}
-#   jenkins_security_ldap_group_search_base: ou=groups,${_param:openldap_dn}
-    # Jobs params
-    jenkins_gerrit_url: ssh://admin@${_param:haproxy_gerrit_bind_host}:${_param:haproxy_gerrit_ssh_bind_port}
-    jenkins_aptly_api_url: http://${_param:haproxy_aptly_api_bind_host}:${_param:haproxy_aptly_api_bind_port}
-    jenkins_aptly_url: http://${_param:haproxy_aptly_public_bind_host}:${_param:haproxy_aptly_public_bind_port}
-
-    # Gerrit
-    gerrit_auth_type: LDAP
-    gerrit_ldap_server: "ldap://${_param:cluster_vip_address}"
-    gerrit_ldap_bind_user: "cn=admin,${_param:openldap_dn}"
-    gerrit_ldap_bind_password: ${_param:openldap_admin_password}
-    gerrit_ldap_account_base: ou=people,${_param:openldap_dn}
-    gerrit_ldap_group_base: ou=groups,${_param:openldap_dn}
-    gerrit_admin_email: ${_param:admin_email}
-    gerrit_public_host: http://${_param:haproxy_gerrit_bind_host}:${_param:haproxy_gerrit_bind_port}
-    gerrit_admin_public_key: ${_param:jenkins_admin_public_key}
-    gerrit_admin_private_key: ${_param:jenkins_admin_private_key}
-    gerrit_admin_password: password
-
-    # Aptly
-    aptly_gpg_keypair_id: 6C0B7F8E
-    aptly_gpg_passphrase:
-    aptly_gpg_public_key: |
-      -----BEGIN PGP PUBLIC KEY BLOCK-----
-      Version: GnuPG v1
-      mQENBFhSxjwBCADDiI85tVV+Wu44LTySzY8+NiGHWrFDXpV1BfwS5I2L0YOtp334
-      Ma3toeBo9PJG0LBC31D1EseKIXcz+91j8m0WbFPd/r5H9aK1Qv8Mss6dNLUiz63/
-      zOI7VbfnH73dxGhDTN3rP2OaYFtw2L09nfcAunV5tyJuG2GrNYi7bOLeNQ3HR1mz
-      pA0cArmRbysfwKn+E82nwnglC4vQD7+UDoBMU1/82qqOZNdqMOAD1Rd9S4QG3q80
-      bI9Bc8sOOkrdUa4XWN8DdvaT/4z4evMjhbMjqo8m69+Z66EUrgL+PCYbEVeZt8g9
-      pcESB/2zv0w0PDifwKoHVkzplxGFrp5Q65TvABEBAAG0LEFUJlQgQ0kvQ0QgQXB0
-      bHkgc2lnbmluZyBrZXkgPGFwdGx5QGF0dC5jb20+iQE4BBMBAgAiBQJYUsY8AhsD
-      BgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRC5cJVmbAt/joBeB/0efCqtvYal
-      vfCM9VfOZ3nHebDO/Xy31QYJZyE/XBBaM29ZZos2p1p9pqybMz35DASsauDpbNv3
-      lO/DYAb4QXeiBlTk/2CbQlj7GTCYSzxKSAZf6PaGSE+xVfWLZe5pb36YQpFYFl80
-      17KpPT1LWbpyLD+NIa7UzK3PLcWTO7IdcqS4BZ8gEfVAyifZuyQubLU/u/uvqCdy
-      cP+kdYc6qIYWkTo63tlJFA/e1nwdRJ7pUXqTD3jx6BsMuwqovUSjPwpykeDnYpUG
-      AiDIWWN5Y8iM2EnHmHHnxVb/3BCzDUFS7McRE8a/8WXBNRfxfbqld/Lfg5e4QYYj
-      2nXFPx5ySuWDuQENBFhSxjwBCADAmHdXgfV8YIx68sCNgPzbLkrzmm1t3aitL/TS
-      3B2NC5rzLyBqUdSJSygz2sjZOQ5ju2PZqdw29gs/Ql5M2y9CJ1IDSVranhEJReKe
-      7fXDXTerMwzJPKhZghJev8xd3Za+QMmGWA8ME0LE6DHBsCkniNuzT2lx17Y6LrR+
-      lOhW/j34hwEDBePSZ2GBUbXel/CNh4pVapnrcC1gN161lIYgM6SVnMUHo/89W34k
-      mFee4m8BcNS+st7mJ5aFBXMSIdkWA/AYyWkRnZFIyZdZUjunNwL1tlHCPXds3II+
-      MVLdPB6fncicX1U6gzF8fk2w9Ckm8I1pf2FV057KDoGXA71vABEBAAGJAR8EGAEC
-      AAkFAlhSxjwCGwwACgkQuXCVZmwLf475Ggf+Iqw6ZNSE2lSmvOLhPihC8kLoW//n
-      0SC5axqiWQTXkCNlx0x4lTa60VRFvWOSn7meGmeqFxOE1jBeyXVUfae1NfJnKTpJ
-      aX2VovWu448CklyvJfzHCVRaMotu187LUv8swrfbFS0DVyGihPYw7FoF7oACEz2E
-      OESpmK0ZwMxbpeN0cBVz4mmfcbVqHS6BziD9Q52ocPl4sR0C1RDao1w/RLphNMQ1
-      CdmJnSRDhC2SzJI+Bsy+dPgf9XdvT8PlKKSTPGWR/fbBE51/q1DOQ3Awhwv6KlZA
-      w/ozIKtbsh74Q1wlxotO3FgbA2Pk9Zqb8ZabhJQCpegr/le92PFZMUywNA==
-      =jsLk
-      -----END PGP PUBLIC KEY BLOCK-----
-    aptly_gpg_private_key: |
-      -----BEGIN PGP PRIVATE KEY BLOCK-----
-      Version: GnuPG v1
-      lQOYBFhSxjwBCADDiI85tVV+Wu44LTySzY8+NiGHWrFDXpV1BfwS5I2L0YOtp334
-      Ma3toeBo9PJG0LBC31D1EseKIXcz+91j8m0WbFPd/r5H9aK1Qv8Mss6dNLUiz63/
-      zOI7VbfnH73dxGhDTN3rP2OaYFtw2L09nfcAunV5tyJuG2GrNYi7bOLeNQ3HR1mz
-      pA0cArmRbysfwKn+E82nwnglC4vQD7+UDoBMU1/82qqOZNdqMOAD1Rd9S4QG3q80
-      bI9Bc8sOOkrdUa4XWN8DdvaT/4z4evMjhbMjqo8m69+Z66EUrgL+PCYbEVeZt8g9
-      pcESB/2zv0w0PDifwKoHVkzplxGFrp5Q65TvABEBAAEAB/4hpOMkBlgGDEZWAy6b
-      geQmS7EcNZYvpdwojRWQ+KOETdIO9LVfmci4DTTsSk1PswPJFdy7tnYABf8ZQjqX
-      QnTTuWL63STHg/PxpWv2NuQHN7T9HuftDkdU90xT5+nG+U8JWXYLztXoD7FcKubw
-      7be899hTz5eMg4icKXNz8Gne2swLx1o9oOjWh5TNQBMC6oN72Og/yp00V+YuTf3G
-      fEYkUF+ONI3Me7Uwo99dTDGgbf4+fwSHweQkmMzi1ELm+JfD33rLtbIsCYM2lyWE
-      Qvp8vmpfu5svq/y4Rf4UbUDH1+jj7ES52dqH30uaq34xa/wVZwYbSeUOhBm3CWnp
-      VnP5BADWxVC3MWBNxDrsX7AbCA1EC5ha4wHtTEiYxjh5H96sDfXz3AvTNT54WN0k
-      UGtd5hEKJP7BnirRQOjTA1pAE5p2WjfR8qMIwMM7XPY2Y6FGqh3enbniCI8f7aGH
-      IvEOyWThXsTP/JtWemCjPyTD2FhWT0ZtI9jyfoyrsbImySZAKQQA6RHYiAnlEbUZ
-      ZYpa+Yy06+pSw5VdWIF+DEo1cQ4JpxNpiXI0K/36aowKsGzmJTrW71TvLALsDjKO
-      i31TCMYG1wRxL4Af/ri3JIe5uLXwAerkVAtV3JNMZluwqECa6xIL+bxho5V9mRqU
-      n+nNCVqmHI8h/qHnQCR6nsjTQKGKb1cD/39Z/E9PKQspcY+RHHRgLKzmbarRL8SO
-      lr/OwdHjASOBVIsCEzIp66arriQGLrXrIEYVi2iimvsuKlQ1n4qmql+Dy6aI9GG6
-      xEaQlbqqC3q1Ti8Q6kNd7xZSGDWunsbvR7M6+UpD0i24IQTNw4Fsr0054XU72Xww
-      n3tlIRrohA00QMy0LEFUJlQgQ0kvQ0QgQXB0bHkgc2lnbmluZyBrZXkgPGFwdGx5
-      QGF0dC5jb20+iQE4BBMBAgAiBQJYUsY8AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIe
-      AQIXgAAKCRC5cJVmbAt/joBeB/0efCqtvYalvfCM9VfOZ3nHebDO/Xy31QYJZyE/
-      XBBaM29ZZos2p1p9pqybMz35DASsauDpbNv3lO/DYAb4QXeiBlTk/2CbQlj7GTCY
-      SzxKSAZf6PaGSE+xVfWLZe5pb36YQpFYFl8017KpPT1LWbpyLD+NIa7UzK3PLcWT
-      O7IdcqS4BZ8gEfVAyifZuyQubLU/u/uvqCdycP+kdYc6qIYWkTo63tlJFA/e1nwd
-      RJ7pUXqTD3jx6BsMuwqovUSjPwpykeDnYpUGAiDIWWN5Y8iM2EnHmHHnxVb/3BCz
-      DUFS7McRE8a/8WXBNRfxfbqld/Lfg5e4QYYj2nXFPx5ySuWDnQOYBFhSxjwBCADA
-      mHdXgfV8YIx68sCNgPzbLkrzmm1t3aitL/TS3B2NC5rzLyBqUdSJSygz2sjZOQ5j
-      u2PZqdw29gs/Ql5M2y9CJ1IDSVranhEJReKe7fXDXTerMwzJPKhZghJev8xd3Za+
-      QMmGWA8ME0LE6DHBsCkniNuzT2lx17Y6LrR+lOhW/j34hwEDBePSZ2GBUbXel/CN
-      h4pVapnrcC1gN161lIYgM6SVnMUHo/89W34kmFee4m8BcNS+st7mJ5aFBXMSIdkW
-      A/AYyWkRnZFIyZdZUjunNwL1tlHCPXds3II+MVLdPB6fncicX1U6gzF8fk2w9Ckm
-      8I1pf2FV057KDoGXA71vABEBAAEAB/9WXQhHCVPXrkPQbkLCMXExqBScIEep2Jfm
-      8XZLh8EImoelPSDADGnOFxG0Dwu5vMgjGMixtmW1j6eDenNm63LJq3AvYRmIpxDk
-      o533vqVSMd7gukelhbnISXeLXV57SP5r2gmEYMB+nbR3L9gADsqlm81JHvcdwalJ
-      deAiUwvM1fUTMEK2DqVI3yb+wu+tST9IhBWEArqu0VOizyxj1D23+yH7wc0IbGCD
-      GP6fZwQQPCGNjFmdaSGwen75xpj6by4ZnYHBLr4SjXD8Z0XCulXcS9Q/xzDhb4M8
-      QPBSH6OjUQNqzXj0UIgJCT/hvTfcgj3pGY5oXsMJOgNQsLzxv/KhBADHf+JPvS1h
-      x2V+GbsgzGy76ku6lZ1Dv5Lo3zHzR7Kjl2aHFnDJZ9ttKT/U+di8Lfsj7JaloTTv
-      hEx/Zfz44j1wDCfeiStKZOphXsjTXICscNf6+N+bjh2IeaBw9USUHZgXkc0CenGv
-      GD8+gCKb6ZcWwC0U2u53dzhNOLDTzVXprQQA9yQHs/hx7rni6brHe3VlmXYUxLPr
-      CQNOPu2AW1cE48luAiddzZxJaoj2U+ZetdMXtgnTMApog4aLi74DZqFpwRUv+pNF
-      n0Xp91iPrW0M/5jBoqoNy2sSD0CxEbYOmSktkYa3jIUDHCMpAbLlqdG6kpBfQ3AI
-      S3fXmCN3jcd53wsD/R0MZlroX8KHMpAQgSyjzuQ3IQBiVKBVtXz58hj0gxVJ1clc
-      Z04jLrWiko4YBMqx/Er80dlwbWPAwIsfxBuvSXIDm2DB3TbiuWjZIomaj7FXsOr4
-      1LEL/WmEbmTIJTsVl/zzaDgCns9Yh2/C56YAQn8qu0vv0wR0xzXglXkYuofWQ8+J
-      AR8EGAECAAkFAlhSxjwCGwwACgkQuXCVZmwLf475Ggf+Iqw6ZNSE2lSmvOLhPihC
-      8kLoW//n0SC5axqiWQTXkCNlx0x4lTa60VRFvWOSn7meGmeqFxOE1jBeyXVUfae1
-      NfJnKTpJaX2VovWu448CklyvJfzHCVRaMotu187LUv8swrfbFS0DVyGihPYw7FoF
-      7oACEz2EOESpmK0ZwMxbpeN0cBVz4mmfcbVqHS6BziD9Q52ocPl4sR0C1RDao1w/
-      RLphNMQ1CdmJnSRDhC2SzJI+Bsy+dPgf9XdvT8PlKKSTPGWR/fbBE51/q1DOQ3Aw
-      hwv6KlZAw/ozIKtbsh74Q1wlxotO3FgbA2Pk9Zqb8ZabhJQCpegr/le92PFZMUyw
-      NA==
-      =MGAS
-      -----END PGP PRIVATE KEY BLOCK-----
-
-    # Pushkin
-    pushkin_db_user: pushkin
-    pushkin_db_user_password: pushkin
-    pushkin_db_host: ${_param:haproxy_postgresql_bind_host}
-    webhook_from: johndoe@mirantis.com
-    webhook_recipients: "johnnydoe@mirantis.com,janiedoe@mirantis.com"
-    webhook_login_id: 11
-    webhook_application_id: 23
-    webhook_sfdc_username: janeroe@mirantis.com
-
-    # SecurityMonkey
-    secmonkey_db_user: secmonkey
-    secmonkey_db_user_password: secmonkey
-    secmonkey_db_host: ${_param:haproxy_postgresql_bind_host}
-    security_monkey_openstack:
-      username: admin
-      password: password
-      auth_url: http://172.17.16.129/identity/v3
-
-    # Rundeck
-    rundeck_db_host: ${_param:haproxy_postgresql_bind_host}
-    rundeck_db_user: rundeck
-    rundeck_db_user_password: password
-    rundeck_postgresql_username: ${_param:rundeck_db_user}
-    rundeck_postgresql_password: ${_param:rundeck_db_user_password}
-    rundeck_postgresql_database: rundeck
-    rundeck_postgresql_host: ${_param:rundeck_db_host}
-    rundeck_cis_os_auth_url: http://172.17.16.129:5000/v3/auth/tokens
-    rundeck_cis_elasticsearch_url: http://${_param:haproxy_elasticsearch_bind_host}:${_param:haproxy_elasticsearch_http_bind_port}
-    rundeck_runbook_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBPHRctBuN16hVe05HxKeN1AqPqbjvWvqQ1zcr/sbJJXHgVBTACRD6G+DAi7SSJr7dLzyeNo042szJclsH/qf9h0tcytINATzye//x6MtzXZ4YIDkcd1Yhz1LRgCXk1PvIensJAdClYOymx+SRaJxEEzbLxgqhSnYOUY3xVGbUrgfXI9+ZG9hs9zfq5JEMRjQay5p+xuYv/wCoU+pbFPDmsW0hQ99O+XBHcwrpU3crkImetTM2WfnRlBkoJypLv/HicTJtnL91/BWcebvW50oxrEq1QQ82T1Wl3pQsJw24M48fXyl/HbF2QVP6O1Ptqr3O7cIByxJWHih3paZncVEj
-    rundeck_runbook_private_key: |
-      -----BEGIN RSA PRIVATE KEY-----
-      MIIEpAIBAAKCAQEAwTx0XLQbjdeoVXtOR8SnjdQKj6m471r6kNc3K/7GySVx4FQU
-      wAkQ+hvgwIu0kia+3S88njaNONrMyXJbB/6n/YdLXMrSDQE88nv/8ejLc12eGCA5
-      HHdWIc9S0YAl5NT7yHp7CQHQpWDspsfkkWicRBM2y8YKoUp2DlGN8VRm1K4H1yPf
-      mRvYbPc36uSRDEY0GsuafsbmL/8AqFPqWxTw5rFtIUPfTvlwR3MK6VN3K5CJnrUz
-      Nln50ZQZKCcqS7/x4nEybZy/dfwVnHm71udKMaxKtUEPNk9Vpd6ULCcNuDOPH18p
-      fx2xdkFT+jtT7aq9zu3CAcsSVh4od6WmZ3FRIwIDAQABAoIBAQCsnUNY2G7Quzec
-      /KQFyi7eq+6vPK596ihwIEAhpdqPLkrWWGWc0bx/n02a0nGAKOpQjPS6ZAKtKg7L
-      WMLmll4cRLJWdrtCcLuv5ILS5uBu8s7ZwFckDZo8Y4YYrT+sdXFhOcAUYLGwOa/M
-      oD2WgvsseHl3eDZgtDJXQhTo4jtleW4/ZETmduUBx2djSfwx2vv8N6V7+5bH2kvL
-      3PgR3PYp1uD+dPDy00SwuiWDDwljubQzpres8K4ikIWWaU4/t9TUBv+PJt3Kbavi
-      0ca+jdpRdPCW4QmEhNT+D10B3DCN9uVt9leCrYzvcrT1ElqiL4ODBefG0clKq64d
-      Zc59IVypAoGBAO2PX2qApylv+uuVe2dscH10qUjgYIuXeszJYtSCiPbu7yMcuFWo
-      c6sqU2/l/4vdd8qeHvS75VPzmX2QfF9p1EsL+LE5tzc3m54WfJ884LLI+nx8ynKU
-      HrbaLCGCK09bLNXM7XkFTe9s+XrJzgqdff/rF2nZHHyoqPObSgaG//HnAoGBANA8
-      TusN74PUX4ABLwGCLEd4/qRa0kgFtwngrcUY9XMWhrJUqi9tKJLN2URhqTbOzFA0
-      qv3n6TgZQSVH4ojmgL8EElSU2qKjDQ/jk/kEr5A+sBLdzXWZWdGv/BdB2yn95JH4
-      qoD4E9PWkNwz+e6I5PivXrVVIA0PEZ2cthutR/dlAoGBAORHzvfoEzpliijSZ1h2
-      Qw67iWUngH8DnJSnvRnbKkSoTBJgqd5eVnCX5r/zs4Ky2kdRdQvWd0QaJVgc/Pcv
-      GjrXkS60+JPOEvNyRmU6ue3z5Yi03lIGdhFeS+QTUw0Z31bAaz7NUxwNixtsS1u2
-      Bftj7QbhBFfiNyCJDDSDi/XnAoGAbsd2sIO0ZSypNZ7rk+Ddj5Rl26fZcKlhq+aU
-      a2OQyI42UE7MTvjCef760+8kp1yywwSR5wvmPYrp5lxsvqnp2jTfT5H1Ekqt20MV
-      6Ic+ov1GjHLlJ+fSKcR21ySY5KkGXUWt53iSi8L9Q7h/ARBgx4/8UXmc2HWoyHGj
-      S+wOeiUCgYA2EMH3QOP+LewScNkdgDr9e20+NxmZs+b0ZOk6JAUE+/YLSNDlRQZV
-      fL0f0cjIyCdKfv+nR4gdMnm8RDHBiAqrKK3X9tiZ0fGmPHB+OLwYV8wE1u9jkJDA
-      IJA5GNU+Uj6+WbPO+hGn3NBWfb7/tR3ojSv7cBf2eEUh/vLSE9joKA==
-      -----END RSA PRIVATE KEY-----
-
-  salt:
-    minion:
-      cert:
-        proxy:
-          alternative_names: "DNS:${_param:cluster_public_host}, DNS:*.${_param:cluster_public_host}, IP:${_param:control_vip_address}, IP:${_param:single_address}"
-          key_file: /etc/haproxy/ssl/${_param:cluster_public_host}.key
-          cert_file: /etc/haproxy/ssl/${_param:cluster_public_host}.crt
-          all_file: /etc/haproxy/ssl/${_param:cluster_public_host}-all.pem
-          ca_file: /etc/haproxy/ssl/${_param:salt_minion_ca_authority}-ca.crt
-          user: root
-          group: haproxy
-          mode: 640
-  haproxy:
-    proxy:
-      enabled: true
-  linux:
-    network:
-      resolv:
-        dns:
-        - 172.18.176.4
-        - 172.18.176.5
-        - 8.8.8.8
-    system:
-      package:
-        ca-certificates-java:
-          version: latest
diff --git a/classes/cluster/drivetrain_ha/init.yml b/classes/cluster/drivetrain_ha/init.yml
deleted file mode 100644
index f35b844..0000000
--- a/classes/cluster/drivetrain_ha/init.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-classes:
-- cluster.drivetrain_ha.cicd.control
-- cluster.drivetrain_ha.infra
-#- cluster.drivetrain_ha.cicd
-- cluster.overrides
-
diff --git a/classes/cluster/drivetrain_ha_clusters/cicd/control/slave.yml b/classes/cluster/drivetrain_ha_clusters/cicd/control/slave.yml
deleted file mode 100644
index d1106da..0000000
--- a/classes/cluster/drivetrain_ha_clusters/cicd/control/slave.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-classes:
-  - cluster.drivetrain_ha_clusters.cicd.control
-  - system.docker.swarm.manager
diff --git a/classes/cluster/drivetrain_ha_clusters/init.yml b/classes/cluster/drivetrain_ha_clusters/init.yml
deleted file mode 100644
index 4b03fbf..0000000
--- a/classes/cluster/drivetrain_ha_clusters/init.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-classes:
-- cluster.drivetrain_ha_clusters.infra
-- cluster.drivetrain_ha_clusters.cicd
-- cluster.overrides
-
diff --git a/classes/cluster/k8s_aio_calico/infra/config.yml b/classes/cluster/k8s-aio-calico/infra/config.yml
similarity index 98%
rename from classes/cluster/k8s_aio_calico/infra/config.yml
rename to classes/cluster/k8s-aio-calico/infra/config.yml
index fe16242..df7a183 100644
--- a/classes/cluster/k8s_aio_calico/infra/config.yml
+++ b/classes/cluster/k8s-aio-calico/infra/config.yml
@@ -8,7 +8,7 @@
 - system.mysql.client
 - system.reclass.storage.salt
 - system.reclass.storage.system.kubernetes_control_cluster
-- cluster.k8s_aio_calico
+- cluster.k8s-aio-calico
 parameters:
   _param:
     salt_master_base_environment: prd
diff --git a/classes/cluster/k8s_aio_calico/infra/init.yml b/classes/cluster/k8s-aio-calico/infra/init.yml
similarity index 95%
rename from classes/cluster/k8s_aio_calico/infra/init.yml
rename to classes/cluster/k8s-aio-calico/infra/init.yml
index d6bda6d..763d163 100644
--- a/classes/cluster/k8s_aio_calico/infra/init.yml
+++ b/classes/cluster/k8s-aio-calico/infra/init.yml
@@ -13,7 +13,7 @@
     # infra service addresses
     infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
-    infra_config_deploy_address: 192.168.10.100
+    infra_config_deploy_address: 192.168.10.90
 
     cluster_domain: virtual-mcp11-k8s-calico.local
     cluster_name: virtual-mcp11-k8s-calico
diff --git a/classes/cluster/k8s-aio-calico/init.yml b/classes/cluster/k8s-aio-calico/init.yml
new file mode 100644
index 0000000..190a1db
--- /dev/null
+++ b/classes/cluster/k8s-aio-calico/init.yml
@@ -0,0 +1,5 @@
+classes:
+- system.linux.network.dynamic_hosts
+- cluster.k8s-aio-calico.kubernetes
+- cluster.k8s-aio-calico.infra
+- cluster.overrides
diff --git a/classes/cluster/k8s_aio_calico/kubernetes/compute.yml b/classes/cluster/k8s-aio-calico/kubernetes/compute.yml
similarity index 98%
rename from classes/cluster/k8s_aio_calico/kubernetes/compute.yml
rename to classes/cluster/k8s-aio-calico/kubernetes/compute.yml
index 0190a19..9d3ece4 100644
--- a/classes/cluster/k8s_aio_calico/kubernetes/compute.yml
+++ b/classes/cluster/k8s-aio-calico/kubernetes/compute.yml
@@ -4,7 +4,7 @@
 - system.linux.network.hosts
 - system.salt.minion.cert.k8s_client
 - system.salt.minion.cert.etcd_client
-- cluster.k8s_aio_calico
+- cluster.k8s-aio-calico
 parameters:
   _param:
     kubernetes_calicoctl_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/ctl:latest
diff --git a/classes/cluster/k8s_aio_calico/kubernetes/control.yml b/classes/cluster/k8s-aio-calico/kubernetes/control.yml
similarity index 93%
rename from classes/cluster/k8s_aio_calico/kubernetes/control.yml
rename to classes/cluster/k8s-aio-calico/kubernetes/control.yml
index e353b1a..01f95e7 100644
--- a/classes/cluster/k8s_aio_calico/kubernetes/control.yml
+++ b/classes/cluster/k8s-aio-calico/kubernetes/control.yml
@@ -4,8 +4,8 @@
 - system.linux.system.repo.docker
 - system.salt.minion.cert.etcd_server
 - system.kubernetes.master.cluster
-- cluster.k8s_aio_calico.kubernetes.compute
-- cluster.k8s_aio_calico
+- cluster.k8s-aio-calico.kubernetes.compute
+- cluster.k8s-aio-calico
 parameters:
   _param:
     keepalived_vip_interface: ${_param:primary_interface}
diff --git a/classes/cluster/k8s_aio_calico/kubernetes/init.yml b/classes/cluster/k8s-aio-calico/kubernetes/init.yml
similarity index 100%
rename from classes/cluster/k8s_aio_calico/kubernetes/init.yml
rename to classes/cluster/k8s-aio-calico/kubernetes/init.yml
diff --git a/classes/cluster/k8s_aio_contrail/infra/config.yml b/classes/cluster/k8s-aio-contrail/infra/config.yml
similarity index 98%
rename from classes/cluster/k8s_aio_contrail/infra/config.yml
rename to classes/cluster/k8s-aio-contrail/infra/config.yml
index 8f67033..ad72fd0 100644
--- a/classes/cluster/k8s_aio_contrail/infra/config.yml
+++ b/classes/cluster/k8s-aio-contrail/infra/config.yml
@@ -8,7 +8,7 @@
 - system.salt.minion.cert.k8s_server
 - system.reclass.storage.system.kubernetes_control_cluster
 - system.reclass.storage.system.opencontrail_control_cluster
-- cluster.k8s_aio_contrail
+- cluster.k8s-aio-contrail
 parameters:
   _param:
     salt_master_base_environment: prd
diff --git a/classes/cluster/k8s_aio_contrail/infra/init.yml b/classes/cluster/k8s-aio-contrail/infra/init.yml
similarity index 86%
rename from classes/cluster/k8s_aio_contrail/infra/init.yml
rename to classes/cluster/k8s-aio-contrail/infra/init.yml
index 199beba..ec7c359 100644
--- a/classes/cluster/k8s_aio_contrail/infra/init.yml
+++ b/classes/cluster/k8s-aio-contrail/infra/init.yml
@@ -13,10 +13,10 @@
     # infra service addresses
     infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
-    infra_config_deploy_address: 192.168.10.100
+    infra_config_deploy_address: 192.168.10.90
 
-    cluster_domain: k8s_aio_contrail.local
-    cluster_name: k8s_aio_contrail
+    cluster_domain: k8s-aio-contrail.local
+    cluster_name: k8s-aio-contrail
     apt_mk_version: nightly
   linux:
     network:
diff --git a/classes/cluster/k8s-aio-contrail/init.yml b/classes/cluster/k8s-aio-contrail/init.yml
new file mode 100644
index 0000000..49eadbc
--- /dev/null
+++ b/classes/cluster/k8s-aio-contrail/init.yml
@@ -0,0 +1,6 @@
+classes:
+- system.linux.network.dynamic_hosts
+- cluster.k8s-aio-contrail.kubernetes
+- cluster.k8s-aio-contrail.opencontrail
+- cluster.k8s-aio-contrail.infra
+- cluster.overrides
diff --git a/classes/cluster/k8s_aio_contrail/kubernetes/compute.yml b/classes/cluster/k8s-aio-contrail/kubernetes/compute.yml
similarity index 93%
rename from classes/cluster/k8s_aio_contrail/kubernetes/compute.yml
rename to classes/cluster/k8s-aio-contrail/kubernetes/compute.yml
index 3ab2f0b..599685a 100644
--- a/classes/cluster/k8s_aio_contrail/kubernetes/compute.yml
+++ b/classes/cluster/k8s-aio-contrail/kubernetes/compute.yml
@@ -4,8 +4,8 @@
 - system.linux.network.hosts
 - system.salt.minion.cert.k8s_client
 - system.salt.minion.cert.etcd_client
-- cluster.k8s_aio_contrail.infra
-- cluster.k8s_aio_contrail.opencontrail.compute
+- cluster.k8s-aio-contrail.infra
+- cluster.k8s-aio-contrail.opencontrail.compute
 - cluster.overrides
 parameters:
   linux:
diff --git a/classes/cluster/k8s_aio_contrail/kubernetes/control.yml b/classes/cluster/k8s-aio-contrail/kubernetes/control.yml
similarity index 96%
rename from classes/cluster/k8s_aio_contrail/kubernetes/control.yml
rename to classes/cluster/k8s-aio-contrail/kubernetes/control.yml
index 1388fd0..e69ce70 100644
--- a/classes/cluster/k8s_aio_contrail/kubernetes/control.yml
+++ b/classes/cluster/k8s-aio-contrail/kubernetes/control.yml
@@ -4,7 +4,7 @@
 - system.linux.system.repo.docker
 - system.salt.minion.cert.etcd_server
 - system.kubernetes.master.cluster
-- cluster.k8s_aio_contrail.kubernetes.compute
+- cluster.k8s-aio-contrail.kubernetes.compute
 - cluster.overrides
 parameters:
   _param:
diff --git a/classes/cluster/k8s_aio_contrail/kubernetes/init.yml b/classes/cluster/k8s-aio-contrail/kubernetes/init.yml
similarity index 100%
rename from classes/cluster/k8s_aio_contrail/kubernetes/init.yml
rename to classes/cluster/k8s-aio-contrail/kubernetes/init.yml
diff --git a/classes/cluster/k8s_aio_contrail/opencontrail/compute.yml b/classes/cluster/k8s-aio-contrail/opencontrail/compute.yml
similarity index 100%
rename from classes/cluster/k8s_aio_contrail/opencontrail/compute.yml
rename to classes/cluster/k8s-aio-contrail/opencontrail/compute.yml
diff --git a/classes/cluster/k8s_aio_contrail/opencontrail/control.yml b/classes/cluster/k8s-aio-contrail/opencontrail/control.yml
similarity index 98%
rename from classes/cluster/k8s_aio_contrail/opencontrail/control.yml
rename to classes/cluster/k8s-aio-contrail/opencontrail/control.yml
index 4f008ca..e92d538 100644
--- a/classes/cluster/k8s_aio_contrail/opencontrail/control.yml
+++ b/classes/cluster/k8s-aio-contrail/opencontrail/control.yml
@@ -14,7 +14,7 @@
 - system.opencontrail.client.resource.database_node
 - system.opencontrail.client.resource.analytics_node
 - system.haproxy.proxy.listen.opencontrail.analytics
-- cluster.k8s_aio_contrail.infra
+- cluster.k8s-aio-contrail.infra
 parameters:
   _param:
     keepalived_vip_interface: eth1
diff --git a/classes/cluster/k8s_aio_contrail/opencontrail/init.yml b/classes/cluster/k8s-aio-contrail/opencontrail/init.yml
similarity index 100%
rename from classes/cluster/k8s_aio_contrail/opencontrail/init.yml
rename to classes/cluster/k8s-aio-contrail/opencontrail/init.yml
diff --git a/classes/cluster/k8s-ha-calico-cloudprovider/MAINTAINERS b/classes/cluster/k8s-ha-calico-cloudprovider/MAINTAINERS
new file mode 100644
index 0000000..b2f6555
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico-cloudprovider/MAINTAINERS
@@ -0,0 +1,2 @@
+Tomáš Kukrál <tkukral@mirantis.com>
+Matthew Mosesohn <mmosesohn@mirantis.com>
diff --git a/classes/cluster/k8s_ha_calico/infra/config.yml b/classes/cluster/k8s-ha-calico-cloudprovider/infra/config.yml
similarity index 98%
rename from classes/cluster/k8s_ha_calico/infra/config.yml
rename to classes/cluster/k8s-ha-calico-cloudprovider/infra/config.yml
index 23bdbb9..2cc72db 100644
--- a/classes/cluster/k8s_ha_calico/infra/config.yml
+++ b/classes/cluster/k8s-ha-calico-cloudprovider/infra/config.yml
@@ -7,7 +7,7 @@
 - system.salt.minion.cert.k8s_server
 - system.reclass.storage.salt
 - system.reclass.storage.system.kubernetes_control_cluster
-- cluster.k8s_ha_calico
+- cluster.k8s-ha-calico-cloudprovider
 parameters:
   _param:
     salt_master_base_environment: prd
diff --git a/classes/cluster/k8s-ha-calico-cloudprovider/infra/init.yml b/classes/cluster/k8s-ha-calico-cloudprovider/infra/init.yml
new file mode 100644
index 0000000..e637c3f
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico-cloudprovider/infra/init.yml
@@ -0,0 +1,74 @@
+classes:
+- system.linux.system.single
+- system.linux.system.repo.mcp.extra
+- system.linux.system.repo.mcp.salt
+- system.linux.system.repo.ubuntu
+- system.openssh.server.team.all
+parameters:
+  _param:
+    # infra service addresses
+    infra_config_hostname: cfg01
+    infra_config_address: 172.16.10.100
+    infra_config_deploy_address: 192.168.10.100
+
+    cluster_domain: virtual-mcp11-k8s-calico.local
+    cluster_name: virtual-mcp11-k8s-calico
+    apt_mk_version: nightly
+    primary_interface: ens3
+  linux:
+    network:
+      host:
+        cfg01:
+          address: ${_param:infra_config_address}
+          names:
+          - ${_param:infra_config_hostname}
+          - ${_param:infra_config_hostname}.${_param:cluster_domain}
+      interface:
+        primary_interface:
+          enabled: true
+          type: eth
+          proto: dhcp
+          #proto: static
+          #name: ${_param:primary_interface}
+          #address: ${_param:single_address}
+          #netmask: 255.255.255.0
+    system:
+      name: ${_param:infra_config_hostname}
+      domain: ${_param:cluster_domain}
+      ca_certificates:
+        devcloud: |
+           -----BEGIN CERTIFICATE-----
+           MIIGKjCCBBKgAwIBAgIICbpi+BPXABQwDQYJKoZIhvcNAQELBQAwSjELMAkGA1UE
+           BhMCY3oxFzAVBgNVBAMMDlNhbHQgTWFzdGVyIENBMQ8wDQYDVQQHDAZQcmFndWUx
+           ETAPBgNVBAoMCE1pcmFudGlzMB4XDTE3MDYyMTExMzQxNVoXDTE4MDYyMTExMzQx
+           NVowQTELMAkGA1UEBhMCY3oxDjAMBgNVBAMMBXByb3h5MQ8wDQYDVQQHDAZQcmFn
+           dWUxETAPBgNVBAoMCE1pcmFudGlzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+           CgKCAgEAxaQbBmjV5aQKSli1xiUDwUEXy1+TPnLVu8DkN8mrhSA4V9f5xrFxomH2
+           OCUMpI/HLjxCwEVS8JBK1aZFEW01GKfSC8hQ0cfXLU3vzg+16olOiB3Ft4fXpPWJ
+           SBKmO4ZGZCtdI/jWOZdblJhYkK3fG5jaji+QahVgK0uGgFceov5twd/p8ohus6i3
+           XB3k7yHZs5hEfqZmt7Y71EoTzTgE8tJy1/dqiS2TWsbrSj2Y/yPgrO1AVzY9TfXz
+           UZmcoI7Oe9h+sc33UdxgExizZAOl1ZO7Pq111ODUxK+PvqwIEEi0+Y41ZKMdN5EI
+           rBLzNibTUEOxni+K5v4ahpfZgji4S9t4c082QVMoQEcEHjFFV41oIhf/qtzQC1G1
+           6Oi2op8WjDU2na6hBDXbFQmCHMcho+iwrKBuQdgVG/Szji0i6BSmpw1xVIpHLAkH
+           sObOPi1dTGUyjfYvXA8DOUD1buiN0UWJ2NKO3Sp+YbUFl6CGy7pokRGyICXRvzTd
+           ws9tvgp5m8X288sKfQSGND50AaHxZYvX+Ff1UZsdxPawsJeOaNtkICRnoglAslsJ
+           hxZmO78rV6PYnG+p8sKOPLZmwl9HzgB/jjwk/ndHt5hWgnhYKX73zyxDZ6Jq2f4E
+           +T5wIDqWwUoz3e5IsUWr3SH7q5+TZTEUznBqPhZbwB9Vny8BJTMCAwEAAaOCARsw
+           ggEXMAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgXgMBMGA1UdJQQMMAoGCCsGAQUF
+           BwMBMB0GA1UdDgQWBBR6Q8QNLY1rotmzqtjBZ777QeScWDB6BgNVHSMEczBxgBQy
+           KqQXU4DK0VOUkD3A8Hw/bLOC4qFOpEwwSjELMAkGA1UEBhMCY3oxFzAVBgNVBAMM
+           DlNhbHQgTWFzdGVyIENBMQ8wDQYDVQQHDAZQcmFndWUxETAPBgNVBAoMCE1pcmFu
+           dGlzggkAzjIatJ+/akwwSgYDVR0RBEMwQYcEfwAAAYIZY2xvdWQtY3ouYnVkLm1p
+           cmFudGlzLm5ldIcErBEtUIIYaG9yaXpvbi5idWQubWlyYW50aXMubmV0MA0GCSqG
+           SIb3DQEBCwUAA4ICAQB6ptOZlNI1xE4v5axKIYq5GGYGxCygozeDu94Bl2zWB+ly
+           Q4iuzELyRCF+fEtHTr4r3xR0T69AvQc0cbMBeF/euKic/nwqzKxFAMR5dcksuSzF
+           qiLubsWie9iOjSJFUpjwdv/2Em9Msdho0vAFUm6Ew6HcLiIWULGDKwkZczmN/yY7
+           Ex1/IFIjtbb/YOd7Aezg2eeGs83i42y1T2EBxZflBtFEBcChHqrHBznO+j+5dG1t
+           ezwa+TNBDgkaQUd8ZcHdmlgdaDxqXc1GGFv2WRL43KILmbiq1ZRZ2L+/izi68BZ9
+           3+k8fAf1Jf4MSXfS4bRYxzVSUObYeUMPKBNkERaFepYktVpsbuGRY2aikF70Wsj9
+           1tDNXqzU1GWdiAxDzQ/JJ5t4OKwqQdjILJzXZ4v7byOs0AxqSZNNy6Fk6xFLGYlB
+           ofdurnst4LYNiV52ubW0zgEi49ar+crb5/x2Iw9CriFUhxAhQs9RS0anZRjKUQmL
+           dOgS5tLfxbr8BLUEWeqWTcfwGaIkVGCe/2ya49I8pl9uueTSurCbB7U4urFeUQ6I
+           GkGh17M7S4E6Uz02Qdxtah6FxWyluFEVi7XPyAT2HkQ5voTflN0ID1opRlZ1yb/5
+           B354vA5N0n1xLKPFDqKvZBVxPP6Ea4Kl0hONCGQvl1dsAu0aB49HWF0KwVGjZw==
+           -----END CERTIFICATE-----
diff --git a/classes/cluster/k8s-ha-calico-cloudprovider/init.yml b/classes/cluster/k8s-ha-calico-cloudprovider/init.yml
new file mode 100644
index 0000000..f353ea4
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico-cloudprovider/init.yml
@@ -0,0 +1,4 @@
+classes:
+- cluster.k8s-ha-calico-cloudprovider.kubernetes
+- cluster.k8s-ha-calico-cloudprovider.infra
+- cluster.overrides
diff --git a/classes/cluster/k8s_aio_calico/kubernetes/compute.yml b/classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/compute.yml
similarity index 74%
copy from classes/cluster/k8s_aio_calico/kubernetes/compute.yml
copy to classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/compute.yml
index 0190a19..c32f2c5 100644
--- a/classes/cluster/k8s_aio_calico/kubernetes/compute.yml
+++ b/classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/compute.yml
@@ -4,7 +4,7 @@
 - system.linux.network.hosts
 - system.salt.minion.cert.k8s_client
 - system.salt.minion.cert.etcd_client
-- cluster.k8s_aio_calico
+- cluster.k8s-ha-calico-cloudprovider
 parameters:
   _param:
     kubernetes_calicoctl_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/ctl:latest
@@ -32,6 +32,17 @@
     common:
       hyperkube:
         image: ${_param:kubernetes_hyperkube_image}
+      cloudprovider:
+        enabled: true
+        provider: openstack
+        params:
+          auth_url: ${_param:openstack_auth_url}
+          region_name: ${_param:openstack_region_name}
+          tenant_name: ${_param:openstack_tenant_name}
+          username: ${_param:openstack_username}
+          password: ${_param:openstack_password}
+          subnet_id: ${_param:openstack_subnet_id}
+          floating_network_id: ${_param:openstack_floating_network_id}
   linux:
     network:
       resolv:
diff --git a/classes/cluster/k8s_ha_calico/kubernetes/control.yml b/classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/control.yml
similarity index 71%
copy from classes/cluster/k8s_ha_calico/kubernetes/control.yml
copy to classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/control.yml
index c6dd6ab..a4fe26c 100644
--- a/classes/cluster/k8s_ha_calico/kubernetes/control.yml
+++ b/classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/control.yml
@@ -4,8 +4,8 @@
 - system.linux.system.repo.docker
 - system.salt.minion.cert.etcd_server
 - system.kubernetes.master.cluster
-- cluster.k8s_ha_calico.kubernetes.compute
-- cluster.k8s_ha_calico
+- cluster.k8s-ha-calico-cloudprovider.kubernetes.compute
+- cluster.k8s-ha-calico-cloudprovider
 # FIXME: replace service.helm to system.helm (once properly in reclass)
 - service.helm.client
 parameters:
@@ -41,6 +41,17 @@
           enabled: true
         helm:
           enabled: false
+      cloudprovider:
+        enabled: true
+        provider: openstack
+        params:
+          auth_url: ${_param:openstack_auth_url}
+          region_name: ${_param:openstack_region_name}
+          tenant_name: ${_param:openstack_tenant_name}
+          username: ${_param:openstack_username}
+          password: ${_param:openstack_password}
+          subnet_id: ${_param:openstack_subnet_id}
+          floating_network_id: ${_param:openstack_floating_network_id}
     master:
       etcd:
         ssl:
diff --git a/classes/cluster/k8s_ha_contrail/kubernetes/init.yml b/classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/init.yml
similarity index 67%
copy from classes/cluster/k8s_ha_contrail/kubernetes/init.yml
copy to classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/init.yml
index 9a7f189..8baf8b1 100644
--- a/classes/cluster/k8s_ha_contrail/kubernetes/init.yml
+++ b/classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/init.yml
@@ -1,4 +1,3 @@
-
 parameters:
   _param:
     salt_minion_ca_host: ${_param:infra_config_hostname}.${_param:cluster_domain}
@@ -15,15 +14,6 @@
     kubernetes_dns_token: 0S1I4iJeFjq5fopPwwCwTp3xFpEZfeUl
     etcd_initial_token: IN7KaRMSo3xkGxkjAAPtkRkAgqN4ZNRq
 
-    # component docker images
-    kubernetes_calicoctl_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/ctl:latest
-    kubernetes_calico_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/node:latest
-    kubernetes_calico_cni_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/cni:latest
-    kubernetes_opencontrail_cni_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/contrail-integration/contrail-cni:v1.0.0
-    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.3-1
-    kubernetes_netchecker_agent_image: quay.io/l23network/k8s-netchecker-agent:v1.0
-    kubernetes_netchecker_server_image: quay.io/l23network/k8s-netchecker-server:v1.0
-
     # addresses and hostnames
     kubernetes_internal_api_address: 10.254.0.1
     kubernetes_control_hostname: ctl
@@ -34,33 +24,37 @@
     kubernetes_control_node01_address: 172.16.10.101
     kubernetes_control_node02_address: 172.16.10.102
     kubernetes_control_node03_address: 172.16.10.103
-    kubernetes_control_node01_deploy_address: 192.168.10.101
-    kubernetes_control_node02_deploy_address: 192.168.10.102
-    kubernetes_control_node03_deploy_address: 192.168.10.103
-    etcd_control_node01_address: 192.168.10.101
-    etcd_control_node02_address: 192.168.10.102
-    etcd_control_node03_address: 192.168.10.103
     kubernetes_proxy_node01_hostname: prx01
     kubernetes_proxy_node01_address: 172.16.10.121
 
     cluster_vip_address: ${_param:kubernetes_control_address}
-    cluster_local_address: ${_param:deploy_address}
+    cluster_local_address: ${_param:single_address}
 
     # etcd stuff
     cluster_node01_hostname: ${_param:kubernetes_control_node01_hostname}
-    cluster_node01_address: ${_param:etcd_control_node01_address}
+    cluster_node01_address: ${_param:kubernetes_control_node01_address}
     cluster_node01_port: 4001
     cluster_node02_hostname: ${_param:kubernetes_control_node02_hostname}
-    cluster_node02_address: ${_param:etcd_control_node02_address}
+    cluster_node02_address: ${_param:kubernetes_control_node02_address}
     cluster_node02_port: 4001
     cluster_node03_hostname: ${_param:kubernetes_control_node03_hostname}
-    cluster_node03_address: ${_param:etcd_control_node03_address}
+    cluster_node03_address: ${_param:kubernetes_control_node03_address}
     cluster_node03_port: 4001
 
     # calico
     calico_private_network: 192.168.0.0
     calico_private_netmask: 16
 
+    # OpenStack cloud provider
+    openstack_auth_url: https://cloud-cz.bud.mirantis.net:5000/v3
+    openstack_region_name: RegionOne
+    openstack_tenant_name: k8s-openstack-provider
+    openstack_username: k8s-openstack-provider
+    openstack_password: hjk5ers794wep
+    # Set this with heat template or overrides.yml
+    openstack_subnet_id: null
+    openstack_floating_network_id: 3e868882-d59e-416a-90a1-48cc04cab723
+
   linux:
     network:
       host:
@@ -89,3 +83,26 @@
           names:
           - ${_param:kubernetes_proxy_node01_hostname}
           - ${_param:kubernetes_proxy_node01_hostname}.${_param:cluster_domain}
+    linux:
+      network:
+        interface:
+          primary_interface:
+            route:
+              # TODO: Remove comment.
+              # Will work once CI has this in linux formula (packaged): https://gerrit.mcp.mirantis.net/#/c/8952
+              kubernetes_internal:
+                address: 10.254.0.0
+                netmask: 255.255.0.0
+    system:
+      rc:
+        local: |
+          #!/bin/sh -e
+          #
+          # rc.local
+          #
+          ######### This file is managed by Salt! ##########
+          # This script is executed at the end of each multiuser runlevel.
+          # Make sure that the script will "exit 0" on success or any other
+          # value on error.
+          #
+          exit 0
diff --git a/classes/cluster/k8s_ha_calico_syndic/infra/config.yml b/classes/cluster/k8s-ha-calico-syndic/infra/config.yml
similarity index 98%
rename from classes/cluster/k8s_ha_calico_syndic/infra/config.yml
rename to classes/cluster/k8s-ha-calico-syndic/infra/config.yml
index 0bd7355..4e96666 100644
--- a/classes/cluster/k8s_ha_calico_syndic/infra/config.yml
+++ b/classes/cluster/k8s-ha-calico-syndic/infra/config.yml
@@ -7,7 +7,7 @@
 - system.salt.minion.cert.k8s_server
 - system.reclass.storage.salt
 - system.reclass.storage.system.kubernetes_control_cluster
-- cluster.k8s_ha_calico_syndic
+- cluster.k8s-ha-calico-syndic
 parameters:
   _param:
     salt_master_base_environment: prd
diff --git a/classes/cluster/k8s_ha_calico_syndic/infra/init.yml b/classes/cluster/k8s-ha-calico-syndic/infra/init.yml
similarity index 100%
rename from classes/cluster/k8s_ha_calico_syndic/infra/init.yml
rename to classes/cluster/k8s-ha-calico-syndic/infra/init.yml
diff --git a/classes/cluster/k8s-ha-calico-syndic/init.yml b/classes/cluster/k8s-ha-calico-syndic/init.yml
new file mode 100644
index 0000000..11a3633
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico-syndic/init.yml
@@ -0,0 +1,5 @@
+classes:
+- system.linux.network.dynamic_hosts
+- cluster.k8s-ha-calico-syndic.kubernetes
+- cluster.k8s-ha-calico-syndic.infra
+- cluster.overrides
diff --git a/classes/cluster/k8s_ha_calico_syndic/kubernetes/compute.yml b/classes/cluster/k8s-ha-calico-syndic/kubernetes/compute.yml
similarity index 97%
rename from classes/cluster/k8s_ha_calico_syndic/kubernetes/compute.yml
rename to classes/cluster/k8s-ha-calico-syndic/kubernetes/compute.yml
index a665ab1..6c55d47 100644
--- a/classes/cluster/k8s_ha_calico_syndic/kubernetes/compute.yml
+++ b/classes/cluster/k8s-ha-calico-syndic/kubernetes/compute.yml
@@ -4,7 +4,7 @@
 - system.linux.network.hosts
 - system.salt.minion.cert.k8s_client
 - system.salt.minion.cert.etcd_client
-- cluster.k8s_ha_calico_syndic
+- cluster.k8s-ha-calico-syndic
 parameters:
   _param:
     kubernetes_calicoctl_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/ctl:latest
diff --git a/classes/cluster/k8s_ha_calico_syndic/kubernetes/control.yml b/classes/cluster/k8s-ha-calico-syndic/kubernetes/control.yml
similarity index 92%
rename from classes/cluster/k8s_ha_calico_syndic/kubernetes/control.yml
rename to classes/cluster/k8s-ha-calico-syndic/kubernetes/control.yml
index 1beef82..ab73b9b 100644
--- a/classes/cluster/k8s_ha_calico_syndic/kubernetes/control.yml
+++ b/classes/cluster/k8s-ha-calico-syndic/kubernetes/control.yml
@@ -4,8 +4,8 @@
 - system.linux.system.repo.docker
 - system.salt.minion.cert.etcd_server
 - system.kubernetes.master.cluster
-- cluster.k8s_ha_calico_syndic.kubernetes.compute
-- cluster.k8s_ha_calico_syndic
+- cluster.k8s-ha-calico-syndic.kubernetes.compute
+- cluster.k8s-ha-calico-syndic
 parameters:
   _param:
     keepalived_vip_interface: ${_param:primary_interface}
diff --git a/classes/cluster/k8s_ha_calico_syndic/kubernetes/init.yml b/classes/cluster/k8s-ha-calico-syndic/kubernetes/init.yml
similarity index 100%
rename from classes/cluster/k8s_ha_calico_syndic/kubernetes/init.yml
rename to classes/cluster/k8s-ha-calico-syndic/kubernetes/init.yml
diff --git a/classes/cluster/k8s_ha_calico/MAINTAINERS b/classes/cluster/k8s-ha-calico/MAINTAINERS
similarity index 100%
rename from classes/cluster/k8s_ha_calico/MAINTAINERS
rename to classes/cluster/k8s-ha-calico/MAINTAINERS
diff --git a/classes/cluster/k8s_ha_calico/infra/config.yml b/classes/cluster/k8s-ha-calico/infra/config.yml
similarity index 98%
copy from classes/cluster/k8s_ha_calico/infra/config.yml
copy to classes/cluster/k8s-ha-calico/infra/config.yml
index 23bdbb9..04e2380 100644
--- a/classes/cluster/k8s_ha_calico/infra/config.yml
+++ b/classes/cluster/k8s-ha-calico/infra/config.yml
@@ -7,7 +7,7 @@
 - system.salt.minion.cert.k8s_server
 - system.reclass.storage.salt
 - system.reclass.storage.system.kubernetes_control_cluster
-- cluster.k8s_ha_calico
+- cluster.k8s-ha-calico
 parameters:
   _param:
     salt_master_base_environment: prd
diff --git a/classes/cluster/k8s_ha_calico/infra/init.yml b/classes/cluster/k8s-ha-calico/infra/init.yml
similarity index 95%
rename from classes/cluster/k8s_ha_calico/infra/init.yml
rename to classes/cluster/k8s-ha-calico/infra/init.yml
index 62922ee..253e3f6 100644
--- a/classes/cluster/k8s_ha_calico/infra/init.yml
+++ b/classes/cluster/k8s-ha-calico/infra/init.yml
@@ -9,7 +9,7 @@
     # infra service addresses
     infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
-    infra_config_deploy_address: 192.168.10.100
+    infra_config_deploy_address: 192.168.10.90
 
     cluster_domain: virtual-mcp11-k8s-calico.local
     cluster_name: virtual-mcp11-k8s-calico
diff --git a/classes/cluster/k8s-ha-calico/init.yml b/classes/cluster/k8s-ha-calico/init.yml
new file mode 100644
index 0000000..f98b325
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico/init.yml
@@ -0,0 +1,5 @@
+classes:
+- system.linux.network.dynamic_hosts
+- cluster.k8s-ha-calico.kubernetes
+- cluster.k8s-ha-calico.infra
+- cluster.overrides
diff --git a/classes/cluster/k8s_aio_calico/kubernetes/compute.yml b/classes/cluster/k8s-ha-calico/kubernetes/compute.yml
similarity index 98%
copy from classes/cluster/k8s_aio_calico/kubernetes/compute.yml
copy to classes/cluster/k8s-ha-calico/kubernetes/compute.yml
index 0190a19..6a1637f 100644
--- a/classes/cluster/k8s_aio_calico/kubernetes/compute.yml
+++ b/classes/cluster/k8s-ha-calico/kubernetes/compute.yml
@@ -4,7 +4,7 @@
 - system.linux.network.hosts
 - system.salt.minion.cert.k8s_client
 - system.salt.minion.cert.etcd_client
-- cluster.k8s_aio_calico
+- cluster.k8s-ha-calico
 parameters:
   _param:
     kubernetes_calicoctl_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/ctl:latest
diff --git a/classes/cluster/k8s_ha_calico/kubernetes/control.yml b/classes/cluster/k8s-ha-calico/kubernetes/control.yml
similarity index 95%
rename from classes/cluster/k8s_ha_calico/kubernetes/control.yml
rename to classes/cluster/k8s-ha-calico/kubernetes/control.yml
index c6dd6ab..e45aea5 100644
--- a/classes/cluster/k8s_ha_calico/kubernetes/control.yml
+++ b/classes/cluster/k8s-ha-calico/kubernetes/control.yml
@@ -4,8 +4,8 @@
 - system.linux.system.repo.docker
 - system.salt.minion.cert.etcd_server
 - system.kubernetes.master.cluster
-- cluster.k8s_ha_calico.kubernetes.compute
-- cluster.k8s_ha_calico
+- cluster.k8s-ha-calico.kubernetes.compute
+- cluster.k8s-ha-calico
 # FIXME: replace service.helm to system.helm (once properly in reclass)
 - service.helm.client
 parameters:
diff --git a/classes/cluster/k8s_ha_calico/kubernetes/init.yml b/classes/cluster/k8s-ha-calico/kubernetes/init.yml
similarity index 100%
rename from classes/cluster/k8s_ha_calico/kubernetes/init.yml
rename to classes/cluster/k8s-ha-calico/kubernetes/init.yml
diff --git a/classes/cluster/k8s_ha_contrail/MAINTAINERS b/classes/cluster/k8s-ha-contrail/MAINTAINERS
similarity index 100%
rename from classes/cluster/k8s_ha_contrail/MAINTAINERS
rename to classes/cluster/k8s-ha-contrail/MAINTAINERS
diff --git a/classes/cluster/k8s_ha_contrail/infra/config.yml b/classes/cluster/k8s-ha-contrail/infra/config.yml
similarity index 99%
rename from classes/cluster/k8s_ha_contrail/infra/config.yml
rename to classes/cluster/k8s-ha-contrail/infra/config.yml
index 6e0dbfe..1b9e70d 100644
--- a/classes/cluster/k8s_ha_contrail/infra/config.yml
+++ b/classes/cluster/k8s-ha-contrail/infra/config.yml
@@ -8,7 +8,7 @@
 - system.salt.minion.cert.k8s_server
 - system.reclass.storage.system.kubernetes_control_cluster
 - system.reclass.storage.system.opencontrail_control_cluster
-- cluster.k8s_ha_contrail
+- cluster.k8s-ha-contrail
 parameters:
   _param:
     salt_master_base_environment: prd
diff --git a/classes/cluster/k8s_ha_contrail/infra/init.yml b/classes/cluster/k8s-ha-contrail/infra/init.yml
similarity index 85%
rename from classes/cluster/k8s_ha_contrail/infra/init.yml
rename to classes/cluster/k8s-ha-contrail/infra/init.yml
index a624371..5fbbbea 100644
--- a/classes/cluster/k8s_ha_contrail/infra/init.yml
+++ b/classes/cluster/k8s-ha-contrail/infra/init.yml
@@ -7,10 +7,10 @@
     # infra service addresses
     infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
-    infra_config_deploy_address: 192.168.10.100
+    infra_config_deploy_address: 192.168.10.90
 
-    cluster_domain: k8s_ha_contrail.local
-    cluster_name: k8s_ha_contrail
+    cluster_domain: k8s-ha-contrail.local
+    cluster_name: k8s-ha-contrail
     apt_mk_version: nightly
   linux:
     network:
diff --git a/classes/cluster/k8s-ha-contrail/init.yml b/classes/cluster/k8s-ha-contrail/init.yml
new file mode 100644
index 0000000..ee4126e
--- /dev/null
+++ b/classes/cluster/k8s-ha-contrail/init.yml
@@ -0,0 +1,11 @@
+classes:
+- system.linux.network.dynamic_hosts
+- system.linux.system.single
+- cluster.k8s-ha-contrail.kubernetes
+- cluster.k8s-ha-contrail.opencontrail
+- cluster.k8s-ha-contrail.infra
+- system.openssh.server.team.lab
+- system.openssh.server.team.tcpcloud
+- system.openssh.server.team.mcp_qa
+- system.openssh.server.team.k8s_team
+- cluster.overrides
diff --git a/classes/cluster/k8s_ha_contrail/kubernetes/compute.yml b/classes/cluster/k8s-ha-contrail/kubernetes/compute.yml
similarity index 74%
rename from classes/cluster/k8s_ha_contrail/kubernetes/compute.yml
rename to classes/cluster/k8s-ha-contrail/kubernetes/compute.yml
index 1424aec..f57d1ab 100644
--- a/classes/cluster/k8s_ha_contrail/kubernetes/compute.yml
+++ b/classes/cluster/k8s-ha-contrail/kubernetes/compute.yml
@@ -4,8 +4,8 @@
 - system.linux.network.hosts
 - system.salt.minion.cert.k8s_client
 - system.salt.minion.cert.etcd_client
-- cluster.k8s_ha_contrail.opencontrail.compute
-- cluster.k8s_ha_contrail
+- cluster.k8s-ha-contrail.opencontrail.compute
+- cluster.k8s-ha-contrail
 parameters:
   linux:
     network:
@@ -28,7 +28,7 @@
   docker:
     host:
       pkgs:
-        - docker-engine=1.12.6-0~ubuntu-xenial
+        - ${_param:kubernetes_docker_package}
         - python-docker
       options:
         bip: 172.31.255.1/24
@@ -50,5 +50,13 @@
         contrail_cni:
           image: ${_param:kubernetes_opencontrail_cni_image}
     common:
+      addons:
+        virtlet:
+          enabled: ${_param:kubernetes_virtlet_enabled}
+          namespace: ${_param:kubernetes_addon_namespace}
+          image: ${_param:kubernetes_virtlet_image}
+          hosts:
+          - ${_param:kubernetes_compute_node01_hostname}
+          - ${_param:kubernetes_compute_node02_hostname}
       hyperkube:
         image: ${_param:kubernetes_hyperkube_image}
diff --git a/classes/cluster/k8s_ha_contrail/kubernetes/control.yml b/classes/cluster/k8s-ha-contrail/kubernetes/control.yml
similarity index 73%
rename from classes/cluster/k8s_ha_contrail/kubernetes/control.yml
rename to classes/cluster/k8s-ha-contrail/kubernetes/control.yml
index 7befd55..67b7254 100644
--- a/classes/cluster/k8s_ha_contrail/kubernetes/control.yml
+++ b/classes/cluster/k8s-ha-contrail/kubernetes/control.yml
@@ -4,8 +4,8 @@
 - system.linux.system.repo.docker
 - system.salt.minion.cert.etcd_server
 - system.kubernetes.master.cluster
-- cluster.k8s_ha_contrail.kubernetes.compute
-- cluster.k8s_ha_contrail
+- cluster.k8s-ha-contrail.kubernetes.compute
+- cluster.k8s-ha-contrail
 parameters:
   _param:
     keepalived_vip_interface: ens3
@@ -25,12 +25,18 @@
   kubernetes:
     common:
       addons:
+        dashboard:
+          enabled: ${_param:kubernetes_dashboard}
+        helm:
+          enabled: ${_param:kubernetes_helm_enabled}
         netchecker:
-          enabled: true
+          enabled: ${_param:kubernetes_netchecker_enabled}
           agent_image: ${_param:kubernetes_netchecker_agent_image}
           server_image: ${_param:kubernetes_netchecker_server_image}
-        helm:
-          enabled: true
+        contrail_network_controller:
+          namespace: ${_param:kubernetes_addon_namespace}
+          enabled: {_param:kubernetes_contrail_network_controller}
+          image: ${_param:kubernetes_contrail_network_controller_image}
     master:
       etcd:
         ssl:
diff --git a/classes/cluster/k8s_ha_contrail/kubernetes/init.yml b/classes/cluster/k8s-ha-contrail/kubernetes/init.yml
similarity index 84%
rename from classes/cluster/k8s_ha_contrail/kubernetes/init.yml
rename to classes/cluster/k8s-ha-contrail/kubernetes/init.yml
index 9a7f189..2abddda 100644
--- a/classes/cluster/k8s_ha_contrail/kubernetes/init.yml
+++ b/classes/cluster/k8s-ha-contrail/kubernetes/init.yml
@@ -15,14 +15,30 @@
     kubernetes_dns_token: 0S1I4iJeFjq5fopPwwCwTp3xFpEZfeUl
     etcd_initial_token: IN7KaRMSo3xkGxkjAAPtkRkAgqN4ZNRq
 
+    # docker package version
+    kubernetes_docker_package: docker-engine=1.12.6-0~ubuntu-xenial
+
     # component docker images
     kubernetes_calicoctl_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/ctl:latest
     kubernetes_calico_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/node:latest
     kubernetes_calico_cni_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/cni:latest
     kubernetes_opencontrail_cni_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/contrail-integration/contrail-cni:v1.0.0
+
     kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.3-1
-    kubernetes_netchecker_agent_image: quay.io/l23network/k8s-netchecker-agent:v1.0
-    kubernetes_netchecker_server_image: quay.io/l23network/k8s-netchecker-server:v1.0
+    kubernetes_virtlet_image: mirantis/virtlet:latest
+    kubernetes_netchecker_agent_image: mirantis/k8s-netchecker-agent:v1.1.0
+    kubernetes_netchecker_server_image: mirantis/k8s-netchecker-server:v1.1.0
+    kubernetes_netchecker_agent_probeurls: "http://ipinfo.io"
+    kubernetes_virtlet_image: mirantis/virtlet:v0.7.0
+
+    # switches of addons
+    kubernetes_addon_namespace: kube-system
+    kubernetes_dashboard: false
+    kubernetes_helm_enabled: true
+    kubernetes_netchecker_enabled: true
+    kubernetes_calico_policy_enabled: false
+    kubernetes_virtlet_enabled: false
+    kubernetes_contrail_network_controller: true
 
     # addresses and hostnames
     kubernetes_internal_api_address: 10.254.0.1
diff --git a/classes/cluster/k8s_ha_contrail/opencontrail/compute.yml b/classes/cluster/k8s-ha-contrail/opencontrail/compute.yml
similarity index 94%
rename from classes/cluster/k8s_ha_contrail/opencontrail/compute.yml
rename to classes/cluster/k8s-ha-contrail/opencontrail/compute.yml
index d6f92b6..3e3c1f4 100644
--- a/classes/cluster/k8s_ha_contrail/opencontrail/compute.yml
+++ b/classes/cluster/k8s-ha-contrail/opencontrail/compute.yml
@@ -3,6 +3,7 @@
 - system.opencontrail.compute.cluster
 - system.opencontrail.client.cluster
 - system.opencontrail.client.resource.virtual_router
+- system.opencontrail.client.resource.k8s_api
 parameters:
   _param:
     opencontrail_compute_address: ${_param:single_address}
diff --git a/classes/cluster/k8s_aio_contrail/opencontrail/control.yml b/classes/cluster/k8s-ha-contrail/opencontrail/control.yml
similarity index 98%
copy from classes/cluster/k8s_aio_contrail/opencontrail/control.yml
copy to classes/cluster/k8s-ha-contrail/opencontrail/control.yml
index 4f008ca..0c101cc 100644
--- a/classes/cluster/k8s_aio_contrail/opencontrail/control.yml
+++ b/classes/cluster/k8s-ha-contrail/opencontrail/control.yml
@@ -14,7 +14,7 @@
 - system.opencontrail.client.resource.database_node
 - system.opencontrail.client.resource.analytics_node
 - system.haproxy.proxy.listen.opencontrail.analytics
-- cluster.k8s_aio_contrail.infra
+- cluster.k8s-ha-contrail
 parameters:
   _param:
     keepalived_vip_interface: eth1
diff --git a/classes/cluster/k8s_aio_contrail/opencontrail/init.yml b/classes/cluster/k8s-ha-contrail/opencontrail/init.yml
similarity index 100%
copy from classes/cluster/k8s_aio_contrail/opencontrail/init.yml
copy to classes/cluster/k8s-ha-contrail/opencontrail/init.yml
diff --git a/classes/cluster/k8s_aio_calico/init.yml b/classes/cluster/k8s_aio_calico/init.yml
deleted file mode 100644
index de54caf..0000000
--- a/classes/cluster/k8s_aio_calico/init.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-classes:
-- cluster.k8s_aio_calico.kubernetes
-- cluster.k8s_aio_calico.infra
-- cluster.overrides
diff --git a/classes/cluster/k8s_aio_contrail/init.yml b/classes/cluster/k8s_aio_contrail/init.yml
deleted file mode 100644
index d50636e..0000000
--- a/classes/cluster/k8s_aio_contrail/init.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-classes:
-- cluster.k8s_aio_contrail.kubernetes
-- cluster.k8s_aio_contrail.opencontrail
-- cluster.k8s_aio_contrail.infra
-- cluster.overrides
diff --git a/classes/cluster/k8s_ha_calico/init.yml b/classes/cluster/k8s_ha_calico/init.yml
deleted file mode 100644
index c672dd1..0000000
--- a/classes/cluster/k8s_ha_calico/init.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-classes:
-- cluster.k8s_ha_calico.kubernetes
-- cluster.k8s_ha_calico.infra
-- cluster.overrides
diff --git a/classes/cluster/k8s_ha_calico/kubernetes/compute.yml b/classes/cluster/k8s_ha_calico/kubernetes/compute.yml
deleted file mode 100644
index d1ffd64..0000000
--- a/classes/cluster/k8s_ha_calico/kubernetes/compute.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-classes:
-- system.linux.system.repo.docker
-- system.kubernetes.pool.cluster
-- system.linux.network.hosts
-- system.salt.minion.cert.k8s_client
-- system.salt.minion.cert.etcd_client
-- cluster.k8s_ha_calico
-parameters:
-  _param:
-    kubernetes_calicoctl_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/ctl:latest
-    kubernetes_calico_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/node:latest
-    kubernetes_calico_cni_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/cni:latest
-    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.3-1
-  docker:
-    host:
-      pkgs:
-        - docker-engine=1.12.6-0~ubuntu-xenial
-        - python-docker
-      options:
-        bip: 172.31.255.1/24
-  kubernetes:
-    pool:
-      network:
-        etcd:
-          ssl:
-            enabled: true
-        image: ${_param:kubernetes_calico_image}
-        calicoctl:
-          image: ${_param:kubernetes_calicoctl_image}
-        cni:
-          image: ${_param:kubernetes_calico_cni_image}
-    common:
-      hyperkube:
-        image: ${_param:kubernetes_hyperkube_image}
-  linux:
-    network:
-      resolv:
-        dns:
-          - 10.254.0.10
-          - 172.18.176.4
-          - 172.18.176.7
-      interface:
-        primary_interface:
-          route:
-            kubernetes_services:
-              address: 10.254.0.0
-              netmask: 255.255.0.0
-              gateway: ${_param:single_address}
diff --git a/classes/cluster/k8s_ha_calico_syndic/init.yml b/classes/cluster/k8s_ha_calico_syndic/init.yml
deleted file mode 100644
index 7b55c9f..0000000
--- a/classes/cluster/k8s_ha_calico_syndic/init.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-classes:
-- cluster.k8s_ha_calico_syndic.kubernetes
-- cluster.k8s_ha_calico_syndic.infra
-- cluster.overrides
diff --git a/classes/cluster/k8s_ha_contrail/init.yml b/classes/cluster/k8s_ha_contrail/init.yml
deleted file mode 100644
index 7ea51c3..0000000
--- a/classes/cluster/k8s_ha_contrail/init.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-classes:
-- system.linux.system.single
-- cluster.k8s_ha_contrail.kubernetes
-- cluster.k8s_ha_contrail.opencontrail
-- cluster.k8s_ha_contrail.infra
-- system.openssh.server.team.lab
-- system.openssh.server.team.tcpcloud
-- system.openssh.server.team.mcp_qa
-- system.openssh.server.team.k8s_team
-- cluster.overrides
diff --git a/classes/cluster/k8s_ha_contrail/opencontrail/control.yml b/classes/cluster/k8s_ha_contrail/opencontrail/control.yml
deleted file mode 100644
index aa7e12a..0000000
--- a/classes/cluster/k8s_ha_contrail/opencontrail/control.yml
+++ /dev/null
@@ -1,78 +0,0 @@
-classes:
-- system.linux.system.lowmem
-- system.linux.system.repo.cassandra
-- system.linux.system.repo.mcp.contrail
-- system.linux.system.repo.mcp.openstack
-- system.linux.system.repo.mcp.extra
-- system.linux.system.repo.saltstack.trusty
-- system.opencontrail.client.resource.edge_router
-- system.rabbitmq.server.cluster
-- system.opencontrail.control.cluster
-- system.opencontrail.client.cluster
-- system.opencontrail.client.resource.control_node
-- system.opencontrail.client.resource.config_node
-- system.opencontrail.client.resource.database_node
-- system.opencontrail.client.resource.analytics_node
-- system.haproxy.proxy.listen.opencontrail.analytics
-- cluster.k8s_ha_contrail
-parameters:
-  _param:
-    keepalived_vip_interface: eth1
-    cluster_vip_address: ${_param:opencontrail_control_address}
-    cluster_local_address: ${_param:single_address}
-    cluster_node01_hostname: ${_param:opencontrail_control_node01_hostname}
-    cluster_node01_address: ${_param:opencontrail_control_node01_address}
-    cluster_node02_hostname: ${_param:opencontrail_control_node02_hostname}
-    cluster_node02_address: ${_param:opencontrail_control_node02_address}
-    cluster_node03_hostname: ${_param:opencontrail_control_node03_hostname}
-    cluster_node03_address: ${_param:opencontrail_control_node03_address}
-    rabbitmq_secret_key: password
-    rabbitmq_admin_password: password
-    opencontrail_router01_hostname: vsrx01.${_param:cluster_domain}
-    opencontrail_router01_address: 172.16.10.131
-  linux:
-    network:
-      interface:
-        eth1:
-          enabled: true
-          type: eth
-          proto: dhcp
-  keepalived:
-    cluster:
-      instance:
-        VIP:
-          virtual_router_id: 144
-  opencontrail:
-    common:
-      identity:
-        host: none
-        engine: k8s
-      network:
-        engine: k8s
-    config:
-      network:
-        engine: k8s
-      identity:
-        engine: k8s
-        region: none
-        host: none
-      multi_tenancy: false
-      message_queue:
-        host: ${_param:opencontrail_control_address}
-    web:
-      network:
-        engine: k8s
-      identity:
-        engine: k8s
-        host: none
-  rabbitmq:
-    server:
-      host:
-        '/':
-          enabled: true
-          user: guest
-          password: guest
-          policies:
-          - name: HA
-            pattern: '^(?!amq\.).*'
-            definition: '{"ha-mode": "all", "message-ttl": 120000}'
diff --git a/classes/cluster/k8s_ha_contrail/opencontrail/init.yml b/classes/cluster/k8s_ha_contrail/opencontrail/init.yml
deleted file mode 100644
index cd3445a..0000000
--- a/classes/cluster/k8s_ha_contrail/opencontrail/init.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-parameters:
-  _param:
-    opencontrail_version: 3.0
-    opencontrail_control_hostname: ntw
-    opencontrail_control_node01_hostname: ntw01
-    opencontrail_control_node02_hostname: ntw02
-    opencontrail_control_node03_hostname: ntw03
-
-    opencontrail_control_address: 172.16.10.252
-    opencontrail_control_node01_address: 172.16.10.110
-    opencontrail_control_node02_address: 172.16.10.111
-    opencontrail_control_node03_address: 172.16.10.112
-
-    keystone_admin_password: none
-    opencontrail_stats_password: password
-    keystone_service_token: none
-    openstack_version: mitaka
-    openstack_control_address: none
-    keystone_admin_password: none
-
-  linux:
-    network:
-      host:
-        ntw:
-          address: ${_param:opencontrail_control_address}
-          names:
-          - ${_param:opencontrail_control_hostname}
-          - ${_param:opencontrail_control_hostname}.${_param:cluster_domain}
-        ntw01:
-          address: ${_param:opencontrail_control_node01_address}
-          names:
-          - ${_param:opencontrail_control_node01_hostname}
-          - ${_param:opencontrail_control_node01_hostname}.${_param:cluster_domain}
-        ntw02:
-          address: ${_param:opencontrail_control_node02_address}
-          names:
-          - ${_param:opencontrail_control_node02_hostname}
-          - ${_param:opencontrail_control_node02_hostname}.${_param:cluster_domain}
-        ntw03:
-          address: ${_param:opencontrail_control_node03_address}
-          names:
-          - ${_param:opencontrail_control_node03_hostname}
-          - ${_param:opencontrail_control_node03_hostname}.${_param:cluster_domain}
diff --git a/classes/cluster/model_manager/infra/config.yml b/classes/cluster/model-manager/infra/config.yml
similarity index 97%
rename from classes/cluster/model_manager/infra/config.yml
rename to classes/cluster/model-manager/infra/config.yml
index 246ef01..ac19fcc 100644
--- a/classes/cluster/model_manager/infra/config.yml
+++ b/classes/cluster/model-manager/infra/config.yml
@@ -9,8 +9,8 @@
 - system.salt.minion.ca.salt_master
 - system.salt.minion.cert.proxy
 - system.sphinx.server.doc.reclass
-- cluster.model_manager.model_manager.proxy
-- cluster.model_manager
+- cluster.model-manager.model_manager.proxy
+- cluster.model-manager
 parameters:
   _param:
     reclass_data_repository: https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab
diff --git a/classes/cluster/model_manager/infra/init.yml b/classes/cluster/model-manager/infra/init.yml
similarity index 78%
rename from classes/cluster/model_manager/infra/init.yml
rename to classes/cluster/model-manager/infra/init.yml
index bda166a..6b24a1d 100644
--- a/classes/cluster/model_manager/infra/init.yml
+++ b/classes/cluster/model-manager/infra/init.yml
@@ -1,8 +1,8 @@
 parameters:
   _param:
-    cluster_domain: model_manager.local
-    cluster_name: model_manager
-    infra_config_deploy_address: 192.168.10.100
+    cluster_domain: model-manager.local
+    cluster_name: model-manager
+    infra_config_deploy_address: 192.168.10.90
     infra_config_address: 172.16.10.100
     cluster_public_host: mm.mcp.mirantis.net
   linux:
diff --git a/classes/cluster/model_manager/init.yml b/classes/cluster/model-manager/init.yml
similarity index 61%
copy from classes/cluster/model_manager/init.yml
copy to classes/cluster/model-manager/init.yml
index f225d24..f7119c9 100644
--- a/classes/cluster/model_manager/init.yml
+++ b/classes/cluster/model-manager/init.yml
@@ -1,9 +1,10 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - system.openssh.server.team.lab
 - system.openssh.server.team.tcpcloud
 - system.openssh.server.team.mcp_qa
-- cluster.model_manager.infra
-- cluster.model_manager.model_manager
+- cluster.model-manager.infra
+- cluster.model-manager.model_manager
 - cluster.overrides
 
diff --git a/classes/cluster/model_manager/model_manager/dashboard.yml b/classes/cluster/model-manager/model_manager/dashboard.yml
similarity index 88%
rename from classes/cluster/model_manager/model_manager/dashboard.yml
rename to classes/cluster/model-manager/model_manager/dashboard.yml
index 4dbdcee..6377ecd 100644
--- a/classes/cluster/model_manager/model_manager/dashboard.yml
+++ b/classes/cluster/model-manager/model_manager/dashboard.yml
@@ -4,8 +4,8 @@
 - system.linux.system.repo.saltstack.xenial
 - system.linux.network.hosts
 - system.model_manager.server.integration
-- cluster.model_manager.model_manager.identity
-- cluster.model_manager
+- cluster.model-manager.model_manager.identity
+- cluster.model-manager
 parameters:
   model_manager:
     server:
diff --git a/classes/cluster/model_manager/model_manager/identity.yml b/classes/cluster/model-manager/model_manager/identity.yml
similarity index 96%
rename from classes/cluster/model_manager/model_manager/identity.yml
rename to classes/cluster/model-manager/model_manager/identity.yml
index c2d2f27..5be2df3 100644
--- a/classes/cluster/model_manager/model_manager/identity.yml
+++ b/classes/cluster/model-manager/model_manager/identity.yml
@@ -5,7 +5,7 @@
 - system.keystone.server.single
 - system.keystone.client.core
 - system.keystone.client.service.keystone
-- cluster.model_manager
+- cluster.model-manager
 parameters:
   keystone:
     server:
diff --git a/classes/cluster/model_manager/model_manager/init.yml b/classes/cluster/model-manager/model_manager/init.yml
similarity index 100%
rename from classes/cluster/model_manager/model_manager/init.yml
rename to classes/cluster/model-manager/model_manager/init.yml
diff --git a/classes/cluster/model_manager/model_manager/proxy.yml b/classes/cluster/model-manager/model_manager/proxy.yml
similarity index 99%
rename from classes/cluster/model_manager/model_manager/proxy.yml
rename to classes/cluster/model-manager/model_manager/proxy.yml
index c4cac3e..b884256 100644
--- a/classes/cluster/model_manager/model_manager/proxy.yml
+++ b/classes/cluster/model-manager/model_manager/proxy.yml
@@ -2,7 +2,7 @@
 - system.nginx.server.single
 - system.nginx.server.proxy.model_manager_web
 - system.salt.minion.cert.proxy
-- cluster.model_manager
+- cluster.model-manager
 parameters:
   _param:
     nginx_proxy_ssl:
diff --git a/classes/cluster/os_aio_contrail/infra/config.yml b/classes/cluster/os-aio-contrail/infra/config.yml
similarity index 98%
rename from classes/cluster/os_aio_contrail/infra/config.yml
rename to classes/cluster/os-aio-contrail/infra/config.yml
index 8accdcf..9ff13c5 100755
--- a/classes/cluster/os_aio_contrail/infra/config.yml
+++ b/classes/cluster/os-aio-contrail/infra/config.yml
@@ -28,8 +28,8 @@
 #- system.mysql.client.single
 - system.reclass.storage.system.openstack_control_single
 - system.reclass.storage.system.opencontrail_control_cluster
-- cluster.os_aio_contrail.openstack.proxy
-- cluster.os_aio_contrail
+- cluster.os-aio-contrail.openstack.proxy
+- cluster.os-aio-contrail
 parameters:
   _param:
     reclass_data_repository: "https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab"
diff --git a/classes/cluster/os_aio_contrail/infra/init.yml b/classes/cluster/os-aio-contrail/infra/init.yml
similarity index 87%
rename from classes/cluster/os_aio_contrail/infra/init.yml
rename to classes/cluster/os-aio-contrail/infra/init.yml
index 81b8485..1050967 100755
--- a/classes/cluster/os_aio_contrail/infra/init.yml
+++ b/classes/cluster/os-aio-contrail/infra/init.yml
@@ -1,7 +1,7 @@
 parameters:
   _param:
-    cluster_domain: os_aio_contrail.local
-    cluster_name: os_aio_contrail
+    cluster_domain: os-aio-contrail.local
+    cluster_name: os-aio-contrail
     infra_config_deploy_address: 192.168.10.90
     infra_config_address: 172.16.10.90
     infra_config_hostname: cfg01
diff --git a/classes/cluster/os_ha_contrail_40/init.yml b/classes/cluster/os-aio-contrail/init.yml
old mode 100644
new mode 100755
similarity index 61%
rename from classes/cluster/os_ha_contrail_40/init.yml
rename to classes/cluster/os-aio-contrail/init.yml
index 610e351..05aab3a
--- a/classes/cluster/os_ha_contrail_40/init.yml
+++ b/classes/cluster/os-aio-contrail/init.yml
@@ -1,11 +1,12 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.repo.mcp.extra
 - system.linux.system.single
 - system.rsyslog.client.single
 - system.openssh.server.team.lab
 - system.openssh.server.team.tcpcloud
 - system.openssh.server.team.mcp_qa
-- cluster.os_ha_contrail_40.infra
-- cluster.os_ha_contrail_40.opencontrail
-- cluster.os_ha_contrail_40.openstack
+- cluster.os-aio-contrail.infra
+- cluster.os-aio-contrail.opencontrail
+- cluster.os-aio-contrail.openstack
 - cluster.overrides
diff --git a/classes/cluster/os_aio_contrail/opencontrail/control.yml b/classes/cluster/os-aio-contrail/opencontrail/control.yml
similarity index 98%
rename from classes/cluster/os_aio_contrail/opencontrail/control.yml
rename to classes/cluster/os-aio-contrail/opencontrail/control.yml
index 8bf437f..7eed258 100644
--- a/classes/cluster/os_aio_contrail/opencontrail/control.yml
+++ b/classes/cluster/os-aio-contrail/opencontrail/control.yml
@@ -13,7 +13,7 @@
 - system.opencontrail.client.resource.database_node
 - system.opencontrail.client.resource.analytics_node
 - system.haproxy.proxy.listen.opencontrail.analytics
-- cluster.os_aio_contrail
+- cluster.os-aio-contrail
 parameters:
   _param:
     openstack_version: mitaka
diff --git a/classes/cluster/os_aio_contrail/opencontrail/init.yml b/classes/cluster/os-aio-contrail/opencontrail/init.yml
similarity index 100%
rename from classes/cluster/os_aio_contrail/opencontrail/init.yml
rename to classes/cluster/os-aio-contrail/opencontrail/init.yml
diff --git a/classes/cluster/os_aio_contrail/openstack/compute.yml b/classes/cluster/os-aio-contrail/openstack/compute.yml
similarity index 99%
rename from classes/cluster/os_aio_contrail/openstack/compute.yml
rename to classes/cluster/os-aio-contrail/openstack/compute.yml
index dd0bec2..9cff45b 100755
--- a/classes/cluster/os_aio_contrail/openstack/compute.yml
+++ b/classes/cluster/os-aio-contrail/openstack/compute.yml
@@ -7,7 +7,7 @@
 - system.opencontrail.compute.cluster
 - system.opencontrail.client.cluster
 - system.opencontrail.client.resource.virtual_router
-- cluster.os_aio_contrail
+- cluster.os-aio-contrail
 parameters:
   _param:
     cluster_local_address: ${_param:single_address}
diff --git a/classes/cluster/os_aio_contrail/openstack/control.yml b/classes/cluster/os-aio-contrail/openstack/control.yml
similarity index 98%
rename from classes/cluster/os_aio_contrail/openstack/control.yml
rename to classes/cluster/os-aio-contrail/openstack/control.yml
index 84bb3c4..c1d42eb 100755
--- a/classes/cluster/os_aio_contrail/openstack/control.yml
+++ b/classes/cluster/os-aio-contrail/openstack/control.yml
@@ -24,8 +24,8 @@
 - system.mysql.client.database.heat
 - service.mysql.server.single
 - system.mysql.client
-- cluster.os_aio_contrail.openstack.dashboard
-- cluster.os_aio_contrail
+- cluster.os-aio-contrail.openstack.dashboard
+- cluster.os-aio-contrail
 parameters:
   mysql:
     server:
diff --git a/classes/cluster/os_aio_contrail/openstack/dashboard.yml b/classes/cluster/os-aio-contrail/openstack/dashboard.yml
similarity index 95%
rename from classes/cluster/os_aio_contrail/openstack/dashboard.yml
rename to classes/cluster/os-aio-contrail/openstack/dashboard.yml
index bcca560..5e7c16f 100755
--- a/classes/cluster/os_aio_contrail/openstack/dashboard.yml
+++ b/classes/cluster/os-aio-contrail/openstack/dashboard.yml
@@ -6,7 +6,7 @@
 - system.horizon.server.single
 - system.horizon.server.plugin.contrail
 - system.horizon.server.plugin.overrides
-- cluster.os_aio_contrail
+- cluster.os-aio-contrail
 parameters:
   _param:
     horizon_site_branding: OpenStack Dashboard
diff --git a/classes/cluster/os_aio_contrail/openstack/init.yml b/classes/cluster/os-aio-contrail/openstack/init.yml
similarity index 100%
rename from classes/cluster/os_aio_contrail/openstack/init.yml
rename to classes/cluster/os-aio-contrail/openstack/init.yml
diff --git a/classes/cluster/os_aio_contrail/openstack/proxy.yml b/classes/cluster/os-aio-contrail/openstack/proxy.yml
similarity index 94%
rename from classes/cluster/os_aio_contrail/openstack/proxy.yml
rename to classes/cluster/os-aio-contrail/openstack/proxy.yml
index f732096..a4ea571 100755
--- a/classes/cluster/os_aio_contrail/openstack/proxy.yml
+++ b/classes/cluster/os-aio-contrail/openstack/proxy.yml
@@ -5,7 +5,7 @@
 - system.nginx.server.proxy.openstack_vnc
 - system.nginx.server.proxy.openstack_web
 - system.salt.minion.cert.proxy
-- cluster.os_aio_contrail
+- cluster.os-aio-contrail
 parameters:
   _param:
     nginx_proxy_ssl:
diff --git a/classes/cluster/os_aio_ovs/infra/config.yml b/classes/cluster/os-aio-ovs/infra/config.yml
similarity index 97%
rename from classes/cluster/os_aio_ovs/infra/config.yml
rename to classes/cluster/os-aio-ovs/infra/config.yml
index 353009a..cd1c00a 100644
--- a/classes/cluster/os_aio_ovs/infra/config.yml
+++ b/classes/cluster/os-aio-ovs/infra/config.yml
@@ -26,8 +26,8 @@
 - system.keystone.client.service.nova21
 - system.keystone.client.service.nova-placement
 - system.reclass.storage.system.openstack_control_single
-- cluster.os_aio_ovs.openstack.proxy
-- cluster.os_aio_ovs
+- cluster.os-aio-ovs.openstack.proxy
+- cluster.os-aio-ovs
 parameters:
   _param:
     reclass_data_repository: https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab
@@ -162,7 +162,7 @@
   #           external_address: 10.16.0.110
   #       openstack_proxy_node01:
   #         classes:
-  #         - cluster.os_aio_ovs.openstack.proxy
+  #         - cluster.os-aio-ovs.openstack.proxy
   #         params:
   #           linux_system_codename: xenial
 
diff --git a/classes/cluster/os_ha_ovs/infra/init.yml b/classes/cluster/os-aio-ovs/infra/init.yml
similarity index 86%
copy from classes/cluster/os_ha_ovs/infra/init.yml
copy to classes/cluster/os-aio-ovs/infra/init.yml
index d5b51f9..d5609e1 100644
--- a/classes/cluster/os_ha_ovs/infra/init.yml
+++ b/classes/cluster/os-aio-ovs/infra/init.yml
@@ -1,7 +1,7 @@
 parameters:
   _param:
-    cluster_domain: os_ha_ovs.local
-    cluster_name: os_ha_ovs
+    cluster_domain: os-aio-ovs.local
+    cluster_name: os-aio-ovs
     infra_config_deploy_address: 192.168.10.90
     infra_config_address: 172.16.10.90
   linux:
diff --git a/classes/cluster/model_manager/init.yml b/classes/cluster/os-aio-ovs/init.yml
similarity index 63%
rename from classes/cluster/model_manager/init.yml
rename to classes/cluster/os-aio-ovs/init.yml
index f225d24..7ba75cc 100644
--- a/classes/cluster/model_manager/init.yml
+++ b/classes/cluster/os-aio-ovs/init.yml
@@ -1,9 +1,9 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
+- cluster.os-aio-ovs.infra
+- cluster.os-aio-ovs.openstack
 - system.openssh.server.team.lab
 - system.openssh.server.team.tcpcloud
 - system.openssh.server.team.mcp_qa
-- cluster.model_manager.infra
-- cluster.model_manager.model_manager
 - cluster.overrides
-
diff --git a/classes/cluster/os_aio_ovs/openstack/compute.yml b/classes/cluster/os-aio-ovs/openstack/compute.yml
similarity index 99%
rename from classes/cluster/os_aio_ovs/openstack/compute.yml
rename to classes/cluster/os-aio-ovs/openstack/compute.yml
index 605d429..0e39e1d 100644
--- a/classes/cluster/os_aio_ovs/openstack/compute.yml
+++ b/classes/cluster/os-aio-ovs/openstack/compute.yml
@@ -4,7 +4,7 @@
 - system.linux.system.repo.saltstack.xenial
 - system.linux.network.hosts
 - service.neutron.compute.single
-- cluster.os_aio_ovs
+- cluster.os-aio-ovs
 parameters:
   _param:
     primary_interface: ens4
diff --git a/classes/cluster/os_aio_ovs/openstack/control.yml b/classes/cluster/os-aio-ovs/openstack/control.yml
similarity index 98%
rename from classes/cluster/os_aio_ovs/openstack/control.yml
rename to classes/cluster/os-aio-ovs/openstack/control.yml
index d5ebcaa..9e00d09 100644
--- a/classes/cluster/os_aio_ovs/openstack/control.yml
+++ b/classes/cluster/os-aio-ovs/openstack/control.yml
@@ -37,8 +37,8 @@
 
 - service.mysql.server.single
 - system.mysql.client
-- cluster.os_aio_ovs.openstack.dashboard
-- cluster.os_aio_ovs
+- cluster.os-aio-ovs.openstack.dashboard
+- cluster.os-aio-ovs
 parameters:
 #   _param:
 #     galera_server_cluster_name: galeracluster
diff --git a/classes/cluster/sl_os_ovs/openstack/dashboard.yml b/classes/cluster/os-aio-ovs/openstack/dashboard.yml
similarity index 95%
copy from classes/cluster/sl_os_ovs/openstack/dashboard.yml
copy to classes/cluster/os-aio-ovs/openstack/dashboard.yml
index cb3aa56..1995656 100644
--- a/classes/cluster/sl_os_ovs/openstack/dashboard.yml
+++ b/classes/cluster/os-aio-ovs/openstack/dashboard.yml
@@ -4,7 +4,7 @@
 - system.linux.system.repo.mcp.extra
 - system.linux.system.repo.saltstack.xenial
 - system.horizon.server.single
-- cluster.sl_os_ovs
+- cluster.os-aio-ovs
 parameters:
   _param:
     horizon_site_branding: OpenStack Dashboard
diff --git a/classes/cluster/os_aio_ovs/openstack/gateway.yml b/classes/cluster/os-aio-ovs/openstack/gateway.yml
similarity index 98%
rename from classes/cluster/os_aio_ovs/openstack/gateway.yml
rename to classes/cluster/os-aio-ovs/openstack/gateway.yml
index 37918a2..b167a48 100644
--- a/classes/cluster/os_aio_ovs/openstack/gateway.yml
+++ b/classes/cluster/os-aio-ovs/openstack/gateway.yml
@@ -3,7 +3,7 @@
 - system.linux.system.repo.mcp.extra
 - system.linux.system.repo.saltstack.xenial
 - service.neutron.gateway.single
-- cluster.os_aio_ovs
+- cluster.os-aio-ovs
 parameters:
   _param:
     primary_interface: ens4
diff --git a/classes/cluster/os_aio_ovs/openstack/init.yml b/classes/cluster/os-aio-ovs/openstack/init.yml
similarity index 100%
rename from classes/cluster/os_aio_ovs/openstack/init.yml
rename to classes/cluster/os-aio-ovs/openstack/init.yml
diff --git a/classes/cluster/os_ha_ovs/openstack/proxy.yml b/classes/cluster/os-aio-ovs/openstack/proxy.yml
similarity index 94%
copy from classes/cluster/os_ha_ovs/openstack/proxy.yml
copy to classes/cluster/os-aio-ovs/openstack/proxy.yml
index a819195..132e382 100644
--- a/classes/cluster/os_ha_ovs/openstack/proxy.yml
+++ b/classes/cluster/os-aio-ovs/openstack/proxy.yml
@@ -4,7 +4,7 @@
 - system.nginx.server.proxy.openstack_vnc
 - system.nginx.server.proxy.openstack_web
 - system.salt.minion.cert.proxy
-- cluster.os_ha_ovs
+- cluster.os-aio-ovs
 parameters:
   _param:
     nginx_proxy_ssl:
diff --git a/classes/cluster/os_ha_contrail_40/infra/config.yml b/classes/cluster/os-ha-contrail-40/infra/config.yml
similarity index 95%
rename from classes/cluster/os_ha_contrail_40/infra/config.yml
rename to classes/cluster/os-ha-contrail-40/infra/config.yml
index 377bb15..a0d4e1b 100644
--- a/classes/cluster/os_ha_contrail_40/infra/config.yml
+++ b/classes/cluster/os-ha-contrail-40/infra/config.yml
@@ -33,8 +33,8 @@
 - system.mysql.client.database.neutron
 - system.reclass.storage.system.openstack_control_cluster
 - system.reclass.storage.system.opencontrail_control_cluster
-- cluster.os_ha_contrail_40.openstack.proxy
-- cluster.os_ha_contrail_40
+- cluster.os-ha-contrail-40.openstack.proxy
+- cluster.os-ha-contrail-40
 parameters:
   _param:
     reclass_data_repository: "https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab"
@@ -139,7 +139,7 @@
         openstack_control_node01:
           classes:
           - service.galera.master.cluster
-          - cluster.os_ha_contrail_40.openstack.dashboard
+          - cluster.os-ha-contrail-40.openstack.dashboard
           params:
             mysql_cluster_role: master
             linux_system_codename: xenial
@@ -147,7 +147,7 @@
         openstack_control_node02:
           classes:
           - service.galera.slave.cluster
-          - cluster.os_ha_contrail_40.openstack.dashboard
+          - cluster.os-ha-contrail-40.openstack.dashboard
           params:
             mysql_cluster_role: slave
             linux_system_codename: xenial
@@ -155,7 +155,7 @@
         openstack_control_node03:
           classes:
           - service.galera.slave.cluster
-          - cluster.os_ha_contrail_40.openstack.dashboard
+          - cluster.os-ha-contrail-40.openstack.dashboard
           params:
             mysql_cluster_role: slave
             linux_system_codename: xenial
diff --git a/classes/cluster/os-ha-contrail-40/infra/init.yml b/classes/cluster/os-ha-contrail-40/infra/init.yml
new file mode 100644
index 0000000..182936e
--- /dev/null
+++ b/classes/cluster/os-ha-contrail-40/infra/init.yml
@@ -0,0 +1,9 @@
+parameters:
+  _param:
+    cluster_domain: os-ha-contrail-40.local
+    cluster_name: os-ha-contrail-40
+    infra_config_deploy_address: 192.168.10.90
+    infra_config_address: 172.16.10.100
+    infra_config_hostname: cfg01
+    linux_system_repo_mcp_salt_version: nightly
+  
diff --git a/classes/cluster/os_ha_contrail_40/init.yml b/classes/cluster/os-ha-contrail-40/init.yml
similarity index 60%
copy from classes/cluster/os_ha_contrail_40/init.yml
copy to classes/cluster/os-ha-contrail-40/init.yml
index 610e351..7947dac 100644
--- a/classes/cluster/os_ha_contrail_40/init.yml
+++ b/classes/cluster/os-ha-contrail-40/init.yml
@@ -1,11 +1,12 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.repo.mcp.extra
 - system.linux.system.single
 - system.rsyslog.client.single
 - system.openssh.server.team.lab
 - system.openssh.server.team.tcpcloud
 - system.openssh.server.team.mcp_qa
-- cluster.os_ha_contrail_40.infra
-- cluster.os_ha_contrail_40.opencontrail
-- cluster.os_ha_contrail_40.openstack
+- cluster.os-ha-contrail-40.infra
+- cluster.os-ha-contrail-40.opencontrail
+- cluster.os-ha-contrail-40.openstack
 - cluster.overrides
diff --git a/classes/cluster/os_ha_contrail_40/opencontrail/control.yml b/classes/cluster/os-ha-contrail-40/opencontrail/control.yml
similarity index 98%
rename from classes/cluster/os_ha_contrail_40/opencontrail/control.yml
rename to classes/cluster/os-ha-contrail-40/opencontrail/control.yml
index f83d14b..1848dc3 100644
--- a/classes/cluster/os_ha_contrail_40/opencontrail/control.yml
+++ b/classes/cluster/os-ha-contrail-40/opencontrail/control.yml
@@ -13,7 +13,7 @@
 - system.opencontrail.client.resource.database_node
 - system.opencontrail.client.resource.analytics_node
 - system.haproxy.proxy.listen.opencontrail.analytics
-- cluster.os_ha_contrail_40
+- cluster.os-ha-contrail-40
 parameters:
   _param:
     keepalived_vip_interface: ${_param:opencontrail_control_interface_name}
diff --git a/classes/cluster/os-ha-contrail-40/opencontrail/init.yml b/classes/cluster/os-ha-contrail-40/opencontrail/init.yml
new file mode 100644
index 0000000..b460eb0
--- /dev/null
+++ b/classes/cluster/os-ha-contrail-40/opencontrail/init.yml
@@ -0,0 +1,16 @@
+parameters:
+  _param:
+    opencontrail_analytics_address: ${_param:openstack_control_address}
+    opencontrail_analytics_node01_address: ${_param:openstack_control_node01_address}
+    opencontrail_analytics_node02_address: ${_param:openstack_control_node02_address}
+    opencontrail_analytics_node03_address: ${_param:openstack_control_node03_address}
+
+    opencontrail_control_address: 172.16.10.252
+    opencontrail_control_node01_hostname: ntw01
+    opencontrail_control_node02_hostname: ntw02
+    opencontrail_control_node03_hostname: ntw03
+    opencontrail_control_node01_address: 172.16.10.111
+    opencontrail_control_node02_address: 172.16.10.112
+    opencontrail_control_node03_address: 172.16.10.113
+    opencontrail_control_interface_name: eth1
+  
diff --git a/classes/cluster/os_ha_contrail_40/openstack/compute.yml b/classes/cluster/os-ha-contrail-40/openstack/compute.yml
similarity index 98%
rename from classes/cluster/os_ha_contrail_40/openstack/compute.yml
rename to classes/cluster/os-ha-contrail-40/openstack/compute.yml
index 3a51815..30613d3 100644
--- a/classes/cluster/os_ha_contrail_40/openstack/compute.yml
+++ b/classes/cluster/os-ha-contrail-40/openstack/compute.yml
@@ -9,7 +9,7 @@
 - system.opencontrail.client.cluster
 - system.opencontrail.client.resource.virtual_router
 - service.opencontrail.compute.cluster
-- cluster.os_ha_contrail_40
+- cluster.os-ha-contrail-40
 parameters:
   _param:
     cluster_vip_address: ${_param:openstack_control_address}
diff --git a/classes/cluster/os_ha_contrail/openstack/control.yml b/classes/cluster/os-ha-contrail-40/openstack/control.yml
old mode 100755
new mode 100644
similarity index 99%
rename from classes/cluster/os_ha_contrail/openstack/control.yml
rename to classes/cluster/os-ha-contrail-40/openstack/control.yml
index 408327b..732a6a1
--- a/classes/cluster/os_ha_contrail/openstack/control.yml
+++ b/classes/cluster/os-ha-contrail-40/openstack/control.yml
@@ -31,7 +31,7 @@
 - system.galera.server.database.nova
 - system.galera.server.database.designate
 - system.haproxy.proxy.listen.openstack.nova-placement
-- cluster.os_ha_contrail
+- cluster.os-ha-contrail-40
 parameters:
   _param:
     keepalived_vip_interface: ens4
diff --git a/classes/cluster/os_ha_contrail_40/openstack/dashboard.yml b/classes/cluster/os-ha-contrail-40/openstack/dashboard.yml
similarity index 94%
rename from classes/cluster/os_ha_contrail_40/openstack/dashboard.yml
rename to classes/cluster/os-ha-contrail-40/openstack/dashboard.yml
index 57dd254..cac5ccd 100644
--- a/classes/cluster/os_ha_contrail_40/openstack/dashboard.yml
+++ b/classes/cluster/os-ha-contrail-40/openstack/dashboard.yml
@@ -6,7 +6,7 @@
 - system.horizon.server.cluster
 - system.horizon.server.plugin.contrail
 - system.horizon.server.plugin.overrides
-- cluster.os_ha_contrail_40
+- cluster.os-ha-contrail-40
 parameters:
   _param:
     horizon_site_branding: OpenStack Dashboard
diff --git a/classes/cluster/os_ha_contrail_40/openstack/init.yml b/classes/cluster/os-ha-contrail-40/openstack/init.yml
similarity index 61%
rename from classes/cluster/os_ha_contrail_40/openstack/init.yml
rename to classes/cluster/os-ha-contrail-40/openstack/init.yml
index c129dea..d00b103 100644
--- a/classes/cluster/os_ha_contrail_40/openstack/init.yml
+++ b/classes/cluster/os-ha-contrail-40/openstack/init.yml
@@ -117,86 +117,3 @@
     horizon_identity_host: ${_param:openstack_control_address}
     horizon_identity_encryption: none
     horizon_identity_version: 2
-  linux:
-    network:
-      host:
-        prx:
-          address: ${_param:openstack_proxy_address}
-          names:
-          - prx
-          - prx.${_param:cluster_domain}
-        prx01:
-          address: ${_param:openstack_proxy_node01_address}
-          names:
-          - ${_param:openstack_proxy_node01_hostname}
-          - prx01.${_param:cluster_domain}
-        ctl:
-          address: ${_param:openstack_control_address}
-          names:
-          - ctl
-          - ctl.${_param:cluster_domain}
-        ctl01:
-          address: ${_param:openstack_control_node01_address}
-          names:
-          - ${_param:openstack_control_node01_hostname}
-          - ${_param:openstack_control_node01_hostname}.${_param:cluster_domain}
-        ctl02:
-          address: ${_param:openstack_control_node02_address}
-          names:
-          - ${_param:openstack_control_node02_hostname}
-          - ${_param:openstack_control_node02_hostname}.${_param:cluster_domain}
-        ctl03:
-          address: ${_param:openstack_control_node03_address}
-          names:
-          - ${_param:openstack_control_node03_hostname}
-          - ${_param:openstack_control_node03_hostname}.${_param:cluster_domain}
-        msg:
-          address: ${_param:openstack_message_queue_address}
-          names:
-          - msg
-          - msg.${_param:cluster_domain}
-        msg01:
-          address: ${_param:openstack_message_queue_node01_address}
-          names:
-          - ${_param:openstack_message_queue_node01_hostname}
-          - ${_param:openstack_message_queue_node01_hostname}.${_param:cluster_domain}
-        msg02:
-          address: ${_param:openstack_message_queue_node02_address}
-          names:
-          - ${_param:openstack_message_queue_node02_hostname}
-          - ${_param:openstack_message_queue_node02_hostname}.${_param:cluster_domain}
-        msg03:
-          address: ${_param:openstack_message_queue_node03_address}
-          names:
-          - ${_param:openstack_message_queue_node03_hostname}
-          - ${_param:openstack_message_queue_node03_hostname}.${_param:cluster_domain}
-        dbs:
-          address: ${_param:openstack_database_address}
-          names:
-          - dbs
-          - dbs.${_param:cluster_domain}
-        dbs01:
-          address: ${_param:openstack_database_node01_address}
-          names:
-          - ${_param:openstack_database_node01_hostname}
-          - ${_param:openstack_database_node01_hostname}.${_param:cluster_domain}
-        dbs02:
-          address: ${_param:openstack_database_node02_address}
-          names:
-          - ${_param:openstack_database_node02_hostname}
-          - ${_param:openstack_database_node02_hostname}.${_param:cluster_domain}
-        dbs03:
-          address: ${_param:openstack_database_node03_address}
-          names:
-          - ${_param:openstack_database_node03_hostname}
-          - ${_param:openstack_database_node03_hostname}.${_param:cluster_domain}
-        cmp01:
-          address: ${_param:openstack_compute_node01_address}
-          names:
-          - ${_param:openstack_compute_node01_hostname}
-          - ${_param:openstack_compute_node01_hostname}.${_param:cluster_domain}
-        cmp02:
-          address: ${_param:openstack_compute_node02_address}
-          names:
-          - ${_param:openstack_compute_node02_hostname}
-          - ${_param:openstack_compute_node02_hostname}.${_param:cluster_domain}
diff --git a/classes/cluster/os_ha_contrail_40/openstack/proxy.yml b/classes/cluster/os-ha-contrail-40/openstack/proxy.yml
similarity index 94%
rename from classes/cluster/os_ha_contrail_40/openstack/proxy.yml
rename to classes/cluster/os-ha-contrail-40/openstack/proxy.yml
index bb121e2..cb9aff6 100644
--- a/classes/cluster/os_ha_contrail_40/openstack/proxy.yml
+++ b/classes/cluster/os-ha-contrail-40/openstack/proxy.yml
@@ -5,7 +5,7 @@
 - system.nginx.server.proxy.openstack_vnc
 - system.nginx.server.proxy.openstack_web
 - system.salt.minion.cert.proxy
-- cluster.os_ha_contrail_40
+- cluster.os-ha-contrail-40
 parameters:
   _param:
     cluster_vip_address: ${_param:openstack_proxy_address}
diff --git a/classes/cluster/os-ha-contrail/.env b/classes/cluster/os-ha-contrail/.env
new file mode 100644
index 0000000..753d68a
--- /dev/null
+++ b/classes/cluster/os-ha-contrail/.env
@@ -0,0 +1 @@
+EXTRA_FORMULAS="barbican"
diff --git a/classes/cluster/os_ha_contrail/infra/config.yml b/classes/cluster/os-ha-contrail/infra/config.yml
similarity index 94%
rename from classes/cluster/os_ha_contrail/infra/config.yml
rename to classes/cluster/os-ha-contrail/infra/config.yml
index 7922d3d..3fec3ee 100755
--- a/classes/cluster/os_ha_contrail/infra/config.yml
+++ b/classes/cluster/os-ha-contrail/infra/config.yml
@@ -10,10 +10,11 @@
 - system.salt.minion.cert.proxy
 - system.sphinx.server.doc.reclass
 - system.keystone.client.core
-- system.keystone.client.service.designate
+- system.keystone.client.service.barbican
 - system.keystone.client.service.cinder
 - system.keystone.client.service.cinder2
 - system.keystone.client.service.cinder3
+- system.keystone.client.service.designate
 - system.keystone.client.service.glance
 - system.keystone.client.service.glare
 - system.keystone.client.service.heat
@@ -24,6 +25,7 @@
 - system.keystone.client.service.nova21
 - system.keystone.client.service.nova-placement
 - system.mysql.client
+- system.mysql.client.database.barbican
 - system.mysql.client.database.cinder
 - system.mysql.client.database.glance
 - system.mysql.client.database.heat
@@ -33,8 +35,8 @@
 - system.mysql.client.database.neutron
 - system.reclass.storage.system.openstack_control_cluster
 - system.reclass.storage.system.opencontrail_control_cluster
-- cluster.os_ha_contrail.openstack.proxy
-- cluster.os_ha_contrail
+- cluster.os-ha-contrail.openstack.proxy
+- cluster.os-ha-contrail
 parameters:
   _param:
     reclass_data_repository: "https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab"
@@ -132,7 +134,7 @@
         openstack_control_node01:
           classes:
           - service.galera.master.cluster
-          - cluster.os_ha_contrail.openstack.dashboard
+          - cluster.os-ha-contrail.openstack.dashboard
           params:
             mysql_cluster_role: master
             linux_system_codename: xenial
@@ -140,7 +142,7 @@
         openstack_control_node02:
           classes:
           - service.galera.slave.cluster
-          - cluster.os_ha_contrail.openstack.dashboard
+          - cluster.os-ha-contrail.openstack.dashboard
           params:
             mysql_cluster_role: slave
             linux_system_codename: xenial
@@ -148,7 +150,7 @@
         openstack_control_node03:
           classes:
           - service.galera.slave.cluster
-          - cluster.os_ha_contrail.openstack.dashboard
+          - cluster.os-ha-contrail.openstack.dashboard
           params:
             mysql_cluster_role: slave
             linux_system_codename: xenial
diff --git a/classes/cluster/os-ha-contrail/infra/init.yml b/classes/cluster/os-ha-contrail/infra/init.yml
new file mode 100755
index 0000000..e504ccc
--- /dev/null
+++ b/classes/cluster/os-ha-contrail/infra/init.yml
@@ -0,0 +1,9 @@
+parameters:
+  _param:
+    cluster_domain: os-ha-contrail.local
+    cluster_name: os-ha-contrail
+    infra_config_deploy_address: 192.168.10.90
+    infra_config_address: 172.16.10.100
+    infra_config_hostname: cfg01
+    linux_system_repo_mcp_salt_version: nightly
+  
diff --git a/classes/cluster/os-ha-contrail/init.yml b/classes/cluster/os-ha-contrail/init.yml
new file mode 100755
index 0000000..8502db0
--- /dev/null
+++ b/classes/cluster/os-ha-contrail/init.yml
@@ -0,0 +1,17 @@
+classes:
+- system.linux.network.dynamic_hosts
+- system.linux.system.repo.mcp.extra
+- system.linux.system.single
+- system.rsyslog.client.single
+- system.openssh.server.team.lab
+- system.openssh.server.team.tcpcloud
+- system.openssh.server.team.mcp_qa
+- cluster.os-ha-contrail.infra
+- cluster.os-ha-contrail.opencontrail
+- cluster.os-ha-contrail.openstack
+- cluster.overrides
+parameters:
+  salt:
+    minion:
+      trusted_ca_minions:
+        - cfg01
diff --git a/classes/cluster/os_aio_contrail/opencontrail/control.yml b/classes/cluster/os-ha-contrail/opencontrail/control.yml
similarity index 96%
copy from classes/cluster/os_aio_contrail/opencontrail/control.yml
copy to classes/cluster/os-ha-contrail/opencontrail/control.yml
index 8bf437f..4c03393 100644
--- a/classes/cluster/os_aio_contrail/opencontrail/control.yml
+++ b/classes/cluster/os-ha-contrail/opencontrail/control.yml
@@ -12,8 +12,9 @@
 - system.opencontrail.client.resource.config_node
 - system.opencontrail.client.resource.database_node
 - system.opencontrail.client.resource.analytics_node
+- system.opencontrail.client.resource.openstack_metadata
 - system.haproxy.proxy.listen.opencontrail.analytics
-- cluster.os_aio_contrail
+- cluster.os-ha-contrail
 parameters:
   _param:
     openstack_version: mitaka
diff --git a/classes/cluster/os-ha-contrail/opencontrail/init.yml b/classes/cluster/os-ha-contrail/opencontrail/init.yml
new file mode 100644
index 0000000..9b3acda
--- /dev/null
+++ b/classes/cluster/os-ha-contrail/opencontrail/init.yml
@@ -0,0 +1,15 @@
+parameters:
+  _param:
+    opencontrail_analytics_address: ${_param:openstack_control_address}
+    opencontrail_analytics_node01_address: ${_param:openstack_control_node01_address}
+    opencontrail_analytics_node02_address: ${_param:openstack_control_node02_address}
+    opencontrail_analytics_node03_address: ${_param:openstack_control_node03_address}
+
+    opencontrail_control_address: 172.16.10.252
+    opencontrail_control_node01_hostname: ntw01
+    opencontrail_control_node02_hostname: ntw02
+    opencontrail_control_node03_hostname: ntw03
+    opencontrail_control_node01_address: 172.16.10.111
+    opencontrail_control_node02_address: 172.16.10.112
+    opencontrail_control_node03_address: 172.16.10.113
+  
diff --git a/classes/cluster/os_ha_contrail/openstack/compute.yml b/classes/cluster/os-ha-contrail/openstack/compute.yml
similarity index 94%
rename from classes/cluster/os_ha_contrail/openstack/compute.yml
rename to classes/cluster/os-ha-contrail/openstack/compute.yml
index 75921c9..8346f2f 100755
--- a/classes/cluster/os_ha_contrail/openstack/compute.yml
+++ b/classes/cluster/os-ha-contrail/openstack/compute.yml
@@ -9,7 +9,9 @@
 - system.opencontrail.client.cluster
 - system.opencontrail.client.resource.virtual_router
 - service.opencontrail.compute.cluster
-- cluster.os_ha_contrail
+- service.opencontrail.compute.lbaas.barbican
+- service.barbican.client.cluster
+- cluster.os-ha-contrail
 parameters:
   _param:
     cluster_vip_address: ${_param:openstack_control_address}
diff --git a/classes/cluster/os_ha_contrail/openstack/control.yml b/classes/cluster/os-ha-contrail/openstack/control.yml
similarity index 93%
copy from classes/cluster/os_ha_contrail/openstack/control.yml
copy to classes/cluster/os-ha-contrail/openstack/control.yml
index 408327b..e5ab6a3 100755
--- a/classes/cluster/os_ha_contrail/openstack/control.yml
+++ b/classes/cluster/os-ha-contrail/openstack/control.yml
@@ -24,6 +24,7 @@
 - system.designate.server.cluster
 - system.designate.server.backend.bind
 - system.galera.server.cluster
+- system.galera.server.database.barbican
 - system.galera.server.database.cinder
 - system.galera.server.database.glance
 - system.galera.server.database.heat
@@ -31,7 +32,9 @@
 - system.galera.server.database.nova
 - system.galera.server.database.designate
 - system.haproxy.proxy.listen.openstack.nova-placement
-- cluster.os_ha_contrail
+- system.barbican.server.cluster
+- service.barbican.server.plugin.simple_crypto
+- cluster.os-ha-contrail
 parameters:
   _param:
     keepalived_vip_interface: ens4
@@ -62,6 +65,13 @@
       instance:
         VIP:
           virtual_router_id: 150
+  barbican:
+    server:
+      store:
+        software:
+          crypto_plugin: simple_crypto
+          store_plugin: store_crypto
+          global_default: True
   bind:
     server:
       control:
diff --git a/classes/cluster/os_ha_contrail/openstack/dashboard.yml b/classes/cluster/os-ha-contrail/openstack/dashboard.yml
similarity index 95%
rename from classes/cluster/os_ha_contrail/openstack/dashboard.yml
rename to classes/cluster/os-ha-contrail/openstack/dashboard.yml
index 0c4cb38..1be0a9c 100755
--- a/classes/cluster/os_ha_contrail/openstack/dashboard.yml
+++ b/classes/cluster/os-ha-contrail/openstack/dashboard.yml
@@ -6,7 +6,7 @@
 - system.horizon.server.cluster
 - system.horizon.server.plugin.contrail
 - system.horizon.server.plugin.overrides
-- cluster.os_ha_contrail
+- cluster.os-ha-contrail
 parameters:
   _param:
     horizon_site_branding: OpenStack Dashboard
diff --git a/classes/cluster/os_ha_contrail/openstack/init.yml b/classes/cluster/os-ha-contrail/openstack/init.yml
similarity index 61%
rename from classes/cluster/os_ha_contrail/openstack/init.yml
rename to classes/cluster/os-ha-contrail/openstack/init.yml
index 826c807..ef43331 100755
--- a/classes/cluster/os_ha_contrail/openstack/init.yml
+++ b/classes/cluster/os-ha-contrail/openstack/init.yml
@@ -75,6 +75,7 @@
       rndc_host: ${_param:openstack_control_node01_address}
       rndc_port: 953
       rndc_key_file: /etc/designate/rndc.key
+    barbican_version: ${_param:openstack_version}
     designate_version: ${_param:openstack_version}
     cluster_vip_address: ${_param:openstack_control_address}
     glance_version: ${_param:openstack_version}
@@ -93,10 +94,12 @@
     neutron_service_host: ${_param:openstack_control_address}
     glusterfs_service_host: ${_param:openstack_control_address}
     designate_service_host: ${_param:openstack_control_address}
+    barbican_service_host: ${_param:openstack_control_address}
     mysql_admin_user: root
     mysql_admin_password: workshop
-    mysql_designate_password: workshop
+    mysql_barbican_password: workshop
     mysql_cinder_password: workshop
+    mysql_designate_password: workshop
     mysql_glance_password: workshop
     mysql_heat_password: workshop
     mysql_keystone_password: workshop
@@ -104,6 +107,7 @@
     mysql_nova_password: workshop
     keystone_service_token: workshop
     keystone_admin_password: workshop
+    keystone_barbican_password: workshop
     keystone_cinder_password: workshop
     keystone_glance_password: workshop
     keystone_heat_password: workshop
@@ -117,86 +121,8 @@
     horizon_identity_host: ${_param:openstack_control_address}
     horizon_identity_encryption: none
     horizon_identity_version: 2
-  linux:
-    network:
-      host:
-        prx:
-          address: ${_param:openstack_proxy_address}
-          names:
-          - prx
-          - prx.${_param:cluster_domain}
-        prx01:
-          address: ${_param:openstack_proxy_node01_address}
-          names:
-          - ${_param:openstack_proxy_node01_hostname}
-          - prx01.${_param:cluster_domain}
-        ctl:
-          address: ${_param:openstack_control_address}
-          names:
-          - ctl
-          - ctl.${_param:cluster_domain}
-        ctl01:
-          address: ${_param:openstack_control_node01_address}
-          names:
-          - ${_param:openstack_control_node01_hostname}
-          - ${_param:openstack_control_node01_hostname}.${_param:cluster_domain}
-        ctl02:
-          address: ${_param:openstack_control_node02_address}
-          names:
-          - ${_param:openstack_control_node02_hostname}
-          - ${_param:openstack_control_node02_hostname}.${_param:cluster_domain}
-        ctl03:
-          address: ${_param:openstack_control_node03_address}
-          names:
-          - ${_param:openstack_control_node03_hostname}
-          - ${_param:openstack_control_node03_hostname}.${_param:cluster_domain}
-        msg:
-          address: ${_param:openstack_message_queue_address}
-          names:
-          - msg
-          - msg.${_param:cluster_domain}
-        msg01:
-          address: ${_param:openstack_message_queue_node01_address}
-          names:
-          - ${_param:openstack_message_queue_node01_hostname}
-          - ${_param:openstack_message_queue_node01_hostname}.${_param:cluster_domain}
-        msg02:
-          address: ${_param:openstack_message_queue_node02_address}
-          names:
-          - ${_param:openstack_message_queue_node02_hostname}
-          - ${_param:openstack_message_queue_node02_hostname}.${_param:cluster_domain}
-        msg03:
-          address: ${_param:openstack_message_queue_node03_address}
-          names:
-          - ${_param:openstack_message_queue_node03_hostname}
-          - ${_param:openstack_message_queue_node03_hostname}.${_param:cluster_domain}
-        dbs:
-          address: ${_param:openstack_database_address}
-          names:
-          - dbs
-          - dbs.${_param:cluster_domain}
-        dbs01:
-          address: ${_param:openstack_database_node01_address}
-          names:
-          - ${_param:openstack_database_node01_hostname}
-          - ${_param:openstack_database_node01_hostname}.${_param:cluster_domain}
-        dbs02:
-          address: ${_param:openstack_database_node02_address}
-          names:
-          - ${_param:openstack_database_node02_hostname}
-          - ${_param:openstack_database_node02_hostname}.${_param:cluster_domain}
-        dbs03:
-          address: ${_param:openstack_database_node03_address}
-          names:
-          - ${_param:openstack_database_node03_hostname}
-          - ${_param:openstack_database_node03_hostname}.${_param:cluster_domain}
-        cmp01:
-          address: ${_param:openstack_compute_node01_address}
-          names:
-          - ${_param:openstack_compute_node01_hostname}
-          - ${_param:openstack_compute_node01_hostname}.${_param:cluster_domain}
-        cmp02:
-          address: ${_param:openstack_compute_node02_address}
-          names:
-          - ${_param:openstack_compute_node02_hostname}
-          - ${_param:openstack_compute_node02_hostname}.${_param:cluster_domain}
+    opencontrail_barbican_user: admin
+    opencontrail_barbican_password: ${_param:keystone_admin_password}
+    opencontrail_barbican_tenant: admin
+    barbican_simple_crypto_kek: "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY="
+  
diff --git a/classes/cluster/os_ha_contrail_40/openstack/proxy.yml b/classes/cluster/os-ha-contrail/openstack/proxy.yml
old mode 100644
new mode 100755
similarity index 87%
copy from classes/cluster/os_ha_contrail_40/openstack/proxy.yml
copy to classes/cluster/os-ha-contrail/openstack/proxy.yml
index bb121e2..37a9234
--- a/classes/cluster/os_ha_contrail_40/openstack/proxy.yml
+++ b/classes/cluster/os-ha-contrail/openstack/proxy.yml
@@ -4,8 +4,9 @@
 - system.nginx.server.proxy.openstack_api
 - system.nginx.server.proxy.openstack_vnc
 - system.nginx.server.proxy.openstack_web
+- system.nginx.server.proxy.openstack.barbican
 - system.salt.minion.cert.proxy
-- cluster.os_ha_contrail_40
+- cluster.os-ha-contrail
 parameters:
   _param:
     cluster_vip_address: ${_param:openstack_proxy_address}
diff --git a/classes/cluster/os_ha_ovs_syndic/infra/config.yml b/classes/cluster/os-ha-ovs-syndic/infra/config.yml
similarity index 98%
rename from classes/cluster/os_ha_ovs_syndic/infra/config.yml
rename to classes/cluster/os-ha-ovs-syndic/infra/config.yml
index 72d0c50..43ee1d7 100644
--- a/classes/cluster/os_ha_ovs_syndic/infra/config.yml
+++ b/classes/cluster/os-ha-ovs-syndic/infra/config.yml
@@ -31,8 +31,8 @@
 - system.mysql.client.database.nova_api
 - system.mysql.client.database.neutron
 - system.reclass.storage.system.openstack_control_cluster
-- cluster.os_ha_ovs_syndic.openstack.proxy
-- cluster.os_ha_ovs_syndic
+- cluster.os-ha-ovs-syndic.openstack.proxy
+- cluster.os-ha-ovs-syndic
 parameters:
   _param:
     reclass_data_repository: https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab
diff --git a/classes/cluster/os_ha_ovs_syndic/infra/init.yml b/classes/cluster/os-ha-ovs-syndic/infra/init.yml
similarity index 85%
rename from classes/cluster/os_ha_ovs_syndic/infra/init.yml
rename to classes/cluster/os-ha-ovs-syndic/infra/init.yml
index c6de909..b3dd013 100644
--- a/classes/cluster/os_ha_ovs_syndic/infra/init.yml
+++ b/classes/cluster/os-ha-ovs-syndic/infra/init.yml
@@ -1,7 +1,7 @@
 parameters:
   _param:
-    cluster_domain: os_ha_ovs_syndic.local
-    cluster_name: os_ha_ovs_syndic
+    cluster_domain: os-ha-ovs-syndic.local
+    cluster_name: os-ha-ovs-syndic
     infra_config_deploy_address: 192.168.10.90
     infra_config_address: 172.16.10.90
     salt_syndic_master_address: 192.168.10.90
diff --git a/classes/cluster/model_manager/init.yml b/classes/cluster/os-ha-ovs-syndic/init.yml
similarity index 60%
copy from classes/cluster/model_manager/init.yml
copy to classes/cluster/os-ha-ovs-syndic/init.yml
index f225d24..5e4d440 100644
--- a/classes/cluster/model_manager/init.yml
+++ b/classes/cluster/os-ha-ovs-syndic/init.yml
@@ -1,9 +1,9 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
+- cluster.os-ha-ovs-syndic.infra
+- cluster.os-ha-ovs-syndic.openstack
 - system.openssh.server.team.lab
 - system.openssh.server.team.tcpcloud
 - system.openssh.server.team.mcp_qa
-- cluster.model_manager.infra
-- cluster.model_manager.model_manager
 - cluster.overrides
-
diff --git a/classes/cluster/os_ha_ovs/openstack/compute.yml b/classes/cluster/os-ha-ovs-syndic/openstack/compute.yml
similarity index 98%
copy from classes/cluster/os_ha_ovs/openstack/compute.yml
copy to classes/cluster/os-ha-ovs-syndic/openstack/compute.yml
index 17634d0..07646fc 100644
--- a/classes/cluster/os_ha_ovs/openstack/compute.yml
+++ b/classes/cluster/os-ha-ovs-syndic/openstack/compute.yml
@@ -5,7 +5,7 @@
 - system.linux.network.hosts
 - system.nova.compute.cluster
 - system.neutron.compute.cluster
-- cluster.os_ha_ovs
+- cluster.os-ha-ovs-syndic
 parameters:
   _param:
     primary_interface: ens4
diff --git a/classes/cluster/os_ha_ovs_syndic/openstack/control.yml b/classes/cluster/os-ha-ovs-syndic/openstack/control.yml
similarity index 97%
rename from classes/cluster/os_ha_ovs_syndic/openstack/control.yml
rename to classes/cluster/os-ha-ovs-syndic/openstack/control.yml
index 02f5650..9bc0f6e 100644
--- a/classes/cluster/os_ha_ovs_syndic/openstack/control.yml
+++ b/classes/cluster/os-ha-ovs-syndic/openstack/control.yml
@@ -27,8 +27,8 @@
 - system.galera.server.database.keystone
 - system.galera.server.database.nova
 - system.haproxy.proxy.listen.openstack.nova-placement
-- cluster.os_ha_ovs_syndic.openstack.dashboard
-- cluster.os_ha_ovs_syndic
+- cluster.os-ha-ovs-syndic.openstack.dashboard
+- cluster.os-ha-ovs-syndic
 parameters:
   _param:
     keepalived_vip_interface: ens4
diff --git a/classes/cluster/os_ha_ovs/openstack/dashboard.yml b/classes/cluster/os-ha-ovs-syndic/openstack/dashboard.yml
similarity index 94%
copy from classes/cluster/os_ha_ovs/openstack/dashboard.yml
copy to classes/cluster/os-ha-ovs-syndic/openstack/dashboard.yml
index ddddaa9..4259946 100644
--- a/classes/cluster/os_ha_ovs/openstack/dashboard.yml
+++ b/classes/cluster/os-ha-ovs-syndic/openstack/dashboard.yml
@@ -4,7 +4,7 @@
 - system.linux.system.repo.mcp.extra
 - system.linux.system.repo.saltstack.xenial
 - system.horizon.server.cluster
-- cluster.os_ha_ovs
+- cluster.os-ha-ovs-syndic
 parameters:
   _param:
     horizon_site_branding: OpenStack Dashboard
diff --git a/classes/cluster/os_ha_ovs_syndic/openstack/gateway.yml b/classes/cluster/os-ha-ovs-syndic/openstack/gateway.yml
similarity index 100%
rename from classes/cluster/os_ha_ovs_syndic/openstack/gateway.yml
rename to classes/cluster/os-ha-ovs-syndic/openstack/gateway.yml
diff --git a/classes/cluster/os_ha_ovs_syndic/openstack/init.yml b/classes/cluster/os-ha-ovs-syndic/openstack/init.yml
similarity index 100%
rename from classes/cluster/os_ha_ovs_syndic/openstack/init.yml
rename to classes/cluster/os-ha-ovs-syndic/openstack/init.yml
diff --git a/classes/cluster/os_ha_ovs/openstack/proxy.yml b/classes/cluster/os-ha-ovs-syndic/openstack/proxy.yml
similarity index 93%
copy from classes/cluster/os_ha_ovs/openstack/proxy.yml
copy to classes/cluster/os-ha-ovs-syndic/openstack/proxy.yml
index a819195..9469837 100644
--- a/classes/cluster/os_ha_ovs/openstack/proxy.yml
+++ b/classes/cluster/os-ha-ovs-syndic/openstack/proxy.yml
@@ -4,7 +4,7 @@
 - system.nginx.server.proxy.openstack_vnc
 - system.nginx.server.proxy.openstack_web
 - system.salt.minion.cert.proxy
-- cluster.os_ha_ovs
+- cluster.os-ha-ovs-syndic
 parameters:
   _param:
     nginx_proxy_ssl:
diff --git a/classes/cluster/os_ha_ovs/infra/config.yml b/classes/cluster/os-ha-ovs/infra/config.yml
similarity index 98%
rename from classes/cluster/os_ha_ovs/infra/config.yml
rename to classes/cluster/os-ha-ovs/infra/config.yml
index 41d162d..2273e6a 100644
--- a/classes/cluster/os_ha_ovs/infra/config.yml
+++ b/classes/cluster/os-ha-ovs/infra/config.yml
@@ -32,8 +32,8 @@
 - system.mysql.client.database.nova_api
 - system.mysql.client.database.neutron
 - system.reclass.storage.system.openstack_control_cluster
-- cluster.os_ha_ovs.openstack.proxy
-- cluster.os_ha_ovs
+- cluster.os-ha-ovs.openstack.proxy
+- cluster.os-ha-ovs
 parameters:
   _param:
     reclass_data_repository: https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab
diff --git a/classes/cluster/os_ha_ovs/infra/init.yml b/classes/cluster/os-ha-ovs/infra/init.yml
similarity index 86%
rename from classes/cluster/os_ha_ovs/infra/init.yml
rename to classes/cluster/os-ha-ovs/infra/init.yml
index d5b51f9..b8555b0 100644
--- a/classes/cluster/os_ha_ovs/infra/init.yml
+++ b/classes/cluster/os-ha-ovs/infra/init.yml
@@ -1,7 +1,7 @@
 parameters:
   _param:
-    cluster_domain: os_ha_ovs.local
-    cluster_name: os_ha_ovs
+    cluster_domain: os-ha-ovs.local
+    cluster_name: os-ha-ovs
     infra_config_deploy_address: 192.168.10.90
     infra_config_address: 172.16.10.90
   linux:
diff --git a/classes/cluster/os_aio_ovs/init.yml b/classes/cluster/os-ha-ovs/init.yml
similarity index 64%
rename from classes/cluster/os_aio_ovs/init.yml
rename to classes/cluster/os-ha-ovs/init.yml
index 93793ce..7c35891 100644
--- a/classes/cluster/os_aio_ovs/init.yml
+++ b/classes/cluster/os-ha-ovs/init.yml
@@ -1,7 +1,8 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
-- cluster.os_aio_ovs.infra
-- cluster.os_aio_ovs.openstack
+- cluster.os-ha-ovs.infra
+- cluster.os-ha-ovs.openstack
 - system.openssh.server.team.lab
 - system.openssh.server.team.tcpcloud
 - system.openssh.server.team.mcp_qa
diff --git a/classes/cluster/os_ha_ovs/openstack/compute.yml b/classes/cluster/os-ha-ovs/openstack/compute.yml
similarity index 98%
rename from classes/cluster/os_ha_ovs/openstack/compute.yml
rename to classes/cluster/os-ha-ovs/openstack/compute.yml
index 17634d0..96db48a 100644
--- a/classes/cluster/os_ha_ovs/openstack/compute.yml
+++ b/classes/cluster/os-ha-ovs/openstack/compute.yml
@@ -5,7 +5,7 @@
 - system.linux.network.hosts
 - system.nova.compute.cluster
 - system.neutron.compute.cluster
-- cluster.os_ha_ovs
+- cluster.os-ha-ovs
 parameters:
   _param:
     primary_interface: ens4
diff --git a/classes/cluster/os_ha_ovs/openstack/control.yml b/classes/cluster/os-ha-ovs/openstack/control.yml
similarity index 98%
rename from classes/cluster/os_ha_ovs/openstack/control.yml
rename to classes/cluster/os-ha-ovs/openstack/control.yml
index 4db2dac..b4078b9 100644
--- a/classes/cluster/os_ha_ovs/openstack/control.yml
+++ b/classes/cluster/os-ha-ovs/openstack/control.yml
@@ -30,8 +30,8 @@
 - system.galera.server.database.keystone
 - system.galera.server.database.nova
 - system.haproxy.proxy.listen.openstack.nova-placement
-- cluster.os_ha_ovs.openstack.dashboard
-- cluster.os_ha_ovs
+- cluster.os-ha-ovs.openstack.dashboard
+- cluster.os-ha-ovs
 parameters:
   _param:
     keepalived_vip_interface: ens4
diff --git a/classes/cluster/os_ha_ovs/openstack/dashboard.yml b/classes/cluster/os-ha-ovs/openstack/dashboard.yml
similarity index 95%
rename from classes/cluster/os_ha_ovs/openstack/dashboard.yml
rename to classes/cluster/os-ha-ovs/openstack/dashboard.yml
index ddddaa9..6842cbf 100644
--- a/classes/cluster/os_ha_ovs/openstack/dashboard.yml
+++ b/classes/cluster/os-ha-ovs/openstack/dashboard.yml
@@ -4,7 +4,7 @@
 - system.linux.system.repo.mcp.extra
 - system.linux.system.repo.saltstack.xenial
 - system.horizon.server.cluster
-- cluster.os_ha_ovs
+- cluster.os-ha-ovs
 parameters:
   _param:
     horizon_site_branding: OpenStack Dashboard
diff --git a/classes/cluster/os_ha_ovs/openstack/gateway.yml b/classes/cluster/os-ha-ovs/openstack/gateway.yml
similarity index 100%
rename from classes/cluster/os_ha_ovs/openstack/gateway.yml
rename to classes/cluster/os-ha-ovs/openstack/gateway.yml
diff --git a/classes/cluster/os_ha_ovs/openstack/init.yml b/classes/cluster/os-ha-ovs/openstack/init.yml
similarity index 100%
rename from classes/cluster/os_ha_ovs/openstack/init.yml
rename to classes/cluster/os-ha-ovs/openstack/init.yml
diff --git a/classes/cluster/os_ha_ovs/openstack/proxy.yml b/classes/cluster/os-ha-ovs/openstack/proxy.yml
similarity index 95%
rename from classes/cluster/os_ha_ovs/openstack/proxy.yml
rename to classes/cluster/os-ha-ovs/openstack/proxy.yml
index a819195..bb775ca 100644
--- a/classes/cluster/os_ha_ovs/openstack/proxy.yml
+++ b/classes/cluster/os-ha-ovs/openstack/proxy.yml
@@ -4,7 +4,7 @@
 - system.nginx.server.proxy.openstack_vnc
 - system.nginx.server.proxy.openstack_web
 - system.salt.minion.cert.proxy
-- cluster.os_ha_ovs
+- cluster.os-ha-ovs
 parameters:
   _param:
     nginx_proxy_ssl:
diff --git a/classes/cluster/os_aio_contrail/init.yml b/classes/cluster/os_aio_contrail/init.yml
deleted file mode 100755
index d1e7cb9..0000000
--- a/classes/cluster/os_aio_contrail/init.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-classes:
-- system.linux.system.repo.mcp.extra
-- system.linux.system.single
-- system.rsyslog.client.single
-- system.openssh.server.team.lab
-- system.openssh.server.team.tcpcloud
-- system.openssh.server.team.mcp_qa
-- cluster.os_aio_contrail.infra
-- cluster.os_aio_contrail.opencontrail
-- cluster.os_aio_contrail.openstack
-- cluster.overrides
diff --git a/classes/cluster/os_aio_ovs/infra/init.yml b/classes/cluster/os_aio_ovs/infra/init.yml
deleted file mode 100644
index fee7829..0000000
--- a/classes/cluster/os_aio_ovs/infra/init.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-parameters:
-  _param:
-    cluster_domain: os_aio_ovs.local
-    cluster_name: os_aio_ovs
-    infra_config_deploy_address: 192.168.10.90
-    infra_config_address: 172.16.10.90
-  linux:
-    network:
-      host:
-        cfg01:
-          address: ${_param:infra_config_address}
-          names:
-          - cfg01
-          - cfg01.${_param:cluster_domain}
-        cfg:
-          address: ${_param:infra_config_address}
-          names:
-          - cfg
-          - cfg.${_param:cluster_domain}
diff --git a/classes/cluster/os_aio_ovs/openstack/dashboard.yml b/classes/cluster/os_aio_ovs/openstack/dashboard.yml
deleted file mode 100644
index 9648888..0000000
--- a/classes/cluster/os_aio_ovs/openstack/dashboard.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-classes:
-- system.linux.system.repo.ubuntu
-- system.linux.system.repo.mcp.openstack
-- system.linux.system.repo.mcp.extra
-- system.linux.system.repo.saltstack.xenial
-- system.horizon.server.single
-- cluster.os_aio_ovs
-parameters:
-  _param:
-    horizon_site_branding: OpenStack Dashboard
-  linux:
-    network:
-      interface:
-        ens4:
-          enabled: true
-          type: eth
-          proto: static
-          address: ${_param:single_address}
-          netmask: 255.255.255.0
diff --git a/classes/cluster/os_aio_ovs/openstack/proxy.yml b/classes/cluster/os_aio_ovs/openstack/proxy.yml
deleted file mode 100644
index 657da6f..0000000
--- a/classes/cluster/os_aio_ovs/openstack/proxy.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-classes:
-- system.nginx.server.single
-- system.nginx.server.proxy.openstack_api
-- system.nginx.server.proxy.openstack_vnc
-- system.nginx.server.proxy.openstack_web
-- system.salt.minion.cert.proxy
-- cluster.os_aio_ovs
-parameters:
-  _param:
-    nginx_proxy_ssl:
-      enabled: true
-      authority: ${_param:salt_minion_ca_authority}
-      engine: salt
-      mode: secure
-    salt_minion_ca_host: cfg01.${_param:cluster_domain}
\ No newline at end of file
diff --git a/classes/cluster/os_ha_contrail/infra/init.yml b/classes/cluster/os_ha_contrail/infra/init.yml
deleted file mode 100755
index b80fa88..0000000
--- a/classes/cluster/os_ha_contrail/infra/init.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-parameters:
-  _param:
-    cluster_domain: os_ha_contrail.local
-    cluster_name: os_ha_contrail
-    infra_config_deploy_address: 192.168.10.100
-    infra_config_address: 172.16.10.100
-    infra_config_hostname: cfg01
-    linux_system_repo_mcp_salt_version: nightly
-  linux:
-    network:
-      host:
-        cfg01:
-          address: ${_param:infra_config_address}
-          names:
-          - ${_param:infra_config_hostname}
-          - ${_param:infra_config_hostname}.${_param:cluster_domain}
-        cfg:
-          address: ${_param:infra_config_address}
-          names:
-          - cfg
-          - cfg.${_param:cluster_domain}
diff --git a/classes/cluster/os_ha_contrail/init.yml b/classes/cluster/os_ha_contrail/init.yml
deleted file mode 100755
index b07200b..0000000
--- a/classes/cluster/os_ha_contrail/init.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-classes:
-- system.linux.system.repo.mcp.extra
-- system.linux.system.single
-- system.rsyslog.client.single
-- system.openssh.server.team.lab
-- system.openssh.server.team.tcpcloud
-- system.openssh.server.team.mcp_qa
-- cluster.os_ha_contrail.infra
-- cluster.os_ha_contrail.opencontrail
-- cluster.os_ha_contrail.openstack
-- cluster.overrides
diff --git a/classes/cluster/os_ha_contrail/opencontrail/control.yml b/classes/cluster/os_ha_contrail/opencontrail/control.yml
deleted file mode 100644
index baad03f..0000000
--- a/classes/cluster/os_ha_contrail/opencontrail/control.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-classes:
-- system.linux.system.lowmem
-- system.linux.system.repo.cassandra
-- system.linux.system.repo.mcp.contrail
-- system.linux.system.repo.mcp.openstack
-- system.linux.system.repo.mcp.extra
-- system.linux.system.repo.saltstack.trusty
-- system.opencontrail.client.resource.edge_router
-- system.opencontrail.control.cluster
-- system.opencontrail.client.cluster
-- system.opencontrail.client.resource.control_node
-- system.opencontrail.client.resource.config_node
-- system.opencontrail.client.resource.database_node
-- system.opencontrail.client.resource.analytics_node
-- system.haproxy.proxy.listen.opencontrail.analytics
-- cluster.os_ha_contrail
-parameters:
-  _param:
-    openstack_version: mitaka
-    keepalived_vip_interface: eth1
-    cluster_vip_address: ${_param:opencontrail_control_address}
-    cluster_local_address: ${_param:single_address}
-    cluster_node01_hostname: ntw01
-    cluster_node01_address: ${_param:opencontrail_control_node01_address}
-    cluster_node02_hostname: ntw02
-    cluster_node02_address: ${_param:opencontrail_control_node02_address}
-    cluster_node03_hostname: ntw03
-    cluster_node03_address: ${_param:opencontrail_control_node03_address}
-    opencontrail_router01_hostname: vsrx01.${_param:cluster_domain}
-    opencontrail_router01_address: 172.16.10.131
-  linux:
-    network:
-      interface:
-        eth1:
-          enabled: true
-          type: eth
-          proto: static
-          address: ${_param:single_address}
-          netmask: 255.255.255.0
-  keepalived:
-    cluster:
-      instance:
-        VIP:
-          virtual_router_id: 144
-  opencontrail:
-    web:
-      database:
-        port: 9042
-      network:
-        host: ${_param:openstack_control_address}
-      identity:
-        host: ${_param:openstack_control_address}
-    common:
-      network:
-        host: ${_param:openstack_control_address}
-      identity:
-        host: ${_param:openstack_control_address}
-    config:
-      network:
-        host: ${_param:openstack_control_address}
-      identity:
-        host: ${_param:openstack_control_address}
-      message_queue:
-        engine: rabbitmq
-        host: ${_param:openstack_control_address}
-        port: 5672
diff --git a/classes/cluster/os_ha_contrail/openstack/proxy.yml b/classes/cluster/os_ha_contrail/openstack/proxy.yml
deleted file mode 100755
index baa489f..0000000
--- a/classes/cluster/os_ha_contrail/openstack/proxy.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-classes:
-- system.nginx.server.single
-- system.nginx.server.proxy.opencontrail_web
-- system.nginx.server.proxy.openstack_api
-- system.nginx.server.proxy.openstack_vnc
-- system.nginx.server.proxy.openstack_web
-- system.salt.minion.cert.proxy
-- cluster.os_ha_contrail
-parameters:
-  _param:
-    cluster_vip_address: ${_param:openstack_proxy_address}
-    nginx_proxy_ssl:
-      enabled: true
-      authority: ${_param:salt_minion_ca_authority}
-      engine: salt
-      mode: secure
-    salt_minion_ca_host: cfg01.${_param:cluster_domain}
diff --git a/classes/cluster/os_ha_contrail_40/infra/init.yml b/classes/cluster/os_ha_contrail_40/infra/init.yml
deleted file mode 100644
index fdb1dc3..0000000
--- a/classes/cluster/os_ha_contrail_40/infra/init.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-parameters:
-  _param:
-    cluster_domain: os_ha_contrail_40.local
-    cluster_name: os_ha_contrail_40
-    infra_config_deploy_address: 192.168.10.100
-    infra_config_address: 172.16.10.100
-    infra_config_hostname: cfg01
-    linux_system_repo_mcp_salt_version: nightly
-  linux:
-    network:
-      host:
-        cfg01:
-          address: ${_param:infra_config_address}
-          names:
-          - ${_param:infra_config_hostname}
-          - ${_param:infra_config_hostname}.${_param:cluster_domain}
-        cfg:
-          address: ${_param:infra_config_address}
-          names:
-          - cfg
-          - cfg.${_param:cluster_domain}
diff --git a/classes/cluster/os_ha_contrail_40/opencontrail/init.yml b/classes/cluster/os_ha_contrail_40/opencontrail/init.yml
deleted file mode 100644
index b36a3f0..0000000
--- a/classes/cluster/os_ha_contrail_40/opencontrail/init.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-parameters:
-  _param:
-    opencontrail_analytics_address: ${_param:openstack_control_address}
-    opencontrail_analytics_node01_address: ${_param:openstack_control_node01_address}
-    opencontrail_analytics_node02_address: ${_param:openstack_control_node02_address}
-    opencontrail_analytics_node03_address: ${_param:openstack_control_node03_address}
-
-    opencontrail_control_address: 172.16.10.252
-    opencontrail_control_node01_hostname: ntw01
-    opencontrail_control_node02_hostname: ntw02
-    opencontrail_control_node03_hostname: ntw03
-    opencontrail_control_node01_address: 172.16.10.111
-    opencontrail_control_node02_address: 172.16.10.112
-    opencontrail_control_node03_address: 172.16.10.113
-    opencontrail_control_interface_name: eth1
-  linux:
-    network:
-      host:
-        ntw:
-          address: ${_param:opencontrail_control_address}
-          names:
-          - ntw
-          - ntw.${_param:cluster_domain}
-        ntw01:
-          address: ${_param:opencontrail_control_node01_address}
-          names:
-          - ${_param:opencontrail_control_node01_hostname}
-          - ${_param:opencontrail_control_node01_hostname}.${_param:cluster_domain}
-        ntw02:
-          address: ${_param:opencontrail_control_node02_address}
-          names:
-          - ${_param:opencontrail_control_node02_hostname}
-          - ${_param:opencontrail_control_node02_hostname}.${_param:cluster_domain}
-        ntw03:
-          address: ${_param:opencontrail_control_node03_address}
-          names:
-          - ${_param:opencontrail_control_node03_hostname}
-          - ${_param:opencontrail_control_node03_hostname}.${_param:cluster_domain}
diff --git a/classes/cluster/os_ha_contrail_40/openstack/control.yml b/classes/cluster/os_ha_contrail_40/openstack/control.yml
deleted file mode 100644
index 141c562..0000000
--- a/classes/cluster/os_ha_contrail_40/openstack/control.yml
+++ /dev/null
@@ -1,165 +0,0 @@
-classes:
-- system.linux.system.lowmem
-- system.linux.system.repo.glusterfs
-- system.linux.system.repo.mcp.contrail
-- system.linux.system.repo.mcp.openstack
-- system.linux.system.repo.mcp.extra
-- system.linux.system.repo.saltstack.xenial
-- system.memcached.server.single
-- system.rabbitmq.server.cluster
-- system.rabbitmq.server.vhost.openstack
-- system.keystone.server.wsgi
-- system.keystone.server.cluster
-- system.glusterfs.server.volume.glance
-- system.glusterfs.server.volume.keystone
-- system.glusterfs.server.cluster
-- system.glusterfs.client.cluster
-- system.glusterfs.client.volume.glance
-- system.glusterfs.client.volume.keystone
-- system.glance.control.cluster
-- system.nova.control.cluster
-- system.neutron.control.opencontrail.cluster
-- system.cinder.control.cluster
-- system.heat.server.cluster
-- system.designate.server.cluster
-- system.designate.server.backend.bind
-- system.galera.server.cluster
-- system.galera.server.database.cinder
-- system.galera.server.database.glance
-- system.galera.server.database.heat
-- system.galera.server.database.keystone
-- system.galera.server.database.nova
-- system.galera.server.database.designate
-- system.haproxy.proxy.listen.openstack.nova-placement
-- cluster.os_ha_contrail_40
-parameters:
-  _param:
-    keepalived_vip_interface: ens4
-    cluster_vip_address: ${_param:openstack_control_address}
-    cluster_local_address: ${_param:single_address}
-    cluster_node01_hostname: ctl01
-    cluster_node01_address: ${_param:openstack_control_node01_address}
-    cluster_node02_hostname: ctl02
-    cluster_node02_address: ${_param:openstack_control_node02_address}
-    cluster_node03_hostname: ctl03
-    cluster_node03_address: ${_param:openstack_control_node03_address}
-    keepalived_openstack_telemetry_vip_interface: ens4
-  linux:
-    system:
-      package:
-        python-msgpack:
-          version: latest
-    network:
-      interface:
-        ens4:
-          enabled: true
-          type: eth
-          proto: static
-          address: ${_param:single_address}
-          netmask: 255.255.255.0
-  keepalived:
-    cluster:
-      instance:
-        VIP:
-          virtual_router_id: 150
-  bind:
-    server:
-      control:
-        mgmt:
-          enabled: true
-          bind:
-            address: ${_param:single_address}
-            port: 953
-          allow:
-            - ${_param:openstack_control_node01_address}
-            - ${_param:openstack_control_node02_address}
-            - ${_param:openstack_control_node03_address}
-          keys:
-            - designate
-  keystone:
-    server:
-      admin_email: ${_param:admin_email}
-      notification:
-        driver: messagingv2
-        topics: "notifications"
-  designate:
-    server:
-      pools:
-        default:
-          description: 'test pool'
-          targets:
-            default:
-              description: 'test target1'
-            default1:
-              type: ${_param:designate_pool_target_type}
-              description: 'test target2'
-              masters: ${_param:designate_pool_target_masters}
-              options:
-                host: ${_param:openstack_control_node02_address}
-                port: 53
-                rndc_host: ${_param:openstack_control_node02_address}
-                rndc_port: 953
-                rndc_key_file: /etc/designate/rndc.key
-            default2:
-              type: ${_param:designate_pool_target_type}
-              description: 'test target3'
-              masters: ${_param:designate_pool_target_masters}
-              options:
-                host: ${_param:openstack_control_node03_address}
-                port: 53
-                rndc_host: ${_param:openstack_control_node03_address}
-                rndc_port: 953
-                rndc_key_file: /etc/designate/rndc.key
-  glance:
-    server:
-      storage:
-        engine: file
-      images: []
-      workers: 1
-      notification:
-        driver: messagingv2
-        topics: "notifications"
-  heat:
-    server:
-      notification:
-        driver: messagingv2
-        topics: "notifications"
-  nova:
-    controller:
-      networking: contrail
-      cpu_allocation: 54
-      bind:
-        private_address: ${_param:cluster_local_address}
-        public_address: ${_param:cluster_vip_address}
-        novncproxy_port: 6080
-      vncproxy_url: http://${_param:cluster_vip_address}:6080
-      cache:
-        engine: memcached
-        prefix: CACHE_NOVA
-        members:
-        - host: 127.0.0.1
-          port: 11211
-      workers: 1
-      notification:
-        driver: messagingv2
-        topics: "notifications"
-  neutron:
-    server:
-      plugin: contrail
-      tunnel_type: vxlan
-      public_networks: []
-      contrail:
-        version: ${_param:opencontrail_version}
-      notification:
-        driver: messagingv2
-        topics: "notifications"
-  cinder:
-    volume:
-      notification:
-        driver: messagingv2
-        topics: "notifications"
-    controller:
-      notification:
-        driver: messagingv2
-        topics: "notifications"
-
diff --git a/classes/cluster/os_ha_ovs/init.yml b/classes/cluster/os_ha_ovs/init.yml
deleted file mode 100644
index 000ee69..0000000
--- a/classes/cluster/os_ha_ovs/init.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-classes:
-- system.linux.system.single
-- cluster.os_ha_ovs.infra
-- cluster.os_ha_ovs.openstack
-- system.openssh.server.team.lab
-- system.openssh.server.team.tcpcloud
-- system.openssh.server.team.mcp_qa
-- cluster.overrides
diff --git a/classes/cluster/os_ha_ovs_syndic/init.yml b/classes/cluster/os_ha_ovs_syndic/init.yml
deleted file mode 100644
index 1d6bb29..0000000
--- a/classes/cluster/os_ha_ovs_syndic/init.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-classes:
-- system.linux.system.single
-- cluster.os_ha_ovs_syndic.infra
-- cluster.os_ha_ovs_syndic.openstack
-- system.openssh.server.team.lab
-- system.openssh.server.team.tcpcloud
-- system.openssh.server.team.mcp_qa
-- cluster.overrides
diff --git a/classes/cluster/os_ha_ovs_syndic/openstack/compute.yml b/classes/cluster/os_ha_ovs_syndic/openstack/compute.yml
deleted file mode 100644
index 544640d..0000000
--- a/classes/cluster/os_ha_ovs_syndic/openstack/compute.yml
+++ /dev/null
@@ -1,72 +0,0 @@
-classes:
-- 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
-- cluster.os_ha_ovs_syndic
-parameters:
-  _param:
-    primary_interface: ens4
-    tenant_interface: ens5
-    external_interface: ens6
-    interface_mtu: 9000
-    linux_system_codename: xenial
-  nova:
-    compute:
-      vncproxy_url: http://${_param:cluster_vip_address}:6080
-      notification:
-        driver: messagingv2
-        topics: "notifications"
-        notify_on:
-          state_change: vm_and_task_state
-      message_queue:
-        members:
-          - host: ${_param:openstack_control_node01_address}
-          - host: ${_param:openstack_control_node02_address}
-          - host: ${_param:openstack_control_node03_address}
-  linux:
-    network:
-      bridge: openvswitch
-      concat_iface_files:
-      - src: '/etc/network/interfaces.d/50-cloud-init.cfg'
-        dst: '/etc/network/interfaces'
-      interface:
-        dhcp_int:
-          enabled: true
-          name: ens3
-          proto: dhcp
-          type: eth
-          mtu: ${_param:interface_mtu}
-        primary_interface:
-          enabled: true
-          ipflush_onchange: true
-          name: ${_param:primary_interface}
-          mtu: ${_param:interface_mtu}
-          proto: manual
-          type: eth
-        tenant_interface:
-          enabled: true
-          ipflush_onchange: true
-          name: ${_param:tenant_interface}
-          mtu: ${_param:interface_mtu}
-          proto: manual
-          type: eth
-        br-mgmt:
-          enabled: true
-          type: bridge
-          proto: static
-          address: ${_param:single_address}
-          netmask: 255.255.255.0
-          use_interfaces:
-          - ${_param:primary_interface}
-        br-mesh:
-          enabled: true
-          type: bridge
-          proto: static
-          address: ${_param:tenant_address}
-          netmask: 255.255.255.0
-          use_interfaces:
-          - ${_param:tenant_interface}
-
diff --git a/classes/cluster/os_ha_ovs_syndic/openstack/dashboard.yml b/classes/cluster/os_ha_ovs_syndic/openstack/dashboard.yml
deleted file mode 100644
index 1e4565a..0000000
--- a/classes/cluster/os_ha_ovs_syndic/openstack/dashboard.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-classes:
-- system.linux.system.repo.ubuntu
-- system.linux.system.repo.mcp.openstack
-- system.linux.system.repo.mcp.extra
-- system.linux.system.repo.saltstack.xenial
-- system.horizon.server.cluster
-- cluster.os_ha_ovs_syndic
-parameters:
-  _param:
-    horizon_site_branding: OpenStack Dashboard
-  linux:
-    network:
-      interface:
-        ens4:
-          enabled: true
-          type: eth
-          proto: static
-          address: ${_param:single_address}
-          netmask: 255.255.255.0
diff --git a/classes/cluster/os_ha_ovs_syndic/openstack/proxy.yml b/classes/cluster/os_ha_ovs_syndic/openstack/proxy.yml
deleted file mode 100644
index 880b908..0000000
--- a/classes/cluster/os_ha_ovs_syndic/openstack/proxy.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-classes:
-- system.nginx.server.single
-- system.nginx.server.proxy.openstack_api
-- system.nginx.server.proxy.openstack_vnc
-- system.nginx.server.proxy.openstack_web
-- system.salt.minion.cert.proxy
-- cluster.os_ha_ovs_syndic
-parameters:
-  _param:
-    nginx_proxy_ssl:
-      enabled: true
-      authority: ${_param:salt_minion_ca_authority}
-      engine: salt
-      mode: secure
-    salt_minion_ca_host: cfg01.${_param:cluster_domain}
\ No newline at end of file
diff --git a/classes/cluster/sl_k8s_calico/infra/config.yml b/classes/cluster/sl-k8s-calico/infra/config.yml
similarity index 98%
rename from classes/cluster/sl_k8s_calico/infra/config.yml
rename to classes/cluster/sl-k8s-calico/infra/config.yml
index 88dcede..ca4485d 100644
--- a/classes/cluster/sl_k8s_calico/infra/config.yml
+++ b/classes/cluster/sl-k8s-calico/infra/config.yml
@@ -11,8 +11,8 @@
 - system.mysql.client.database.grafana
 - system.reclass.storage.salt
 - system.reclass.storage.system.kubernetes_control_cluster
-- cluster.sl_k8s_calico.stacklight.proxy
-- cluster.sl_k8s_calico
+- cluster.sl-k8s-calico.stacklight.proxy
+- cluster.sl-k8s-calico
 parameters:
   _param:
     salt_master_base_environment: prd
diff --git a/classes/cluster/sl_k8s_calico/infra/init.yml b/classes/cluster/sl-k8s-calico/infra/init.yml
similarity index 95%
rename from classes/cluster/sl_k8s_calico/infra/init.yml
rename to classes/cluster/sl-k8s-calico/infra/init.yml
index 027faca..758544b 100644
--- a/classes/cluster/sl_k8s_calico/infra/init.yml
+++ b/classes/cluster/sl-k8s-calico/infra/init.yml
@@ -14,7 +14,7 @@
     # infra service addresses
     infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
-    infra_config_deploy_address: 192.168.10.100
+    infra_config_deploy_address: 192.168.10.90
 
     cluster_domain: virtual-mcp11-k8s-calico.local
     cluster_name: virtual-mcp11-k8s-calico
diff --git a/classes/cluster/sl-k8s-calico/init.yml b/classes/cluster/sl-k8s-calico/init.yml
new file mode 100644
index 0000000..e21b7ee
--- /dev/null
+++ b/classes/cluster/sl-k8s-calico/init.yml
@@ -0,0 +1,6 @@
+classes:
+- system.linux.network.dynamic_hosts
+- cluster.sl-k8s-calico.kubernetes
+- cluster.sl-k8s-calico.stacklight
+- cluster.sl-k8s-calico.infra
+- cluster.overrides
diff --git a/classes/cluster/sl_k8s_calico/kubernetes/compute.yml b/classes/cluster/sl-k8s-calico/kubernetes/compute.yml
similarity index 98%
rename from classes/cluster/sl_k8s_calico/kubernetes/compute.yml
rename to classes/cluster/sl-k8s-calico/kubernetes/compute.yml
index 4cdd8d3..db65dae 100644
--- a/classes/cluster/sl_k8s_calico/kubernetes/compute.yml
+++ b/classes/cluster/sl-k8s-calico/kubernetes/compute.yml
@@ -4,7 +4,7 @@
 - system.linux.network.hosts
 - system.salt.minion.cert.k8s_client
 - system.salt.minion.cert.etcd_client
-- cluster.sl_k8s_calico
+- cluster.sl-k8s-calico
 parameters:
   _param:
     kubernetes_calicoctl_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/ctl:latest
diff --git a/classes/cluster/sl_k8s_calico/kubernetes/control.yml b/classes/cluster/sl-k8s-calico/kubernetes/control.yml
similarity index 90%
rename from classes/cluster/sl_k8s_calico/kubernetes/control.yml
rename to classes/cluster/sl-k8s-calico/kubernetes/control.yml
index 3e1b435..f9ac48e 100644
--- a/classes/cluster/sl_k8s_calico/kubernetes/control.yml
+++ b/classes/cluster/sl-k8s-calico/kubernetes/control.yml
@@ -4,9 +4,9 @@
 - system.linux.system.repo.docker
 - system.salt.minion.cert.etcd_server
 - system.kubernetes.master.cluster
-- cluster.sl_k8s_calico.kubernetes.compute
-- cluster.sl_k8s_calico.infra
-- cluster.sl_k8s_calico
+- cluster.sl-k8s-calico.kubernetes.compute
+- cluster.sl-k8s-calico.infra
+- cluster.sl-k8s-calico
 parameters:
   _param:
     keepalived_vip_interface: ${_param:primary_interface}
diff --git a/classes/cluster/sl_k8s_calico/kubernetes/init.yml b/classes/cluster/sl-k8s-calico/kubernetes/init.yml
similarity index 100%
rename from classes/cluster/sl_k8s_calico/kubernetes/init.yml
rename to classes/cluster/sl-k8s-calico/kubernetes/init.yml
diff --git a/classes/cluster/sl_k8s_calico/stacklight/client.yml b/classes/cluster/sl-k8s-calico/stacklight/client.yml
similarity index 85%
rename from classes/cluster/sl_k8s_calico/stacklight/client.yml
rename to classes/cluster/sl-k8s-calico/stacklight/client.yml
index 393449c..dbad497 100644
--- a/classes/cluster/sl_k8s_calico/stacklight/client.yml
+++ b/classes/cluster/sl-k8s-calico/stacklight/client.yml
@@ -4,6 +4,9 @@
 - system.grafana.client
 - system.grafana.client.datasource.prometheus
 - system.kibana.client.single
+- system.heka.log_collector.single
+- system.heka.log_collector.output.telegraf
+- cluster.sl-k8s-calico
 parameters:
   _param:
     # Elasticsearch/Kibana client parameters
diff --git a/classes/cluster/sl_k8s_calico/stacklight/init.yml b/classes/cluster/sl-k8s-calico/stacklight/init.yml
similarity index 95%
rename from classes/cluster/sl_k8s_calico/stacklight/init.yml
rename to classes/cluster/sl-k8s-calico/stacklight/init.yml
index 3237575..2d4dc23 100644
--- a/classes/cluster/sl_k8s_calico/stacklight/init.yml
+++ b/classes/cluster/sl-k8s-calico/stacklight/init.yml
@@ -15,9 +15,6 @@
     stacklight_monitor_node02_address: 172.16.10.108
     stacklight_monitor_node03_address: 172.16.10.109
 
-    # Glusterfs
-    glusterfs_service_host: ${_param:stacklight_monitor_address}
-
     # Prometheus
     prometheus_control_address: ${_param:stacklight_monitor_address}
 
diff --git a/classes/cluster/sl_os_ovs/openstack/proxy.yml b/classes/cluster/sl-k8s-calico/stacklight/proxy.yml
similarity index 95%
copy from classes/cluster/sl_os_ovs/openstack/proxy.yml
copy to classes/cluster/sl-k8s-calico/stacklight/proxy.yml
index 3a76f36..de4e28c 100644
--- a/classes/cluster/sl_os_ovs/openstack/proxy.yml
+++ b/classes/cluster/sl-k8s-calico/stacklight/proxy.yml
@@ -5,11 +5,11 @@
 - system.nginx.server.proxy.monitoring.prometheus_server
 - system.nginx.server.proxy.monitoring.prometheus_alertmanager
 - system.salt.minion.cert.proxy
-- cluster.sl_os_ovs
+- cluster.sl-k8s-calico
 parameters:
   _param:
-    nginx_proxy_grafana_port: 15013
     cluster_public_host: ${_param:prometheus_control_address}
+    nginx_proxy_grafana_port: 15013
     nginx_proxy_ssl:
       enabled: true
       authority: ${_param:salt_minion_ca_authority}
diff --git a/classes/cluster/sl_k8s_calico/stacklight/server.yml b/classes/cluster/sl-k8s-calico/stacklight/server.yml
similarity index 93%
rename from classes/cluster/sl_k8s_calico/stacklight/server.yml
rename to classes/cluster/sl-k8s-calico/stacklight/server.yml
index eb979f9..e7e2f62 100644
--- a/classes/cluster/sl_k8s_calico/stacklight/server.yml
+++ b/classes/cluster/sl-k8s-calico/stacklight/server.yml
@@ -1,8 +1,7 @@
 classes:
 - system.docker.host
 - system.linux.system.repo.influxdb
-- system.linux.system.repo.tcp_elastic
-- system.linux.system.repo.glusterfs
+- system.linux.system.repo.elasticsearch
 # Needed to install Galera packages
 - system.linux.system.repo.mcp.openstack
 - system.elasticsearch.server.cluster
@@ -12,10 +11,6 @@
 - system.haproxy.proxy.listen.stacklight.kibana
 - system.haproxy.proxy.listen.stacklight.influxdb_relay
 - service.haproxy.proxy.single
-- system.glusterfs.client.cluster
-- system.glusterfs.client.volume.prometheus
-- system.glusterfs.server.cluster
-- system.glusterfs.server.volume.prometheus
 - system.galera.server.cluster
 - system.galera.server.database.grafana
 - system.influxdb.relay.cluster
@@ -29,7 +24,7 @@
 - system.prometheus.server.target.dns
 - system.docker.swarm.stack.monitoring
 - system.docker.swarm.stack.dashboard
-- cluster.sl_k8s_calico
+- cluster.sl-k8s-calico
 parameters:
   _param:
     cluster_vip_address: ${_param:stacklight_monitor_address}
diff --git a/classes/cluster/sl_k8s_contrail/infra/config.yml b/classes/cluster/sl-k8s-contrail/infra/config.yml
similarity index 97%
rename from classes/cluster/sl_k8s_contrail/infra/config.yml
rename to classes/cluster/sl-k8s-contrail/infra/config.yml
index b17d297..c287f17 100644
--- a/classes/cluster/sl_k8s_contrail/infra/config.yml
+++ b/classes/cluster/sl-k8s-contrail/infra/config.yml
@@ -10,7 +10,7 @@
 - system.salt.minion.cert.k8s_server
 - system.reclass.storage.system.kubernetes_control_cluster
 - system.reclass.storage.system.opencontrail_control_cluster
-- cluster.sl_k8s_contrail
+- cluster.sl-k8s-contrail
 parameters:
   _param:
     salt_master_base_environment: prd
@@ -85,12 +85,12 @@
         stacklight_monitor_node01:
           expression: <<node_hostname>>__equals__mon01
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node01_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node02:
           expression: <<node_hostname>>__equals__mon02
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node02_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node03:
           expression: <<node_hostname>>__equals__mon03
diff --git a/classes/cluster/sl_k8s_contrail/infra/init.yml b/classes/cluster/sl-k8s-contrail/infra/init.yml
similarity index 89%
rename from classes/cluster/sl_k8s_contrail/infra/init.yml
rename to classes/cluster/sl-k8s-contrail/infra/init.yml
index d5b43d9..0b58654 100644
--- a/classes/cluster/sl_k8s_contrail/infra/init.yml
+++ b/classes/cluster/sl-k8s-contrail/infra/init.yml
@@ -8,10 +8,10 @@
     # infra service addresses
     infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
-    infra_config_deploy_address: 192.168.10.100
+    infra_config_deploy_address: 192.168.10.90
 
-    cluster_domain: sl_k8s_contrail.local
-    cluster_name: sl_k8s_contrail
+    cluster_domain: sl-k8s-contrail.local
+    cluster_name: sl-k8s-contrail
     apt_mk_version: nightly
   linux:
     network:
diff --git a/classes/cluster/sl-k8s-contrail/init.yml b/classes/cluster/sl-k8s-contrail/init.yml
new file mode 100644
index 0000000..2e194af
--- /dev/null
+++ b/classes/cluster/sl-k8s-contrail/init.yml
@@ -0,0 +1,13 @@
+classes:
+- system.linux.network.dynamic_hosts
+- system.linux.system.single
+- cluster.sl-k8s-contrail.kubernetes
+- cluster.sl-k8s-contrail.opencontrail
+- cluster.sl-k8s-contrail.stacklight
+- cluster.sl-k8s-contrail.infra
+- system.openssh.server.team.lab
+- system.openssh.server.team.stacklight
+- system.openssh.server.team.tcpcloud
+- system.openssh.server.team.mcp_qa
+- system.openssh.server.team.k8s_team
+- cluster.overrides
diff --git a/classes/cluster/sl_k8s_contrail/kubernetes/compute.yml b/classes/cluster/sl-k8s-contrail/kubernetes/compute.yml
similarity index 93%
rename from classes/cluster/sl_k8s_contrail/kubernetes/compute.yml
rename to classes/cluster/sl-k8s-contrail/kubernetes/compute.yml
index 351f55e..cdd5047 100644
--- a/classes/cluster/sl_k8s_contrail/kubernetes/compute.yml
+++ b/classes/cluster/sl-k8s-contrail/kubernetes/compute.yml
@@ -4,8 +4,8 @@
 - system.linux.network.hosts
 - system.salt.minion.cert.k8s_client
 - system.salt.minion.cert.etcd_client
-- cluster.sl_k8s_contrail.opencontrail.compute
-- cluster.sl_k8s_contrail
+- cluster.sl-k8s-contrail.opencontrail.compute
+- cluster.sl-k8s-contrail
 parameters:
   linux:
     network:
diff --git a/classes/cluster/sl_k8s_contrail/kubernetes/control.yml b/classes/cluster/sl-k8s-contrail/kubernetes/control.yml
similarity index 94%
rename from classes/cluster/sl_k8s_contrail/kubernetes/control.yml
rename to classes/cluster/sl-k8s-contrail/kubernetes/control.yml
index 0ef115d..70b7ae8 100644
--- a/classes/cluster/sl_k8s_contrail/kubernetes/control.yml
+++ b/classes/cluster/sl-k8s-contrail/kubernetes/control.yml
@@ -4,8 +4,8 @@
 - system.linux.system.repo.docker
 - system.salt.minion.cert.etcd_server
 - system.kubernetes.master.cluster
-- cluster.sl_k8s_contrail.kubernetes.compute
-- cluster.sl_k8s_contrail
+- cluster.sl-k8s-contrail.kubernetes.compute
+- cluster.sl-k8s-contrail
 parameters:
   _param:
     keepalived_vip_interface: ens3
diff --git a/classes/cluster/sl_k8s_contrail/kubernetes/init.yml b/classes/cluster/sl-k8s-contrail/kubernetes/init.yml
similarity index 100%
rename from classes/cluster/sl_k8s_contrail/kubernetes/init.yml
rename to classes/cluster/sl-k8s-contrail/kubernetes/init.yml
diff --git a/classes/cluster/sl_k8s_contrail/opencontrail/compute.yml b/classes/cluster/sl-k8s-contrail/opencontrail/compute.yml
similarity index 100%
rename from classes/cluster/sl_k8s_contrail/opencontrail/compute.yml
rename to classes/cluster/sl-k8s-contrail/opencontrail/compute.yml
diff --git a/classes/cluster/sl_k8s_contrail/opencontrail/control.yml b/classes/cluster/sl-k8s-contrail/opencontrail/control.yml
similarity index 98%
rename from classes/cluster/sl_k8s_contrail/opencontrail/control.yml
rename to classes/cluster/sl-k8s-contrail/opencontrail/control.yml
index bb4f6b7..bc91b83 100644
--- a/classes/cluster/sl_k8s_contrail/opencontrail/control.yml
+++ b/classes/cluster/sl-k8s-contrail/opencontrail/control.yml
@@ -15,7 +15,7 @@
 - system.opencontrail.client.resource.analytics_node
 - system.haproxy.proxy.listen.opencontrail.analytics
 - system.prometheus.exporters.jmx
-- cluster.sl_k8s_contrail
+- cluster.sl-k8s-contrail
 parameters:
   _param:
     keepalived_vip_interface: eth1
diff --git a/classes/cluster/sl_k8s_contrail/opencontrail/init.yml b/classes/cluster/sl-k8s-contrail/opencontrail/init.yml
similarity index 100%
rename from classes/cluster/sl_k8s_contrail/opencontrail/init.yml
rename to classes/cluster/sl-k8s-contrail/opencontrail/init.yml
diff --git a/classes/cluster/sl_k8s_calico/stacklight/client.yml b/classes/cluster/sl-k8s-contrail/stacklight/client.yml
similarity index 84%
copy from classes/cluster/sl_k8s_calico/stacklight/client.yml
copy to classes/cluster/sl-k8s-contrail/stacklight/client.yml
index 393449c..04f6315 100644
--- a/classes/cluster/sl_k8s_calico/stacklight/client.yml
+++ b/classes/cluster/sl-k8s-contrail/stacklight/client.yml
@@ -4,6 +4,9 @@
 - system.grafana.client
 - system.grafana.client.datasource.prometheus
 - system.kibana.client.single
+- system.heka.log_collector.single
+- system.heka.log_collector.output.telegraf
+- cluster.sl-k8s-contrail
 parameters:
   _param:
     # Elasticsearch/Kibana client parameters
diff --git a/classes/cluster/sl_k8s_contrail/stacklight/init.yml b/classes/cluster/sl-k8s-contrail/stacklight/init.yml
similarity index 95%
rename from classes/cluster/sl_k8s_contrail/stacklight/init.yml
rename to classes/cluster/sl-k8s-contrail/stacklight/init.yml
index f57c228..12a5c01 100644
--- a/classes/cluster/sl_k8s_contrail/stacklight/init.yml
+++ b/classes/cluster/sl-k8s-contrail/stacklight/init.yml
@@ -14,8 +14,6 @@
     stacklight_node01_address: 172.16.10.107
     stacklight_node02_address: 172.16.10.108
     stacklight_node03_address: 172.16.10.109
-    # GlusterFS
-    glusterfs_service_host: ${_param:stacklight_monitor_address}
     # Prometheus
     prometheus_control_address: ${_param:stacklight_monitor_address}
 
diff --git a/classes/cluster/sl_os_ovs/openstack/proxy.yml b/classes/cluster/sl-k8s-contrail/stacklight/proxy.yml
similarity index 94%
copy from classes/cluster/sl_os_ovs/openstack/proxy.yml
copy to classes/cluster/sl-k8s-contrail/stacklight/proxy.yml
index 3a76f36..0c20e5e 100644
--- a/classes/cluster/sl_os_ovs/openstack/proxy.yml
+++ b/classes/cluster/sl-k8s-contrail/stacklight/proxy.yml
@@ -5,7 +5,7 @@
 - system.nginx.server.proxy.monitoring.prometheus_server
 - system.nginx.server.proxy.monitoring.prometheus_alertmanager
 - system.salt.minion.cert.proxy
-- cluster.sl_os_ovs
+- cluster.sl-k8s-contrail.infra
 parameters:
   _param:
     nginx_proxy_grafana_port: 15013
diff --git a/classes/cluster/sl_k8s_contrail/stacklight/server.yml b/classes/cluster/sl-k8s-contrail/stacklight/server.yml
similarity index 94%
rename from classes/cluster/sl_k8s_contrail/stacklight/server.yml
rename to classes/cluster/sl-k8s-contrail/stacklight/server.yml
index cc485cb..06e6293 100644
--- a/classes/cluster/sl_k8s_contrail/stacklight/server.yml
+++ b/classes/cluster/sl-k8s-contrail/stacklight/server.yml
@@ -1,7 +1,6 @@
 classes:
 - system.linux.system.repo.influxdb
-- system.linux.system.repo.tcp_elastic
-- system.linux.system.repo.glusterfs
+- system.linux.system.repo.elasticsearch
 # Needed to install Galera packages
 - system.linux.system.repo.mcp.openstack
 - system.docker.host
@@ -14,8 +13,6 @@
 - service.haproxy.proxy.single
 - system.galera.server.cluster
 - system.galera.server.database.grafana
-- system.glusterfs.client.cluster
-- system.glusterfs.client.volume.prometheus
 - system.influxdb.relay.cluster
 - system.influxdb.server.single
 - system.influxdb.database.prometheus
@@ -27,7 +24,7 @@
 - system.prometheus.server.target.dns
 - system.docker.swarm.stack.monitoring
 - system.docker.swarm.stack.dashboard
-- cluster.sl_k8s_contrail.infra
+- cluster.sl-k8s-contrail.infra
 parameters:
   _param:
     cluster_public_host: mon
diff --git a/classes/cluster/sl_os_contrail/infra/config.yml b/classes/cluster/sl-os-contrail/infra/config.yml
similarity index 97%
rename from classes/cluster/sl_os_contrail/infra/config.yml
rename to classes/cluster/sl-os-contrail/infra/config.yml
index 1d2bebb..4dbee00 100755
--- a/classes/cluster/sl_os_contrail/infra/config.yml
+++ b/classes/cluster/sl-os-contrail/infra/config.yml
@@ -38,10 +38,10 @@
 - system.mysql.client.database.neutron
 - system.reclass.storage.system.openstack_control_cluster
 - system.reclass.storage.system.opencontrail_control_cluster
-- cluster.sl_os_contrail.openstack.proxy
-- cluster.sl_os_contrail.stacklight.proxy
-- cluster.sl_os_contrail.openstack.dashboard
-- cluster.sl_os_contrail
+- cluster.sl-os-contrail.openstack.proxy
+- cluster.sl-os-contrail.stacklight.proxy
+- cluster.sl-os-contrail.openstack.dashboard
+- cluster.sl-os-contrail
 parameters:
   _param:
     reclass_data_repository: "https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab"
@@ -220,4 +220,4 @@
           - service.galera.slave.cluster
           params:
             linux_system_codename: xenial
-            mysql_cluster_role: slave
\ No newline at end of file
+            mysql_cluster_role: slave
diff --git a/classes/cluster/os_aio_contrail/infra/init.yml b/classes/cluster/sl-os-contrail/infra/init.yml
similarity index 81%
copy from classes/cluster/os_aio_contrail/infra/init.yml
copy to classes/cluster/sl-os-contrail/infra/init.yml
index 81b8485..a812065 100755
--- a/classes/cluster/os_aio_contrail/infra/init.yml
+++ b/classes/cluster/sl-os-contrail/infra/init.yml
@@ -1,9 +1,9 @@
 parameters:
   _param:
-    cluster_domain: os_aio_contrail.local
-    cluster_name: os_aio_contrail
+    cluster_domain: sl-os-contrail.local
+    cluster_name: sl-os-contrail
     infra_config_deploy_address: 192.168.10.90
-    infra_config_address: 172.16.10.90
+    infra_config_address: 172.16.10.100
     infra_config_hostname: cfg01
     linux_system_repo_mcp_salt_version: nightly
   linux:
diff --git a/classes/cluster/sl_os_contrail/init.yml b/classes/cluster/sl-os-contrail/init.yml
similarity index 60%
rename from classes/cluster/sl_os_contrail/init.yml
rename to classes/cluster/sl-os-contrail/init.yml
index 7da2169..e410120 100755
--- a/classes/cluster/sl_os_contrail/init.yml
+++ b/classes/cluster/sl-os-contrail/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.repo.mcp.extra
 - system.linux.system.single
 - system.rsyslog.client.single
@@ -6,8 +7,8 @@
 - system.openssh.server.team.tcpcloud
 - system.openssh.server.team.stacklight
 - system.openssh.server.team.mcp_qa
-- cluster.sl_os_contrail.infra
-- cluster.sl_os_contrail.opencontrail
-- cluster.sl_os_contrail.openstack
-- cluster.sl_os_contrail.stacklight
+- cluster.sl-os-contrail.infra
+- cluster.sl-os-contrail.opencontrail
+- cluster.sl-os-contrail.openstack
+- cluster.sl-os-contrail.stacklight
 - cluster.overrides
diff --git a/classes/cluster/sl_os_contrail/opencontrail/control.yml b/classes/cluster/sl-os-contrail/opencontrail/control.yml
similarity index 98%
rename from classes/cluster/sl_os_contrail/opencontrail/control.yml
rename to classes/cluster/sl-os-contrail/opencontrail/control.yml
index 1806c79..314d968 100644
--- a/classes/cluster/sl_os_contrail/opencontrail/control.yml
+++ b/classes/cluster/sl-os-contrail/opencontrail/control.yml
@@ -13,7 +13,7 @@
 - system.opencontrail.client.resource.database_node
 - system.opencontrail.client.resource.analytics_node
 - system.haproxy.proxy.listen.opencontrail.analytics
-- cluster.sl_os_contrail
+- cluster.sl-os-contrail
 parameters:
   _param:
     openstack_version: mitaka
diff --git a/classes/cluster/sl_os_contrail/opencontrail/init.yml b/classes/cluster/sl-os-contrail/opencontrail/init.yml
similarity index 100%
rename from classes/cluster/sl_os_contrail/opencontrail/init.yml
rename to classes/cluster/sl-os-contrail/opencontrail/init.yml
diff --git a/classes/cluster/sl_os_contrail/openstack/compute.yml b/classes/cluster/sl-os-contrail/openstack/compute.yml
similarity index 98%
rename from classes/cluster/sl_os_contrail/openstack/compute.yml
rename to classes/cluster/sl-os-contrail/openstack/compute.yml
index bbc62d7..3876f10 100755
--- a/classes/cluster/sl_os_contrail/openstack/compute.yml
+++ b/classes/cluster/sl-os-contrail/openstack/compute.yml
@@ -10,7 +10,7 @@
 - system.opencontrail.client.resource.virtual_router
 - service.opencontrail.compute.cluster
 - system.prometheus.exporters.libvirt
-- cluster.sl_os_contrail
+- cluster.sl-os-contrail
 parameters:
   _param:
     cluster_vip_address: ${_param:openstack_control_address}
diff --git a/classes/cluster/sl_os_contrail/openstack/control.yml b/classes/cluster/sl-os-contrail/openstack/control.yml
similarity index 98%
rename from classes/cluster/sl_os_contrail/openstack/control.yml
rename to classes/cluster/sl-os-contrail/openstack/control.yml
index 7b02b6e..8ebb874 100755
--- a/classes/cluster/sl_os_contrail/openstack/control.yml
+++ b/classes/cluster/sl-os-contrail/openstack/control.yml
@@ -12,7 +12,6 @@
 - system.keystone.server.cluster
 - system.glusterfs.server.volume.glance
 - system.glusterfs.server.volume.keystone
-- system.glusterfs.server.volume.prometheus
 - system.glusterfs.server.cluster
 - system.glusterfs.client.cluster
 - system.glusterfs.client.volume.glance
@@ -34,7 +33,7 @@
 - system.galera.server.database.designate
 - system.haproxy.proxy.listen.openstack.nova-placement
 - system.prometheus.exporters.jmx
-- cluster.sl_os_contrail
+- cluster.sl-os-contrail
 parameters:
   _param:
     keepalived_vip_interface: ens4
diff --git a/classes/cluster/sl_os_contrail/openstack/dashboard.yml b/classes/cluster/sl-os-contrail/openstack/dashboard.yml
similarity index 95%
rename from classes/cluster/sl_os_contrail/openstack/dashboard.yml
rename to classes/cluster/sl-os-contrail/openstack/dashboard.yml
index 7ad6038..0068d41 100755
--- a/classes/cluster/sl_os_contrail/openstack/dashboard.yml
+++ b/classes/cluster/sl-os-contrail/openstack/dashboard.yml
@@ -6,7 +6,7 @@
 - system.horizon.server.single
 - system.horizon.server.plugin.contrail
 - system.horizon.server.plugin.overrides
-- cluster.sl_os_contrail
+- cluster.sl-os-contrail
 parameters:
   _param:
     horizon_site_branding: OpenStack Dashboard
diff --git a/classes/cluster/sl_os_contrail/openstack/init.yml b/classes/cluster/sl-os-contrail/openstack/init.yml
similarity index 100%
rename from classes/cluster/sl_os_contrail/openstack/init.yml
rename to classes/cluster/sl-os-contrail/openstack/init.yml
diff --git a/classes/cluster/sl_os_contrail/openstack/proxy.yml b/classes/cluster/sl-os-contrail/openstack/proxy.yml
similarity index 95%
rename from classes/cluster/sl_os_contrail/openstack/proxy.yml
rename to classes/cluster/sl-os-contrail/openstack/proxy.yml
index 2c521f6..d517b17 100755
--- a/classes/cluster/sl_os_contrail/openstack/proxy.yml
+++ b/classes/cluster/sl-os-contrail/openstack/proxy.yml
@@ -5,7 +5,7 @@
 - system.nginx.server.proxy.openstack_vnc
 - system.nginx.server.proxy.openstack_web
 - system.salt.minion.cert.proxy
-- cluster.sl_os_contrail
+- cluster.sl-os-contrail
 parameters:
   _param:
     cluster_vip_address: ${_param:openstack_proxy_address}
diff --git a/classes/cluster/sl_os_contrail/stacklight/client.yml b/classes/cluster/sl-os-contrail/stacklight/client.yml
similarity index 84%
copy from classes/cluster/sl_os_contrail/stacklight/client.yml
copy to classes/cluster/sl-os-contrail/stacklight/client.yml
index 40a4c38..676113e 100755
--- a/classes/cluster/sl_os_contrail/stacklight/client.yml
+++ b/classes/cluster/sl-os-contrail/stacklight/client.yml
@@ -3,6 +3,9 @@
 - system.grafana.client
 - system.grafana.client.datasource.prometheus
 - system.kibana.client.single
+- system.heka.log_collector.single
+- system.heka.log_collector.output.telegraf
+- cluster.sl-os-contrail
 parameters:
   _param:
     # Elasticsearch/Kibana client parameters
diff --git a/classes/cluster/sl_os_contrail/stacklight/init.yml b/classes/cluster/sl-os-contrail/stacklight/init.yml
similarity index 100%
rename from classes/cluster/sl_os_contrail/stacklight/init.yml
rename to classes/cluster/sl-os-contrail/stacklight/init.yml
diff --git a/classes/cluster/sl_os_ovs/openstack/proxy.yml b/classes/cluster/sl-os-contrail/stacklight/proxy.yml
old mode 100644
new mode 100755
similarity index 95%
copy from classes/cluster/sl_os_ovs/openstack/proxy.yml
copy to classes/cluster/sl-os-contrail/stacklight/proxy.yml
index 3a76f36..5dd1640
--- a/classes/cluster/sl_os_ovs/openstack/proxy.yml
+++ b/classes/cluster/sl-os-contrail/stacklight/proxy.yml
@@ -5,7 +5,7 @@
 - system.nginx.server.proxy.monitoring.prometheus_server
 - system.nginx.server.proxy.monitoring.prometheus_alertmanager
 - system.salt.minion.cert.proxy
-- cluster.sl_os_ovs
+- cluster.sl-os-contrail
 parameters:
   _param:
     nginx_proxy_grafana_port: 15013
diff --git a/classes/cluster/sl_os_contrail/stacklight/server.yml b/classes/cluster/sl-os-contrail/stacklight/server.yml
similarity index 88%
rename from classes/cluster/sl_os_contrail/stacklight/server.yml
rename to classes/cluster/sl-os-contrail/stacklight/server.yml
index 243ec03..4c7b720 100755
--- a/classes/cluster/sl_os_contrail/stacklight/server.yml
+++ b/classes/cluster/sl-os-contrail/stacklight/server.yml
@@ -1,11 +1,8 @@
 classes:
 - system.docker.host
-- system.linux.system.repo.glusterfs
 - system.linux.system.repo.influxdb
 - system.linux.system.repo.mcp.salt
-- system.linux.system.repo.tcp_elastic
-- system.glusterfs.client.cluster
-- system.glusterfs.client.volume.prometheus
+- system.linux.system.repo.elasticsearch
 - system.elasticsearch.server.cluster
 - system.elasticsearch.server.curator
 - system.kibana.server.single
@@ -24,7 +21,7 @@
 - system.docker.swarm.stack.monitoring
 - system.docker.swarm.stack.dashboard
 - system.docker.swarm.stack.monitoring.remote_collector
-- cluster.sl_os_contrail
+- cluster.sl-os-contrail
 parameters:
   _param:
     kibana_elasticsearch_host: ${_param:stacklight_monitor_address}
@@ -52,10 +49,6 @@
     docker_image_remote_collector: docker-prod-virtual.docker.mirantis.net/openstack-docker/heka:latest
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
     docker_image_grafana: grafana/grafana:4.3.2
-    prometheus_glusterfs_service_host: ${_param:openstack_control_address}
-    glusterfs_node01_address: ${_param:openstack_control_node01_address}
-    glusterfs_node02_address: ${_param:openstack_control_node02_address}
-    glusterfs_node03_address: ${_param:openstack_control_node03_address}
     grafana_admin_password: admin
     grafana_database_type: mysql
     grafana_database_host: ${_param:cluster_vip_address}
diff --git a/classes/cluster/sl_os_ovs/infra/config.yml b/classes/cluster/sl-os-ovs/infra/config.yml
similarity index 97%
rename from classes/cluster/sl_os_ovs/infra/config.yml
rename to classes/cluster/sl-os-ovs/infra/config.yml
index 5e87ffa..510527f 100644
--- a/classes/cluster/sl_os_ovs/infra/config.yml
+++ b/classes/cluster/sl-os-ovs/infra/config.yml
@@ -37,10 +37,10 @@
 - system.mysql.client.database.neutron
 - system.reclass.storage.system.openstack_control_cluster
 - system.reclass.storage.system.stacklight_server_cluster
-- cluster.sl_os_ovs.openstack.proxy
-- cluster.sl_os_ovs.stacklight.proxy
-- cluster.sl_os_ovs.openstack.dashboard
-- cluster.sl_os_ovs
+- cluster.sl-os-ovs.openstack.proxy
+- cluster.sl-os-ovs.stacklight.proxy
+- cluster.sl-os-ovs.openstack.dashboard
+- cluster.sl-os-ovs
 parameters:
   _param:
     reclass_data_repository: https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab
diff --git a/classes/cluster/os_ha_ovs/infra/init.yml b/classes/cluster/sl-os-ovs/infra/init.yml
similarity index 78%
copy from classes/cluster/os_ha_ovs/infra/init.yml
copy to classes/cluster/sl-os-ovs/infra/init.yml
index d5b51f9..b774ff8 100644
--- a/classes/cluster/os_ha_ovs/infra/init.yml
+++ b/classes/cluster/sl-os-ovs/infra/init.yml
@@ -1,9 +1,9 @@
 parameters:
   _param:
-    cluster_domain: os_ha_ovs.local
-    cluster_name: os_ha_ovs
+    cluster_domain: sl-os-ovs.local
+    cluster_name: sl-os-ovs
     infra_config_deploy_address: 192.168.10.90
-    infra_config_address: 172.16.10.90
+    infra_config_address: 172.16.10.100
   linux:
     network:
       host:
diff --git a/classes/cluster/sl_os_ovs/init.yml b/classes/cluster/sl-os-ovs/init.yml
similarity index 62%
rename from classes/cluster/sl_os_ovs/init.yml
rename to classes/cluster/sl-os-ovs/init.yml
index 0eefee9..bbd135b 100644
--- a/classes/cluster/sl_os_ovs/init.yml
+++ b/classes/cluster/sl-os-ovs/init.yml
@@ -1,10 +1,11 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - system.openssh.server.team.lab
 - system.openssh.server.team.tcpcloud
 - system.openssh.server.team.stacklight
 - system.openssh.server.team.mcp_qa
-- cluster.sl_os_ovs.infra
-- cluster.sl_os_ovs.openstack
-- cluster.sl_os_ovs.stacklight
+- cluster.sl-os-ovs.infra
+- cluster.sl-os-ovs.openstack
+- cluster.sl-os-ovs.stacklight
 - cluster.overrides
diff --git a/classes/cluster/sl_os_ovs/openstack/compute.yml b/classes/cluster/sl-os-ovs/openstack/compute.yml
similarity index 98%
rename from classes/cluster/sl_os_ovs/openstack/compute.yml
rename to classes/cluster/sl-os-ovs/openstack/compute.yml
index 0a17475..bbec98e 100644
--- a/classes/cluster/sl_os_ovs/openstack/compute.yml
+++ b/classes/cluster/sl-os-ovs/openstack/compute.yml
@@ -6,7 +6,7 @@
 - system.nova.compute.cluster
 - system.neutron.compute.cluster
 - system.prometheus.exporters.libvirt
-- cluster.sl_os_ovs
+- cluster.sl-os-ovs
 parameters:
   _param:
     primary_interface: ens4
diff --git a/classes/cluster/sl_os_ovs/openstack/control.yml b/classes/cluster/sl-os-ovs/openstack/control.yml
similarity index 99%
rename from classes/cluster/sl_os_ovs/openstack/control.yml
rename to classes/cluster/sl-os-ovs/openstack/control.yml
index 06ebdc7..70287f9 100644
--- a/classes/cluster/sl_os_ovs/openstack/control.yml
+++ b/classes/cluster/sl-os-ovs/openstack/control.yml
@@ -28,7 +28,7 @@
 - system.galera.server.database.keystone
 - system.galera.server.database.nova
 - system.haproxy.proxy.listen.openstack.nova-placement
-- cluster.sl_os_ovs
+- cluster.sl-os-ovs
 parameters:
   _param:
     keepalived_vip_interface: ens4
diff --git a/classes/cluster/sl_os_ovs/openstack/dashboard.yml b/classes/cluster/sl-os-ovs/openstack/dashboard.yml
similarity index 95%
rename from classes/cluster/sl_os_ovs/openstack/dashboard.yml
rename to classes/cluster/sl-os-ovs/openstack/dashboard.yml
index cb3aa56..41200f0 100644
--- a/classes/cluster/sl_os_ovs/openstack/dashboard.yml
+++ b/classes/cluster/sl-os-ovs/openstack/dashboard.yml
@@ -4,7 +4,7 @@
 - system.linux.system.repo.mcp.extra
 - system.linux.system.repo.saltstack.xenial
 - system.horizon.server.single
-- cluster.sl_os_ovs
+- cluster.sl-os-ovs
 parameters:
   _param:
     horizon_site_branding: OpenStack Dashboard
diff --git a/classes/cluster/sl_os_ovs/openstack/gateway.yml b/classes/cluster/sl-os-ovs/openstack/gateway.yml
similarity index 100%
rename from classes/cluster/sl_os_ovs/openstack/gateway.yml
rename to classes/cluster/sl-os-ovs/openstack/gateway.yml
diff --git a/classes/cluster/sl_os_ovs/openstack/init.yml b/classes/cluster/sl-os-ovs/openstack/init.yml
similarity index 100%
rename from classes/cluster/sl_os_ovs/openstack/init.yml
rename to classes/cluster/sl-os-ovs/openstack/init.yml
diff --git a/classes/cluster/sl_os_ovs/openstack/proxy.yml b/classes/cluster/sl-os-ovs/openstack/proxy.yml
similarity index 96%
rename from classes/cluster/sl_os_ovs/openstack/proxy.yml
rename to classes/cluster/sl-os-ovs/openstack/proxy.yml
index 3a76f36..bac17ef 100644
--- a/classes/cluster/sl_os_ovs/openstack/proxy.yml
+++ b/classes/cluster/sl-os-ovs/openstack/proxy.yml
@@ -5,7 +5,7 @@
 - system.nginx.server.proxy.monitoring.prometheus_server
 - system.nginx.server.proxy.monitoring.prometheus_alertmanager
 - system.salt.minion.cert.proxy
-- cluster.sl_os_ovs
+- cluster.sl-os-ovs
 parameters:
   _param:
     nginx_proxy_grafana_port: 15013
diff --git a/classes/cluster/sl_os_contrail/stacklight/client.yml b/classes/cluster/sl-os-ovs/stacklight/client.yml
old mode 100755
new mode 100644
similarity index 85%
rename from classes/cluster/sl_os_contrail/stacklight/client.yml
rename to classes/cluster/sl-os-ovs/stacklight/client.yml
index 40a4c38..ddc2f9f
--- a/classes/cluster/sl_os_contrail/stacklight/client.yml
+++ b/classes/cluster/sl-os-ovs/stacklight/client.yml
@@ -3,6 +3,9 @@
 - system.grafana.client
 - system.grafana.client.datasource.prometheus
 - system.kibana.client.single
+- system.heka.log_collector.single
+- system.heka.log_collector.output.telegraf
+- cluster.sl-os-ovs
 parameters:
   _param:
     # Elasticsearch/Kibana client parameters
diff --git a/classes/cluster/sl_os_ovs/stacklight/init.yml b/classes/cluster/sl-os-ovs/stacklight/init.yml
similarity index 96%
rename from classes/cluster/sl_os_ovs/stacklight/init.yml
rename to classes/cluster/sl-os-ovs/stacklight/init.yml
index 3e56adb..2449e44 100644
--- a/classes/cluster/sl_os_ovs/stacklight/init.yml
+++ b/classes/cluster/sl-os-ovs/stacklight/init.yml
@@ -16,8 +16,6 @@
     stacklight_monitor_node03_address: 172.16.10.109
     salt_minion_ca_host: cfg01.${_param:cluster_domain}
     salt_minion_ca_authority: salt_master_ca
-    # Glusterfs
-    glusterfs_service_host: ${_param:stacklight_monitor_address}
 
     # Prometheus
     prometheus_control_address: ${_param:stacklight_monitor_address}
diff --git a/classes/cluster/sl_os_ovs/stacklight/proxy.yml b/classes/cluster/sl-os-ovs/stacklight/proxy.yml
similarity index 95%
rename from classes/cluster/sl_os_ovs/stacklight/proxy.yml
rename to classes/cluster/sl-os-ovs/stacklight/proxy.yml
index e510cef..3a2671b 100644
--- a/classes/cluster/sl_os_ovs/stacklight/proxy.yml
+++ b/classes/cluster/sl-os-ovs/stacklight/proxy.yml
@@ -4,7 +4,7 @@
 - system.nginx.server.proxy.kibana_web
 - system.nginx.server.proxy.nagios_web
 - system.salt.minion.cert.proxy
-- cluster.sl_os_ovs
+- cluster.sl-os-ovs
 parameters:
   _param:
     cluster_public_host: ${_param:prometheus_control_address}
diff --git a/classes/cluster/sl_os_ovs/stacklight/server.yml b/classes/cluster/sl-os-ovs/stacklight/server.yml
similarity index 88%
rename from classes/cluster/sl_os_ovs/stacklight/server.yml
rename to classes/cluster/sl-os-ovs/stacklight/server.yml
index c48b77c..a85809e 100644
--- a/classes/cluster/sl_os_ovs/stacklight/server.yml
+++ b/classes/cluster/sl-os-ovs/stacklight/server.yml
@@ -1,7 +1,7 @@
 classes:
 - system.docker.host
 - system.linux.system.repo.influxdb
-- system.linux.system.repo.tcp_elastic
+- system.linux.system.repo.elasticsearch
 - system.linux.system.repo.mcp.openstack
 - system.elasticsearch.server.cluster
 - system.elasticsearch.server.curator
@@ -10,8 +10,6 @@
 - system.haproxy.proxy.listen.stacklight.kibana
 - system.haproxy.proxy.listen.stacklight.influxdb_relay
 - service.haproxy.proxy.single
-- system.glusterfs.client.cluster
-- system.glusterfs.client.volume.prometheus
 - system.galera.server.cluster
 - system.galera.server.database.grafana
 - system.influxdb.relay.cluster
@@ -26,8 +24,8 @@
 - system.docker.swarm.stack.monitoring
 - system.docker.swarm.stack.dashboard
 - system.docker.swarm.stack.monitoring.remote_collector
-- cluster.sl_os_ovs.stacklight.client
-- cluster.sl_os_ovs
+- cluster.sl-os-ovs.stacklight.client
+- cluster.sl-os-ovs
 parameters:
   _param:
     heka_amqp_host: ${_param:openstack_control_address}
@@ -66,10 +64,6 @@
     influxdb_admin_password: password
     influxdb_stacklight_password: lmapass
     openstack_version: newton
-    prometheus_glusterfs_service_host: ${_param:openstack_control_address}
-    glusterfs_node01_address: ${_param:openstack_control_node01_address}
-    glusterfs_node02_address: ${_param:openstack_control_node02_address}
-    glusterfs_node03_address: ${_param:openstack_control_node03_address}
     remote_collector_telegraf_host: monitoring_remote_agent
   linux:
     network:
diff --git a/classes/cluster/sl_k8s_calico/init.yml b/classes/cluster/sl_k8s_calico/init.yml
deleted file mode 100644
index b2a2a4d..0000000
--- a/classes/cluster/sl_k8s_calico/init.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-classes:
-- cluster.sl_k8s_calico.kubernetes
-- cluster.sl_k8s_calico.stacklight
-- cluster.sl_k8s_calico.infra
-- cluster.overrides
diff --git a/classes/cluster/sl_k8s_calico/stacklight/proxy.yml b/classes/cluster/sl_k8s_calico/stacklight/proxy.yml
deleted file mode 100644
index f2a4469..0000000
--- a/classes/cluster/sl_k8s_calico/stacklight/proxy.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-classes:
-- system.nginx.server.single
-- system.nginx.server.proxy.stacklight.grafana
-- system.nginx.server.proxy.stacklight.kibana
-- system.nginx.server.proxy.monitoring.prometheus_server
-- system.nginx.server.proxy.monitoring.prometheus_alertmanager
-- system.salt.minion.cert.proxy
-- cluster.sl_k8s_calico
-parameters:
-  _param:
-    cluster_public_host: ${_param:prometheus_control_address}
-    nginx_proxy_grafana_port: 15013
-    nginx_proxy_ssl:
-      enabled: true
-      authority: ${_param:salt_minion_ca_authority}
-      engine: salt
-      mode: secure
-    salt_minion_ca_host: cfg01.${_param:cluster_domain}
diff --git a/classes/cluster/sl_k8s_contrail/init.yml b/classes/cluster/sl_k8s_contrail/init.yml
deleted file mode 100644
index f190b82..0000000
--- a/classes/cluster/sl_k8s_contrail/init.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-classes:
-- system.linux.system.single
-- cluster.sl_k8s_contrail.kubernetes
-- cluster.sl_k8s_contrail.opencontrail
-- cluster.sl_k8s_contrail.stacklight
-- cluster.sl_k8s_contrail.infra
-- system.openssh.server.team.lab
-- system.openssh.server.team.stacklight
-- system.openssh.server.team.tcpcloud
-- system.openssh.server.team.mcp_qa
-- system.openssh.server.team.k8s_team
-- cluster.overrides
diff --git a/classes/cluster/sl_k8s_contrail/stacklight/client.yml b/classes/cluster/sl_k8s_contrail/stacklight/client.yml
deleted file mode 100644
index 393449c..0000000
--- a/classes/cluster/sl_k8s_contrail/stacklight/client.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-classes:
-- system.docker.client
-- system.elasticsearch.client.single
-- system.grafana.client
-- system.grafana.client.datasource.prometheus
-- system.kibana.client.single
-parameters:
-  _param:
-    # Elasticsearch/Kibana client parameters
-    stacklight_log_address: ${_param:stacklight_monitor_address}
-    # Grafana client parameters
-    grafana_address: ${_param:stacklight_monitor_address}
-    grafana_port: 15013
-    grafana_user: admin
-    grafana_password: ${_param:grafana_admin_password}
-    grafana_prometheus_address: ${_param:stacklight_monitor_address}
-    grafana_prometheus_port: 15010
diff --git a/classes/cluster/sl_k8s_contrail/stacklight/proxy.yml b/classes/cluster/sl_k8s_contrail/stacklight/proxy.yml
deleted file mode 100644
index 2818149..0000000
--- a/classes/cluster/sl_k8s_contrail/stacklight/proxy.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-classes:
-- system.nginx.server.single
-- system.nginx.server.proxy.stacklight.grafana
-- system.nginx.server.proxy.stacklight.kibana
-- system.nginx.server.proxy.monitoring.prometheus_server
-- system.nginx.server.proxy.monitoring.prometheus_alertmanager
-- system.salt.minion.cert.proxy
-- cluster.sl_k8s_contrail.infra
-parameters:
-  _param:
-    nginx_proxy_grafana_port: 15013
-    cluster_public_host: ${_param:prometheus_control_address}
-    nginx_proxy_ssl:
-      enabled: true
-      authority: ${_param:salt_minion_ca_authority}
-      engine: salt
-      mode: secure
-    salt_minion_ca_host: cfg01.${_param:cluster_domain}
diff --git a/classes/cluster/sl_os_contrail/infra/init.yml b/classes/cluster/sl_os_contrail/infra/init.yml
deleted file mode 100755
index 38ef139..0000000
--- a/classes/cluster/sl_os_contrail/infra/init.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-parameters:
-  _param:
-    cluster_domain: sl_os_contrail.local
-    cluster_name: sl_os_contrail
-    infra_config_deploy_address: 192.168.10.100
-    infra_config_address: 172.16.10.100
-    infra_config_hostname: cfg01
-    linux_system_repo_mcp_salt_version: nightly
-  linux:
-    network:
-      host:
-        cfg01:
-          address: ${_param:infra_config_address}
-          names:
-          - ${_param:infra_config_hostname}
-          - ${_param:infra_config_hostname}.${_param:cluster_domain}
-        cfg:
-          address: ${_param:infra_config_address}
-          names:
-          - cfg
-          - cfg.${_param:cluster_domain}
diff --git a/classes/cluster/sl_os_contrail/stacklight/proxy.yml b/classes/cluster/sl_os_contrail/stacklight/proxy.yml
deleted file mode 100755
index 8b71bcb..0000000
--- a/classes/cluster/sl_os_contrail/stacklight/proxy.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-classes:
-- system.nginx.server.single
-- system.nginx.server.proxy.stacklight.grafana
-- system.nginx.server.proxy.stacklight.kibana
-- system.nginx.server.proxy.monitoring.prometheus_server
-- system.nginx.server.proxy.monitoring.prometheus_alertmanager
-- system.salt.minion.cert.proxy
-- cluster.sl_os_contrail
-parameters:
-  _param:
-    nginx_proxy_grafana_port: 15013
-    cluster_public_host: ${_param:prometheus_control_address}
-    nginx_proxy_ssl:
-      enabled: true
-      authority: ${_param:salt_minion_ca_authority}
-      engine: salt
-      mode: secure
-    salt_minion_ca_host: cfg01.${_param:cluster_domain}
diff --git a/classes/cluster/sl_os_ovs/infra/init.yml b/classes/cluster/sl_os_ovs/infra/init.yml
deleted file mode 100644
index 9acca1d..0000000
--- a/classes/cluster/sl_os_ovs/infra/init.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-parameters:
-  _param:
-    cluster_domain: sl_os_ovs.local
-    cluster_name: sl_os_ovs
-    infra_config_deploy_address: 192.168.10.100
-    infra_config_address: 172.16.10.100
-  linux:
-    network:
-      host:
-        cfg01:
-          address: ${_param:infra_config_address}
-          names:
-          - cfg01
-          - cfg01.${_param:cluster_domain}
-        cfg:
-          address: ${_param:infra_config_address}
-          names:
-          - cfg
-          - cfg.${_param:cluster_domain}
diff --git a/classes/cluster/sl_os_ovs/stacklight/client.yml b/classes/cluster/sl_os_ovs/stacklight/client.yml
deleted file mode 100644
index 40a4c38..0000000
--- a/classes/cluster/sl_os_ovs/stacklight/client.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-classes:
-- system.elasticsearch.client.single
-- system.grafana.client
-- system.grafana.client.datasource.prometheus
-- system.kibana.client.single
-parameters:
-  _param:
-    # Elasticsearch/Kibana client parameters
-    stacklight_log_address: ${_param:stacklight_monitor_address}
-    # Grafana client parameters
-    grafana_address: ${_param:stacklight_monitor_address}
-    grafana_port: 15013
-    grafana_user: admin
-    grafana_password: ${_param:grafana_admin_password}
-    grafana_prometheus_address: ${_param:stacklight_monitor_address}
-    grafana_prometheus_port: 15010
diff --git a/classes/cluster/virtual-mcp-ocata-cicd/cicd/control/init.yml b/classes/cluster/virtual-mcp-ocata-cicd/cicd/control/init.yml
index a9e7f7b..d9f86ab 100644
--- a/classes/cluster/virtual-mcp-ocata-cicd/cicd/control/init.yml
+++ b/classes/cluster/virtual-mcp-ocata-cicd/cicd/control/init.yml
@@ -10,7 +10,6 @@
   - system.glusterfs.client.volume.mysql
   - system.glusterfs.client.volume.openldap
   - system.glusterfs.client.volume.postgresql
-  - system.glusterfs.client.volume.prometheus
   - system.glusterfs.client.volume.pushkin
   - system.glusterfs.client.volume.registry
   - system.glusterfs.client.volume.rundeck
@@ -245,6 +244,10 @@
     pushkin_db_user: pushkin
     pushkin_db_user_password: kRQaFJWiqhQfy6sN
     pushkin_db_host: ${_param:haproxy_postgresql_bind_host}
+    pushkin_smtp_host: 127.0.0.1
+    pushkin_smtp_port: 25
+    pushkin_email_sender_password: ''
+
     #..WebHook notification senders
     webhook_from: pushkin@example.com
     webhook_recipients: alerts@example.com
diff --git a/classes/cluster/virtual-mcp-ocata-cicd/cicd/gluster.yml b/classes/cluster/virtual-mcp-ocata-cicd/cicd/gluster.yml
index 47cd942..082902e 100644
--- a/classes/cluster/virtual-mcp-ocata-cicd/cicd/gluster.yml
+++ b/classes/cluster/virtual-mcp-ocata-cicd/cicd/gluster.yml
@@ -9,7 +9,6 @@
   - system.glusterfs.server.volume.mysql
   - system.glusterfs.server.volume.openldap
   - system.glusterfs.server.volume.postgresql
-  - system.glusterfs.server.volume.prometheus
   - system.glusterfs.server.volume.pushkin
   - system.glusterfs.server.volume.registry
   - system.glusterfs.server.volume.rundeck
diff --git a/classes/cluster/virtual-mcp-ocata-cicd/infra/config.yml b/classes/cluster/virtual-mcp-ocata-cicd/infra/config.yml
index 50b7893..e0425aa 100644
--- a/classes/cluster/virtual-mcp-ocata-cicd/infra/config.yml
+++ b/classes/cluster/virtual-mcp-ocata-cicd/infra/config.yml
@@ -32,7 +32,7 @@
     reclass_data_revision: master
     salt_master_environment_repository: "https://github.com/tcpcloud"
     salt_master_environment_revision: master
-    reclass_config_master: 192.168.10.100
+    reclass_config_master: 192.168.10.90
     single_address: 172.16.10.100
     salt_master_host: 127.0.0.1
     salt_master_base_environment: prd
diff --git a/classes/cluster/virtual-mcp-ocata-cicd/stacklight/server.yml b/classes/cluster/virtual-mcp-ocata-cicd/stacklight/server.yml
index a455c20..67ca202 100644
--- a/classes/cluster/virtual-mcp-ocata-cicd/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp-ocata-cicd/stacklight/server.yml
@@ -1,6 +1,6 @@
 classes:
 - system.linux.system.repo.influxdb
-- system.linux.system.repo.tcp_elastic
+- system.linux.system.repo.elasticsearch
 # Needed to install Galera packages
 - system.linux.system.repo.mcp.openstack
 - system.elasticsearch.server.cluster
diff --git a/classes/cluster/virtual-mcp-ocata-dvr/infra/config.yml b/classes/cluster/virtual-mcp-ocata-dvr/infra/config.yml
index d3a6dcd..139289e 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/infra/config.yml
+++ b/classes/cluster/virtual-mcp-ocata-dvr/infra/config.yml
@@ -34,7 +34,7 @@
     salt_master_environment_repository: "https://github.com/tcpcloud"
     salt_master_environment_revision: master
     salt_api_password_hash: "$6$sGnRlxGf$al5jMCetLP.vfI/fTl3Z0N7Za1aeiexL487jAtyRABVfT3NlwZxQGVhO7S1N8OwS/34VHYwZQA8lkXwKMN/GS1"
-    reclass_config_master: 192.168.10.100
+    reclass_config_master: 192.168.10.90
     single_address: 172.16.10.100
     salt_master_host: 127.0.0.1
     salt_master_base_environment: prd
@@ -123,12 +123,12 @@
         stacklight_monitor_node01:
           expression: <<node_hostname>>__equals__mon01
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node01_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node02:
           expression: <<node_hostname>>__equals__mon02
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node02_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node03:
           expression: <<node_hostname>>__equals__mon03
@@ -185,4 +185,4 @@
           classes:
           - cluster.virtual-mcp-ocata-dvr.openstack.proxy
           params:
-            linux_system_codename: xenial
\ No newline at end of file
+            linux_system_codename: xenial
diff --git a/classes/cluster/virtual-mcp-ocata-dvr/init.yml b/classes/cluster/virtual-mcp-ocata-dvr/init.yml
index bd4c2e4..14f6686 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/init.yml
+++ b/classes/cluster/virtual-mcp-ocata-dvr/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - service.grafana.collector
 - system.heka.log_collector.single
 - system.heka.log_collector.output.telegraf
diff --git a/classes/cluster/virtual-mcp-ocata-dvr/openstack/compute.yml b/classes/cluster/virtual-mcp-ocata-dvr/openstack/compute.yml
index 4e4a03e..3aa82c2 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/openstack/compute.yml
+++ b/classes/cluster/virtual-mcp-ocata-dvr/openstack/compute.yml
@@ -24,8 +24,6 @@
   nova:
     compute:
       vncproxy_url: http://${_param:cluster_vip_address}:6080
-      notification:
-        driver: messagingv2
       message_queue:
         members:
           - host: ${_param:openstack_control_node01_address}
diff --git a/classes/cluster/virtual-mcp-ocata-dvr/openstack/control.yml b/classes/cluster/virtual-mcp-ocata-dvr/openstack/control.yml
index 4fb5eaa..dbc3464 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/openstack/control.yml
+++ b/classes/cluster/virtual-mcp-ocata-dvr/openstack/control.yml
@@ -14,7 +14,6 @@
 - system.glusterfs.client.volume.keystone
 - system.glusterfs.server.volume.glance
 - system.glusterfs.server.volume.keystone
-- system.glusterfs.server.volume.prometheus
 - system.glusterfs.server.cluster
 - system.glance.control.cluster
 - system.nova.control.cluster
diff --git a/classes/cluster/virtual-mcp-ocata-dvr/stacklight/client.yml b/classes/cluster/virtual-mcp-ocata-dvr/stacklight/client.yml
index c6bf4ac..a8f20a4 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/stacklight/client.yml
+++ b/classes/cluster/virtual-mcp-ocata-dvr/stacklight/client.yml
@@ -16,7 +16,6 @@
     grafana_password: ${_param:grafana_admin_password}
     grafana_prometheus_address: ${_param:stacklight_monitor_address}
     grafana_prometheus_port: 15010
-    grafana_influxdb_host: ${_param:stacklight_monitor_node01_address}
 
     cluster_node01_address: ${_param:stacklight_monitor_node01_address}
     cluster_node02_address: ${_param:stacklight_monitor_node02_address}
diff --git a/classes/cluster/virtual-mcp-ocata-dvr/stacklight/server.yml b/classes/cluster/virtual-mcp-ocata-dvr/stacklight/server.yml
index a99b73c..98cad93 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp-ocata-dvr/stacklight/server.yml
@@ -1,22 +1,20 @@
 classes:
 - system.docker.host
-- system.linux.system.repo.glusterfs
 - system.linux.system.repo.influxdb
 - system.linux.system.repo.mcp.salt
-- system.linux.system.repo.tcp_elastic
+- system.linux.system.repo.elasticsearch
 - system.heka.remote_collector.container
 - system.heka.remote_collector.input.amqp
 - system.heka.remote_collector.output.elasticsearch
 - system.heka.remote_collector.output.telegraf
-- system.glusterfs.client.cluster
-- system.glusterfs.client.volume.prometheus
 - system.elasticsearch.server.cluster
 - system.elasticsearch.server.curator
 - system.kibana.server.single
 - system.haproxy.proxy.listen.stacklight.elasticsearch
 - system.haproxy.proxy.listen.stacklight.kibana
-- system.haproxy.proxy.listen.stacklight.influxdb
+- system.haproxy.proxy.listen.stacklight.influxdb_relay
 - service.haproxy.proxy.single
+- system.influxdb.relay.cluster
 - system.influxdb.server.single
 - system.influxdb.database.stacklight
 - system.influxdb.database.ceilometer
@@ -37,6 +35,7 @@
     keepalived_prometheus_vip_password: 'password'
     keepalived_prometheus_vip_interface: ens4
     cluster_vip_address: ${_param:stacklight_monitor_address}
+    cluster_local_address: ${_param:single_address}
     cluster_elasticsearch_port: 9200
     cluster_kibana_port: 5601
     cluster_node01_hostname: mon01
@@ -52,10 +51,6 @@
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
     docker_image_remote_collector: docker-prod-virtual.docker.mirantis.net/openstack-docker/heka:latest
     docker_image_grafana: grafana/grafana:4.3.2
-    prometheus_glusterfs_service_host: ${_param:openstack_control_address}
-    glusterfs_node01_address: ${_param:openstack_control_node01_address}
-    glusterfs_node02_address: ${_param:openstack_control_node02_address}
-    glusterfs_node03_address: ${_param:openstack_control_node03_address}
     influxdb_port: 8086
     influxdb_admin_password: password
     influxdb_stacklight_password: lmapass
diff --git a/classes/cluster/virtual-mcp-ocata-ovs/infra/config.yml b/classes/cluster/virtual-mcp-ocata-ovs/infra/config.yml
index ab81805..93b6d6d 100644
--- a/classes/cluster/virtual-mcp-ocata-ovs/infra/config.yml
+++ b/classes/cluster/virtual-mcp-ocata-ovs/infra/config.yml
@@ -20,7 +20,6 @@
 - system.keystone.client.service.designate
 - system.mysql.client.single
 - system.reclass.storage.system.openstack_control_cluster
-- system.reclass.storage.system.stacklight_server_cluster
 - system.reclass.storage.system.openstack_compute_multi
 - system.reclass.storage.system.openstack_gateway_single
 - system.reclass.storage.system.openstack_dashboard_single
@@ -34,7 +33,7 @@
     reclass_data_revision: master
     salt_master_environment_repository: "https://github.com/tcpcloud"
     salt_master_environment_revision: master
-    reclass_config_master: 192.168.10.100
+    reclass_config_master: 192.168.10.90
     single_address: 172.16.10.100
     salt_master_host: 127.0.0.1
     salt_master_base_environment: prd
@@ -124,12 +123,12 @@
         stacklight_monitor_node01:
           expression: <<node_hostname>>__equals__mon01
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node01_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node02:
           expression: <<node_hostname>>__equals__mon02
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node02_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node03:
           expression: <<node_hostname>>__equals__mon03
@@ -164,6 +163,10 @@
           params:
             mysql_cluster_role: slave
             linux_system_codename: xenial
+        stacklight_server_node01:
+          classes:
+          - system.influxdb.server.single
+          - system.influxdb.database.stacklight
         openstack_compute_node01:
           params:
             single_address: 172.16.10.105
@@ -182,4 +185,4 @@
           classes:
           - cluster.virtual-mcp-ocata-ovs.openstack.proxy
           params:
-            linux_system_codename: xenial
\ No newline at end of file
+            linux_system_codename: xenial
diff --git a/classes/cluster/virtual-mcp-ocata-ovs/init.yml b/classes/cluster/virtual-mcp-ocata-ovs/init.yml
index e9739f2..d2e3d71 100644
--- a/classes/cluster/virtual-mcp-ocata-ovs/init.yml
+++ b/classes/cluster/virtual-mcp-ocata-ovs/init.yml
@@ -1,4 +1,7 @@
 classes:
+- system.linux.network.dynamic_hosts
+- service.grafana.collector
+- system.heka.log_collector.single
 - system.heka.log_collector.output.telegraf
 - system.linux.system.repo.mcp.extra
 - system.linux.system.single
diff --git a/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml b/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml
index cc036af..da8143e 100644
--- a/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml
+++ b/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml
@@ -14,7 +14,6 @@
 - system.glusterfs.client.volume.keystone
 - system.glusterfs.server.volume.glance
 - system.glusterfs.server.volume.keystone
-- system.glusterfs.server.volume.prometheus
 - system.glusterfs.server.cluster
 - system.glance.control.cluster
 - system.nova.control.cluster
diff --git a/classes/cluster/virtual-mcp-ocata-ovs/stacklight/client.yml b/classes/cluster/virtual-mcp-ocata-ovs/stacklight/client.yml
index 44b6178..f37218a 100644
--- a/classes/cluster/virtual-mcp-ocata-ovs/stacklight/client.yml
+++ b/classes/cluster/virtual-mcp-ocata-ovs/stacklight/client.yml
@@ -16,7 +16,6 @@
     grafana_password: ${_param:grafana_admin_password}
     grafana_prometheus_address: ${_param:stacklight_monitor_address}
     grafana_prometheus_port: 15010
-    grafana_influxdb_host: ${_param:stacklight_monitor_node01_address}
 
     cluster_node01_address: ${_param:stacklight_monitor_node01_address}
     cluster_node02_address: ${_param:stacklight_monitor_node02_address}
diff --git a/classes/cluster/virtual-mcp-ocata-ovs/stacklight/server.yml b/classes/cluster/virtual-mcp-ocata-ovs/stacklight/server.yml
index 6f1b9e0..84d9910 100644
--- a/classes/cluster/virtual-mcp-ocata-ovs/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp-ocata-ovs/stacklight/server.yml
@@ -1,22 +1,20 @@
 classes:
 - system.docker.host
-- system.linux.system.repo.glusterfs
 - system.linux.system.repo.influxdb
 - system.linux.system.repo.mcp.salt
-- system.linux.system.repo.tcp_elastic
+- system.linux.system.repo.elasticsearch
 - system.heka.remote_collector.container
 - system.heka.remote_collector.input.amqp
 - system.heka.remote_collector.output.elasticsearch
 - system.heka.remote_collector.output.telegraf
-- system.glusterfs.client.cluster
-- system.glusterfs.client.volume.prometheus
 - system.elasticsearch.server.cluster
 - system.elasticsearch.server.curator
 - system.kibana.server.single
 - system.haproxy.proxy.listen.stacklight.elasticsearch
 - system.haproxy.proxy.listen.stacklight.kibana
-- system.haproxy.proxy.listen.stacklight.influxdb
+- system.haproxy.proxy.listen.stacklight.influxdb_relay
 - service.haproxy.proxy.single
+- system.influxdb.relay.cluster
 - system.influxdb.server.single
 - system.influxdb.database.stacklight
 - system.influxdb.database.ceilometer
@@ -37,6 +35,7 @@
     keepalived_prometheus_vip_password: 'password'
     keepalived_prometheus_vip_interface: ens4
     cluster_vip_address: ${_param:stacklight_monitor_address}
+    cluster_local_address: ${_param:single_address}
     cluster_elasticsearch_port: 9200
     cluster_kibana_port: 5601
     cluster_node01_hostname: mon01
@@ -52,10 +51,6 @@
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
     docker_image_remote_collector: docker-prod-virtual.docker.mirantis.net/openstack-docker/heka:latest
     docker_image_grafana: grafana/grafana:4.3.2
-    prometheus_glusterfs_service_host: ${_param:openstack_control_address}
-    glusterfs_node01_address: ${_param:openstack_control_node01_address}
-    glusterfs_node02_address: ${_param:openstack_control_node02_address}
-    glusterfs_node03_address: ${_param:openstack_control_node03_address}
     influxdb_port: 8086
     influxdb_admin_password: password
     influxdb_stacklight_password: lmapass
diff --git a/classes/cluster/virtual-mcp05-dvr/infra/config.yml b/classes/cluster/virtual-mcp05-dvr/infra/config.yml
index 185739a..469507b 100644
--- a/classes/cluster/virtual-mcp05-dvr/infra/config.yml
+++ b/classes/cluster/virtual-mcp05-dvr/infra/config.yml
@@ -28,7 +28,7 @@
     salt_master_environment_repository: "https://github.com/tcpcloud"
     salt_master_environment_revision: master
     salt_api_password_hash: "$6$sGnRlxGf$al5jMCetLP.vfI/fTl3Z0N7Za1aeiexL487jAtyRABVfT3NlwZxQGVhO7S1N8OwS/34VHYwZQA8lkXwKMN/GS1"
-    reclass_config_master: 192.168.10.100
+    reclass_config_master: 192.168.10.90
     single_address: 172.16.10.100
     salt_master_host: 127.0.0.1
     salt_master_base_environment: prd
@@ -117,12 +117,12 @@
         stacklight_monitor_node01:
           expression: <<node_hostname>>__equals__mon01
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node01_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node02:
           expression: <<node_hostname>>__equals__mon02
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node02_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node03:
           expression: <<node_hostname>>__equals__mon03
@@ -174,4 +174,4 @@
         openstack_gateway_node01:
           params:
             tenant_address: 10.1.0.110
-            external_address: 10.16.0.110
\ No newline at end of file
+            external_address: 10.16.0.110
diff --git a/classes/cluster/virtual-mcp05-dvr/init.yml b/classes/cluster/virtual-mcp05-dvr/init.yml
index 3e2f8cf..1af77a3 100644
--- a/classes/cluster/virtual-mcp05-dvr/init.yml
+++ b/classes/cluster/virtual-mcp05-dvr/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - system.rsyslog.client.single
 - system.openssh.server.team.lab
diff --git a/classes/cluster/virtual-mcp05-dvr/stacklight/server.yml b/classes/cluster/virtual-mcp05-dvr/stacklight/server.yml
index 198bfe7..184973b 100644
--- a/classes/cluster/virtual-mcp05-dvr/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp05-dvr/stacklight/server.yml
@@ -1,7 +1,7 @@
 classes:
 - system.collectd.remote_client.cluster
 - system.linux.system.repo.influxdb
-- system.linux.system.repo.tcp_elastic
+- system.linux.system.repo.elasticsearch
 - system.heka.remote_collector.cluster
 - system.heka.remote_collector.input.amqp
 - system.heka.aggregator.cluster
diff --git a/classes/cluster/virtual-mcp05-ovs/infra/config.yml b/classes/cluster/virtual-mcp05-ovs/infra/config.yml
index 5e9068d..43e282d 100644
--- a/classes/cluster/virtual-mcp05-ovs/infra/config.yml
+++ b/classes/cluster/virtual-mcp05-ovs/infra/config.yml
@@ -27,7 +27,7 @@
     reclass_data_revision: master
     salt_master_environment_repository: "https://github.com/tcpcloud"
     salt_master_environment_revision: master
-    reclass_config_master: 192.168.10.100
+    reclass_config_master: 192.168.10.90
     single_address: 172.16.10.100
     salt_master_host: 127.0.0.1
     salt_master_base_environment: prd
@@ -117,12 +117,12 @@
         stacklight_monitor_node01:
           expression: <<node_hostname>>__equals__mon01
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node01_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node02:
           expression: <<node_hostname>>__equals__mon02
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node02_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node03:
           expression: <<node_hostname>>__equals__mon03
@@ -174,4 +174,4 @@
         openstack_gateway_node01:
           params:
             tenant_address: 10.1.0.110
-            external_address: 10.16.0.110
\ No newline at end of file
+            external_address: 10.16.0.110
diff --git a/classes/cluster/virtual-mcp05-ovs/init.yml b/classes/cluster/virtual-mcp05-ovs/init.yml
index 6c67937..ead6ba8 100644
--- a/classes/cluster/virtual-mcp05-ovs/init.yml
+++ b/classes/cluster/virtual-mcp05-ovs/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - cluster.virtual-mcp05-ovs.infra
 - cluster.virtual-mcp05-ovs.openstack
diff --git a/classes/cluster/virtual-mcp05-ovs/stacklight/server.yml b/classes/cluster/virtual-mcp05-ovs/stacklight/server.yml
index 2288aeb..f37f50d 100644
--- a/classes/cluster/virtual-mcp05-ovs/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp05-ovs/stacklight/server.yml
@@ -4,7 +4,7 @@
 - system.linux.system.repo.influxdb
 - system.heka.remote_collector.input.amqp
 - system.heka.aggregator.cluster
-- system.linux.system.repo.tcp_elastic 
+- system.linux.system.repo.elasticsearch
 - system.elasticsearch.server.cluster
 - system.elasticsearch.server.curator
 - system.kibana.server.single
diff --git a/classes/cluster/virtual-mcp10-contrail/infra/config.yml b/classes/cluster/virtual-mcp10-contrail/infra/config.yml
index c86ed5b..64fb0a1 100755
--- a/classes/cluster/virtual-mcp10-contrail/infra/config.yml
+++ b/classes/cluster/virtual-mcp10-contrail/infra/config.yml
@@ -26,7 +26,7 @@
   _param:
     reclass_data_repository: "https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab"
     reclass_data_revision: master
-    reclass_config_master: 192.168.10.100
+    reclass_config_master: 192.168.10.90
     single_address: 172.16.10.100
     salt_master_host: 127.0.0.1
     salt_master_base_environment: prd
@@ -118,12 +118,12 @@
         stacklight_monitor_node01:
           expression: <<node_hostname>>__equals__mon01
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node01_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node02:
           expression: <<node_hostname>>__equals__mon02
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node02_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node03:
           expression: <<node_hostname>>__equals__mon03
diff --git a/classes/cluster/virtual-mcp10-contrail/init.yml b/classes/cluster/virtual-mcp10-contrail/init.yml
index da3e7b1..5c405d4 100755
--- a/classes/cluster/virtual-mcp10-contrail/init.yml
+++ b/classes/cluster/virtual-mcp10-contrail/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - system.rsyslog.client.single
 - system.openssh.server.team.lab
diff --git a/classes/cluster/virtual-mcp10-contrail/stacklight/server.yml b/classes/cluster/virtual-mcp10-contrail/stacklight/server.yml
index 11def8a..e56a7e1 100755
--- a/classes/cluster/virtual-mcp10-contrail/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp10-contrail/stacklight/server.yml
@@ -1,7 +1,7 @@
 classes:
 - system.linux.system.repo.grafana
 - system.linux.system.repo.influxdb
-- system.linux.system.repo.tcp_elastic
+- system.linux.system.repo.elasticsearch
 - system.collectd.remote_client.cluster
 - system.heka.remote_collector.cluster
 - system.heka.remote_collector.input.amqp
diff --git a/classes/cluster/virtual-mcp10-dvr/infra/config.yml b/classes/cluster/virtual-mcp10-dvr/infra/config.yml
index d6bd4a2..3eaadc9 100644
--- a/classes/cluster/virtual-mcp10-dvr/infra/config.yml
+++ b/classes/cluster/virtual-mcp10-dvr/infra/config.yml
@@ -28,7 +28,7 @@
     salt_master_environment_repository: "https://github.com/tcpcloud"
     salt_master_environment_revision: master
     salt_api_password_hash: "$6$sGnRlxGf$al5jMCetLP.vfI/fTl3Z0N7Za1aeiexL487jAtyRABVfT3NlwZxQGVhO7S1N8OwS/34VHYwZQA8lkXwKMN/GS1"
-    reclass_config_master: 192.168.10.100
+    reclass_config_master: 192.168.10.90
     single_address: 172.16.10.100
     salt_master_host: 127.0.0.1
     salt_master_base_environment: prd
@@ -117,12 +117,12 @@
         stacklight_monitor_node01:
           expression: <<node_hostname>>__equals__mon01
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node01_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node02:
           expression: <<node_hostname>>__equals__mon02
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node02_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node03:
           expression: <<node_hostname>>__equals__mon03
@@ -174,4 +174,4 @@
         openstack_gateway_node01:
           params:
             tenant_address: 10.1.0.110
-            external_address: 10.16.0.110
\ No newline at end of file
+            external_address: 10.16.0.110
diff --git a/classes/cluster/virtual-mcp10-dvr/init.yml b/classes/cluster/virtual-mcp10-dvr/init.yml
index ce47464..e1a87ce 100644
--- a/classes/cluster/virtual-mcp10-dvr/init.yml
+++ b/classes/cluster/virtual-mcp10-dvr/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - system.rsyslog.client.single
 - system.openssh.server.team.lab
diff --git a/classes/cluster/virtual-mcp10-dvr/stacklight/server.yml b/classes/cluster/virtual-mcp10-dvr/stacklight/server.yml
index 08cfa82..24771cb 100644
--- a/classes/cluster/virtual-mcp10-dvr/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp10-dvr/stacklight/server.yml
@@ -1,7 +1,7 @@
 classes:
 - system.collectd.remote_client.cluster
 - system.linux.system.repo.influxdb
-- system.linux.system.repo.tcp_elastic
+- system.linux.system.repo.elasticsearch
 - system.heka.remote_collector.cluster
 - system.heka.remote_collector.input.amqp
 - system.heka.aggregator.cluster
diff --git a/classes/cluster/virtual-mcp10-ovs/infra/config.yml b/classes/cluster/virtual-mcp10-ovs/infra/config.yml
index ab944e7..dc77ca6 100644
--- a/classes/cluster/virtual-mcp10-ovs/infra/config.yml
+++ b/classes/cluster/virtual-mcp10-ovs/infra/config.yml
@@ -27,7 +27,7 @@
     reclass_data_revision: master
     salt_master_environment_repository: "https://github.com/tcpcloud"
     salt_master_environment_revision: master
-    reclass_config_master: 192.168.10.100
+    reclass_config_master: 192.168.10.90
     single_address: 172.16.10.100
     salt_master_host: 127.0.0.1
     salt_master_base_environment: prd
@@ -117,12 +117,12 @@
         stacklight_monitor_node01:
           expression: <<node_hostname>>__equals__mon01
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node01_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node02:
           expression: <<node_hostname>>__equals__mon02
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node02_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node03:
           expression: <<node_hostname>>__equals__mon03
@@ -174,4 +174,4 @@
         openstack_gateway_node01:
           params:
             tenant_address: 10.1.0.110
-            external_address: 10.16.0.110
\ No newline at end of file
+            external_address: 10.16.0.110
diff --git a/classes/cluster/virtual-mcp10-ovs/init.yml b/classes/cluster/virtual-mcp10-ovs/init.yml
index 01ccbbf..af37ef4 100644
--- a/classes/cluster/virtual-mcp10-ovs/init.yml
+++ b/classes/cluster/virtual-mcp10-ovs/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - cluster.virtual-mcp10-ovs.infra
 - cluster.virtual-mcp10-ovs.openstack
diff --git a/classes/cluster/virtual-mcp10-ovs/stacklight/server.yml b/classes/cluster/virtual-mcp10-ovs/stacklight/server.yml
index 288e9d9..cf9f626 100644
--- a/classes/cluster/virtual-mcp10-ovs/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp10-ovs/stacklight/server.yml
@@ -4,7 +4,7 @@
 - system.linux.system.repo.influxdb
 - system.heka.remote_collector.input.amqp
 - system.heka.aggregator.cluster
-- system.linux.system.repo.tcp_elastic 
+- system.linux.system.repo.elasticsearch
 - system.elasticsearch.server.cluster
 - system.elasticsearch.server.curator
 - system.kibana.server.single
diff --git a/classes/cluster/virtual-mcp11-aio/init.yml b/classes/cluster/virtual-mcp11-aio/init.yml
index 86627d2..b3fcc39 100755
--- a/classes/cluster/virtual-mcp11-aio/init.yml
+++ b/classes/cluster/virtual-mcp11-aio/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - service.git.client
 - system.linux.system.single
 - system.linux.system.repo.mcp.salt
@@ -51,6 +52,10 @@
           source: ${_param:linux_system_repo}
           architectures: amd64
           clean_file: true
+          pin:
+          - pin: ${_param:linux_system_repo_pin}
+            priority: ${_param:linux_system_repo_priority}
+            package: '*'
     network:
       bridge: openvswitch
       interface:
diff --git a/classes/cluster/virtual-mcp11-aio/openstack/init.yml b/classes/cluster/virtual-mcp11-aio/openstack/init.yml
index 6cc6c14..5d2e24f 100755
--- a/classes/cluster/virtual-mcp11-aio/openstack/init.yml
+++ b/classes/cluster/virtual-mcp11-aio/openstack/init.yml
@@ -102,6 +102,8 @@
       rndc_port: 953
       rndc_key_file: /etc/designate/rndc.key
     linux_system_repo: deb [arch=amd64] http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/xenial ${_param:openstack_version} main
+    linux_system_repo_pin: release a=${_param:openstack_version}
+    linux_system_repo_priority: 1200
     openstack_public_neutron_subnet_gateway:  192.168.130.1
     openstack_public_neutron_subnet_cidr: 192.168.130.0/24
     openstack_public_neutron_subnet_allocation_start: 192.168.130.10
@@ -115,12 +117,15 @@
       dvr: True
   nova:
     compute:
+      vncproxy_url: http://${_param:single_address}:6080
       network:
         user: neutron
         password: ${_param:keystone_neutron_password}
         tenant: service
       cache:
         members: ~
+    controller:
+      vncproxy_url: http://${_param:single_address}:6080
   cinder:
     volume:
       cache:
diff --git a/classes/cluster/virtual-mcp11-contrail-nfv/infra/config.yml b/classes/cluster/virtual-mcp11-contrail-nfv/infra/config.yml
index a000956..ed9bbf6 100755
--- a/classes/cluster/virtual-mcp11-contrail-nfv/infra/config.yml
+++ b/classes/cluster/virtual-mcp11-contrail-nfv/infra/config.yml
@@ -40,7 +40,7 @@
   _param:
     reclass_data_repository: "https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab"
     reclass_data_revision: master
-    reclass_config_master: 192.168.10.100
+    reclass_config_master: 192.168.10.90
     single_address: 172.16.10.100
     salt_master_host: 127.0.0.1
     salt_master_base_environment: prd
@@ -132,12 +132,12 @@
         stacklight_monitor_node01:
           expression: <<node_hostname>>__equals__mon01
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node01_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node02:
           expression: <<node_hostname>>__equals__mon02
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node02_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node03:
           expression: <<node_hostname>>__equals__mon03
@@ -188,4 +188,4 @@
           classes:
           - cluster.virtual-mcp11-contrail-nfv.openstack.proxy
           params:
-            linux_system_codename: xenial
\ No newline at end of file
+            linux_system_codename: xenial
diff --git a/classes/cluster/virtual-mcp11-contrail-nfv/init.yml b/classes/cluster/virtual-mcp11-contrail-nfv/init.yml
index 78298cb..9b0ff88 100755
--- a/classes/cluster/virtual-mcp11-contrail-nfv/init.yml
+++ b/classes/cluster/virtual-mcp11-contrail-nfv/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - system.rsyslog.client.single
 - system.openssh.server.team.lab
diff --git a/classes/cluster/virtual-mcp11-contrail-nfv/stacklight/server.yml b/classes/cluster/virtual-mcp11-contrail-nfv/stacklight/server.yml
index ff8fd14..dcff03a 100755
--- a/classes/cluster/virtual-mcp11-contrail-nfv/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-contrail-nfv/stacklight/server.yml
@@ -1,7 +1,7 @@
 classes:
 - system.linux.system.repo.grafana
 - system.linux.system.repo.influxdb
-- system.linux.system.repo.tcp_elastic
+- system.linux.system.repo.elasticsearch
 - system.collectd.remote_client.cluster
 - system.heka.remote_collector.cluster
 - system.heka.remote_collector.input.amqp
diff --git a/classes/cluster/virtual-mcp11-contrail/infra/config.yml b/classes/cluster/virtual-mcp11-contrail/infra/config.yml
index 28cc045..0f05600 100755
--- a/classes/cluster/virtual-mcp11-contrail/infra/config.yml
+++ b/classes/cluster/virtual-mcp11-contrail/infra/config.yml
@@ -40,7 +40,7 @@
   _param:
     reclass_data_repository: "https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab"
     reclass_data_revision: master
-    reclass_config_master: 192.168.10.100
+    reclass_config_master: 192.168.10.90
     single_address: 172.16.10.100
     salt_master_host: 127.0.0.1
     salt_master_base_environment: prd
@@ -132,12 +132,12 @@
         stacklight_monitor_node01:
           expression: <<node_hostname>>__equals__mon01
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node01_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node02:
           expression: <<node_hostname>>__equals__mon02
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node02_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node03:
           expression: <<node_hostname>>__equals__mon03
@@ -180,4 +180,4 @@
           classes:
           - cluster.virtual-mcp11-contrail.openstack.proxy
           params:
-            linux_system_codename: xenial
\ No newline at end of file
+            linux_system_codename: xenial
diff --git a/classes/cluster/virtual-mcp11-contrail/infra/init.yml b/classes/cluster/virtual-mcp11-contrail/infra/init.yml
index 9140bd0..b6a6cc2 100755
--- a/classes/cluster/virtual-mcp11-contrail/infra/init.yml
+++ b/classes/cluster/virtual-mcp11-contrail/infra/init.yml
@@ -1,4 +1,8 @@
 parameters:
+  _param:
+    cluster_domain: virtual-mcp11-contrail.local
+    cluster_name: virtual-mcp11-contrail
+    infra_config_address: 172.16.10.100
   linux:
     network:
       host:
diff --git a/classes/cluster/virtual-mcp11-contrail/init.yml b/classes/cluster/virtual-mcp11-contrail/init.yml
index 613edb9..52fdf6f 100755
--- a/classes/cluster/virtual-mcp11-contrail/init.yml
+++ b/classes/cluster/virtual-mcp11-contrail/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - service.grafana.collector
 - system.heka.log_collector.single
 - system.heka.log_collector.output.telegraf
@@ -12,77 +13,7 @@
 - system.prometheus.collector
 - system.telegraf.agent
 - cluster.virtual-mcp11-contrail.infra
+- cluster.virtual-mcp11-contrail.opencontrail
 - cluster.virtual-mcp11-contrail.openstack
 - cluster.virtual-mcp11-contrail.stacklight
 - cluster.overrides
-parameters:
-  _param:
-    cluster_domain: virtual-mcp11-contrail.local
-    cluster_name: virtual-mcp11-contrail
-
-    # infra service addresses
-    infra_config_address: 172.16.10.100
-
-    # openstack service addresses
-    openstack_proxy_address: 172.16.10.121
-    openstack_proxy_node01_address: 172.16.10.121
-
-    openstack_control_address: 172.16.10.254
-    openstack_control_node01_address: 172.16.10.101
-    openstack_control_node02_address: 172.16.10.102
-    openstack_control_node03_address: 172.16.10.103
-
-    openstack_database_address: ${_param:openstack_control_address}
-    openstack_database_node01_address: ${_param:openstack_control_node01_address}
-    openstack_database_node02_address: ${_param:openstack_control_node02_address}
-    openstack_database_node03_address: ${_param:openstack_control_node02_address}
-
-    openstack_message_queue_address: ${_param:openstack_control_address}
-    openstack_message_queue_node01_address: ${_param:openstack_control_node01_address}
-    openstack_message_queue_node02_address: ${_param:openstack_control_node02_address}
-    openstack_message_queue_node03_address: ${_param:openstack_control_node03_address}
-
-    # opencontrail service addresses
-    opencontrail_analytics_address: ${_param:openstack_control_address}
-    opencontrail_analytics_node01_address: ${_param:openstack_control_node01_address}
-    opencontrail_analytics_node02_address: ${_param:openstack_control_node02_address}
-    opencontrail_analytics_node03_address: ${_param:openstack_control_node03_address}
-
-    opencontrail_control_address: 172.16.10.252
-    opencontrail_control_node01_address: 172.16.10.111
-    opencontrail_control_node02_address: 172.16.10.112
-    opencontrail_control_node03_address: 172.16.10.113
-
-    # stacklight service addresses
-    stacklight_monitor_address: 172.16.10.253
-    stacklight_monitor_node01_address: 172.16.10.107
-    stacklight_monitor_node02_address: 172.16.10.108
-    stacklight_monitor_node03_address: 172.16.10.109
-
-    stacklight_log_address: ${_param:stacklight_monitor_address}
-    stacklight_telemetry_address: ${_param:stacklight_monitor_address}
-    stacklight_telemetry_node01_address: ${_param:stacklight_monitor_node01_address}
-
-  linux:
-    network:
-      host:
-        ntw:
-          address: ${_param:opencontrail_control_address}
-          names:
-          - ntw
-          - ntw.${_param:cluster_domain}
-        ntw01:
-          address: ${_param:opencontrail_control_node01_address}
-          names:
-          - ntw01
-          - ntw01.${_param:cluster_domain}
-        ntw02:
-          address: ${_param:opencontrail_control_node02_address}
-          names:
-          - ntw02
-          - ntw02.${_param:cluster_domain}
-        ntw03:
-          address: ${_param:opencontrail_control_node03_address}
-          names:
-          - ntw03
-          - ntw03.${_param:cluster_domain}
\ No newline at end of file
diff --git a/classes/cluster/os_ha_contrail/opencontrail/init.yml b/classes/cluster/virtual-mcp11-contrail/opencontrail/init.yml
similarity index 100%
rename from classes/cluster/os_ha_contrail/opencontrail/init.yml
rename to classes/cluster/virtual-mcp11-contrail/opencontrail/init.yml
diff --git a/classes/cluster/virtual-mcp11-contrail/openstack/control.yml b/classes/cluster/virtual-mcp11-contrail/openstack/control.yml
index 8869a18..150cf5d 100755
--- a/classes/cluster/virtual-mcp11-contrail/openstack/control.yml
+++ b/classes/cluster/virtual-mcp11-contrail/openstack/control.yml
@@ -12,7 +12,6 @@
 - system.keystone.server.cluster
 - system.glusterfs.server.volume.glance
 - system.glusterfs.server.volume.keystone
-- system.glusterfs.server.volume.prometheus
 - system.glusterfs.server.cluster
 - system.glusterfs.client.cluster
 - system.glusterfs.client.volume.glance
diff --git a/classes/cluster/virtual-mcp11-contrail/openstack/init.yml b/classes/cluster/virtual-mcp11-contrail/openstack/init.yml
index f673ab7..97bfab7 100755
--- a/classes/cluster/virtual-mcp11-contrail/openstack/init.yml
+++ b/classes/cluster/virtual-mcp11-contrail/openstack/init.yml
@@ -1,5 +1,19 @@
 parameters:
   _param:
+    openstack_proxy_address: 172.16.10.121
+    openstack_proxy_node01_address: 172.16.10.121
+    openstack_control_address: 172.16.10.254
+    openstack_control_node01_address: 172.16.10.101
+    openstack_control_node02_address: 172.16.10.102
+    openstack_control_node03_address: 172.16.10.103
+    openstack_database_address: ${_param:openstack_control_address}
+    openstack_database_node01_address: ${_param:openstack_control_node01_address}
+    openstack_database_node02_address: ${_param:openstack_control_node02_address}
+    openstack_database_node03_address: ${_param:openstack_control_node02_address}
+    openstack_message_queue_address: ${_param:openstack_control_address}
+    openstack_message_queue_node01_address: ${_param:openstack_control_node01_address}
+    openstack_message_queue_node02_address: ${_param:openstack_control_node02_address}
+    openstack_message_queue_node03_address: ${_param:openstack_control_node03_address}
     openstack_version: ocata
     apt_mk_version: nightly
     openstack_region: RegionOne
diff --git a/classes/cluster/virtual-mcp11-contrail/stacklight/init.yml b/classes/cluster/virtual-mcp11-contrail/stacklight/init.yml
index 0b10c03..f30d6e4 100755
--- a/classes/cluster/virtual-mcp11-contrail/stacklight/init.yml
+++ b/classes/cluster/virtual-mcp11-contrail/stacklight/init.yml
@@ -1,5 +1,12 @@
 parameters:
   _param:
+    stacklight_monitor_address: 172.16.10.253
+    stacklight_monitor_node01_address: 172.16.10.107
+    stacklight_monitor_node02_address: 172.16.10.108
+    stacklight_monitor_node03_address: 172.16.10.109
+    stacklight_log_address: ${_param:stacklight_monitor_address}
+    stacklight_telemetry_address: ${_param:stacklight_monitor_address}
+    stacklight_telemetry_node01_address: ${_param:stacklight_monitor_node01_address}
     prometheus_control_address: ${_param:stacklight_monitor_address}
     heka_elasticsearch_host: ${_param:stacklight_monitor_address}
     elasticsearch_port: 9200
diff --git a/classes/cluster/virtual-mcp11-contrail/stacklight/server.yml b/classes/cluster/virtual-mcp11-contrail/stacklight/server.yml
index 693a7cb..f0f3280 100755
--- a/classes/cluster/virtual-mcp11-contrail/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-contrail/stacklight/server.yml
@@ -1,15 +1,12 @@
 classes:
 - system.docker.host
-- system.linux.system.repo.glusterfs
 - system.linux.system.repo.influxdb
 - system.linux.system.repo.mcp.salt
-- system.linux.system.repo.tcp_elastic
+- system.linux.system.repo.elasticsearch
 - system.heka.remote_collector.container
 - system.heka.remote_collector.input.amqp
 - system.heka.remote_collector.output.elasticsearch
 - system.heka.remote_collector.output.telegraf
-- system.glusterfs.client.cluster
-- system.glusterfs.client.volume.prometheus
 - system.elasticsearch.server.cluster
 - system.elasticsearch.server.curator
 - system.kibana.server.single
@@ -54,10 +51,6 @@
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
     docker_image_remote_collector: docker-prod-virtual.docker.mirantis.net/openstack-docker/heka:latest
     docker_image_grafana: grafana/grafana:4.3.2
-    prometheus_glusterfs_service_host: ${_param:openstack_control_address}
-    glusterfs_node01_address: ${_param:openstack_control_node01_address}
-    glusterfs_node02_address: ${_param:openstack_control_node02_address}
-    glusterfs_node03_address: ${_param:openstack_control_node03_address}
     influxdb_port: 8086
     influxdb_admin_password: password
     influxdb_stacklight_password: lmapass
diff --git a/classes/cluster/virtual-mcp11-dvr/infra/config.yml b/classes/cluster/virtual-mcp11-dvr/infra/config.yml
index c1edf41..3d6f018 100644
--- a/classes/cluster/virtual-mcp11-dvr/infra/config.yml
+++ b/classes/cluster/virtual-mcp11-dvr/infra/config.yml
@@ -32,7 +32,7 @@
     salt_master_environment_repository: "https://github.com/tcpcloud"
     salt_master_environment_revision: master
     salt_api_password_hash: "$6$sGnRlxGf$al5jMCetLP.vfI/fTl3Z0N7Za1aeiexL487jAtyRABVfT3NlwZxQGVhO7S1N8OwS/34VHYwZQA8lkXwKMN/GS1"
-    reclass_config_master: 192.168.10.100
+    reclass_config_master: 192.168.10.90
     single_address: 172.16.10.100
     salt_master_host: 127.0.0.1
     salt_master_base_environment: prd
@@ -121,12 +121,12 @@
         stacklight_monitor_node01:
           expression: <<node_hostname>>__equals__mon01
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node01_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node02:
           expression: <<node_hostname>>__equals__mon02
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node02_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node03:
           expression: <<node_hostname>>__equals__mon03
@@ -183,4 +183,4 @@
           classes:
           - cluster.virtual-mcp11-dvr.openstack.proxy
           params:
-            linux_system_codename: xenial
\ No newline at end of file
+            linux_system_codename: xenial
diff --git a/classes/cluster/virtual-mcp11-dvr/infra/init.yml b/classes/cluster/virtual-mcp11-dvr/infra/init.yml
index a698511..f0cfd07 100644
--- a/classes/cluster/virtual-mcp11-dvr/infra/init.yml
+++ b/classes/cluster/virtual-mcp11-dvr/infra/init.yml
@@ -1,5 +1,4 @@
 parameters:
-parameters:
   _param:
     cluster_domain: virtual-mcp11-dvr.local
     cluster_name: virtual-mcp11-dvr
diff --git a/classes/cluster/virtual-mcp11-dvr/init.yml b/classes/cluster/virtual-mcp11-dvr/init.yml
index 80a2628..8e93cbf 100644
--- a/classes/cluster/virtual-mcp11-dvr/init.yml
+++ b/classes/cluster/virtual-mcp11-dvr/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - service.grafana.collector
 - system.heka.log_collector.single
 - system.heka.log_collector.output.telegraf
diff --git a/classes/cluster/virtual-mcp11-dvr/openstack/compute.yml b/classes/cluster/virtual-mcp11-dvr/openstack/compute.yml
index 6abc6d0..8c68db0 100644
--- a/classes/cluster/virtual-mcp11-dvr/openstack/compute.yml
+++ b/classes/cluster/virtual-mcp11-dvr/openstack/compute.yml
@@ -24,8 +24,6 @@
   nova:
     compute:
       vncproxy_url: http://${_param:cluster_vip_address}:6080
-      notification:
-        driver: messagingv2
       message_queue:
         members:
           - host: ${_param:openstack_control_node01_address}
diff --git a/classes/cluster/virtual-mcp11-dvr/openstack/control.yml b/classes/cluster/virtual-mcp11-dvr/openstack/control.yml
index 2403464..12431c9 100644
--- a/classes/cluster/virtual-mcp11-dvr/openstack/control.yml
+++ b/classes/cluster/virtual-mcp11-dvr/openstack/control.yml
@@ -14,7 +14,6 @@
 - system.glusterfs.client.volume.keystone
 - system.glusterfs.server.volume.glance
 - system.glusterfs.server.volume.keystone
-- system.glusterfs.server.volume.prometheus
 - system.glusterfs.server.cluster
 - system.glance.control.cluster
 - system.nova.control.cluster
diff --git a/classes/cluster/virtual-mcp11-dvr/openstack/init.yml b/classes/cluster/virtual-mcp11-dvr/openstack/init.yml
index c8b49ae..c08241d 100644
--- a/classes/cluster/virtual-mcp11-dvr/openstack/init.yml
+++ b/classes/cluster/virtual-mcp11-dvr/openstack/init.yml
@@ -1,6 +1,5 @@
 parameters:
   _param:
-    openstack_database_address: 172.16.10.254
     openstack_proxy_address: 172.16.10.121
     openstack_proxy_node01_address: 172.16.10.121
     openstack_control_address: 172.16.10.254
@@ -15,7 +14,8 @@
     openstack_message_queue_node01_address: ${_param:openstack_control_node01_address}
     openstack_message_queue_node02_address: ${_param:openstack_control_node02_address}
     openstack_message_queue_node03_address: ${_param:openstack_control_node03_address}
-    openstack_gateway_address: 172.16.10.110
+    openstack_gateway_node01_address: 172.16.10.110
+    openstack_gateway_address: ${_param:openstack_gateway_node01_address}
     openstack_version: newton
     apt_mk_version: nightly
     mcp_repo_version: 1.1
@@ -40,11 +40,11 @@
     cluster_vip_address: 172.16.10.254
     cluster_local_address: ${_param:single_address}
     cluster_node01_hostname: ctl01
-    cluster_node01_address: 172.16.10.101
+    cluster_node01_address: ${_param:openstack_control_node01_address}
     cluster_node02_hostname: ctl02
-    cluster_node02_address: 172.16.10.102
+    cluster_node02_address: ${_param:openstack_control_node02_address}
     cluster_node03_hostname: ctl03
-    cluster_node03_address: 172.16.10.103
+    cluster_node03_address: ${_param:openstack_control_node03_address}
     rabbitmq_secret_key: workshop
     rabbitmq_admin_password: workshop
     rabbitmq_openstack_password: workshop
diff --git a/classes/cluster/virtual-mcp11-dvr/stacklight/server.yml b/classes/cluster/virtual-mcp11-dvr/stacklight/server.yml
index 9e47cb3..2ba8f60 100644
--- a/classes/cluster/virtual-mcp11-dvr/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-dvr/stacklight/server.yml
@@ -1,15 +1,12 @@
 classes:
 - system.docker.host
-- system.linux.system.repo.glusterfs
 - system.linux.system.repo.influxdb
 - system.linux.system.repo.mcp.salt
-- system.linux.system.repo.tcp_elastic
+- system.linux.system.repo.elasticsearch
 - system.heka.remote_collector.container
 - system.heka.remote_collector.input.amqp
 - system.heka.remote_collector.output.elasticsearch
 - system.heka.remote_collector.output.telegraf
-- system.glusterfs.client.cluster
-- system.glusterfs.client.volume.prometheus
 - system.elasticsearch.server.cluster
 - system.elasticsearch.server.curator
 - system.kibana.server.single
@@ -54,10 +51,6 @@
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
     docker_image_remote_collector: docker-prod-virtual.docker.mirantis.net/openstack-docker/heka:latest
     docker_image_grafana: grafana/grafana:4.3.2
-    prometheus_glusterfs_service_host: ${_param:openstack_control_address}
-    glusterfs_node01_address: ${_param:openstack_control_node01_address}
-    glusterfs_node02_address: ${_param:openstack_control_node02_address}
-    glusterfs_node03_address: ${_param:openstack_control_node03_address}
     influxdb_port: 8086
     influxdb_admin_password: password
     influxdb_stacklight_password: lmapass
diff --git a/classes/cluster/virtual-mcp11-k8s-calico-dyn/infra/init.yml b/classes/cluster/virtual-mcp11-k8s-calico-dyn/infra/init.yml
index 864492b..5e01c17 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico-dyn/infra/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico-dyn/infra/init.yml
@@ -17,7 +17,7 @@
     # infra service addresses
     infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
-    infra_config_deploy_address: 192.168.10.100
+    infra_config_deploy_address: 192.168.10.90
 
     cluster_domain: virtual-mcp11-k8s-calico.local
     cluster_name: virtual-mcp11-k8s-calico
diff --git a/classes/cluster/virtual-mcp11-k8s-calico-dyn/init.yml b/classes/cluster/virtual-mcp11-k8s-calico-dyn/init.yml
index 5484c66..10957f2 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico-dyn/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico-dyn/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - cluster.virtual-mcp11-k8s-calico-dyn.kubernetes
 - cluster.virtual-mcp11-k8s-calico-dyn.stacklight
 - cluster.virtual-mcp11-k8s-calico-dyn.infra
diff --git a/classes/cluster/virtual-mcp11-k8s-calico-dyn/stacklight/init.yml b/classes/cluster/virtual-mcp11-k8s-calico-dyn/stacklight/init.yml
index f755342..adcdb35 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico-dyn/stacklight/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico-dyn/stacklight/init.yml
@@ -8,9 +8,6 @@
     stacklight_node02_address: 172.16.10.108
     stacklight_node03_address: 172.16.10.109
 
-    # Glusterfs
-    glusterfs_service_host: ${_param:stacklight_address}
-
     # Prometheus
     prometheus_control_address: ${_param:stacklight_address}
 
diff --git a/classes/cluster/virtual-mcp11-k8s-calico-dyn/stacklight/server.yml b/classes/cluster/virtual-mcp11-k8s-calico-dyn/stacklight/server.yml
index a54bad3..0e931c4 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico-dyn/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico-dyn/stacklight/server.yml
@@ -1,6 +1,6 @@
 classes:
 - system.docker.host
-- system.linux.system.repo.tcp_elastic
+- system.linux.system.repo.elasticsearch
 # Needed to install Galera packages
 - system.linux.system.repo.mcp.openstack
 - system.elasticsearch.server.cluster
@@ -9,10 +9,6 @@
 - system.haproxy.proxy.listen.stacklight.elasticsearch
 - system.haproxy.proxy.listen.stacklight.kibana
 - service.haproxy.proxy.single
-- system.glusterfs.client.cluster
-- system.glusterfs.client.volume.prometheus
-- system.glusterfs.server.cluster
-- system.glusterfs.server.volume.prometheus
 - system.galera.server.cluster
 - system.galera.server.database.grafana
 - system.salt.minion.cert.prometheus_server
diff --git a/classes/cluster/virtual-mcp11-k8s-calico-minimal/infra/init.yml b/classes/cluster/virtual-mcp11-k8s-calico-minimal/infra/init.yml
index 6124602..bdd4642 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico-minimal/infra/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico-minimal/infra/init.yml
@@ -14,7 +14,7 @@
     # infra service addresses
     infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
-    infra_config_deploy_address: 192.168.10.100
+    infra_config_deploy_address: 192.168.10.90
 
     cluster_domain: virtual-mcp11-k8s-calico-minimal.local
     cluster_name: virtual-mcp11-k8s-calico-minimal
diff --git a/classes/cluster/virtual-mcp11-k8s-calico-minimal/init.yml b/classes/cluster/virtual-mcp11-k8s-calico-minimal/init.yml
index e1ad5a6..56a3029 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico-minimal/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico-minimal/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - cluster.virtual-mcp11-k8s-calico-minimal.kubernetes
 - cluster.virtual-mcp11-k8s-calico-minimal.infra
 - cluster.overrides
diff --git a/classes/cluster/virtual-mcp11-k8s-calico/infra/config.yml b/classes/cluster/virtual-mcp11-k8s-calico/infra/config.yml
index e1f711e..443d473 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico/infra/config.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico/infra/config.yml
@@ -9,7 +9,8 @@
 - system.mysql.client.database.grafana
 - system.reclass.storage.salt
 - system.reclass.storage.system.kubernetes_control_cluster
-- cluster.virtual-mcp11-k8s-calico.infra
+- cluster.virtual-mcp11-k8s-calico.stacklight.proxy
+- cluster.virtual-mcp11-k8s-calico
 parameters:
   _param:
     salt_master_base_environment: prd
@@ -44,6 +45,8 @@
               value_template: <<node_control_ip>>
             infra_config_deploy_address:
               value_template: <<node_deploy_ip>>
+            cluster_domain:
+              value_template: <<node_domain>>
         infra_proxy:
           expression: <<node_hostname>>__startswith__prx
           node_class:
@@ -151,4 +154,4 @@
           params:
             salt_master_host: ${_param:infra_config_deploy_address}
             linux_system_codename: xenial
-            single_address: ${_param:kubernetes_compute_node02_address}
\ No newline at end of file
+            single_address: ${_param:kubernetes_compute_node02_address}
diff --git a/classes/cluster/virtual-mcp11-k8s-calico/infra/init.yml b/classes/cluster/virtual-mcp11-k8s-calico/infra/init.yml
index a55f484..736117d 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico/infra/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico/infra/init.yml
@@ -9,20 +9,12 @@
 - system.openssh.server.team.mcp_qa
 - system.openssh.server.team.k8s_team
 - system.rsyslog.client.single
-- system.heka.log_collector.single
-- system.heka.log_collector.output.telegraf
-- system.telegraf.agent
-- system.prometheus.collector
-- service.grafana.collector
-- cluster.virtual-mcp11-k8s-calico.kubernetes
-- cluster.virtual-mcp11-k8s-calico.stacklight
-- cluster.overrides
 parameters:
   _param:
     # infra service addresses
     infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
-    infra_config_deploy_address: 192.168.10.100
+    infra_config_deploy_address: 192.168.10.90
 
     cluster_domain: virtual-mcp11-k8s-calico.local
     cluster_name: virtual-mcp11-k8s-calico
diff --git a/classes/cluster/virtual-mcp11-k8s-calico/init.yml b/classes/cluster/virtual-mcp11-k8s-calico/init.yml
new file mode 100644
index 0000000..975217b
--- /dev/null
+++ b/classes/cluster/virtual-mcp11-k8s-calico/init.yml
@@ -0,0 +1,6 @@
+classes:
+- system.linux.network.dynamic_hosts
+- cluster.virtual-mcp11-k8s-calico.kubernetes
+- cluster.virtual-mcp11-k8s-calico.stacklight
+- cluster.virtual-mcp11-k8s-calico.infra
+- cluster.overrides
diff --git a/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/compute.yml b/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/compute.yml
index 5263ff6..e1325ea 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/compute.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/compute.yml
@@ -3,8 +3,7 @@
 - system.kubernetes.pool.cluster
 - system.salt.minion.cert.k8s_client
 - system.salt.minion.cert.etcd_client
-- cluster.virtual-mcp11-k8s-calico.infra
-- cluster.overrides
+- cluster.virtual-mcp11-k8s-calico
 parameters:
   docker:
     host:
@@ -24,6 +23,14 @@
           image: ${_param:kubernetes_calico_cni_image}
         mtu: ${_param:kubernetes_mtu}
     common:
+      addons:
+        virtlet:
+          enabled: ${_param:kubernetes_virtlet_enabled}
+          namespace: kube-system
+          image: ${_param:kubernetes_virtlet_image}
+          hosts:
+          - ${_param:kubernetes_compute_node01_hostname}
+          - ${_param:kubernetes_compute_node02_hostname}
       hyperkube:
         image: ${_param:kubernetes_hyperkube_image}
   linux:
diff --git a/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/control.yml b/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/control.yml
index ba33434..61fdaba 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/control.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/control.yml
@@ -6,7 +6,7 @@
 - system.kubernetes.master.cluster
 - cluster.virtual-mcp11-k8s-calico.kubernetes.compute
 - cluster.virtual-mcp11-k8s-calico.infra
-- cluster.overrides
+- cluster.virtual-mcp11-k8s-calico
 parameters:
   _param:
     keepalived_vip_interface: ens3
diff --git a/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/init.yml b/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/init.yml
index 4c97283..4475f2d 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/init.yml
@@ -27,11 +27,13 @@
     kubernetes_netchecker_agent_image: mirantis/k8s-netchecker-agent:v1.1.0
     kubernetes_netchecker_server_image: mirantis/k8s-netchecker-server:v1.1.0
     kubernetes_netchecker_agent_probeurls: "http://ipinfo.io"
+    kubernetes_virtlet_image: mirantis/virtlet:v0.7.0
 
     # switches of addons
     kubernetes_helm_enabled: true
     kubernetes_netchecker_enabled: true
     kubernetes_calico_policy_enabled: false
+    kubernetes_virtlet_enabled: false
 
     # addresses and hostnames
     kubernetes_internal_api_address: 10.254.0.1
diff --git a/classes/cluster/virtual-mcp11-k8s-calico/stacklight/init.yml b/classes/cluster/virtual-mcp11-k8s-calico/stacklight/init.yml
index 243a614..6c57f52 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico/stacklight/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico/stacklight/init.yml
@@ -1,3 +1,10 @@
+classes:
+- service.grafana.collector
+- system.linux.system.repo.mcp.extra
+- system.heka.log_collector.single
+- system.heka.log_collector.output.telegraf
+- system.prometheus.collector
+- system.telegraf.agent
 parameters:
   _param:
     stacklight_monitor_address: 172.16.10.252
@@ -8,9 +15,6 @@
     stacklight_node02_address: 172.16.10.108
     stacklight_node03_address: 172.16.10.109
 
-    # Glusterfs
-    glusterfs_service_host: ${_param:stacklight_monitor_address}
-
     # Prometheus
     prometheus_control_address: ${_param:stacklight_monitor_address}
 
diff --git a/classes/cluster/virtual-mcp11-k8s-calico/stacklight/proxy.yml b/classes/cluster/virtual-mcp11-k8s-calico/stacklight/proxy.yml
index 1433a95..914b123 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico/stacklight/proxy.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico/stacklight/proxy.yml
@@ -5,7 +5,7 @@
 - system.nginx.server.proxy.monitoring.prometheus_server
 - system.nginx.server.proxy.monitoring.prometheus_alertmanager
 - system.salt.minion.cert.proxy
-- cluster.virtual-mcp11-k8s-calico.infra
+- cluster.virtual-mcp11-k8s-calico
 parameters:
   _param:
     cluster_public_host: ${_param:prometheus_control_address}
diff --git a/classes/cluster/virtual-mcp11-k8s-calico/stacklight/server.yml b/classes/cluster/virtual-mcp11-k8s-calico/stacklight/server.yml
index efb1a16..8512f04 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico/stacklight/server.yml
@@ -1,38 +1,35 @@
 classes:
 - system.docker.host
-- system.linux.system.repo.tcp_elastic
+- system.linux.system.repo.elasticsearch
+- system.linux.system.repo.influxdb
 # Needed to install Galera packages
 - system.linux.system.repo.mcp.openstack
 - system.elasticsearch.server.cluster
 - system.elasticsearch.server.curator
 - system.kibana.server.single
 - system.haproxy.proxy.listen.stacklight.elasticsearch
+- system.haproxy.proxy.listen.stacklight.influxdb_relay
 - system.haproxy.proxy.listen.stacklight.kibana
 - service.haproxy.proxy.single
-- system.glusterfs.client.cluster
-- system.glusterfs.client.volume.prometheus
-- system.glusterfs.client.volume.influxdb
-- system.glusterfs.server.cluster
-- system.glusterfs.server.volume.prometheus
-- system.glusterfs.server.volume.influxdb
+- system.influxdb.relay.cluster
 - system.galera.server.cluster
 - system.galera.server.database.grafana
-- system.influxdb.client
-- system.influxdb.client.database.prometheus
+- system.influxdb.server.single
+- system.influxdb.database.prometheus
 - system.salt.minion.cert.prometheus_server
 - system.keepalived.cluster.instance.prometheus_server_vip
 - system.telegraf.agent.remote
 - system.prometheus.server.remote_write.docker
 - system.prometheus.server.alertmanager.dns
 - system.prometheus.server.target.dns
-- system.docker.swarm.stack.influxdb
 - system.docker.swarm.stack.monitoring
 - system.docker.swarm.stack.dashboard
-- cluster.virtual-mcp11-k8s-calico.infra
+- cluster.virtual-mcp11-k8s-calico
 parameters:
   _param:
     cluster_vip_address: ${_param:stacklight_monitor_address}
     cluster_public_host: mon
+    cluster_local_address: ${_param:single_address}
     docker_image_alertmanager: docker-prod-virtual.docker.mirantis.net/openstack-docker/alertmanager:latest
     docker_image_pushgateway: docker-prod-virtual.docker.mirantis.net/openstack-docker/pushgateway:latest
     docker_image_prometheus: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus:latest
diff --git a/classes/cluster/virtual-mcp11-k8s-contrail/infra/init.yml b/classes/cluster/virtual-mcp11-k8s-contrail/infra/init.yml
index 5ffacc2..34a8fe1 100644
--- a/classes/cluster/virtual-mcp11-k8s-contrail/infra/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-contrail/infra/init.yml
@@ -23,7 +23,7 @@
     # infra service addresses
     infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
-    infra_config_deploy_address: 192.168.10.100
+    infra_config_deploy_address: 192.168.10.90
 
     cluster_domain: virtual-mcp11-k8s-contrail.local
     cluster_name: virtual-mcp11-k8s-contrail
diff --git a/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/init.yml b/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/init.yml
index 4b37345..832bcdd 100644
--- a/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/init.yml
@@ -7,8 +7,6 @@
     stacklight_node01_address: 172.16.10.107
     stacklight_node02_address: 172.16.10.108
     stacklight_node03_address: 172.16.10.109
-    # GlusterFS
-    glusterfs_service_host: ${_param:stacklight_monitor_address}
     # Prometheus
     prometheus_control_address: ${_param:stacklight_monitor_address}
 
diff --git a/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/server.yml b/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/server.yml
index d434b72..1c74b90 100644
--- a/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/server.yml
@@ -1,6 +1,6 @@
 classes:
 - system.linux.system.repo.influxdb
-- system.linux.system.repo.tcp_elastic
+- system.linux.system.repo.elasticsearch
 # Needed to install Galera packages
 - system.linux.system.repo.mcp.openstack
 - system.docker.host
@@ -13,10 +13,6 @@
 - service.haproxy.proxy.single
 - system.galera.server.cluster
 - system.galera.server.database.grafana
-- system.glusterfs.client.cluster
-- system.glusterfs.client.volume.prometheus
-- system.glusterfs.server.cluster
-- system.glusterfs.server.volume.prometheus
 - system.influxdb.relay.cluster
 - system.influxdb.server.single
 - system.influxdb.database.prometheus
diff --git a/classes/cluster/virtual-mcp11-ovs-dpdk/infra/config.yml b/classes/cluster/virtual-mcp11-ovs-dpdk/infra/config.yml
index 7218523..c1528b4 100644
--- a/classes/cluster/virtual-mcp11-ovs-dpdk/infra/config.yml
+++ b/classes/cluster/virtual-mcp11-ovs-dpdk/infra/config.yml
@@ -31,7 +31,7 @@
     reclass_data_revision: master
     salt_master_environment_repository: "https://github.com/tcpcloud"
     salt_master_environment_revision: master
-    reclass_config_master: 192.168.10.100
+    reclass_config_master: 192.168.10.90
     single_address: 172.16.10.100
     salt_master_host: 127.0.0.1
     salt_master_base_environment: prd
@@ -121,12 +121,12 @@
         stacklight_monitor_node01:
           expression: <<node_hostname>>__equals__mon01
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node01_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node02:
           expression: <<node_hostname>>__equals__mon02
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node02_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node03:
           expression: <<node_hostname>>__equals__mon03
@@ -187,4 +187,4 @@
           classes:
           - cluster.virtual-mcp11-ovs-dpdk.openstack.proxy
           params:
-            linux_system_codename: xenial
\ No newline at end of file
+            linux_system_codename: xenial
diff --git a/classes/cluster/virtual-mcp11-ovs-dpdk/init.yml b/classes/cluster/virtual-mcp11-ovs-dpdk/init.yml
index e97b1a5..ef16a9e 100644
--- a/classes/cluster/virtual-mcp11-ovs-dpdk/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs-dpdk/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - cluster.virtual-mcp11-ovs-dpdk.infra
 - cluster.virtual-mcp11-ovs-dpdk.openstack
diff --git a/classes/cluster/virtual-mcp11-ovs-dpdk/stacklight/server.yml b/classes/cluster/virtual-mcp11-ovs-dpdk/stacklight/server.yml
index 8135eff..18027cf 100644
--- a/classes/cluster/virtual-mcp11-ovs-dpdk/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-ovs-dpdk/stacklight/server.yml
@@ -4,7 +4,7 @@
 - system.linux.system.repo.influxdb
 - system.heka.remote_collector.input.amqp
 - system.heka.aggregator.cluster
-- system.linux.system.repo.tcp_elastic 
+- system.linux.system.repo.elasticsearch
 - system.elasticsearch.server.cluster
 - system.elasticsearch.server.curator
 - system.kibana.server.single
diff --git a/classes/cluster/virtual-mcp11-ovs-ironic/init.yml b/classes/cluster/virtual-mcp11-ovs-ironic/init.yml
index 654b013..a9ccc70 100644
--- a/classes/cluster/virtual-mcp11-ovs-ironic/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs-ironic/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - cluster.virtual-mcp11-ovs-ironic.infra
 - cluster.virtual-mcp11-ovs-ironic.openstack
diff --git a/classes/cluster/virtual-mcp11-ovs-ironic/stacklight/server.yml b/classes/cluster/virtual-mcp11-ovs-ironic/stacklight/server.yml
index 4e8bc6c..aef3644 100644
--- a/classes/cluster/virtual-mcp11-ovs-ironic/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-ovs-ironic/stacklight/server.yml
@@ -4,7 +4,7 @@
 - system.linux.system.repo.influxdb
 - system.heka.remote_collector.input.amqp
 - system.heka.aggregator.cluster
-- system.linux.system.repo.tcp_elastic 
+- system.linux.system.repo.elasticsearch
 - system.elasticsearch.server.cluster
 - system.elasticsearch.server.curator
 - system.kibana.server.single
diff --git a/classes/cluster/virtual-mcp11-ovs/infra/config.yml b/classes/cluster/virtual-mcp11-ovs/infra/config.yml
index 37decff..b0b20c8 100644
--- a/classes/cluster/virtual-mcp11-ovs/infra/config.yml
+++ b/classes/cluster/virtual-mcp11-ovs/infra/config.yml
@@ -30,7 +30,7 @@
     reclass_data_revision: master
     salt_master_environment_repository: "https://github.com/tcpcloud"
     salt_master_environment_revision: master
-    reclass_config_master: 192.168.10.100
+    reclass_config_master: 192.168.10.90
     single_address: 172.16.10.100
     salt_master_host: 127.0.0.1
     salt_master_base_environment: prd
@@ -120,12 +120,12 @@
         stacklight_monitor_node01:
           expression: <<node_hostname>>__equals__mon01
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node01_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node02:
           expression: <<node_hostname>>__equals__mon02
           cluster_param:
-            stacklight_monitor_node03_address:
+            stacklight_monitor_node02_address:
               value_template: <<node_control_ip>>
         stacklight_monitor_node03:
           expression: <<node_hostname>>__equals__mon03
@@ -182,4 +182,4 @@
           classes:
           - cluster.virtual-mcp11-ovs.openstack.proxy
           params:
-            linux_system_codename: xenial
\ No newline at end of file
+            linux_system_codename: xenial
diff --git a/classes/cluster/virtual-mcp11-ovs/infra/init.yml b/classes/cluster/virtual-mcp11-ovs/infra/init.yml
index 9140bd0..be51f48 100644
--- a/classes/cluster/virtual-mcp11-ovs/infra/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs/infra/init.yml
@@ -1,4 +1,8 @@
 parameters:
+  _param:
+    cluster_domain: virtual-mcp11-ovs.local
+    cluster_name: virtual-mcp11-ovs
+    infra_config_address: 172.16.10.100
   linux:
     network:
       host:
diff --git a/classes/cluster/virtual-mcp11-ovs/init.yml b/classes/cluster/virtual-mcp11-ovs/init.yml
index 0516e5b..6d4d246 100644
--- a/classes/cluster/virtual-mcp11-ovs/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - cluster.virtual-mcp11-ovs.infra
 - cluster.virtual-mcp11-ovs.openstack
@@ -8,32 +9,4 @@
 - system.openssh.server.team.mcp_qa
 - cluster.virtual-mcp11-ovs.stacklight
 - cluster.virtual-mcp11-ovs.stacklight.client
-
-parameters:
-  _param:
-    cluster_domain: virtual-mcp11-ovs.local
-    cluster_name: virtual-mcp11-ovs
-    # infra service addresses
-    infra_config_address: 172.16.10.100
-    # openstack service addresses
-    openstack_proxy_address: 172.16.10.121
-    openstack_proxy_node01_address: 172.16.10.121
-    openstack_control_address: 172.16.10.254
-    openstack_control_node01_address: 172.16.10.101
-    openstack_control_node02_address: 172.16.10.102
-    openstack_control_node03_address: 172.16.10.103
-    openstack_database_address: ${_param:openstack_control_address}
-    openstack_message_queue_address: ${_param:openstack_control_address}
-    openstack_message_queue_node01_address: ${_param:openstack_control_node01_address}
-    openstack_message_queue_node02_address: ${_param:openstack_control_node02_address}
-    openstack_message_queue_node03_address: ${_param:openstack_control_node03_address}
-    # stacklight service addresses
-    stacklight_monitor_address: 172.16.10.253
-    stacklight_monitor_node01_address: 172.16.10.107
-    stacklight_monitor_node02_address: 172.16.10.108
-    stacklight_monitor_node03_address: 172.16.10.109
-    stacklight_telemetry_node01_address: ${_param:stacklight_monitor_node01_address}
-    stacklight_log_address: ${_param:stacklight_monitor_address}
-    openstack_gateway_address: 172.16.10.110
-    openstack_gateway_node01_address: ${_param:openstack_gateway_address}
-    stacklight_telemetry_address: ${_param:stacklight_monitor_address}
\ No newline at end of file
+- cluster.overrides
\ No newline at end of file
diff --git a/classes/cluster/virtual-mcp11-ovs/openstack/init.yml b/classes/cluster/virtual-mcp11-ovs/openstack/init.yml
index bb1caaf..f78b91c 100644
--- a/classes/cluster/virtual-mcp11-ovs/openstack/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs/openstack/init.yml
@@ -1,5 +1,18 @@
 parameters:
   _param:
+    openstack_proxy_address: 172.16.10.121
+    openstack_proxy_node01_address: 172.16.10.121
+    openstack_control_address: 172.16.10.254
+    openstack_control_node01_address: 172.16.10.101
+    openstack_control_node02_address: 172.16.10.102
+    openstack_control_node03_address: 172.16.10.103
+    openstack_database_address: ${_param:openstack_control_address}
+    openstack_message_queue_address: ${_param:openstack_control_address}
+    openstack_message_queue_node01_address: ${_param:openstack_control_node01_address}
+    openstack_message_queue_node02_address: ${_param:openstack_control_node02_address}
+    openstack_message_queue_node03_address: ${_param:openstack_control_node03_address}
+    openstack_gateway_address: 172.16.10.110
+    openstack_gateway_node01_address: ${_param:openstack_gateway_address}
     openstack_version: newton
     apt_mk_version: nightly
     mcp_repo_version: 1.1
diff --git a/classes/cluster/virtual-mcp11-ovs/stacklight/init.yml b/classes/cluster/virtual-mcp11-ovs/stacklight/init.yml
index 48bffdc..09481dc 100644
--- a/classes/cluster/virtual-mcp11-ovs/stacklight/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs/stacklight/init.yml
@@ -1,5 +1,12 @@
 parameters:
   _param:
+    stacklight_monitor_address: 172.16.10.253
+    stacklight_monitor_node01_address: 172.16.10.107
+    stacklight_monitor_node02_address: 172.16.10.108
+    stacklight_monitor_node03_address: 172.16.10.109
+    stacklight_telemetry_node01_address: ${_param:stacklight_monitor_node01_address}
+    stacklight_log_address: ${_param:stacklight_monitor_address}
+    stacklight_telemetry_address: ${_param:stacklight_monitor_address}
     heka_elasticsearch_host: ${_param:stacklight_monitor_address}
     heka_influxdb_host: ${_param:stacklight_monitor_node01_address}
     heka_aggregator_host: ${_param:stacklight_monitor_address}
diff --git a/classes/cluster/virtual-mcp11-ovs/stacklight/server.yml b/classes/cluster/virtual-mcp11-ovs/stacklight/server.yml
index c32e8a9..fcc8107 100644
--- a/classes/cluster/virtual-mcp11-ovs/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-ovs/stacklight/server.yml
@@ -4,7 +4,7 @@
 - system.linux.system.repo.influxdb
 - system.heka.remote_collector.input.amqp
 - system.heka.aggregator.cluster
-- system.linux.system.repo.tcp_elastic 
+- system.linux.system.repo.elasticsearch
 - system.elasticsearch.server.cluster
 - system.elasticsearch.server.curator
 - system.kibana.server.single
diff --git a/classes/system b/classes/system
index bc49d34..b5a5aa6 160000
--- a/classes/system
+++ b/classes/system
@@ -1 +1 @@
-Subproject commit bc49d346f1ac5df1bae934264aa95b1dc19e596b
+Subproject commit b5a5aa610defbf7b18fe90163c16855bd22aa60b