Merge "Fix horizon in mcp virtual labs"
diff --git a/classes/cluster/k8s-aio-calico/kubernetes/compute.yml b/classes/cluster/k8s-aio-calico/kubernetes/compute.yml
index 9d3ece4..4c03619 100644
--- a/classes/cluster/k8s-aio-calico/kubernetes/compute.yml
+++ b/classes/cluster/k8s-aio-calico/kubernetes/compute.yml
@@ -10,7 +10,7 @@
     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
+    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.5-2
   docker:
     host:
       pkgs:
diff --git a/classes/cluster/k8s-aio-contrail/kubernetes/init.yml b/classes/cluster/k8s-aio-contrail/kubernetes/init.yml
index 5f84df2..64d0a8a 100644
--- a/classes/cluster/k8s-aio-contrail/kubernetes/init.yml
+++ b/classes/cluster/k8s-aio-contrail/kubernetes/init.yml
@@ -19,7 +19,7 @@
     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
+    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.5-2
     kubernetes_netchecker_agent_image: quay.io/l23network/k8s-netchecker-agent:v1.0
     kubernetes_netchecker_server_image: quay.io/l23network/k8s-netchecker-server:v1.0
 
diff --git a/classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/compute.yml b/classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/compute.yml
index c32f2c5..536dfff 100644
--- a/classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/compute.yml
+++ b/classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/compute.yml
@@ -10,7 +10,7 @@
     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
+    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.5-2
   docker:
     host:
       pkgs:
diff --git a/classes/cluster/k8s-ha-calico-syndic/kubernetes/compute.yml b/classes/cluster/k8s-ha-calico-syndic/kubernetes/compute.yml
index 6c55d47..eae863f 100644
--- a/classes/cluster/k8s-ha-calico-syndic/kubernetes/compute.yml
+++ b/classes/cluster/k8s-ha-calico-syndic/kubernetes/compute.yml
@@ -10,7 +10,7 @@
     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
+    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.5-2
   docker:
     host:
       pkgs:
diff --git a/classes/cluster/k8s-ha-calico/kubernetes/compute.yml b/classes/cluster/k8s-ha-calico/kubernetes/compute.yml
index 6a1637f..98b7a47 100644
--- a/classes/cluster/k8s-ha-calico/kubernetes/compute.yml
+++ b/classes/cluster/k8s-ha-calico/kubernetes/compute.yml
@@ -10,7 +10,7 @@
     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
+    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.5-2
   docker:
     host:
       pkgs:
diff --git a/classes/cluster/k8s-ha-contrail/kubernetes/init.yml b/classes/cluster/k8s-ha-contrail/kubernetes/init.yml
index 2abddda..c999ca3 100644
--- a/classes/cluster/k8s-ha-contrail/kubernetes/init.yml
+++ b/classes/cluster/k8s-ha-contrail/kubernetes/init.yml
@@ -24,7 +24,7 @@
     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_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.5-2
     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
diff --git a/classes/cluster/sl-k8s-calico/kubernetes/compute.yml b/classes/cluster/sl-k8s-calico/kubernetes/compute.yml
index db65dae..f4038a9 100644
--- a/classes/cluster/sl-k8s-calico/kubernetes/compute.yml
+++ b/classes/cluster/sl-k8s-calico/kubernetes/compute.yml
@@ -10,7 +10,7 @@
     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
+    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.5-2
   docker:
     host:
       pkgs:
diff --git a/classes/cluster/sl-k8s-contrail/kubernetes/init.yml b/classes/cluster/sl-k8s-contrail/kubernetes/init.yml
index dbaa26e..ddf916f 100644
--- a/classes/cluster/sl-k8s-contrail/kubernetes/init.yml
+++ b/classes/cluster/sl-k8s-contrail/kubernetes/init.yml
@@ -19,7 +19,7 @@
     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
+    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.5-2
     kubernetes_netchecker_agent_image: quay.io/l23network/k8s-netchecker-agent:v1.0
     kubernetes_netchecker_server_image: quay.io/l23network/k8s-netchecker-server:v1.0
 
diff --git a/classes/cluster/sl-os-ovs/infra/init.yml b/classes/cluster/sl-os-ovs/infra/init.yml
index b774ff8..174d408 100644
--- a/classes/cluster/sl-os-ovs/infra/init.yml
+++ b/classes/cluster/sl-os-ovs/infra/init.yml
@@ -2,6 +2,7 @@
   _param:
     cluster_domain: sl-os-ovs.local
     cluster_name: sl-os-ovs
+    infra_config_hostname: cfg01
     infra_config_deploy_address: 192.168.10.90
     infra_config_address: 172.16.10.100
   linux:
@@ -10,8 +11,8 @@
         cfg01:
           address: ${_param:infra_config_address}
           names:
-          - cfg01
-          - cfg01.${_param:cluster_domain}
+          - ${_param:infra_config_hostname}
+          - ${_param:infra_config_hostname}.${_param:cluster_domain}
         cfg:
           address: ${_param:infra_config_address}
           names:
diff --git a/classes/cluster/virtual-mcp05-dvr/infra/init.yml b/classes/cluster/virtual-mcp05-dvr/infra/init.yml
index 9140bd0..b01723d 100644
--- a/classes/cluster/virtual-mcp05-dvr/infra/init.yml
+++ b/classes/cluster/virtual-mcp05-dvr/infra/init.yml
@@ -5,8 +5,8 @@
         cfg01:
           address: ${_param:infra_config_address}
           names:
-          - cfg01
-          - cfg01.${_param:cluster_domain}
+          - ${_param:infra_config_hostname}
+          - ${_param:infra_config_hostname}.${_param:cluster_domain}
         cfg:
           address: ${_param:infra_config_address}
           names:
diff --git a/classes/cluster/virtual-mcp05-dvr/init.yml b/classes/cluster/virtual-mcp05-dvr/init.yml
index 1af77a3..1fdd09c 100644
--- a/classes/cluster/virtual-mcp05-dvr/init.yml
+++ b/classes/cluster/virtual-mcp05-dvr/init.yml
@@ -14,6 +14,7 @@
     cluster_domain: virtual-mcp05-dvr.local
     cluster_name: virtual-mcp05-dvr
     # infra service addresses
+    infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
     # openstack service addresses
     openstack_database_address: 172.16.10.254
@@ -39,4 +40,4 @@
     stacklight_monitor_node02_address: 172.16.10.108
     stacklight_monitor_node03_address: 172.16.10.109
     stacklight_telemetry_address: ${_param:stacklight_monitor_address}
-    stacklight_log_address: ${_param:stacklight_monitor_address}
\ No newline at end of file
+    stacklight_log_address: ${_param:stacklight_monitor_address}
diff --git a/classes/cluster/virtual-mcp10-ovs/infra/init.yml b/classes/cluster/virtual-mcp10-ovs/infra/init.yml
index 9140bd0..b01723d 100644
--- a/classes/cluster/virtual-mcp10-ovs/infra/init.yml
+++ b/classes/cluster/virtual-mcp10-ovs/infra/init.yml
@@ -5,8 +5,8 @@
         cfg01:
           address: ${_param:infra_config_address}
           names:
-          - cfg01
-          - cfg01.${_param:cluster_domain}
+          - ${_param:infra_config_hostname}
+          - ${_param:infra_config_hostname}.${_param:cluster_domain}
         cfg:
           address: ${_param:infra_config_address}
           names:
diff --git a/classes/cluster/virtual-mcp10-ovs/init.yml b/classes/cluster/virtual-mcp10-ovs/init.yml
index af37ef4..518a42b 100644
--- a/classes/cluster/virtual-mcp10-ovs/init.yml
+++ b/classes/cluster/virtual-mcp10-ovs/init.yml
@@ -14,6 +14,7 @@
     cluster_domain: virtual-mcp10-ovs.local
     cluster_name: virtual-mcp10-ovs
     # infra service addresses
+    infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
     # openstack service addresses
     openstack_proxy_address: 172.16.10.121
diff --git a/classes/cluster/virtual-mcp11-aio/.env b/classes/cluster/virtual-mcp11-aio/.env
index 204dcdb..caca9ab 100644
--- a/classes/cluster/virtual-mcp11-aio/.env
+++ b/classes/cluster/virtual-mcp11-aio/.env
@@ -1,2 +1,2 @@
-FORMULAS_SALT_MASTER+=(java openssh ntp nginx collectd sensu heka sphinx mysql grafana libvirt rsyslog glusterfs postfix xtrabackup freeipa prometheus telegraf elasticsearch kibana rundeck devops-portal mysql libvirt rsyslog memcached rabbitmq apache keystone glance nova neutron cinder heat horizon ironic tftpd-hpa bind powerdns designate)
+FORMULAS_SALT_MASTER+=(java openssh ntp nginx collectd sensu heka sphinx mysql galera grafana libvirt rsyslog glusterfs postfix xtrabackup freeipa prometheus telegraf elasticsearch kibana rundeck devops-portal mysql libvirt rsyslog memcached rabbitmq apache keystone glance nova neutron cinder heat horizon ironic tftpd-hpa bind powerdns designate)
 formula_services+=(${formula_services[@]} ${FORMULAS_SALT_MASTER[@]})
diff --git a/classes/cluster/virtual-mcp11-aio/init.yml b/classes/cluster/virtual-mcp11-aio/init.yml
index b3fcc39..5e2071a 100755
--- a/classes/cluster/virtual-mcp11-aio/init.yml
+++ b/classes/cluster/virtual-mcp11-aio/init.yml
@@ -9,7 +9,6 @@
 - system.salt.minion.ca.salt_master
 - system.salt.minion.cert.proxy
 - system.reclass.storage.salt
-- service.mysql.server.single
 - system.mysql.client
 - system.memcached.server.single
 - system.rabbitmq.server.single
@@ -29,9 +28,10 @@
 
     mysql_admin_user: root
     mysql_admin_password: workshop
+    mysql_cluster_role: master
     rabbitmq_secret_key: workshop
     rabbitmq_admin_password: workshop
-    loopback_device_size: 10
+    loopback_device_size: 20
     salt_master_host: 192.168.10.90
     salt_master_base_environment: prd
     salt_minion_ca_host: ${linux:network:fqdn}
@@ -69,10 +69,6 @@
           proto: static
           address: ${_param:openstack_public_neutron_subnet_gateway}
           netmask: 255.255.255.0
-  mysql:
-    server:
-      version: '5.6'
-      max_connections: 20000
 # override on this level
   nova:
     compute:
@@ -86,6 +82,11 @@
         members:
         - host: ${_param:single_address}
           port: 11211
+  galera:
+    master:
+      members:
+      - host: ${_param:single_address}
+        port: 4567
   neutron:
     server:
       message_queue:
diff --git a/classes/cluster/virtual-mcp11-aio/openstack/init.yml b/classes/cluster/virtual-mcp11-aio/openstack/init.yml
index f8187d0..e54d94c 100755
--- a/classes/cluster/virtual-mcp11-aio/openstack/init.yml
+++ b/classes/cluster/virtual-mcp11-aio/openstack/init.yml
@@ -6,14 +6,13 @@
 - system.rabbitmq.server.vhost.openstack
 - system.keystone.server.wsgi
 - system.keystone.server.single
-- system.mysql.client.database.keystone
-- system.mysql.client.database.glance
-- system.mysql.client.database.nova
-- system.mysql.client.database.nova_api
-- system.mysql.client.database.cinder
-- system.mysql.client.database.heat
-- system.mysql.client.database.designate
-- system.mysql.client.database.designate_pool_manager
+- service.galera.master.cluster
+- system.galera.server.database.cinder
+- system.galera.server.database.designate
+- system.galera.server.database.glance
+- system.galera.server.database.heat
+- system.galera.server.database.keystone
+- system.galera.server.database.nova
 - system.keystone.client.single
 - system.keystone.client.service.nova21
 - system.keystone.client.service.nova-placement
@@ -41,6 +40,9 @@
     openstack_region: RegionOne
     admin_email: root@localhost
     rabbitmq_openstack_password: workshop
+    galera_server_cluster_name: openstack_cluster
+    galera_server_maintenance_password: workshop
+    galera_server_admin_password: workshop
     keystone_version: ${_param:openstack_version}
     glance_version: ${_param:openstack_version}
     nova_version: ${_param:openstack_version}
@@ -109,6 +111,13 @@
     openstack_public_neutron_subnet_cidr: 192.168.130.0/24
     openstack_public_neutron_subnet_allocation_start: 192.168.130.10
     openstack_public_neutron_subnet_allocation_end: 192.168.130.254
+  galera:
+    master:
+      members: ~
+      innodb_buffer_pool_size: 1024M
+      max_connections: 1000
+    slave:
+      enabled: false
   neutron:
     server:
       message_queue:
diff --git a/classes/cluster/virtual-mcp11-contrail-nfv/infra/init.yml b/classes/cluster/virtual-mcp11-contrail-nfv/infra/init.yml
index 9140bd0..b01723d 100755
--- a/classes/cluster/virtual-mcp11-contrail-nfv/infra/init.yml
+++ b/classes/cluster/virtual-mcp11-contrail-nfv/infra/init.yml
@@ -5,8 +5,8 @@
         cfg01:
           address: ${_param:infra_config_address}
           names:
-          - cfg01
-          - cfg01.${_param:cluster_domain}
+          - ${_param:infra_config_hostname}
+          - ${_param:infra_config_hostname}.${_param:cluster_domain}
         cfg:
           address: ${_param:infra_config_address}
           names:
diff --git a/classes/cluster/virtual-mcp11-contrail-nfv/init.yml b/classes/cluster/virtual-mcp11-contrail-nfv/init.yml
index 9b0ff88..fc97787 100755
--- a/classes/cluster/virtual-mcp11-contrail-nfv/init.yml
+++ b/classes/cluster/virtual-mcp11-contrail-nfv/init.yml
@@ -14,7 +14,7 @@
   _param:
     cluster_domain: virtual-mcp11-contrail-nfv.local
     cluster_name: virtual-mcp11-contrail-nfv
-
+    infra_config_hostname: cfg01
     # infra service addresses
     infra_config_address: 172.16.10.100
 
diff --git a/classes/cluster/virtual-mcp11-dvr/infra/config.yml b/classes/cluster/virtual-mcp11-dvr/infra/config.yml
index 3d6f018..ad68abd 100644
--- a/classes/cluster/virtual-mcp11-dvr/infra/config.yml
+++ b/classes/cluster/virtual-mcp11-dvr/infra/config.yml
@@ -32,8 +32,8 @@
     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.90
-    single_address: 172.16.10.100
+    reclass_config_master: ${_param:infra_config_deploy_address}
+    single_address: ${_param:infra_config_address}
     salt_master_host: 127.0.0.1
     salt_master_base_environment: prd
     salt_minion_ca_host: ${linux:network:fqdn}
@@ -51,7 +51,7 @@
       site:
         nginx_proxy_openstack_web:
           proxy:
-            host: prx
+            host: ${_param:openstack_proxy_address}
         nginx_proxy_openstack_api_heat_cfn:
           enabled: false
   salt:
@@ -167,12 +167,10 @@
           - system.influxdb.database.stacklight
         openstack_compute_node01:
           params:
-            single_address: 172.16.10.105
             tenant_address: 10.1.0.105
             external_address: 10.16.0.105
         openstack_compute_node02:
           params:
-            single_address: 172.16.10.106
             tenant_address: 10.1.0.106
             external_address: 10.16.0.106
         openstack_gateway_node01:
diff --git a/classes/cluster/virtual-mcp11-dvr/infra/init.yml b/classes/cluster/virtual-mcp11-dvr/infra/init.yml
index ffec889..4d4e4e8 100644
--- a/classes/cluster/virtual-mcp11-dvr/infra/init.yml
+++ b/classes/cluster/virtual-mcp11-dvr/infra/init.yml
@@ -3,7 +3,8 @@
     cluster_domain: virtual-mcp11-dvr.local
     cluster_name: virtual-mcp11-dvr
     infra_config_hostname: cfg01
-    infra_config_address: 172.16.10.100
+    infra_config_deploy_address: 192.168.10.90
+    infra_config_address: 172.16.10.90
   linux:
     network:
       host:
diff --git a/classes/cluster/virtual-mcp11-dvr/openstack/init.yml b/classes/cluster/virtual-mcp11-dvr/openstack/init.yml
index c08241d..d19da8f 100644
--- a/classes/cluster/virtual-mcp11-dvr/openstack/init.yml
+++ b/classes/cluster/virtual-mcp11-dvr/openstack/init.yml
@@ -1,11 +1,25 @@
 parameters:
   _param:
-    openstack_proxy_address: 172.16.10.121
+    openstack_proxy_hostname: prx
+    openstack_proxy_address: ${_param:openstack_proxy_node01_address}
+    openstack_proxy_node01_hostname: prx01
     openstack_proxy_node01_address: 172.16.10.121
+    openstack_control_hostname: ctl
+    openstack_control_node01_hostname: ctl01
+    openstack_control_node02_hostname: ctl02
+    openstack_control_node03_hostname: ctl03
     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_control_node01_address: 172.16.10.91
+    openstack_control_node02_address: 172.16.10.92
+    openstack_control_node03_address: 172.16.10.93
+    openstack_gateway_hostname: gtw
+    openstack_gateway_address: ${_param:openstack_gateway_node01_address}
+    openstack_gateway_node01_hostname: gtw01
+    openstack_gateway_node01_address: 172.16.10.94
+    openstack_compute_node01_hostname: cmp01
+    openstack_compute_node02_hostname: cmp02
+    openstack_compute_node01_address: 172.16.10.95
+    openstack_compute_node02_address: 172.16.10.96
     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}
@@ -14,8 +28,7 @@
     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_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
@@ -37,7 +50,7 @@
     galera_server_cluster_name: openstack_cluster
     galera_server_maintenance_password: workshop
     galera_server_admin_password: workshop
-    cluster_vip_address: 172.16.10.254
+    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}
@@ -110,48 +123,53 @@
         prx:
           address: ${_param:openstack_proxy_address}
           names:
-          - prx
-          - prx.${_param:cluster_domain}
+          - ${_param:openstack_proxy_hostname}
+          - ${_param:openstack_proxy_hostname}.${_param:cluster_domain}
         prx01:
           address: ${_param:openstack_proxy_node01_address}
           names:
-          - prx01
-          - prx01.${_param:cluster_domain}
+          - ${_param:openstack_proxy_node01_hostname}
+          - ${_param:openstack_proxy_node01_hostname}.${_param:cluster_domain}
         ctl:
           address: ${_param:openstack_control_address}
           names:
-          - ctl
-          - ctl.${_param:cluster_domain}
+          - ${_param:openstack_control_hostname}
+          - ${_param:openstack_control_hostname}.${_param:cluster_domain}
         ctl01:
           address: ${_param:openstack_control_node01_address}
           names:
-          - ctl01
-          - ctl01.${_param:cluster_domain}
+          - ${_param:openstack_control_node01_hostname}
+          - ${_param:openstack_control_node01_hostname}.${_param:cluster_domain}
         ctl02:
           address: ${_param:openstack_control_node02_address}
           names:
-          - ctl02
-          - ctl02.${_param:cluster_domain}
+          - ${_param:openstack_control_node02_hostname}
+          - ${_param:openstack_control_node02_hostname}.${_param:cluster_domain}
         ctl03:
           address: ${_param:openstack_control_node03_address}
           names:
-          - ctl03
-          - ctl03.${_param:cluster_domain}
+          - ${_param:openstack_control_node03_hostname}
+          - ${_param:openstack_control_node03_hostname}.${_param:cluster_domain}
+        gtw:
+          address: ${_param:openstack_gateway_address}
+          names:
+          - ${_param:openstack_gateway_hostname}
+          - ${_param:openstack_gateway_hostname}.${_param:cluster_domain}
         gtw01:
           address: ${_param:openstack_gateway_address}
           names:
-          - gtw01
-          - gtw01.${_param:cluster_domain}
+          - ${_param:openstack_gateway_hostname}
+          - ${_param:openstack_gateway_hostname}.${_param:cluster_domain}
         cmp01:
-          address: 172.16.10.105
+          address: ${_param:openstack_control_node01_address}
           names:
-          - cmp01
-          - cmp01.${_param:cluster_domain}
+          - ${_param:openstack_compute_node01_hostname}
+          - ${_param:openstack_compute_node01_hostname}.${_param:cluster_domain}
         cmp02:
-          address: 172.16.10.106
+          address: ${_param:openstack_control_node02_address}
           names:
-          - cmp02
-          - cmp02.${_param:cluster_domain}
+          - ${_param:openstack_compute_node02_hostname}
+          - ${_param:openstack_compute_node02_hostname}.${_param:cluster_domain}
     system:
       user:
         root:
diff --git a/classes/cluster/virtual-mcp11-dvr/stacklight/init.yml b/classes/cluster/virtual-mcp11-dvr/stacklight/init.yml
index f30d6e4..3c05ce8 100644
--- a/classes/cluster/virtual-mcp11-dvr/stacklight/init.yml
+++ b/classes/cluster/virtual-mcp11-dvr/stacklight/init.yml
@@ -1,5 +1,9 @@
 parameters:
   _param:
+    stacklight_monitor_hostname: ctl
+    stacklight_monitor_node01_hostname: mon01
+    stacklight_monitor_node02_hostname: mon02
+    stacklight_monitor_node03_hostname: mon03
     stacklight_monitor_address: 172.16.10.253
     stacklight_monitor_node01_address: 172.16.10.107
     stacklight_monitor_node02_address: 172.16.10.108
@@ -22,20 +26,20 @@
         mon:
           address: ${_param:stacklight_monitor_address}
           names:
-          - mon
-          - mon.${_param:cluster_domain}
+          - ${_param:stacklight_monitor_hostname}
+          - ${_param:stacklight_monitor_hostname}.${_param:cluster_domain}
         mon01:
           address: ${_param:stacklight_monitor_node01_address}
           names:
-          - mon01
-          - mon01.${_param:cluster_domain}
+          - ${_param:stacklight_monitor_node01_hostname}
+          - ${_param:stacklight_monitor_node01_hostname}.${_param:cluster_domain}
         mon02:
           address: ${_param:stacklight_monitor_node02_address}
           names:
-          - mon02
-          - mon02.${_param:cluster_domain}
+          - ${_param:stacklight_monitor_node02_hostname}
+          - ${_param:stacklight_monitor_node02_hostname}.${_param:cluster_domain}
         mon03:
           address: ${_param:stacklight_monitor_node03_address}
           names:
-          - mon03
-          - mon03.${_param:cluster_domain}
+          - ${_param:stacklight_monitor_node03_hostname}
+          - ${_param:stacklight_monitor_node03_hostname}.${_param:cluster_domain}
diff --git a/classes/cluster/virtual-mcp11-k8s-calico-dyn/kubernetes/init.yml b/classes/cluster/virtual-mcp11-k8s-calico-dyn/kubernetes/init.yml
index 1fc1792..c56e03d 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico-dyn/kubernetes/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico-dyn/kubernetes/init.yml
@@ -23,7 +23,7 @@
     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_calico_policy_image: calico/kube-policy-controller:v0.5.4
-    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.3-1
+    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.5-2
     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"
diff --git a/classes/cluster/virtual-mcp11-k8s-calico-minimal/kubernetes/init.yml b/classes/cluster/virtual-mcp11-k8s-calico-minimal/kubernetes/init.yml
index baadc33..5e8cd5a 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico-minimal/kubernetes/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico-minimal/kubernetes/init.yml
@@ -22,7 +22,7 @@
     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
+    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.5-2
     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"
diff --git a/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/init.yml b/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/init.yml
index 4475f2d..2a75741 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico/kubernetes/init.yml
@@ -23,7 +23,7 @@
     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_calico_policy_image: calico/kube-policy-controller:v0.5.4
-    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.3-1
+    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.5-2
     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"
diff --git a/classes/cluster/virtual-mcp11-k8s-contrail/kubernetes/init.yml b/classes/cluster/virtual-mcp11-k8s-contrail/kubernetes/init.yml
index 2de4804..8268e6d 100644
--- a/classes/cluster/virtual-mcp11-k8s-contrail/kubernetes/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-contrail/kubernetes/init.yml
@@ -25,7 +25,7 @@
     kubernetes_calico_policy_image: calico/kube-policy-controller:v0.5.4
     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_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.5-2
     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
diff --git a/classes/cluster/virtual-mcp11-ovs-ironic/infra/init.yml b/classes/cluster/virtual-mcp11-ovs-ironic/infra/init.yml
index 01a9a5d..96d212b 100644
--- a/classes/cluster/virtual-mcp11-ovs-ironic/infra/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs-ironic/infra/init.yml
@@ -8,8 +8,8 @@
         cfg01:
           address: ${_param:infra_config_address}
           names:
-          - cfg01
-          - cfg01.${_param:cluster_domain}
+          - ${_param:infra_config_hostname}
+          - ${_param:infra_config_hostname}.${_param:cluster_domain}
         cfg:
           address: ${_param:infra_config_address}
           names:
diff --git a/classes/cluster/virtual-mcp11-ovs-ironic/init.yml b/classes/cluster/virtual-mcp11-ovs-ironic/init.yml
index a9ccc70..8bc1323 100644
--- a/classes/cluster/virtual-mcp11-ovs-ironic/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs-ironic/init.yml
@@ -15,6 +15,7 @@
     cluster_domain: virtual-mcp11-ovs-ironic.local
     cluster_name: virtual-mcp11-ovs-ironic
     # infra service addresses
+    infra_config_hostname: cfg01
     infra_config_address: 172.16.10.90
     # openstack service addresses
     openstack_proxy_address: 172.16.10.121
diff --git a/classes/cluster/virtual-mcp11-ovs/infra/config.yml b/classes/cluster/virtual-mcp11-ovs/infra/config.yml
index b0b20c8..237db95 100644
--- a/classes/cluster/virtual-mcp11-ovs/infra/config.yml
+++ b/classes/cluster/virtual-mcp11-ovs/infra/config.yml
@@ -30,8 +30,8 @@
     reclass_data_revision: master
     salt_master_environment_repository: "https://github.com/tcpcloud"
     salt_master_environment_revision: master
-    reclass_config_master: 192.168.10.90
-    single_address: 172.16.10.100
+    reclass_config_master: ${_param:infra_config_deploy_address}
+    single_address: ${_param:infra_config_address}
     salt_master_host: 127.0.0.1
     salt_master_base_environment: prd
     salt_minion_ca_host: ${linux:network:fqdn}
@@ -50,7 +50,7 @@
       site:
         nginx_proxy_openstack_web:
           proxy:
-            host: prx
+            host: ${_param:openstack_proxy_address}
         nginx_proxy_openstack_api_heat_cfn:
           enabled: false
   salt:
@@ -166,12 +166,10 @@
           - system.influxdb.database.stacklight
         openstack_compute_node01:
           params:
-            single_address: 172.16.10.105
             tenant_address: 10.1.0.105
             external_address: 10.16.0.105
         openstack_compute_node02:
           params:
-            single_address: 172.16.10.106
             tenant_address: 10.1.0.106
             external_address: 10.16.0.106
         openstack_gateway_node01:
diff --git a/classes/cluster/virtual-mcp11-ovs/infra/init.yml b/classes/cluster/virtual-mcp11-ovs/infra/init.yml
index be51f48..1162e75 100644
--- a/classes/cluster/virtual-mcp11-ovs/infra/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs/infra/init.yml
@@ -2,15 +2,17 @@
   _param:
     cluster_domain: virtual-mcp11-ovs.local
     cluster_name: virtual-mcp11-ovs
-    infra_config_address: 172.16.10.100
+    infra_config_hostname: cfg01
+    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}
+          - ${_param:infra_config_hostname}
+          - ${_param:infra_config_hostname}.${_param:cluster_domain}
         cfg:
           address: ${_param:infra_config_address}
           names:
diff --git a/classes/cluster/virtual-mcp11-ovs/openstack/init.yml b/classes/cluster/virtual-mcp11-ovs/openstack/init.yml
index f78b91c..05b9094 100644
--- a/classes/cluster/virtual-mcp11-ovs/openstack/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs/openstack/init.yml
@@ -1,18 +1,31 @@
 parameters:
   _param:
-    openstack_proxy_address: 172.16.10.121
+    openstack_proxy_hostname: prx
+    openstack_proxy_address: ${_param:openstack_proxy_node01_address}
+    openstack_proxy_node01_hostname: prx01
     openstack_proxy_node01_address: 172.16.10.121
+    openstack_control_hostname: ctl
+    openstack_control_node01_hostname: ctl01
+    openstack_control_node02_hostname: ctl02
+    openstack_control_node03_hostname: ctl03
     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_control_node01_address: 172.16.10.91
+    openstack_control_node02_address: 172.16.10.92
+    openstack_control_node03_address: 172.16.10.93
+    openstack_gateway_hostname: gtw
+    openstack_gateway_address: ${_param:openstack_gateway_node01_address}
+    openstack_gateway_node01_hostname: gtw01
+    openstack_gateway_node01_address: 172.16.10.94
+    openstack_compute_node01_hostname: cmp01
+    openstack_compute_node02_hostname: cmp02
+    openstack_compute_node01_address: 172.16.10.95
+    openstack_compute_node02_address: 172.16.10.96
     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
@@ -34,14 +47,14 @@
     galera_server_cluster_name: openstack_cluster
     galera_server_maintenance_password: workshop
     galera_server_admin_password: workshop
-    cluster_vip_address: 172.16.10.254
+    cluster_vip_address: ${_param:openstack_control_address}
     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
@@ -104,48 +117,53 @@
         prx:
           address: ${_param:openstack_proxy_address}
           names:
-          - prx
-          - prx.${_param:cluster_domain}
+          - ${_param:openstack_proxy_hostname}
+          - ${_param:openstack_proxy_hostname}.${_param:cluster_domain}
         prx01:
           address: ${_param:openstack_proxy_node01_address}
           names:
-          - prx01
-          - prx01.${_param:cluster_domain}
+          - ${_param:openstack_proxy_node01_hostname}
+          - ${_param:openstack_proxy_node01_hostname}.${_param:cluster_domain}
         ctl:
           address: ${_param:openstack_control_address}
           names:
-          - ctl
-          - ctl.${_param:cluster_domain}
+          - ${_param:openstack_control_hostname}
+          - ${_param:openstack_control_hostname}.${_param:cluster_domain}
         ctl01:
           address: ${_param:openstack_control_node01_address}
           names:
-          - ctl01
-          - ctl01.${_param:cluster_domain}
+          - ${_param:openstack_control_node01_hostname}
+          - ${_param:openstack_control_node01_hostname}.${_param:cluster_domain}
         ctl02:
           address: ${_param:openstack_control_node02_address}
           names:
-          - ctl02
-          - ctl02.${_param:cluster_domain}
+          - ${_param:openstack_control_node02_hostname}
+          - ${_param:openstack_control_node02_hostname}.${_param:cluster_domain}
         ctl03:
           address: ${_param:openstack_control_node03_address}
           names:
-          - ctl03
-          - ctl03.${_param:cluster_domain}
+          - ${_param:openstack_control_node03_hostname}
+          - ${_param:openstack_control_node03_hostname}.${_param:cluster_domain}
+        gtw:
+          address: ${_param:openstack_gateway_address}
+          names:
+          - ${_param:openstack_gateway_hostname}
+          - ${_param:openstack_gateway_hostname}.${_param:cluster_domain}
         gtw01:
           address: ${_param:openstack_gateway_address}
           names:
-          - gtw01
-          - gtw01.${_param:cluster_domain}
+          - ${_param:openstack_gateway_hostname}
+          - ${_param:openstack_gateway_hostname}.${_param:cluster_domain}
         cmp01:
-          address: 172.16.10.105
+          address: ${_param:openstack_control_node01_address}
           names:
-          - cmp01
-          - cmp01.${_param:cluster_domain}
+          - ${_param:openstack_compute_node01_hostname}
+          - ${_param:openstack_compute_node01_hostname}.${_param:cluster_domain}
         cmp02:
-          address: 172.16.10.106
+          address: ${_param:openstack_control_node02_address}
           names:
-          - cmp02
-          - cmp02.${_param:cluster_domain}
+          - ${_param:openstack_compute_node02_hostname}
+          - ${_param:openstack_compute_node02_hostname}.${_param:cluster_domain}
     system:
       user:
         root:
diff --git a/classes/cluster/virtual-mcp11-ovs/stacklight/init.yml b/classes/cluster/virtual-mcp11-ovs/stacklight/init.yml
index 09481dc..44287a6 100644
--- a/classes/cluster/virtual-mcp11-ovs/stacklight/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs/stacklight/init.yml
@@ -1,5 +1,9 @@
 parameters:
   _param:
+    stacklight_monitor_hostname: ctl
+    stacklight_monitor_node01_hostname: mon01
+    stacklight_monitor_node02_hostname: mon02
+    stacklight_monitor_node03_hostname: mon03
     stacklight_monitor_address: 172.16.10.253
     stacklight_monitor_node01_address: 172.16.10.107
     stacklight_monitor_node02_address: 172.16.10.108
@@ -36,20 +40,20 @@
         mon:
           address: ${_param:stacklight_monitor_address}
           names:
-          - mon
-          - mon.${_param:cluster_domain}
+          - ${_param:stacklight_monitor_hostname}
+          - ${_param:stacklight_monitor_hostname}.${_param:cluster_domain}
         mon01:
           address: ${_param:stacklight_monitor_node01_address}
           names:
-          - mon01
-          - mon01.${_param:cluster_domain}
+          - ${_param:stacklight_monitor_node01_hostname}
+          - ${_param:stacklight_monitor_node01_hostname}.${_param:cluster_domain}
         mon02:
           address: ${_param:stacklight_monitor_node02_address}
           names:
-          - mon02
-          - mon02.${_param:cluster_domain}
+          - ${_param:stacklight_monitor_node02_hostname}
+          - ${_param:stacklight_monitor_node02_hostname}.${_param:cluster_domain}
         mon03:
           address: ${_param:stacklight_monitor_node03_address}
           names:
-          - mon03
-          - mon03.${_param:cluster_domain}
+          - ${_param:stacklight_monitor_node03_hostname}
+          - ${_param:stacklight_monitor_node03_hostname}.${_param:cluster_domain}