Merge "Bump k8s version from 1.7.3 to 1.7.5."
diff --git a/classes/cluster/aaa-ha-freeipa/infra/config.yml b/classes/cluster/aaa-ha-freeipa/infra/config.yml
index e69242a..bd29e36 100644
--- a/classes/cluster/aaa-ha-freeipa/infra/config.yml
+++ b/classes/cluster/aaa-ha-freeipa/infra/config.yml
@@ -2,7 +2,7 @@
 - system.linux.system.repo.ubuntu
 - system.openssh.client.lab
 - system.salt.master.single
-- system.salt.master.pkg
+- system.salt.master.git
 - system.salt.minion.ca.salt_master
 - system.salt.master.api
 - system.mysql.client
@@ -13,7 +13,7 @@
 - cluster.aaa-ha-freeipa
 parameters:
   _param:
-    salt_master_base_environment: prd
+    salt_master_base_environment: dev
     reclass_data_repository: "https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab.git"
     reclass_data_revision: master
     reclass_config_master: ${_param:infra_config_deploy_address}
@@ -22,10 +22,25 @@
     salt_api_password_hash: "$6$WV0P1shnoDh2gI/Z$22/Bcd7ffMv0jDlFpT63cAU4PiXHz9pjXwngToKwqAsgoeK4HNR3PiKaushjxp3JsQ8hNoJmAC6TxzVqfV8WH/"
     salt_master_host: 127.0.0.1
   salt:
+    #minion:
+    #  source:
+    #    engine: none
     master:
+      #source:
+      #  # TEMP: avoid to install salt packages (as we preinstall development version)
+      #  engine: none
       reactor:
         reclass/minion/classify:
         - salt://reclass/reactor/node_register.sls
+      environment:
+        dev:
+          formula:
+            salt:
+              #source: pkg
+              #name: salt-formula-salt
+              source: git
+              address: 'https://github.com/epcim/salt-formula-salt.git'
+              revision: 'review/petr_michalec/allow-multiple-ext-pillars-and-reclass-options'
 
   reclass:
     storage:
@@ -34,7 +49,7 @@
           expression: all
           node_param:
             single_address:
-              value_template: <<node_ip>>
+              value_template: <<node_control_ip>>
             linux_system_codename:
               value_template: <<node_os>>
             salt_master_host:
@@ -43,14 +58,14 @@
           expression: <<node_hostname>>__startswith__cfg
           cluster_param:
             infra_config_address:
-              value_template: <<node_ip>>
+              value_template: <<node_control_ip>>
             infra_config_deploy_address:
-              value_template: <<node_ip>>
+              value_template: <<node_deploy_ip>>
         identity_control01:
           expression: <<node_hostname>>__equals__idm01
           cluster_param:
             identity_control_node01_address:
-              value_template: <<node_ip>>
+              value_template: <<node_control_ip>>
           node_class:
             value_template:
               #- system.linux.system.repo.saltstack.rhel7
@@ -59,7 +74,7 @@
           expression: <<node_hostname>>__equals__idm02
           cluster_param:
             identity_control_node02_address:
-              value_template: <<node_ip>>
+              value_template: <<node_control_ip>>
           node_class:
             value_template:
               #- system.linux.system.repo.saltstack.rhel7
@@ -68,7 +83,7 @@
           expression: <<node_hostname>>__equals__idm03
           cluster_param:
             identity_control_node03_address:
-              value_template: <<node_ip>>
+              value_template: <<node_control_ip>>
           node_class:
             value_template:
               #- system.linux.system.repo.saltstack.rhel7
diff --git a/classes/cluster/drivetrain-ha-clusters/cicd/control/init.yml b/classes/cluster/drivetrain-ha-clusters/cicd/control/init.yml
index 0122cf9..2ce0ac6 100644
--- a/classes/cluster/drivetrain-ha-clusters/cicd/control/init.yml
+++ b/classes/cluster/drivetrain-ha-clusters/cicd/control/init.yml
@@ -49,6 +49,7 @@
   - system.docker.swarm.stack.security_monkey
   # Docker networks
   - system.docker.swarm.network.runbook
+  - system.docker.swarm.network.oss_backend
 
   # Aptly
   # We need aptly-publisher.yml on each node for our Jenkins slaves in docker
diff --git a/classes/cluster/drivetrain-ha-clusters/cicd/init.yml b/classes/cluster/drivetrain-ha-clusters/cicd/init.yml
index 053a652..9d81f5d 100644
--- a/classes/cluster/drivetrain-ha-clusters/cicd/init.yml
+++ b/classes/cluster/drivetrain-ha-clusters/cicd/init.yml
@@ -3,11 +3,11 @@
     cicd_control_hostname: cid
     cicd_control_address: 172.16.10.252
     cicd_control_node01_hostname: cid01
-    cicd_control_node01_address: 172.16.10.11
+    cicd_control_node01_address: 172.16.10.90
     cicd_control_node02_hostname: cid02
-    cicd_control_node02_address: 172.16.10.12
+    cicd_control_node02_address: 172.16.10.91
     cicd_control_node03_hostname: cid03
-    cicd_control_node03_address: 172.16.10.13
+    cicd_control_node03_address: 172.16.10.92
 
     # CI/CD control infrastructure
     control_node01_address: ${_param:cicd_control_node01_address}
diff --git a/classes/cluster/drivetrain-ha/cicd/control/init.yml b/classes/cluster/drivetrain-ha/cicd/control/init.yml
index 9c87f6e..52b6079 100644
--- a/classes/cluster/drivetrain-ha/cicd/control/init.yml
+++ b/classes/cluster/drivetrain-ha/cicd/control/init.yml
@@ -49,6 +49,7 @@
   - system.docker.swarm.stack.security_monkey
   # Docker networks
   - system.docker.swarm.network.runbook
+  - system.docker.swarm.network.oss_backend
 
   # Aptly
   # We need aptly-publisher.yml on each node for our Jenkins slaves in docker
diff --git a/classes/cluster/drivetrain-ha/cicd/init.yml b/classes/cluster/drivetrain-ha/cicd/init.yml
index 9b736f2..b8f307d 100644
--- a/classes/cluster/drivetrain-ha/cicd/init.yml
+++ b/classes/cluster/drivetrain-ha/cicd/init.yml
@@ -6,9 +6,9 @@
     cicd_control_node01_hostname: cid01
     cicd_control_node02_hostname: cid02
     cicd_control_node03_hostname: cid03
-    cicd_control_node01_address: 172.16.10.11
-    cicd_control_node02_address: 172.16.10.12
-    cicd_control_node03_address: 172.16.10.13
+    cicd_control_node01_address: 172.16.10.90
+    cicd_control_node02_address: 172.16.10.91
+    cicd_control_node03_address: 172.16.10.92
 
     # CI/CD control infrastructure
     control_node01_address: ${_param:cicd_control_node01_address}
diff --git a/classes/cluster/model-manager/infra/init.yml b/classes/cluster/model-manager/infra/init.yml
index 6b24a1d..2eb79d1 100644
--- a/classes/cluster/model-manager/infra/init.yml
+++ b/classes/cluster/model-manager/infra/init.yml
@@ -2,6 +2,7 @@
   _param:
     cluster_domain: model-manager.local
     cluster_name: model-manager
+    infra_config_hostname: cfg01
     infra_config_deploy_address: 192.168.10.90
     infra_config_address: 172.16.10.100
     cluster_public_host: mm.mcp.mirantis.net
@@ -11,8 +12,8 @@
         cfg01:
           address: ${_param:infra_config_address}
           names:
-          - cfg01
-          - cfg01.${_param:cluster_domain}
+          - ${_param:infra_config_hostname}
+          - ${_param:infra_config_hostname}.${_param:cluster_domain}
           - mm.mcp.mirantis.net
         cfg:
           address: ${_param:infra_config_address}
diff --git a/classes/cluster/os-aio-ovs/infra/init.yml b/classes/cluster/os-aio-ovs/infra/init.yml
index d5609e1..32d7bcd 100644
--- a/classes/cluster/os-aio-ovs/infra/init.yml
+++ b/classes/cluster/os-aio-ovs/infra/init.yml
@@ -2,6 +2,7 @@
   _param:
     cluster_domain: os-aio-ovs.local
     cluster_name: os-aio-ovs
+    infra_config_hostname: cfg01
     infra_config_deploy_address: 192.168.10.90
     infra_config_address: 172.16.10.90
   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/os-ha-ovs-syndic/infra/init.yml b/classes/cluster/os-ha-ovs-syndic/infra/init.yml
index b3dd013..61d2374 100644
--- a/classes/cluster/os-ha-ovs-syndic/infra/init.yml
+++ b/classes/cluster/os-ha-ovs-syndic/infra/init.yml
@@ -3,6 +3,7 @@
     cluster_domain: os-ha-ovs-syndic.local
     cluster_name: os-ha-ovs-syndic
     infra_config_deploy_address: 192.168.10.90
+    infra_config_hostname: cfg01
     infra_config_address: 172.16.10.90
     salt_syndic_master_address: 192.168.10.90
   linux:
@@ -11,8 +12,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/os-ha-ovs/infra/init.yml b/classes/cluster/os-ha-ovs/infra/init.yml
index b8555b0..bd30391 100644
--- a/classes/cluster/os-ha-ovs/infra/init.yml
+++ b/classes/cluster/os-ha-ovs/infra/init.yml
@@ -2,6 +2,7 @@
   _param:
     cluster_domain: os-ha-ovs.local
     cluster_name: os-ha-ovs
+    infra_config_hostname: cfg01
     infra_config_deploy_address: 192.168.10.90
     infra_config_address: 172.16.10.90
   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/sl-k8s-calico/stacklight/client.yml b/classes/cluster/sl-k8s-calico/stacklight/client.yml
index dbad497..a78a537 100644
--- a/classes/cluster/sl-k8s-calico/stacklight/client.yml
+++ b/classes/cluster/sl-k8s-calico/stacklight/client.yml
@@ -17,4 +17,4 @@
     grafana_user: admin
     grafana_password: ${_param:grafana_admin_password}
     grafana_prometheus_address: ${_param:stacklight_monitor_address}
-    grafana_prometheus_port: 15010
+    grafana_prometheus_port: 15016
diff --git a/classes/cluster/sl-k8s-calico/stacklight/server.yml b/classes/cluster/sl-k8s-calico/stacklight/server.yml
index 62ece59..4a1df78 100644
--- a/classes/cluster/sl-k8s-calico/stacklight/server.yml
+++ b/classes/cluster/sl-k8s-calico/stacklight/server.yml
@@ -36,6 +36,7 @@
     docker_image_prometheus: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus:latest
     docker_image_remote_agent: docker-prod-virtual.docker.mirantis.net/openstack-docker/telegraf:latest
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
+    docker_image_prometheus_relay: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus_relay:latest
     docker_image_grafana: grafana/grafana:4.3.2
     docker_influxdb_image: influxdb:1.2
     grafana_admin_password: admin
diff --git a/classes/cluster/sl-k8s-contrail/stacklight/client.yml b/classes/cluster/sl-k8s-contrail/stacklight/client.yml
index 04f6315..50b378f 100644
--- a/classes/cluster/sl-k8s-contrail/stacklight/client.yml
+++ b/classes/cluster/sl-k8s-contrail/stacklight/client.yml
@@ -17,4 +17,4 @@
     grafana_user: admin
     grafana_password: ${_param:grafana_admin_password}
     grafana_prometheus_address: ${_param:stacklight_monitor_address}
-    grafana_prometheus_port: 15010
+    grafana_prometheus_port: 15016
diff --git a/classes/cluster/sl-k8s-contrail/stacklight/server.yml b/classes/cluster/sl-k8s-contrail/stacklight/server.yml
index 9369ef5..c33daf9 100644
--- a/classes/cluster/sl-k8s-contrail/stacklight/server.yml
+++ b/classes/cluster/sl-k8s-contrail/stacklight/server.yml
@@ -36,6 +36,7 @@
     docker_image_prometheus: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus:latest
     docker_image_remote_agent: docker-prod-virtual.docker.mirantis.net/openstack-docker/telegraf:latest
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
+    docker_image_prometheus_relay: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus_relay:latest
     docker_image_grafana: grafana/grafana:4.3.2
     grafana_admin_password: admin
     keepalived_prometheus_vip_address: ${_param:cluster_vip_address}
diff --git a/classes/cluster/sl-os-contrail/stacklight/client.yml b/classes/cluster/sl-os-contrail/stacklight/client.yml
index 676113e..4f6323a 100755
--- a/classes/cluster/sl-os-contrail/stacklight/client.yml
+++ b/classes/cluster/sl-os-contrail/stacklight/client.yml
@@ -16,4 +16,4 @@
     grafana_user: admin
     grafana_password: ${_param:grafana_admin_password}
     grafana_prometheus_address: ${_param:stacklight_monitor_address}
-    grafana_prometheus_port: 15010
+    grafana_prometheus_port: 15016
diff --git a/classes/cluster/sl-os-contrail/stacklight/server.yml b/classes/cluster/sl-os-contrail/stacklight/server.yml
index 224f36e..e22bd8e 100755
--- a/classes/cluster/sl-os-contrail/stacklight/server.yml
+++ b/classes/cluster/sl-os-contrail/stacklight/server.yml
@@ -49,6 +49,7 @@
     docker_image_remote_agent: docker-prod-virtual.docker.mirantis.net/openstack-docker/telegraf:latest
     docker_image_remote_collector: docker-prod-virtual.docker.mirantis.net/openstack-docker/heka:latest
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
+    docker_image_prometheus_relay: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus_relay:latest
     docker_image_grafana: grafana/grafana:4.3.2
     grafana_admin_password: admin
     grafana_database_type: mysql
diff --git a/classes/cluster/sl-os-ovs/stacklight/client.yml b/classes/cluster/sl-os-ovs/stacklight/client.yml
index ddc2f9f..fde267a 100644
--- a/classes/cluster/sl-os-ovs/stacklight/client.yml
+++ b/classes/cluster/sl-os-ovs/stacklight/client.yml
@@ -16,4 +16,4 @@
     grafana_user: admin
     grafana_password: ${_param:grafana_admin_password}
     grafana_prometheus_address: ${_param:stacklight_monitor_address}
-    grafana_prometheus_port: 15010
+    grafana_prometheus_port: 15016
diff --git a/classes/cluster/sl-os-ovs/stacklight/server.yml b/classes/cluster/sl-os-ovs/stacklight/server.yml
index 4f11370..66990bc 100644
--- a/classes/cluster/sl-os-ovs/stacklight/server.yml
+++ b/classes/cluster/sl-os-ovs/stacklight/server.yml
@@ -52,6 +52,7 @@
     docker_image_remote_agent: docker-prod-virtual.docker.mirantis.net/openstack-docker/telegraf:latest
     docker_image_remote_collector: docker-prod-virtual.docker.mirantis.net/openstack-docker/heka:latest
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
+    docker_image_prometheus_relay: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus_relay:latest
     docker_image_grafana: grafana/grafana:4.3.2
     grafana_admin_password: admin
     grafana_database_type: mysql
diff --git a/classes/cluster/virtual-mcp-ocata-cicd/stacklight/client.yml b/classes/cluster/virtual-mcp-ocata-cicd/stacklight/client.yml
index fae8c6a..4e0f1f3 100644
--- a/classes/cluster/virtual-mcp-ocata-cicd/stacklight/client.yml
+++ b/classes/cluster/virtual-mcp-ocata-cicd/stacklight/client.yml
@@ -15,4 +15,4 @@
     grafana_user: admin
     grafana_password: ${_param:grafana_admin_password}
     grafana_prometheus_address: ${_param:stacklight_monitor_address}
-    grafana_prometheus_port: 15010
+    grafana_prometheus_port: 15016
diff --git a/classes/cluster/virtual-mcp-ocata-cicd/stacklight/server.yml b/classes/cluster/virtual-mcp-ocata-cicd/stacklight/server.yml
index 3939b24..49a68af 100644
--- a/classes/cluster/virtual-mcp-ocata-cicd/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp-ocata-cicd/stacklight/server.yml
@@ -35,6 +35,7 @@
     docker_image_prometheus: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus:latest
     docker_image_remote_agent: docker-prod-virtual.docker.mirantis.net/openstack-docker/telegraf:latest
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
+    docker_image_prometheus_relay: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus_relay:latest
     docker_image_grafana: grafana/grafana:4.3.2
     grafana_admin_password: admin
     keepalived_prometheus_vip_address: ${_param:cluster_vip_address}
diff --git a/classes/cluster/virtual-mcp-ocata-dvr/infra/init.yml b/classes/cluster/virtual-mcp-ocata-dvr/infra/init.yml
index 9140bd0..b01723d 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/infra/init.yml
+++ b/classes/cluster/virtual-mcp-ocata-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-mcp-ocata-dvr/init.yml b/classes/cluster/virtual-mcp-ocata-dvr/init.yml
index c801079..582837d 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/init.yml
+++ b/classes/cluster/virtual-mcp-ocata-dvr/init.yml
@@ -20,6 +20,7 @@
     cluster_domain: virtual-mcp-ocata-dvr.local
     cluster_name: virtual-mcp-ocata-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
diff --git a/classes/cluster/virtual-mcp-ocata-dvr/stacklight/client.yml b/classes/cluster/virtual-mcp-ocata-dvr/stacklight/client.yml
index a8f20a4..dd8fe4b 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/stacklight/client.yml
+++ b/classes/cluster/virtual-mcp-ocata-dvr/stacklight/client.yml
@@ -15,8 +15,8 @@
     grafana_user: admin
     grafana_password: ${_param:grafana_admin_password}
     grafana_prometheus_address: ${_param:stacklight_monitor_address}
-    grafana_prometheus_port: 15010
+    grafana_prometheus_port: 15016
 
     cluster_node01_address: ${_param:stacklight_monitor_node01_address}
     cluster_node02_address: ${_param:stacklight_monitor_node02_address}
-    cluster_node03_address: ${_param:stacklight_monitor_node03_address}
\ No newline at end of file
+    cluster_node03_address: ${_param:stacklight_monitor_node03_address}
diff --git a/classes/cluster/virtual-mcp-ocata-dvr/stacklight/server.yml b/classes/cluster/virtual-mcp-ocata-dvr/stacklight/server.yml
index 52e250a..d36763a 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp-ocata-dvr/stacklight/server.yml
@@ -51,6 +51,7 @@
     docker_image_remote_agent: docker-prod-virtual.docker.mirantis.net/openstack-docker/telegraf:latest
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
     docker_image_remote_collector: docker-prod-virtual.docker.mirantis.net/openstack-docker/heka:latest
+    docker_image_prometheus_relay: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus_relay:latest
     docker_image_grafana: grafana/grafana:4.3.2
     influxdb_port: 8086
     influxdb_admin_password: password
diff --git a/classes/cluster/virtual-mcp-ocata-ovs/infra/init.yml b/classes/cluster/virtual-mcp-ocata-ovs/infra/init.yml
index 9140bd0..b01723d 100644
--- a/classes/cluster/virtual-mcp-ocata-ovs/infra/init.yml
+++ b/classes/cluster/virtual-mcp-ocata-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-mcp-ocata-ovs/init.yml b/classes/cluster/virtual-mcp-ocata-ovs/init.yml
index d2e3d71..aa01aec 100644
--- a/classes/cluster/virtual-mcp-ocata-ovs/init.yml
+++ b/classes/cluster/virtual-mcp-ocata-ovs/init.yml
@@ -20,6 +20,7 @@
   _param:
     cluster_domain: virtual-mcp-ocata-ovs.local
     cluster_name: virtual-mcp-ocata-ovs
+    infra_config_hostname: cfg01
     # infra service addresses
     infra_config_address: 172.16.10.100
     # openstack service addresses
diff --git a/classes/cluster/virtual-mcp-ocata-ovs/stacklight/client.yml b/classes/cluster/virtual-mcp-ocata-ovs/stacklight/client.yml
index f37218a..44e42ed 100644
--- a/classes/cluster/virtual-mcp-ocata-ovs/stacklight/client.yml
+++ b/classes/cluster/virtual-mcp-ocata-ovs/stacklight/client.yml
@@ -15,8 +15,8 @@
     grafana_user: admin
     grafana_password: ${_param:grafana_admin_password}
     grafana_prometheus_address: ${_param:stacklight_monitor_address}
-    grafana_prometheus_port: 15010
+    grafana_prometheus_port: 15016
 
     cluster_node01_address: ${_param:stacklight_monitor_node01_address}
     cluster_node02_address: ${_param:stacklight_monitor_node02_address}
-    cluster_node03_address: ${_param:stacklight_monitor_node03_address}
\ No newline at end of file
+    cluster_node03_address: ${_param:stacklight_monitor_node03_address}
diff --git a/classes/cluster/virtual-mcp-ocata-ovs/stacklight/server.yml b/classes/cluster/virtual-mcp-ocata-ovs/stacklight/server.yml
index 3a796b8..fd31ac3 100644
--- a/classes/cluster/virtual-mcp-ocata-ovs/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp-ocata-ovs/stacklight/server.yml
@@ -51,6 +51,7 @@
     docker_image_remote_agent: docker-prod-virtual.docker.mirantis.net/openstack-docker/telegraf:latest
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
     docker_image_remote_collector: docker-prod-virtual.docker.mirantis.net/openstack-docker/heka:latest
+    docker_image_prometheus_relay: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus_relay:latest
     docker_image_grafana: grafana/grafana:4.3.2
     influxdb_port: 8086
     influxdb_admin_password: password
diff --git a/classes/cluster/virtual-mcp05-ovs/infra/init.yml b/classes/cluster/virtual-mcp05-ovs/infra/init.yml
index 9140bd0..b01723d 100644
--- a/classes/cluster/virtual-mcp05-ovs/infra/init.yml
+++ b/classes/cluster/virtual-mcp05-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-mcp05-ovs/init.yml b/classes/cluster/virtual-mcp05-ovs/init.yml
index ead6ba8..0249838 100644
--- a/classes/cluster/virtual-mcp05-ovs/init.yml
+++ b/classes/cluster/virtual-mcp05-ovs/init.yml
@@ -14,6 +14,7 @@
     cluster_domain: virtual-mcp05-ovs.local
     cluster_name: virtual-mcp05-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-mcp10-contrail/infra/init.yml b/classes/cluster/virtual-mcp10-contrail/infra/init.yml
index 9140bd0..b01723d 100755
--- a/classes/cluster/virtual-mcp10-contrail/infra/init.yml
+++ b/classes/cluster/virtual-mcp10-contrail/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-contrail/init.yml b/classes/cluster/virtual-mcp10-contrail/init.yml
index 5c405d4..236da7a 100755
--- a/classes/cluster/virtual-mcp10-contrail/init.yml
+++ b/classes/cluster/virtual-mcp10-contrail/init.yml
@@ -15,6 +15,7 @@
     cluster_name: virtual-mcp10-contrail
 
     # infra service addresses
+    infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
 
     # openstack service addresses
diff --git a/classes/cluster/virtual-mcp10-dvr/infra/init.yml b/classes/cluster/virtual-mcp10-dvr/infra/init.yml
index 9140bd0..b01723d 100644
--- a/classes/cluster/virtual-mcp10-dvr/infra/init.yml
+++ b/classes/cluster/virtual-mcp10-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-mcp10-dvr/init.yml b/classes/cluster/virtual-mcp10-dvr/init.yml
index e1a87ce..3e8ebc8 100644
--- a/classes/cluster/virtual-mcp10-dvr/init.yml
+++ b/classes/cluster/virtual-mcp10-dvr/init.yml
@@ -14,6 +14,7 @@
     cluster_domain: virtual-mcp10-dvr.local
     cluster_name: virtual-mcp10-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
diff --git a/classes/cluster/virtual-mcp11-contrail/infra/init.yml b/classes/cluster/virtual-mcp11-contrail/infra/init.yml
index b6a6cc2..1d6d63b 100755
--- a/classes/cluster/virtual-mcp11-contrail/infra/init.yml
+++ b/classes/cluster/virtual-mcp11-contrail/infra/init.yml
@@ -2,6 +2,7 @@
   _param:
     cluster_domain: virtual-mcp11-contrail.local
     cluster_name: virtual-mcp11-contrail
+    infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
   linux:
     network:
@@ -9,8 +10,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/stacklight/client.yml b/classes/cluster/virtual-mcp11-contrail/stacklight/client.yml
index 68d391c..7708c05 100755
--- a/classes/cluster/virtual-mcp11-contrail/stacklight/client.yml
+++ b/classes/cluster/virtual-mcp11-contrail/stacklight/client.yml
@@ -15,7 +15,7 @@
     grafana_user: admin
     grafana_password: ${_param:grafana_admin_password}
     grafana_prometheus_address: ${_param:stacklight_monitor_address}
-    grafana_prometheus_port: 15010
+    grafana_prometheus_port: 15016
 
     cluster_node01_address: ${_param:stacklight_monitor_node01_address}
     cluster_node02_address: ${_param:stacklight_monitor_node02_address}
diff --git a/classes/cluster/virtual-mcp11-contrail/stacklight/server.yml b/classes/cluster/virtual-mcp11-contrail/stacklight/server.yml
index b36d16e..b89b08d 100755
--- a/classes/cluster/virtual-mcp11-contrail/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-contrail/stacklight/server.yml
@@ -51,6 +51,7 @@
     docker_image_remote_agent: docker-prod-virtual.docker.mirantis.net/openstack-docker/telegraf:latest
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
     docker_image_remote_collector: docker-prod-virtual.docker.mirantis.net/openstack-docker/heka:latest
+    docker_image_prometheus_relay: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus_relay:latest
     docker_image_grafana: grafana/grafana:4.3.2
     influxdb_port: 8086
     influxdb_admin_password: password
diff --git a/classes/cluster/virtual-mcp11-dvr/infra/init.yml b/classes/cluster/virtual-mcp11-dvr/infra/init.yml
index f0cfd07..ffec889 100644
--- a/classes/cluster/virtual-mcp11-dvr/infra/init.yml
+++ b/classes/cluster/virtual-mcp11-dvr/infra/init.yml
@@ -2,6 +2,7 @@
   _param:
     cluster_domain: virtual-mcp11-dvr.local
     cluster_name: virtual-mcp11-dvr
+    infra_config_hostname: cfg01
     infra_config_address: 172.16.10.100
   linux:
     network:
@@ -9,8 +10,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-dvr/stacklight/client.yml b/classes/cluster/virtual-mcp11-dvr/stacklight/client.yml
index 81ee8d8..1ecb3fc 100644
--- a/classes/cluster/virtual-mcp11-dvr/stacklight/client.yml
+++ b/classes/cluster/virtual-mcp11-dvr/stacklight/client.yml
@@ -15,7 +15,7 @@
     grafana_user: admin
     grafana_password: ${_param:grafana_admin_password}
     grafana_prometheus_address: ${_param:stacklight_monitor_address}
-    grafana_prometheus_port: 15010
+    grafana_prometheus_port: 15016
 
     cluster_node01_address: ${_param:stacklight_monitor_node01_address}
     cluster_node02_address: ${_param:stacklight_monitor_node02_address}
diff --git a/classes/cluster/virtual-mcp11-dvr/stacklight/server.yml b/classes/cluster/virtual-mcp11-dvr/stacklight/server.yml
index b84a083..34efd21 100644
--- a/classes/cluster/virtual-mcp11-dvr/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-dvr/stacklight/server.yml
@@ -51,6 +51,7 @@
     docker_image_remote_agent: docker-prod-virtual.docker.mirantis.net/openstack-docker/telegraf:latest
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
     docker_image_remote_collector: docker-prod-virtual.docker.mirantis.net/openstack-docker/heka:latest
+    docker_image_prometheus_relay: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus_relay:latest
     docker_image_grafana: grafana/grafana:4.3.2
     influxdb_port: 8086
     influxdb_admin_password: password
diff --git a/classes/cluster/virtual-mcp11-k8s-calico-dyn/stacklight/client.yml b/classes/cluster/virtual-mcp11-k8s-calico-dyn/stacklight/client.yml
index 3799964..d8b6472 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico-dyn/stacklight/client.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico-dyn/stacklight/client.yml
@@ -14,4 +14,4 @@
     grafana_user: admin
     grafana_password: ${_param:grafana_admin_password}
     grafana_prometheus_address: ${_param:stacklight_address}
-    grafana_prometheus_port: 15010
+    grafana_prometheus_port: 15016
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 372a465..dea0f28 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico-dyn/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico-dyn/stacklight/server.yml
@@ -29,6 +29,7 @@
     docker_image_prometheus: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus:latest
     docker_image_remote_agent: docker-prod-virtual.docker.mirantis.net/openstack-docker/telegraf:latest
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
+    docker_image_prometheus_relay: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus_relay:latest
     docker_image_grafana: grafana/grafana:4.3.2
     grafana_admin_password: admin
     keepalived_prometheus_vip_address: ${_param:cluster_vip_address}
diff --git a/classes/cluster/virtual-mcp11-k8s-calico/stacklight/client.yml b/classes/cluster/virtual-mcp11-k8s-calico/stacklight/client.yml
index 393449c..33b2cf0 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico/stacklight/client.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico/stacklight/client.yml
@@ -14,4 +14,4 @@
     grafana_user: admin
     grafana_password: ${_param:grafana_admin_password}
     grafana_prometheus_address: ${_param:stacklight_monitor_address}
-    grafana_prometheus_port: 15010
+    grafana_prometheus_port: 15016
diff --git a/classes/cluster/virtual-mcp11-k8s-calico/stacklight/server.yml b/classes/cluster/virtual-mcp11-k8s-calico/stacklight/server.yml
index c7bb592..984443d 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico/stacklight/server.yml
@@ -36,6 +36,7 @@
     docker_image_prometheus: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus:latest
     docker_image_remote_agent: docker-prod-virtual.docker.mirantis.net/openstack-docker/telegraf:latest
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
+    docker_image_prometheus_relay: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus_relay:latest
     docker_image_grafana: grafana/grafana:4.3.2
     docker_influxdb_image: influxdb:1.2
     grafana_admin_password: admin
diff --git a/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/client.yml b/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/client.yml
index 393449c..33b2cf0 100644
--- a/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/client.yml
+++ b/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/client.yml
@@ -14,4 +14,4 @@
     grafana_user: admin
     grafana_password: ${_param:grafana_admin_password}
     grafana_prometheus_address: ${_param:stacklight_monitor_address}
-    grafana_prometheus_port: 15010
+    grafana_prometheus_port: 15016
diff --git a/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/server.yml b/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/server.yml
index f849596..f3f8a33 100644
--- a/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/server.yml
+++ b/classes/cluster/virtual-mcp11-k8s-contrail/stacklight/server.yml
@@ -36,6 +36,7 @@
     docker_image_prometheus: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus:latest
     docker_image_remote_agent: docker-prod-virtual.docker.mirantis.net/openstack-docker/telegraf:latest
     docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:latest
+    docker_image_prometheus_relay: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus_relay:latest
     docker_image_grafana: grafana/grafana:4.3.2
     grafana_admin_password: admin
     keepalived_prometheus_vip_address: ${_param:cluster_vip_address}
diff --git a/classes/cluster/virtual-mcp11-ovs-dpdk/infra/init.yml b/classes/cluster/virtual-mcp11-ovs-dpdk/infra/init.yml
index 9140bd0..b01723d 100644
--- a/classes/cluster/virtual-mcp11-ovs-dpdk/infra/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs-dpdk/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-ovs-dpdk/init.yml b/classes/cluster/virtual-mcp11-ovs-dpdk/init.yml
index ef16a9e..481c969 100644
--- a/classes/cluster/virtual-mcp11-ovs-dpdk/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs-dpdk/init.yml
@@ -15,6 +15,7 @@
     cluster_domain: virtual-mcp11-ovs-dpdk.local
     cluster_name: virtual-mcp11-ovs-dpdk
     # 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/system b/classes/system
index 91f7c58..e2bee17 160000
--- a/classes/system
+++ b/classes/system
@@ -1 +1 @@
-Subproject commit 91f7c583759a99539f4e6176360f4f3c085bfdf1
+Subproject commit e2bee17267ff3c91f4b08ff5b745a7d3058c51b3