Merge "Version bounce to latest system reclass"
diff --git a/classes/cluster/k8s-ha-contrail/kubernetes/compute.yml b/classes/cluster/k8s-ha-contrail/kubernetes/compute.yml
index 1006f1b..1e9913f 100644
--- a/classes/cluster/k8s-ha-contrail/kubernetes/compute.yml
+++ b/classes/cluster/k8s-ha-contrail/kubernetes/compute.yml
@@ -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,12 @@
         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:
+          - ${linux:system:name}
       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
index 4776b3b..685ea2a 100644
--- a/classes/cluster/k8s-ha-contrail/kubernetes/control.yml
+++ b/classes/cluster/k8s-ha-contrail/kubernetes/control.yml
@@ -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
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
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/os-ha-contrail-40/infra/init.yml b/classes/cluster/os-ha-contrail-40/infra/init.yml
index 520a622..182936e 100644
--- a/classes/cluster/os-ha-contrail-40/infra/init.yml
+++ b/classes/cluster/os-ha-contrail-40/infra/init.yml
@@ -6,16 +6,4 @@
     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
index b36a3f0..b460eb0 100644
--- a/classes/cluster/os-ha-contrail-40/opencontrail/init.yml
+++ b/classes/cluster/os-ha-contrail-40/opencontrail/init.yml
@@ -13,26 +13,4 @@
     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
index 732a6a1..e3c086f 100644
--- a/classes/cluster/os-ha-contrail-40/openstack/control.yml
+++ b/classes/cluster/os-ha-contrail-40/openstack/control.yml
@@ -110,6 +110,8 @@
                 rndc_host: ${_param:openstack_control_node03_address}
                 rndc_port: 953
                 rndc_key_file: /etc/designate/rndc.key
+    worker:
+      enabled: ${_param:designate_worker_enabled}
   glance:
     server:
       storage:
diff --git a/classes/cluster/os-ha-contrail-40/openstack/init.yml b/classes/cluster/os-ha-contrail-40/openstack/init.yml
index c129dea..cdcfd10 100644
--- a/classes/cluster/os-ha-contrail-40/openstack/init.yml
+++ b/classes/cluster/os-ha-contrail-40/openstack/init.yml
@@ -76,6 +76,7 @@
       rndc_port: 953
       rndc_key_file: /etc/designate/rndc.key
     designate_version: ${_param:openstack_version}
+    designate_worker_enabled: true
     cluster_vip_address: ${_param:openstack_control_address}
     glance_version: ${_param:openstack_version}
     glance_service_host: ${_param:openstack_control_address}
@@ -117,86 +118,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/infra/init.yml b/classes/cluster/os-ha-contrail/infra/init.yml
index 487df62..e504ccc 100755
--- a/classes/cluster/os-ha-contrail/infra/init.yml
+++ b/classes/cluster/os-ha-contrail/infra/init.yml
@@ -6,16 +6,4 @@
     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/opencontrail/init.yml b/classes/cluster/os-ha-contrail/opencontrail/init.yml
index cee0b50..9b3acda 100644
--- a/classes/cluster/os-ha-contrail/opencontrail/init.yml
+++ b/classes/cluster/os-ha-contrail/opencontrail/init.yml
@@ -12,26 +12,4 @@
     opencontrail_control_node01_address: 172.16.10.111
     opencontrail_control_node02_address: 172.16.10.112
     opencontrail_control_node03_address: 172.16.10.113
-  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}
\ No newline at end of file
+  
diff --git a/classes/cluster/os-ha-contrail/openstack/control.yml b/classes/cluster/os-ha-contrail/openstack/control.yml
index e5ab6a3..1e9733a 100755
--- a/classes/cluster/os-ha-contrail/openstack/control.yml
+++ b/classes/cluster/os-ha-contrail/openstack/control.yml
@@ -120,6 +120,8 @@
                 rndc_host: ${_param:openstack_control_node03_address}
                 rndc_port: 953
                 rndc_key_file: /etc/designate/rndc.key
+    worker:
+      enabled: ${_param:designate_worker_enabled}
   glance:
     server:
       storage:
diff --git a/classes/cluster/os-ha-contrail/openstack/init.yml b/classes/cluster/os-ha-contrail/openstack/init.yml
index a6c09ff..ee1eaef 100755
--- a/classes/cluster/os-ha-contrail/openstack/init.yml
+++ b/classes/cluster/os-ha-contrail/openstack/init.yml
@@ -77,6 +77,7 @@
       rndc_key_file: /etc/designate/rndc.key
     barbican_version: ${_param:openstack_version}
     designate_version: ${_param:openstack_version}
+    designate_worker_enabled: true
     cluster_vip_address: ${_param:openstack_control_address}
     glance_version: ${_param:openstack_version}
     glance_service_host: ${_param:openstack_control_address}
@@ -125,86 +126,4 @@
     opencontrail_barbican_password: ${_param:keystone_admin_password}
     opencontrail_barbican_tenant: admin
     barbican_simple_crypto_kek: "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY="
-  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-ovs/openstack/control.yml b/classes/cluster/os-ha-ovs/openstack/control.yml
index b4078b9..ee20aa0 100644
--- a/classes/cluster/os-ha-ovs/openstack/control.yml
+++ b/classes/cluster/os-ha-ovs/openstack/control.yml
@@ -61,6 +61,8 @@
         driver: messagingv2
         topics: "notifications"
   designate:
+    worker:
+      enabled: ${_param:designate_worker_enabled}
     server:
       pools:
         default:
diff --git a/classes/cluster/os-ha-ovs/openstack/init.yml b/classes/cluster/os-ha-ovs/openstack/init.yml
index 7e1d100..38e2c1e 100644
--- a/classes/cluster/os-ha-ovs/openstack/init.yml
+++ b/classes/cluster/os-ha-ovs/openstack/init.yml
@@ -82,6 +82,7 @@
       rndc_host: ${_param:openstack_control_node01_address}
       rndc_port: 953
       rndc_key_file: /etc/designate/rndc.key
+    designate_worker_enabled: true
     designate_version: ${_param:openstack_version}
     glance_version: ${_param:openstack_version}
     glance_service_host: ${_param:cluster_vip_address}
diff --git a/classes/cluster/sl-k8s-calico/stacklight/server.yml b/classes/cluster/sl-k8s-calico/stacklight/server.yml
index 82ca05d..e7e2f62 100644
--- a/classes/cluster/sl-k8s-calico/stacklight/server.yml
+++ b/classes/cluster/sl-k8s-calico/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
 # Needed to install Galera packages
 - system.linux.system.repo.mcp.openstack
 - system.elasticsearch.server.cluster
diff --git a/classes/cluster/sl-k8s-contrail/stacklight/server.yml b/classes/cluster/sl-k8s-contrail/stacklight/server.yml
index 99142b0..06e6293 100644
--- a/classes/cluster/sl-k8s-contrail/stacklight/server.yml
+++ b/classes/cluster/sl-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
diff --git a/classes/cluster/sl-os-contrail/openstack/control.yml b/classes/cluster/sl-os-contrail/openstack/control.yml
index 8ebb874..c934ea0 100755
--- a/classes/cluster/sl-os-contrail/openstack/control.yml
+++ b/classes/cluster/sl-os-contrail/openstack/control.yml
@@ -111,6 +111,8 @@
                 rndc_host: ${_param:openstack_control_node03_address}
                 rndc_port: 953
                 rndc_key_file: /etc/designate/rndc.key
+    worker:
+      enabled: ${_param:designate_worker_enabled}
   glance:
     server:
       storage:
diff --git a/classes/cluster/sl-os-contrail/openstack/init.yml b/classes/cluster/sl-os-contrail/openstack/init.yml
index 14af8a4..c0667d3 100755
--- a/classes/cluster/sl-os-contrail/openstack/init.yml
+++ b/classes/cluster/sl-os-contrail/openstack/init.yml
@@ -75,6 +75,7 @@
       rndc_port: 953
       rndc_key_file: /etc/designate/rndc.key
     designate_version: ${_param:openstack_version}
+    designate_worker_enabled: true
     cluster_vip_address: ${_param:openstack_control_address}
     glance_version: ${_param:openstack_version}
     glance_service_host: ${_param:openstack_control_address}
diff --git a/classes/cluster/sl-os-contrail/stacklight/server.yml b/classes/cluster/sl-os-contrail/stacklight/server.yml
index 4214646..4c7b720 100755
--- a/classes/cluster/sl-os-contrail/stacklight/server.yml
+++ b/classes/cluster/sl-os-contrail/stacklight/server.yml
@@ -2,7 +2,7 @@
 - system.docker.host
 - system.linux.system.repo.influxdb
 - system.linux.system.repo.mcp.salt
-- 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/sl-os-ovs/openstack/control.yml b/classes/cluster/sl-os-ovs/openstack/control.yml
index 70287f9..0c6cbeb 100644
--- a/classes/cluster/sl-os-ovs/openstack/control.yml
+++ b/classes/cluster/sl-os-ovs/openstack/control.yml
@@ -46,6 +46,9 @@
           proto: static
           address: ${_param:single_address}
           netmask: 255.255.255.0
+  designate:
+    worker:
+      enabled: ${_param:designate_worker_enabled}
   keepalived:
     cluster:
       instance:
diff --git a/classes/cluster/sl-os-ovs/openstack/init.yml b/classes/cluster/sl-os-ovs/openstack/init.yml
index aba9cee..70e4733 100644
--- a/classes/cluster/sl-os-ovs/openstack/init.yml
+++ b/classes/cluster/sl-os-ovs/openstack/init.yml
@@ -103,6 +103,7 @@
     ceilometer_service_host: ${_param:cluster_vip_address}
     designate_version: ${_param:openstack_version}
     designate_service_host: ${_param:cluster_vip_address}
+    designate_worker_enabled: true
   linux:
     network:
       host:
diff --git a/classes/cluster/sl-os-ovs/stacklight/server.yml b/classes/cluster/sl-os-ovs/stacklight/server.yml
index 916f1bf..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
diff --git a/classes/cluster/virtual-mcp-ocata-cicd/openstack/control.yml b/classes/cluster/virtual-mcp-ocata-cicd/openstack/control.yml
index 6ad2afa..e10b2a0 100644
--- a/classes/cluster/virtual-mcp-ocata-cicd/openstack/control.yml
+++ b/classes/cluster/virtual-mcp-ocata-cicd/openstack/control.yml
@@ -107,6 +107,8 @@
                 rndc_host: ${_param:openstack_control_node03_address}
                 rndc_port: 953
                 rndc_key_file: /etc/designate/rndc.key
+    worker:
+      enabled: ${_param:designate_worker_enabled}
   glance:
     server:
       storage:
diff --git a/classes/cluster/virtual-mcp-ocata-cicd/openstack/init.yml b/classes/cluster/virtual-mcp-ocata-cicd/openstack/init.yml
index b21c692..ff63ad9 100644
--- a/classes/cluster/virtual-mcp-ocata-cicd/openstack/init.yml
+++ b/classes/cluster/virtual-mcp-ocata-cicd/openstack/init.yml
@@ -60,6 +60,7 @@
       rndc_port: 953
       rndc_key_file: /etc/designate/rndc.key
     designate_version: ${_param:openstack_version}
+    designate_worker_enabled: true
     glance_version: ${_param:openstack_version}
     glance_service_host: ${_param:cluster_vip_address}
     keystone_version: ${_param:openstack_version}
@@ -182,4 +183,4 @@
       user:
         root:
           name: root
-          password: false
\ No newline at end of file
+          password: false
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 139289e..10010ae 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/infra/config.yml
+++ b/classes/cluster/virtual-mcp-ocata-dvr/infra/config.yml
@@ -19,6 +19,7 @@
 - system.keystone.client.service.cinder3
 - system.keystone.client.service.designate
 - system.mysql.client.single
+- system.reclass.storage.system.openstack_dns_cluster
 - system.reclass.storage.system.openstack_control_cluster
 - system.reclass.storage.system.openstack_compute_multi
 - system.reclass.storage.system.openstack_gateway_single
diff --git a/classes/cluster/virtual-mcp-ocata-dvr/init.yml b/classes/cluster/virtual-mcp-ocata-dvr/init.yml
index 14f6686..c801079 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/init.yml
+++ b/classes/cluster/virtual-mcp-ocata-dvr/init.yml
@@ -39,6 +39,8 @@
     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_dns_node01_address: 172.16.10.111
+    openstack_dns_node02_address: 172.16.10.112
     # stacklight service addresses
     stacklight_monitor_address: 172.16.10.253
     stacklight_monitor_node01_address: 172.16.10.107
diff --git a/classes/cluster/virtual-mcp-ocata-dvr/openstack/control.yml b/classes/cluster/virtual-mcp-ocata-dvr/openstack/control.yml
index dbc3464..6232f79 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/openstack/control.yml
+++ b/classes/cluster/virtual-mcp-ocata-dvr/openstack/control.yml
@@ -62,13 +62,6 @@
       instance:
         VIP:
           virtual_router_id: 150
-  powerdns:
-    server:
-      axfr_ips:
-        - ${_param:openstack_control_node01_address}
-        - ${_param:openstack_control_node02_address}
-        - ${_param:openstack_control_node03_address}
-        - 127.0.0.1
   keystone:
     server:
       admin_email: ${_param:admin_email}
@@ -76,6 +69,9 @@
         driver: messagingv2
         topics: "notifications,${_param:stacklight_notification_topic}"
   designate:
+    pool_manager:
+      enabled: ${_param:designate_pool_manager_enabled}
+      periodic_sync_interval: ${_param:designate_pool_manager_periodic_sync_interval}
     server:
       pools:
         default:
@@ -88,18 +84,9 @@
               description: 'test target2'
               masters: ${_param:designate_pool_target_masters}
               options:
-                host: ${_param:openstack_control_node02_address}
+                host: ${_param:openstack_dns_node02_address}
                 port: 53
-                api_endpoint: "http://${_param:openstack_control_node02_address}:${_param:powerdns_webserver_port}"
-                api_token: ${_param:designate_pdns_api_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
-                api_endpoint: "http://${_param:openstack_control_node03_address}:${_param:powerdns_webserver_port}"
+                api_endpoint: "http://${_param:openstack_dns_node02_address}:${_param:powerdns_webserver_port}"
                 api_token: ${_param:designate_pdns_api_key}
   glance:
     server:
diff --git a/classes/cluster/virtual-mcp-ocata-dvr/openstack/dns.yml b/classes/cluster/virtual-mcp-ocata-dvr/openstack/dns.yml
new file mode 100644
index 0000000..5e17e0e
--- /dev/null
+++ b/classes/cluster/virtual-mcp-ocata-dvr/openstack/dns.yml
@@ -0,0 +1,35 @@
+classes:
+- system.powerdns.server.single
+- cluster.virtual-mcp-ocata-dvr
+
+parameters:
+  powerdns:
+    server:
+      api:
+          enabled: True
+          key: ${_param:designate_pdns_api_key}
+      axfr_ips:
+          ${_param:powerdns_axfr_ips}
+      bind:
+          address: ${_param:single_address}
+      overwrite_supermasters: True
+      supermasters:
+          ${_param:powerdns_supermasters}
+      webserver:
+          enabled: True
+          address: ${_param:single_address}
+          password: ${_param:powerdns_webserver_password}
+          port: ${_param:powerdns_webserver_port}
+  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
diff --git a/classes/cluster/virtual-mcp-ocata-dvr/openstack/init.yml b/classes/cluster/virtual-mcp-ocata-dvr/openstack/init.yml
index 9b67ace..c3f3a4b 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/openstack/init.yml
+++ b/classes/cluster/virtual-mcp-ocata-dvr/openstack/init.yml
@@ -33,31 +33,51 @@
     rabbitmq_admin_password: workshop
     rabbitmq_openstack_password: workshop
     rabbitmq_cold_password: workshop
+    powerdns_axfr_ips:
+      - ${_param:openstack_control_node01_address}
+      - ${_param:openstack_control_node02_address}
+      - ${_param:openstack_control_node03_address}
+      - 127.0.0.1
+    powerdns_supermasters:
+      - ip: ${_param:openstack_control_node01_address}
+        nameserver: ns1.example.org
+        account: master
+      - ip: ${_param:openstack_control_node02_address}
+        nameserver: ns2.example.org
+        account: master
+      - ip: ${_param:openstack_control_node03_address}
+        nameserver: ns3.example.org
+        account: master
+    powerdns_overwrite_supermasters: True
     powerdns_webserver_password: gJ6n3gVaYP8eS
     powerdns_webserver_port: 8081
     designate_domain_id: 5186883b-91fb-4891-bd49-e6769234a8fc
     designate_pdns_api_key: VxK9cMlFL5Ae
-    designate_pdns_api_endpoint: "http://${_param:openstack_control_node01_address}:${_param:powerdns_webserver_port}"
+    designate_pdns_api_endpoint: "http://${_param:openstack_dns_node01_address}:${_param:powerdns_webserver_port}"
+    designate_pool_manager_enabled: True
+    designate_pool_manager_periodic_sync_interval: '120'
     designate_pool_ns_records:
       - hostname: 'ns1.example.org.'
         priority: 10
+      - hostname: 'ns2.example.org.'
+        priority: 20
+      - hostname: 'ns3.example.org.'
+        priority: 30
     designate_pool_nameservers:
-      - host: ${_param:openstack_control_node01_address}
+      - host: ${_param:openstack_dns_node01_address}
         port: 53
-      - host: ${_param:openstack_control_node02_address}
-        port: 53
-      - host: ${_param:openstack_control_node03_address}
+      - host: ${_param:openstack_dns_node02_address}
         port: 53
     designate_pool_target_type: pdns4
     designate_pool_target_masters:
       - host: ${_param:openstack_control_node01_address}
-        port: 5354
+        port: 53
       - host: ${_param:openstack_control_node02_address}
-        port: 5354
+        port: 53
       - host: ${_param:openstack_control_node03_address}
-        port: 5354
+        port: 53
     designate_pool_target_options:
-      host: ${_param:openstack_control_node01_address}
+      host: ${_param:openstack_dns_node01_address}
       port: 53
       api_token: ${_param:designate_pdns_api_key}
       api_endpoint: ${_param:designate_pdns_api_endpoint}
@@ -168,8 +188,18 @@
           names:
           - cmp02
           - cmp02.${_param:cluster_domain}
+        dns01:
+          address: ${_param:openstack_dns_node01_address}
+          names:
+          - dns01
+          - dns01.${_param:cluster_domain}
+        dns02:
+          address: ${_param:openstack_dns_node02_address}
+          names:
+          - dns02
+          - dns02.${_param:cluster_domain}
     system:
       user:
         root:
           name: root
-          password: false
\ No newline at end of file
+          password: false
diff --git a/classes/cluster/virtual-mcp-ocata-dvr/stacklight/server.yml b/classes/cluster/virtual-mcp-ocata-dvr/stacklight/server.yml
index 555f176..98cad93 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp-ocata-dvr/stacklight/server.yml
@@ -2,7 +2,7 @@
 - system.docker.host
 - 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
diff --git a/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml b/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml
index da8143e..c88b3f9 100644
--- a/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml
+++ b/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml
@@ -109,6 +109,8 @@
                 rndc_host: ${_param:openstack_control_node03_address}
                 rndc_port: 953
                 rndc_key_file: /etc/designate/rndc.key
+    worker:
+      enabled: ${_param:designate_worker_enabled}
   glance:
     server:
       storage:
diff --git a/classes/cluster/virtual-mcp-ocata-ovs/openstack/init.yml b/classes/cluster/virtual-mcp-ocata-ovs/openstack/init.yml
index 749372c..fd60e93 100644
--- a/classes/cluster/virtual-mcp-ocata-ovs/openstack/init.yml
+++ b/classes/cluster/virtual-mcp-ocata-ovs/openstack/init.yml
@@ -60,6 +60,7 @@
       rndc_port: 953
       rndc_key_file: /etc/designate/rndc.key
     designate_version: ${_param:openstack_version}
+    designate_worker_enabled: true
     glance_version: ${_param:openstack_version}
     glance_service_host: ${_param:cluster_vip_address}
     keystone_version: ${_param:openstack_version}
@@ -171,4 +172,4 @@
       user:
         root:
           name: root
-          password: false
\ No newline at end of file
+          password: false
diff --git a/classes/cluster/virtual-mcp-ocata-ovs/stacklight/server.yml b/classes/cluster/virtual-mcp-ocata-ovs/stacklight/server.yml
index 25eede2..84d9910 100644
--- a/classes/cluster/virtual-mcp-ocata-ovs/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp-ocata-ovs/stacklight/server.yml
@@ -2,7 +2,7 @@
 - system.docker.host
 - 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
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/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/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/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/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/infra/config.yml b/classes/cluster/virtual-mcp11-aio/infra/config.yml
index ec91ce4..c59029b 100644
--- a/classes/cluster/virtual-mcp11-aio/infra/config.yml
+++ b/classes/cluster/virtual-mcp11-aio/infra/config.yml
@@ -7,3 +7,4 @@
     system:
       name: cfg01
       domain: ${_param:cluster_domain}
+      purge_repos: ${_param:linux_system_purge_repos}
diff --git a/classes/cluster/virtual-mcp11-aio/infra/init.yml b/classes/cluster/virtual-mcp11-aio/infra/init.yml
index 5bfe7c9..46d0de0 100644
--- a/classes/cluster/virtual-mcp11-aio/infra/init.yml
+++ b/classes/cluster/virtual-mcp11-aio/infra/init.yml
@@ -1,3 +1,4 @@
 parameters:
   _param:
-    apt_mk_version: stable
\ No newline at end of file
+    apt_mk_version: stable
+    linux_system_purge_repos: false
diff --git a/classes/cluster/virtual-mcp11-aio/openstack/init.yml b/classes/cluster/virtual-mcp11-aio/openstack/init.yml
index 66cbb56..f8187d0 100755
--- a/classes/cluster/virtual-mcp11-aio/openstack/init.yml
+++ b/classes/cluster/virtual-mcp11-aio/openstack/init.yml
@@ -101,6 +101,7 @@
       rndc_host: 127.0.0.1
       rndc_port: 953
       rndc_key_file: /etc/designate/rndc.key
+    designate_worker_enabled: true
     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
@@ -117,12 +118,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:
@@ -130,3 +134,6 @@
   horizon:
     server:
       secure: False
+  designate:
+    worker:
+      enabled: ${_param:designate_worker_enabled}
diff --git a/classes/cluster/virtual-mcp11-contrail-nfv/openstack/control.yml b/classes/cluster/virtual-mcp11-contrail-nfv/openstack/control.yml
index cc8ad62..f319493 100755
--- a/classes/cluster/virtual-mcp11-contrail-nfv/openstack/control.yml
+++ b/classes/cluster/virtual-mcp11-contrail-nfv/openstack/control.yml
@@ -122,6 +122,8 @@
                 rndc_host: ${_param:openstack_control_node03_address}
                 rndc_port: 953
                 rndc_key_file: /etc/designate/rndc.key
+    worker:
+      enabled: ${_param:designate_worker_enabled}
   glance:
     server:
       storage:
diff --git a/classes/cluster/virtual-mcp11-contrail-nfv/openstack/init.yml b/classes/cluster/virtual-mcp11-contrail-nfv/openstack/init.yml
index 33345a4..b57f7da 100755
--- a/classes/cluster/virtual-mcp11-contrail-nfv/openstack/init.yml
+++ b/classes/cluster/virtual-mcp11-contrail-nfv/openstack/init.yml
@@ -42,6 +42,7 @@
       rndc_port: 953
       rndc_key_file: /etc/designate/rndc.key
     designate_version: ${_param:openstack_version}
+    designate_worker_enabled: true
     cluster_vip_address: ${_param:openstack_control_address}
     glance_version: ${_param:openstack_version}
     glance_service_host: ${_param:openstack_control_address}
@@ -197,4 +198,4 @@
       user:
         root:
           name: root
-          password: false
\ No newline at end of file
+          password: false
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/openstack/control.yml b/classes/cluster/virtual-mcp11-contrail/openstack/control.yml
index 150cf5d..0415236 100755
--- a/classes/cluster/virtual-mcp11-contrail/openstack/control.yml
+++ b/classes/cluster/virtual-mcp11-contrail/openstack/control.yml
@@ -120,6 +120,8 @@
                 rndc_host: ${_param:openstack_control_node03_address}
                 rndc_port: 953
                 rndc_key_file: /etc/designate/rndc.key
+    worker:
+      enabled: ${_param:designate_worker_enabled}
   glance:
     server:
       storage:
diff --git a/classes/cluster/virtual-mcp11-contrail/openstack/init.yml b/classes/cluster/virtual-mcp11-contrail/openstack/init.yml
index 97bfab7..50b13ed 100755
--- a/classes/cluster/virtual-mcp11-contrail/openstack/init.yml
+++ b/classes/cluster/virtual-mcp11-contrail/openstack/init.yml
@@ -58,6 +58,7 @@
       rndc_port: 953
       rndc_key_file: /etc/designate/rndc.key
     designate_version: ${_param:openstack_version}
+    designate_worker_enabled: true
     cluster_vip_address: ${_param:openstack_control_address}
     glance_version: ${_param:openstack_version}
     glance_service_host: ${_param:openstack_control_address}
diff --git a/classes/cluster/virtual-mcp11-contrail/stacklight/server.yml b/classes/cluster/virtual-mcp11-contrail/stacklight/server.yml
index b2ba726..f0f3280 100755
--- a/classes/cluster/virtual-mcp11-contrail/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-contrail/stacklight/server.yml
@@ -2,7 +2,7 @@
 - system.docker.host
 - 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
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 5dcfd88..2ba8f60 100644
--- a/classes/cluster/virtual-mcp11-dvr/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-dvr/stacklight/server.yml
@@ -2,7 +2,7 @@
 - system.docker.host
 - 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
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 6bc2c7e..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
diff --git a/classes/cluster/virtual-mcp11-k8s-calico/stacklight/server.yml b/classes/cluster/virtual-mcp11-k8s-calico/stacklight/server.yml
index 393b1c1..8512f04 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico/stacklight/server.yml
@@ -1,6 +1,6 @@
 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
diff --git a/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/server.yml b/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/server.yml
index 437c93f..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
diff --git a/classes/cluster/virtual-mcp11-ovs-dpdk/openstack/control.yml b/classes/cluster/virtual-mcp11-ovs-dpdk/openstack/control.yml
index ca478b9..8d86179 100644
--- a/classes/cluster/virtual-mcp11-ovs-dpdk/openstack/control.yml
+++ b/classes/cluster/virtual-mcp11-ovs-dpdk/openstack/control.yml
@@ -104,6 +104,8 @@
                 rndc_host: ${_param:openstack_control_node03_address}
                 rndc_port: 953
                 rndc_key_file: /etc/designate/rndc.key
+    worker:
+      enabled: ${_param:designate_worker_enabled}
   glance:
     server:
       storage:
diff --git a/classes/cluster/virtual-mcp11-ovs-dpdk/openstack/init.yml b/classes/cluster/virtual-mcp11-ovs-dpdk/openstack/init.yml
index 83d35b8..db21afe 100644
--- a/classes/cluster/virtual-mcp11-ovs-dpdk/openstack/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs-dpdk/openstack/init.yml
@@ -72,6 +72,7 @@
       rndc_port: 953
       rndc_key_file: /etc/designate/rndc.key
     designate_version: ${_param:openstack_version}
+    designate_worker_enabled: true
     glance_version: ${_param:openstack_version}
     glance_service_host: ${_param:cluster_vip_address}
     keystone_version: ${_param:openstack_version}
@@ -179,4 +180,4 @@
       user:
         root:
           name: root
-          password: false
\ No newline at end of file
+          password: false
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/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/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