Merge "Bring in opendaylight support"
diff --git a/.releasenotes/notes/proxy-prometheus-b48f1787735ae9d9.yaml b/.releasenotes/notes/proxy-prometheus-b48f1787735ae9d9.yaml
new file mode 100644
index 0000000..2dc0994
--- /dev/null
+++ b/.releasenotes/notes/proxy-prometheus-b48f1787735ae9d9.yaml
@@ -0,0 +1,10 @@
+---
+
+summary: >
+  Fixed the :guilabel:`Heatmaps` page in the DevOps Portal
+
+fixes:
+  - Fixed the issue with the DevOps Portal :guilabel:`Heatmaps` page
+    that was not available due to the disabled proxy for the
+    ``stacklight-prometeus`` endpoint and due to wrong
+    Prometheus URL configuration.
\ No newline at end of file
diff --git a/apache/server/proxy/openstack/cinder.yml b/apache/server/proxy/openstack/cinder.yml
new file mode 100644
index 0000000..8b3fb4f
--- /dev/null
+++ b/apache/server/proxy/openstack/cinder.yml
@@ -0,0 +1,24 @@
+parameters:
+  _param:
+    apache_proxy_ssl:
+      enabled: false
+    apache_proxy_openstack_api_host: ${_param:cluster_public_host}
+    apache_proxy_openstack_api_address: 0.0.0.0
+    apache_proxy_openstack_cinder_host: ${_param:cinder_service_host}
+  apache:
+    server:
+      site:
+        apache_proxy_openstack_api_cinder:
+          enabled: true
+          type: proxy
+          name: openstack_api_cinder
+          check: false
+          proxy:
+            host: ${_param:apache_proxy_openstack_cinder_host}
+            port: 8776
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 8776
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
diff --git a/apache/server/proxy/openstack/designate.yml b/apache/server/proxy/openstack/designate.yml
new file mode 100644
index 0000000..b681cf7
--- /dev/null
+++ b/apache/server/proxy/openstack/designate.yml
@@ -0,0 +1,28 @@
+parameters:
+  _param:
+    apache_proxy_ssl:
+      enabled: false
+    apache_proxy_openstack_api_host: ${_param:cluster_public_host}
+    apache_proxy_openstack_api_address: 0.0.0.0
+    apache_proxy_openstack_designate_host: ${_param:designate_service_host}
+  apache:
+    server:
+      modules:
+       - proxy
+       - proxy_http
+       - headers
+      enabled: true
+      site:
+        apache_proxy_openstack_api_designate:
+          enabled: true
+          type: proxy
+          name: openstack_api_designate
+          proxy:
+            host: ${_param:apache_proxy_openstack_designate_host}
+            port: 9001
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 9001
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
diff --git a/apache/server/proxy/openstack/glance.yml b/apache/server/proxy/openstack/glance.yml
new file mode 100644
index 0000000..91bedea
--- /dev/null
+++ b/apache/server/proxy/openstack/glance.yml
@@ -0,0 +1,24 @@
+parameters:
+  _param:
+    apache_proxy_ssl:
+      enabled: false
+    apache_proxy_openstack_api_host: ${_param:cluster_public_host}
+    apache_proxy_openstack_api_address: 0.0.0.0
+    apache_proxy_openstack_glance_host: ${_param:glance_service_host}
+  apache:
+    server:
+      enabled: true
+      site:
+        apache_proxy_openstack_api_glance:
+          enabled: true
+          type: proxy
+          name: openstack_api_glance
+          proxy:
+            host: ${_param:apache_proxy_openstack_glance_host}
+            port: 9292
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 9292
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
diff --git a/apache/server/proxy/openstack/heat.yml b/apache/server/proxy/openstack/heat.yml
new file mode 100644
index 0000000..b844c45
--- /dev/null
+++ b/apache/server/proxy/openstack/heat.yml
@@ -0,0 +1,52 @@
+parameters:
+  _param:
+    apache_proxy_ssl:
+      enabled: false
+    apache_proxy_openstack_api_host: ${_param:cluster_public_host}
+    apache_proxy_openstack_api_address: 0.0.0.0
+    apache_proxy_openstack_heat_host: ${_param:heat_service_host}
+  apache:
+    server:
+      site:
+        apache_proxy_openstack_api_heat:
+          enabled: true
+          type: proxy
+          name: openstack_api_heat
+          check: false
+          proxy:
+            host: ${_param:apache_proxy_openstack_heat_host}
+            port: 8004
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 8004
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
+        apache_proxy_openstack_api_heat_cfn:
+          enabled: true
+          type: proxy
+          name: openstack_api_heat_cfn
+          check: false
+          proxy:
+            host: ${_param:apache_proxy_openstack_heat_host}
+            port: 8000
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 8000
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
+        apache_proxy_openstack_api_heat_cloudwatch:
+          enabled: true
+          type: proxy
+          name: openstack_api_heat_cloudwatch
+          check: false
+          proxy:
+            host: ${_param:apache_proxy_openstack_heat_host}
+            port: 8003
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 8003
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
diff --git a/apache/server/proxy/openstack/neutron.yml b/apache/server/proxy/openstack/neutron.yml
new file mode 100644
index 0000000..dd18c40
--- /dev/null
+++ b/apache/server/proxy/openstack/neutron.yml
@@ -0,0 +1,24 @@
+parameters:
+  _param:
+    apache_proxy_ssl:
+      enabled: false
+    apache_proxy_openstack_api_host: ${_param:cluster_public_host}
+    apache_proxy_openstack_api_address: 0.0.0.0
+    apache_proxy_openstack_neutron_host: ${_param:neutron_service_host}
+  apache:
+    server:
+      site:
+        apache_proxy_openstack_api_neutron:
+          enabled: true
+          type: proxy
+          name: openstack_api_neutron
+          check: false
+          proxy:
+            host: ${_param:apache_proxy_openstack_neutron_host}
+            port: 9696
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 9696
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
diff --git a/apache/server/proxy/openstack/nova.yml b/apache/server/proxy/openstack/nova.yml
new file mode 100644
index 0000000..66a0107
--- /dev/null
+++ b/apache/server/proxy/openstack/nova.yml
@@ -0,0 +1,24 @@
+parameters:
+  _param:
+    apache_proxy_ssl:
+      enabled: false
+    apache_proxy_openstack_api_host: ${_param:cluster_public_host}
+    apache_proxy_openstack_api_address: 0.0.0.0
+    apache_proxy_openstack_nova_host: ${_param:nova_service_host}
+  apache:
+    server:
+      site:
+        apache_proxy_openstack_api_nova:
+          enabled: true
+          type: proxy
+          name: openstack_api_nova
+          check: false
+          proxy:
+            host: ${_param:apache_proxy_openstack_nova_host}
+            port: 8774
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 8774
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
diff --git a/apache/server/proxy/openstack/placement.yml b/apache/server/proxy/openstack/placement.yml
new file mode 100644
index 0000000..9e256b2
--- /dev/null
+++ b/apache/server/proxy/openstack/placement.yml
@@ -0,0 +1,25 @@
+parameters:
+  _param:
+    apache_proxy_ssl:
+      enabled: false
+    placement_service_host: ${_param:nova_service_host}
+    apache_proxy_openstack_api_host: ${_param:cluster_public_host}
+    apache_proxy_openstack_api_address: 0.0.0.0
+    apache_proxy_openstack_placement_host: ${_param:placement_service_host}
+  apache:
+    server:
+      site:
+        apache_proxy_openstack_api_placement:
+          enabled: true
+          type: proxy
+          name: openstack_api_placement
+          check: false
+          proxy:
+            host: ${_param:apache_proxy_openstack_placement_host}
+            port: 8778
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 8778
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
diff --git a/apache/server/site/cinder.yml b/apache/server/site/cinder.yml
new file mode 100644
index 0000000..7338b6e
--- /dev/null
+++ b/apache/server/site/cinder.yml
@@ -0,0 +1,42 @@
+parameters:
+  _param:
+    apache_cinder_ssl:
+      enabled: false
+    apache_cinder_api_address: 0.0.0.0
+    apache_cinder_api_host: ${linux:network:fqdn}
+  cinder:
+    server:
+      service_name: apache2
+  apache:
+    server:
+      enabled: true
+      default_mpm: event
+      site:
+        cinder:
+          enabled: false
+          available: true
+          type: wsgi
+          name: cinder
+          ssl: ${_param:apache_cinder_ssl}
+          wsgi:
+            daemon_process: cinder-wsgi
+            processes: 5
+            threads: 1
+            user: cinder
+            group: cinder
+            display_name: '%{GROUP}'
+            script_alias: '/ /usr/bin/cinder-wsgi'
+            application_group: '%{GLOBAL}'
+            authorization: 'On'
+          host:
+            address: ${_param:apache_cinder_api_address}
+            name: ${_param:apache_cinder_api_host}
+            port: 8776
+          log:
+            custom:
+              format: >-
+                %v:%p %{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %D %O \"%{Referer}i\" \"%{User-Agent}i\"
+            error:
+              enabled: true
+              format: '%M'
+              file: '/var/log/apache2/cinder_error.log'
diff --git a/apache/server/site/gnocchi.yml b/apache/server/site/gnocchi.yml
new file mode 100644
index 0000000..a3d6def
--- /dev/null
+++ b/apache/server/site/gnocchi.yml
@@ -0,0 +1,35 @@
+parameters:
+  _param:
+    gnocchi_api_workers: 2
+    apache_gnocchi_ssl:
+      enabled: false
+    apache_gnocchi_api_host: ${linux:network:fqdn}
+    apache_gnocchi_api_address: ${_param:single_address}
+    apache_gnocchi_api_port: 8041
+  apache:
+    server:
+      site:
+        gnocchi:
+          enabled: false
+          available: true
+          type: wsgi
+          name: gnocchi
+          ssl: ${_param:apache_gnocchi_ssl}
+          host:
+            name: ${_param:apache_gnocchi_api_host}
+            address: ${_param:apache_gnocchi_api_address}
+            port: ${_param:apache_gnocchi_api_port}
+          log:
+            custom:
+              format: >-
+                %v:%p %{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %D %O \"%{Referer}i\" \"%{User-Agent}i\"
+          wsgi:
+            daemon_process: gnocchi-api
+            processes: ${_param:gnocchi_api_workers}
+            threads: 10
+            user: gnocchi
+            group: gnocchi
+            display_name: '%{GROUP}'
+            script_alias: '/ /usr/bin/gnocchi-api'
+            application_group: '%{GLOBAL}'
+            authorization: 'On'
diff --git a/apache/server/site/manila.yml b/apache/server/site/manila.yml
new file mode 100644
index 0000000..2161882
--- /dev/null
+++ b/apache/server/site/manila.yml
@@ -0,0 +1,44 @@
+parameters:
+  _param:
+    apache_manila_ssl:
+      enabled: false
+    apache_manila_api_address: 0.0.0.0
+    apache_manila_api_host: ${linux:network:fqdn}
+  manila:
+    server:
+      service_name: apache2
+  apache:
+    server:
+      enabled: true
+      default_mpm: event
+      site:
+        manila:
+          enabled: false
+          available: true
+          type: wsgi
+          name: manila
+          ssl: ${_param:apache_manila_ssl}
+          wsgi:
+            daemon_process: manila-api
+            threads: 2
+            user: manila
+            group: manila
+            display_name: '%{GROUP}'
+            script_alias: '/ /usr/bin/manila-wsgi'
+            application_group: '%{GLOBAL}'
+            authorization: 'On'
+          limits:
+            request_body: 114688
+          host:
+            address: ${_param:apache_manila_api_address}
+            name: ${_param:apache_manila_api_host}
+            port: 8786
+          log:
+            custom:
+              format: >-
+                %v:%p %{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %D %O \"%{Referer}i\" \"%{User-Agent}i\"
+            error:
+              enabled: true
+              level: debug
+              format: '%M'
+              file: '/var/log/manila/manila-api.log'
diff --git a/apache/server/site/nova-placement.yml b/apache/server/site/nova-placement.yml
new file mode 100644
index 0000000..9eeeae4
--- /dev/null
+++ b/apache/server/site/nova-placement.yml
@@ -0,0 +1,45 @@
+parameters:
+  _param:
+    apache_nova_placement_ssl:
+      enabled: false
+    apache_nova_placement_api_address: 0.0.0.0
+    apache_nova_placement_api_host: ${linux:network:fqdn}
+  nova_placement:
+    server:
+      service_name: apache2
+  apache:
+    server:
+      enabled: true
+      default_mpm: event
+      site:
+        nova_placement:
+          enabled: false
+          available: true
+          type: wsgi
+          name: nova_placement
+          ssl: ${_param:apache_nova_placement_ssl}
+          wsgi:
+            daemon_process: nova-placement
+            processes: 5
+            threads: 1
+            user: nova
+            group: nova
+            display_name: '%{GROUP}'
+            script_alias: '/ /usr/bin/nova-placement-api'
+            application_group: '%{GLOBAL}'
+            authorization: 'On'
+          limits:
+            request_body: 114688
+          host:
+            address: ${_param:apache_nova_placement_api_address}
+            name: ${_param:apache_nova_placement_api_host}
+            port: 8778
+          log:
+            custom:
+              format: >-
+                %v:%p %{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %D %O \"%{Referer}i\" \"%{User-Agent}i\"
+              file: '/var/log/apache2/nova_placement_access.log'
+            error:
+              enabled: true
+              format: '%M'
+              file: '/var/log/apache2/nova_placement_error.log'
diff --git a/apache/server/site/panko.yml b/apache/server/site/panko.yml
new file mode 100644
index 0000000..d052c37
--- /dev/null
+++ b/apache/server/site/panko.yml
@@ -0,0 +1,35 @@
+parameters:
+  _param:
+    apache_panko_ssl:
+      enabled: false
+    panko_api_workers: 2
+    apache_panko_api_host: ${linux:network:fqdn}
+    apache_panko_api_address: ${_param:single_address}
+    apache_panko_api_port: 8977
+  apache:
+    server:
+      site:
+        panko:
+          enabled: false
+          available: true
+          type: wsgi
+          name: panko
+          ssl: ${_param:apache_panko_ssl}
+          host:
+            name: ${_param:apache_panko_api_host}
+            address: ${_param:apache_panko_api_address}
+            port: ${_param:apache_panko_api_port}
+          log:
+            custom:
+              format: >-
+                %v:%p %{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %D %O \"%{Referer}i\" \"%{User-Agent}i\"
+          wsgi:
+            daemon_process: panko-api
+            processes: ${_param:panko_api_workers}
+            threads: 1
+            user: panko
+            group: panko
+            display_name: '%{GROUP}'
+            script_alias: '/ /usr/bin/panko-api'
+            application_group: '%{GLOBAL}'
+            authorization: 'On'
diff --git a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/fluentd.yml b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/fluentd.yml
new file mode 100644
index 0000000..060e5ec
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/fluentd.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+    mirror_mirantis_openstack_trusty_fluentd_source: http://mirror.mirantis.com/${_param:apt_mk_version}/td-agent-trusty
+    mirror_mirantis_openstack_trusty_fluentd_distribution: trusty
+    mirror_mirantis_openstack_trusty_fluentd_components: contrib
+    mirror_mirantis_openstack_trusty_fluentd_gpgkeys:
+      - 901F9177AB97ACBE
+  aptly:
+    server:
+      mirror:
+        mirantis_openstack_trusty_fluentd:
+          source: ${_param:mirror_mirantis_openstack_trusty_fluentd_source}
+          distribution: ${_param:mirror_mirantis_openstack_trusty_fluentd_distribution}
+          components: ${_param:mirror_mirantis_openstack_trusty_fluentd_components}
+          architectures: amd64
+          gpgkeys: ${_param:mirror_mirantis_openstack_trusty_fluentd_gpgkeys}
+          publisher:
+            component: contrib
+            distributions:
+              - ubuntu-trusty/fluentd/${_param:apt_mk_version}
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/aptly.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/aptly.yml
index 507ed5e..e571d36 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/aptly.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/aptly.yml
@@ -1,12 +1,11 @@
 parameters:
   _param:
     apt_mk_version: stable
-    mirror_mirantis_openstack_xenial_aptly_source: http://apt.mirantis.com/xenial/aptly/
-    mirror_mirantis_openstack_xenial_aptly_distribution: ${_param:apt_mk_version}
+    mirror_mirantis_openstack_xenial_aptly_source: http://mirror.mirantis.com/${_param:apt_mk_version}/aptly/
+    mirror_mirantis_openstack_xenial_aptly_distribution: squeeze
     mirror_mirantis_openstack_xenial_aptly_components: main
-    mirror_mirantis_openstack_xenial_aptly_key_url: "http://apt.mirantis.com/public.gpg"
     mirror_mirantis_openstack_xenial_aptly_gpgkeys:
-      - A76882D3
+      - 9C7DE460
   aptly:
     server:
       mirror:
@@ -15,9 +14,8 @@
           distribution: ${_param:mirror_mirantis_openstack_xenial_aptly_distribution}
           components: ${_param:mirror_mirantis_openstack_xenial_aptly_components}
           architectures: amd64
-          key_url: ${_param:mirror_mirantis_openstack_xenial_aptly_key_url}
           gpgkeys: ${_param:mirror_mirantis_openstack_xenial_aptly_gpgkeys}
           publisher:
-            component: ${_param:mirror_mirantis_openstack_xenial_aptly_components}
+            component: main
             distributions:
               - ubuntu-xenial/aptly/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/cassandra.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/cassandra.yml
index 5afbf77..2b931af 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/cassandra.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/cassandra.yml
@@ -1,12 +1,14 @@
 parameters:
   _param:
     apt_mk_version: stable
-    mirror_mirantis_openstack_xenial_cassandra_source: http://apt.mirantis.com/xenial/cassandra/
-    mirror_mirantis_openstack_xenial_cassandra_distribution: ${_param:apt_mk_version}
-    mirror_mirantis_openstack_xenial_cassandra_components: 21x
-    mirror_mirantis_openstack_xenial_cassandra_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mirantis_openstack_xenial_cassandra_source: http://mirror.mirantis.com/${_param:apt_mk_version}/cassandra/
+    mirror_mirantis_openstack_xenial_cassandra_distribution: 21x
+    mirror_mirantis_openstack_xenial_cassandra_components: main
     mirror_mirantis_openstack_xenial_cassandra_gpgkeys:
-      - A76882D3
+      - A278B781FE4B2BDA
+      - F758CE318D77295D
+      - 2B5C1B00
+      - 0353B12C
   aptly:
     server:
       mirror:
@@ -15,9 +17,8 @@
           distribution: ${_param:mirror_mirantis_openstack_xenial_cassandra_distribution}
           components: ${_param:mirror_mirantis_openstack_xenial_cassandra_components}
           architectures: amd64
-          key_url: ${_param:mirror_mirantis_openstack_xenial_cassandra_key_url}
           gpgkeys: ${_param:mirror_mirantis_openstack_xenial_cassandra_gpgkeys}
           publisher:
-            component: ${_param:mirror_mirantis_openstack_xenial_cassandra_components}
+            component: 21x
             distributions:
               - ubuntu-xenial/cassandra/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/ceph.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/ceph.yml
index a0b1293..d997485 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/ceph.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/ceph.yml
@@ -1,10 +1,9 @@
 parameters:
   _param:
     apt_mk_version: stable
-    mirror_mirantis_openstack_xenial_ceph_source: http://apt.mirantis.com/xenial/ceph/
+    mirror_mirantis_openstack_xenial_ceph_source: http://apt.mirantis.com/xenial/
     mirror_mirantis_openstack_xenial_ceph_distribution: ${_param:apt_mk_version}
-    mirror_mirantis_openstack_xenial_ceph_components: luminous
-    mirror_mirantis_openstack_xenial_ceph_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mirantis_openstack_xenial_ceph_components: ceph-luminous
     mirror_mirantis_openstack_xenial_ceph_gpgkeys:
       - A76882D3
   aptly:
@@ -15,9 +14,8 @@
           distribution: ${_param:mirror_mirantis_openstack_xenial_ceph_distribution}
           components: ${_param:mirror_mirantis_openstack_xenial_ceph_components}
           architectures: amd64
-          key_url: ${_param:mirror_mirantis_openstack_xenial_ceph_key_url}
           gpgkeys: ${_param:mirror_mirantis_openstack_xenial_ceph_gpgkeys}
           publisher:
-            component: ${_param:mirror_mirantis_openstack_xenial_ceph_components}
+            component: luminous
             distributions:
               - ubuntu-xenial/ceph/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/docker.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/docker.yml
index 703d202..96e0b64 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/docker.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/docker.yml
@@ -1,12 +1,11 @@
 parameters:
   _param:
     apt_mk_version: stable
-    mirror_mirantis_openstack_xenial_docker_source: http://apt.mirantis.com/xenial/docker/
-    mirror_mirantis_openstack_xenial_docker_distribution: ${_param:apt_mk_version}
+    mirror_mirantis_openstack_xenial_docker_source: http://mirror.mirantis.com/${_param:apt_mk_version}/docker/
+    mirror_mirantis_openstack_xenial_docker_distribution: xenial
     mirror_mirantis_openstack_xenial_docker_components: stable
-    mirror_mirantis_openstack_xenial_docker_key_url: "http://apt.mirantis.com/public.gpg"
     mirror_mirantis_openstack_xenial_docker_gpgkeys:
-      - A76882D3
+      - 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
   aptly:
     server:
       mirror:
@@ -15,9 +14,8 @@
           distribution: ${_param:mirror_mirantis_openstack_xenial_docker_distribution}
           components: ${_param:mirror_mirantis_openstack_xenial_docker_components}
           architectures: amd64
-          key_url: ${_param:mirror_mirantis_openstack_xenial_docker_key_url}
           gpgkeys: ${_param:mirror_mirantis_openstack_xenial_docker_gpgkeys}
           publisher:
-            component: ${_param:mirror_mirantis_openstack_xenial_docker_components}
+            component: stable
             distributions:
               - ubuntu-xenial/docker/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/elastic/2x.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/elastic/2x.yml
index 6b1c006..dd5b636 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/elastic/2x.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/elastic/2x.yml
@@ -1,12 +1,11 @@
 parameters:
   _param:
     apt_mk_version: stable
-    mirror_mirantis_openstack_xenial_elastic_2x_source: http://apt.mirantis.com/xenial/elastic/2.x/
-    mirror_mirantis_openstack_xenial_elastic_2x_distribution: ${_param:apt_mk_version}
+    mirror_mirantis_openstack_xenial_elastic_2x_source: http://mirror.mirantis.com/${_param:apt_mk_version}/elasticsearch-2.x/
+    mirror_mirantis_openstack_xenial_elastic_2x_distribution: stable
     mirror_mirantis_openstack_xenial_elastic_2x_components: main
-    mirror_mirantis_openstack_xenial_elastic_2x_key_url: "http://apt.mirantis.com/public.gpg"
     mirror_mirantis_openstack_xenial_elastic_2x_gpgkeys:
-      - A76882D3
+      - D88E42B4
   aptly:
     server:
       mirror:
@@ -15,9 +14,8 @@
           distribution: ${_param:mirror_mirantis_openstack_xenial_elastic_2x_distribution}
           components: ${_param:mirror_mirantis_openstack_xenial_elastic_2x_components}
           architectures: amd64
-          key_url: ${_param:mirror_mirantis_openstack_xenial_elastic_2x_key_url}
           gpgkeys: ${_param:mirror_mirantis_openstack_xenial_elastic_2x_gpgkeys}
           publisher:
-            component: ${_param:mirror_mirantis_openstack_xenial_elastic_2x_components}
+            component: main
             distributions:
               - ubuntu-xenial/elastic/2.x/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/elastic/5x.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/elastic/5x.yml
index d7e92c6..0448289 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/elastic/5x.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/elastic/5x.yml
@@ -1,12 +1,11 @@
 parameters:
   _param:
     apt_mk_version: stable
-    mirror_mirantis_openstack_xenial_elastic_5x_source: http://apt.mirantis.com/xenial/elastic/5.x/
-    mirror_mirantis_openstack_xenial_elastic_5x_distribution: ${_param:apt_mk_version}
+    mirror_mirantis_openstack_xenial_elastic_5x_source: http://mirror.mirantis.com/${_param:apt_mk_version}/elasticsearch-5.x/
+    mirror_mirantis_openstack_xenial_elastic_5x_distribution: stable
     mirror_mirantis_openstack_xenial_elastic_5x_components: main
-    mirror_mirantis_openstack_xenial_elastic_5x_key_url: "http://apt.mirantis.com/public.gpg"
     mirror_mirantis_openstack_xenial_elastic_5x_gpgkeys:
-      - A76882D3
+      - D88E42B4
   aptly:
     server:
       mirror:
@@ -15,9 +14,8 @@
           distribution: ${_param:mirror_mirantis_openstack_xenial_elastic_5x_distribution}
           components: ${_param:mirror_mirantis_openstack_xenial_elastic_5x_components}
           architectures: amd64
-          key_url: ${_param:mirror_mirantis_openstack_xenial_elastic_5x_key_url}
           gpgkeys: ${_param:mirror_mirantis_openstack_xenial_elastic_5x_gpgkeys}
           publisher:
-            component: ${_param:mirror_mirantis_openstack_xenial_elastic_5x_components}
+            component: main
             distributions:
               - ubuntu-xenial/elastic/5.x/${_param:apt_mk_version}
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/fluentd.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/fluentd.yml
new file mode 100644
index 0000000..e87580c
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/fluentd.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+    mirror_mirantis_openstack_xenial_fluentd_source: http://mirror.mirantis.com/${_param:apt_mk_version}/td-agent-xenial
+    mirror_mirantis_openstack_xenial_fluentd_distribution: xenial
+    mirror_mirantis_openstack_xenial_fluentd_components: contrib
+    mirror_mirantis_openstack_xenial_fluentd_gpgkeys:
+      - 901F9177AB97ACBE
+  aptly:
+    server:
+      mirror:
+        mirantis_openstack_xenial_fluentd:
+          source: ${_param:mirror_mirantis_openstack_xenial_fluentd_source}
+          distribution: ${_param:mirror_mirantis_openstack_xenial_fluentd_distribution}
+          components: ${_param:mirror_mirantis_openstack_xenial_fluentd_components}
+          architectures: amd64
+          gpgkeys: ${_param:mirror_mirantis_openstack_xenial_fluentd_gpgkeys}
+          publisher:
+            component: contrib
+            distributions:
+              - ubuntu-xenial/fluentd/${_param:apt_mk_version}
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/glusterfs.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/glusterfs.yml
index cfec221..f925041 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/glusterfs.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/glusterfs.yml
@@ -1,12 +1,11 @@
 parameters:
   _param:
     apt_mk_version: stable
-    mirror_mirantis_openstack_xenial_glusterfs_source: http://apt.mirantis.com/xenial/glusterfs/
-    mirror_mirantis_openstack_xenial_glusterfs_distribution: ${_param:apt_mk_version}
-    mirror_mirantis_openstack_xenial_glusterfs_components: '"3.12"'
-    mirror_mirantis_openstack_xenial_glusterfs_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mirantis_openstack_xenial_glusterfs_source: http://mirror.mirantis.com/${_param:apt_mk_version}/glusterfs-3.8/
+    mirror_mirantis_openstack_xenial_glusterfs_distribution: xenial
+    mirror_mirantis_openstack_xenial_glusterfs_components: main
     mirror_mirantis_openstack_xenial_glusterfs_gpgkeys:
-      - A76882D3
+      - 3FE869A9
   aptly:
     server:
       mirror:
@@ -15,9 +14,8 @@
           distribution: ${_param:mirror_mirantis_openstack_xenial_glusterfs_distribution}
           components: ${_param:mirror_mirantis_openstack_xenial_glusterfs_components}
           architectures: amd64
-          key_url: ${_param:mirror_mirantis_openstack_xenial_glusterfs_key_url}
           gpgkeys: ${_param:mirror_mirantis_openstack_xenial_glusterfs_gpgkeys}
           publisher:
-            component: ${_param:mirror_mirantis_openstack_xenial_glusterfs_components}
+            component: '"3.8"'
             distributions:
               - ubuntu-xenial/glusterfs/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/grafana.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/grafana.yml
index e09ba61..6c1a3de 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/grafana.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/grafana.yml
@@ -1,12 +1,11 @@
 parameters:
   _param:
     apt_mk_version: stable
-    mirror_mirantis_openstack_xenial_grafana_source: http://apt.mirantis.com/xenial/grafana/
-    mirror_mirantis_openstack_xenial_grafana_distribution: ${_param:apt_mk_version}
+    mirror_mirantis_openstack_xenial_grafana_source: http://mirror.mirantis.com/${_param:apt_mk_version}/grafana/
+    mirror_mirantis_openstack_xenial_grafana_distribution: jessie
     mirror_mirantis_openstack_xenial_grafana_components: main
-    mirror_mirantis_openstack_xenial_grafana_key_url: "http://apt.mirantis.com/public.gpg"
     mirror_mirantis_openstack_xenial_grafana_gpgkeys:
-      - A76882D3
+      - D59097AB
   aptly:
     server:
       mirror:
@@ -15,9 +14,8 @@
           distribution: ${_param:mirror_mirantis_openstack_xenial_grafana_distribution}
           components: ${_param:mirror_mirantis_openstack_xenial_grafana_components}
           architectures: amd64
-          key_url: ${_param:mirror_mirantis_openstack_xenial_grafana_key_url}
           gpgkeys: ${_param:mirror_mirantis_openstack_xenial_grafana_gpgkeys}
           publisher:
-            component: ${_param:mirror_mirantis_openstack_xenial_grafana_components}
+            component: main
             distributions:
               - ubuntu-xenial/grafana/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/influxdb.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/influxdb.yml
index 01093fe..1262270 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/influxdb.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/influxdb.yml
@@ -1,12 +1,11 @@
 parameters:
   _param:
     apt_mk_version: stable
-    mirror_mirantis_openstack_xenial_influxdb_source: http://apt.mirantis.com/xenial/influxdb/
-    mirror_mirantis_openstack_xenial_influxdb_distribution: ${_param:apt_mk_version}
-    mirror_mirantis_openstack_xenial_influxdb_components: main
-    mirror_mirantis_openstack_xenial_influxdb_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mirantis_openstack_xenial_influxdb_source: http://mirror.mirantis.com/${_param:apt_mk_version}/influxdb/
+    mirror_mirantis_openstack_xenial_influxdb_distribution: xenial
+    mirror_mirantis_openstack_xenial_influxdb_components: stable
     mirror_mirantis_openstack_xenial_influxdb_gpgkeys:
-      - A76882D3
+      - 2582E0C5
   aptly:
     server:
       mirror:
@@ -15,9 +14,8 @@
           distribution: ${_param:mirror_mirantis_openstack_xenial_influxdb_distribution}
           components: ${_param:mirror_mirantis_openstack_xenial_influxdb_components}
           architectures: amd64
-          key_url: ${_param:mirror_mirantis_openstack_xenial_influxdb_key_url}
           gpgkeys: ${_param:mirror_mirantis_openstack_xenial_influxdb_gpgkeys}
           publisher:
-            component: ${_param:mirror_mirantis_openstack_xenial_influxdb_components}
+            component: main
             distributions:
               - ubuntu-xenial/influxdb/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/kibana/46.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/kibana/46.yml
index 815185b..67fecc1 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/kibana/46.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/kibana/46.yml
@@ -1,12 +1,11 @@
 parameters:
   _param:
     apt_mk_version: stable
-    mirror_mirantis_openstack_xenial_kibana_46_source: http://apt.mirantis.com/xenial/kibana/4.6/
-    mirror_mirantis_openstack_xenial_kibana_46_distribution: ${_param:apt_mk_version}
-    mirror_mirantis_openstack_xenial_kibana_46_components: "kibana-46"
-    mirror_mirantis_openstack_xenial_kibana_46_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mirantis_openstack_xenial_kibana_46_source: http://mirror.mirantis.com/${_param:apt_mk_version}/kibana-4.6/
+    mirror_mirantis_openstack_xenial_kibana_46_distribution: stable
+    mirror_mirantis_openstack_xenial_kibana_46_components: main
     mirror_mirantis_openstack_xenial_kibana_46_gpgkeys:
-      - A76882D3
+      - D88E42B4
   aptly:
     server:
       mirror:
@@ -15,9 +14,8 @@
           distribution: ${_param:mirror_mirantis_openstack_xenial_kibana_46_distribution}
           components: ${_param:mirror_mirantis_openstack_xenial_kibana_46_components}
           architectures: amd64
-          key_url: ${_param:mirror_mirantis_openstack_xenial_kibana_46_key_url}
           gpgkeys: ${_param:mirror_mirantis_openstack_xenial_kibana_46_gpgkeys}
           publisher:
-            component: ${_param:mirror_mirantis_openstack_xenial_kibana_46_components}
+            component: kibana-46
             distributions:
               - ubuntu-xenial/kibana/4.6/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/kibana/5x.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/kibana/5x.yml
index c1b061e..c739bca 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/kibana/5x.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/kibana/5x.yml
@@ -1,12 +1,11 @@
 parameters:
   _param:
     apt_mk_version: stable
-    mirror_mirantis_openstack_xenial_kibana_5x_source: http://apt.mirantis.com/xenial/kibana/5.x/
-    mirror_mirantis_openstack_xenial_kibana_5x_distribution: ${_param:apt_mk_version}
-    mirror_mirantis_openstack_xenial_kibana_5x_components: "kibana-5x"
-    mirror_mirantis_openstack_xenial_kibana_5x_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mirantis_openstack_xenial_kibana_5x_source: http://mirror.mirantis.com/${_param:apt_mk_version}/elasticsearch-5.x/
+    mirror_mirantis_openstack_xenial_kibana_5x_distribution: stable
+    mirror_mirantis_openstack_xenial_kibana_5x_components: main
     mirror_mirantis_openstack_xenial_kibana_5x_gpgkeys:
-      - A76882D3
+      - D88E42B4
   aptly:
     server:
       mirror:
@@ -15,9 +14,8 @@
           distribution: ${_param:mirror_mirantis_openstack_xenial_kibana_5x_distribution}
           components: ${_param:mirror_mirantis_openstack_xenial_kibana_5x_components}
           architectures: amd64
-          key_url: ${_param:mirror_mirantis_openstack_xenial_kibana_5x_key_url}
           gpgkeys: ${_param:mirror_mirantis_openstack_xenial_kibana_5x_gpgkeys}
           publisher:
-            component: ${_param:mirror_mirantis_openstack_xenial_kibana_5x_components}
+            component: kibana-5x
             distributions:
               - ubuntu-xenial/kibana/5.x/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/maas.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/maas.yml
index 3d63b00..51abdf8 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/maas.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/maas.yml
@@ -1,12 +1,11 @@
 parameters:
   _param:
     apt_mk_version: stable
-    mirror_mirantis_openstack_xenial_maas_source: http://apt.mirantis.com/xenial/maas/
-    mirror_mirantis_openstack_xenial_maas_distribution: ${_param:apt_mk_version}
+    mirror_mirantis_openstack_xenial_maas_source: http://mirror.mirantis.com/${_param:apt_mk_version}/maas/
+    mirror_mirantis_openstack_xenial_maas_distribution: xenial
     mirror_mirantis_openstack_xenial_maas_components: main
-    mirror_mirantis_openstack_xenial_maas_key_url: "http://apt.mirantis.com/public.gpg"
     mirror_mirantis_openstack_xenial_maas_gpgkeys:
-      - A76882D3
+      - 684D4A1C
   aptly:
     server:
       mirror:
@@ -15,9 +14,8 @@
           distribution: ${_param:mirror_mirantis_openstack_xenial_maas_distribution}
           components: ${_param:mirror_mirantis_openstack_xenial_maas_components}
           architectures: amd64
-          key_url: ${_param:mirror_mirantis_openstack_xenial_maas_key_url}
           gpgkeys: ${_param:mirror_mirantis_openstack_xenial_maas_gpgkeys}
           publisher:
-            component: ${_param:mirror_mirantis_openstack_xenial_maas_components}
+            component: main
             distributions:
               - ubuntu-xenial/maas/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/saltstack/salt-2016-3.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/saltstack/salt-2016-3.yml
index 86a33e6..13e4e50 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/saltstack/salt-2016-3.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/saltstack/salt-2016-3.yml
@@ -1,12 +1,11 @@
 parameters:
   _param:
     apt_mk_version: stable
-    mirror_mirantis_openstack_xenial_saltstack_2016_3_source: http://apt.mirantis.com/xenial/salt/2016.3/
-    mirror_mirantis_openstack_xenial_saltstack_2016_3_distribution: ${_param:apt_mk_version}
+    mirror_mirantis_openstack_xenial_saltstack_2016_3_source: http://mirror.mirantis.com/${_param:apt_mk_version}/saltstack-2016.3/
+    mirror_mirantis_openstack_xenial_saltstack_2016_3_distribution: xenial
     mirror_mirantis_openstack_xenial_saltstack_2016_3_components: main
-    mirror_mirantis_openstack_xenial_saltstack_2016_3_key_url: "http://apt.mirantis.com/public.gpg"
     mirror_mirantis_openstack_xenial_saltstack_2016_3_gpgkeys:
-      - A76882D3
+      - DE57BFBE
   aptly:
     server:
       mirror:
@@ -15,9 +14,8 @@
           distribution: ${_param:mirror_mirantis_openstack_xenial_saltstack_2016_3_distribution}
           components: ${_param:mirror_mirantis_openstack_xenial_saltstack_2016_3_components}
           architectures: amd64
-          key_url: ${_param:mirror_mirantis_openstack_xenial_saltstack_2016_3_key_url}
           gpgkeys: ${_param:mirror_mirantis_openstack_xenial_saltstack_2016_3_gpgkeys}
           publisher:
-            component: ${_param:mirror_mirantis_openstack_xenial_saltstack_2016_3_components}
+            component: main
             distributions:
               - ubuntu-xenial/salt/2016.3/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/saltstack/salt-2017-7.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/saltstack/salt-2017-7.yml
index 0478cde..98cfb1d 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/saltstack/salt-2017-7.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/saltstack/salt-2017-7.yml
@@ -1,12 +1,11 @@
 parameters:
   _param:
     apt_mk_version: stable
-    mirror_mirantis_openstack_xenial_saltstack_2017_7_source: http://apt.mirantis.com/xenial/salt/2017.7/
-    mirror_mirantis_openstack_xenial_saltstack_2017_7_distribution: ${_param:apt_mk_version}
+    mirror_mirantis_openstack_xenial_saltstack_2017_7_source: http://mirror.mirantis.com/${_param:apt_mk_version}/saltstack-2017.7/
+    mirror_mirantis_openstack_xenial_saltstack_2017_7_distribution: xenial
     mirror_mirantis_openstack_xenial_saltstack_2017_7_components: main
-    mirror_mirantis_openstack_xenial_saltstack_2017_7_key_url: "http://apt.mirantis.com/public.gpg"
     mirror_mirantis_openstack_xenial_saltstack_2017_7_gpgkeys:
-      - A76882D3
+      - DE57BFBE
   aptly:
     server:
       mirror:
@@ -15,9 +14,8 @@
           distribution: ${_param:mirror_mirantis_openstack_xenial_saltstack_2017_7_distribution}
           components: ${_param:mirror_mirantis_openstack_xenial_saltstack_2017_7_components}
           architectures: amd64
-          key_url: ${_param:mirror_mirantis_openstack_xenial_saltstack_2017_7_key_url}
           gpgkeys: ${_param:mirror_mirantis_openstack_xenial_saltstack_2017_7_gpgkeys}
           publisher:
-            component: ${_param:mirror_mirantis_openstack_xenial_saltstack_2017_7_components}
+            component: main
             distributions:
               - ubuntu-xenial/salt/2017.7/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/sensu.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/sensu.yml
index 505ec97..888c203 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/sensu.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/sensu.yml
@@ -1,12 +1,12 @@
 parameters:
   _param:
     apt_mk_version: stable
-    mirror_mirantis_openstack_xenial_sensu_source: http://apt.mirantis.com/xenial/sensu/
-    mirror_mirantis_openstack_xenial_sensu_distribution: ${_param:apt_mk_version}
+    mirror_mirantis_openstack_xenial_sensu_source: http://mirror.mirantis.com/${_param:apt_mk_version}/sensu/
+    mirror_mirantis_openstack_xenial_sensu_distribution: sensu
     mirror_mirantis_openstack_xenial_sensu_components: main
     mirror_mirantis_openstack_xenial_sensu_key_url: "http://apt.mirantis.com/public.gpg"
     mirror_mirantis_openstack_xenial_sensu_gpgkeys:
-      - A76882D3
+      - EB9C94BB
   aptly:
     server:
       mirror:
@@ -15,9 +15,8 @@
           distribution: ${_param:mirror_mirantis_openstack_xenial_sensu_distribution}
           components: ${_param:mirror_mirantis_openstack_xenial_sensu_components}
           architectures: amd64
-          key_url: ${_param:mirror_mirantis_openstack_xenial_sensu_key_url}
           gpgkeys: ${_param:mirror_mirantis_openstack_xenial_sensu_gpgkeys}
           publisher:
-            component: ${_param:mirror_mirantis_openstack_xenial_sensu_components}
+            component: main
             distributions:
               - ubuntu-xenial/sensu/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/debmirror/mirror_mirantis_com/ubuntu/xenial.yml b/debmirror/mirror_mirantis_com/ubuntu/xenial.yml
new file mode 100644
index 0000000..73047b2
--- /dev/null
+++ b/debmirror/mirror_mirantis_com/ubuntu/xenial.yml
@@ -0,0 +1,32 @@
+parameters:
+  _param:
+    apt_mk_version: 'stable'
+    mirror_mirantis_com_ubuntu_xenial_force: False
+  debmirror:
+    client:
+      enabled: true
+      mirrors:
+        mirror_mirantis_com_ubuntu_xenial:
+          force: ${_param:mirror_mirantis_com_ubuntu_xenial_force}
+          lock_target: True
+          extra_flags: [ '--verbose', '--progress', '--nosource', '--no-check-gpg', '--rsync-extra=none' ]
+          method: "rsync"
+          arch: [ 'amd64' ]
+          mirror_host: "mirror.mirantis.com"
+          mirror_root: ":mirror/${_param:apt_mk_version}/ubuntu/"
+          target_dir: "/srv/aptly/public/ubuntu/"
+          log_file: "/var/log/debmirror/mirror_mirantis_com_ubuntu_xenial.log"
+          dist: [ xenial , xenial-security, xenial-updates ]
+          section: [ main , multiverse, restricted, universe ]
+          exclude_deb_section: [ games, gnome, Xfce, sound, electronics, graphics, hamradio , doc, localization, kde, video ]
+          filter:
+            01: "--exclude='/android*'"
+            02: "--exclude='/firefox*'"
+            03: "--exclude='/chromium-browser*'"
+            04: "--exclude='/ceph*'"
+            05: "--exclude='/*-wallpapers*'"
+            06: "--exclude='/language-pack-(?!en)'"
+            07: "--include='/main(.*)manpages'"
+            08: "--include='/main(.*)python-(.*)doc'"
+            09: "--include='/main(.*)python-(.*)network'"
+
diff --git a/devops_portal/service/stacklight-prometheus.yml b/devops_portal/service/stacklight-prometheus.yml
index 119c13f..9b5a74f 100644
--- a/devops_portal/service/stacklight-prometheus.yml
+++ b/devops_portal/service/stacklight-prometheus.yml
@@ -6,7 +6,7 @@
     config:
       service:
         stacklight-prometheus:
-          configure_proxy: false
+          configure_proxy: true
           enabled: true
           endpoint:
             address: ${_param:grafana_prometheus_address}
diff --git a/docker/swarm/stack/aptly.yml b/docker/swarm/stack/aptly.yml
index 36c719b..89ec5ec 100644
--- a/docker/swarm/stack/aptly.yml
+++ b/docker/swarm/stack/aptly.yml
@@ -2,6 +2,7 @@
 - system.docker
 parameters:
   _param:
+    docker_stack_aptly_public_replicas: 3
     docker_image_aptly:
       api: tcpcloud/aptly-api
       public: tcpcloud/aptly-public
@@ -25,7 +26,7 @@
                 - /srv/volumes/aptly:/var/lib/aptly
             public:
               deploy:
-                replicas: 3
+                replicas: ${_param:docker_stack_aptly_public_replicas}
                 restart_policy:
                   condition: any
               image: ${_param:docker_image_aptly:public}
diff --git a/docker/swarm/stack/docker.yml b/docker/swarm/stack/docker.yml
index 7f8c153..f861718 100644
--- a/docker/swarm/stack/docker.yml
+++ b/docker/swarm/stack/docker.yml
@@ -2,6 +2,7 @@
   _param:
     docker_image_registry: registry:2
     docker_image_visualizer: dockersamples/visualizer
+    docker_stack_registry_replicas: 3
   docker:
     client:
       stack:
@@ -11,7 +12,7 @@
               environment:
                 REGISTRY_HTTP_SECRET: ${_param:docker_registry_http_secret}
               deploy:
-                replicas: 3
+                replicas: ${_param:docker_stack_registry_replicas}
                 restart_policy:
                   condition: any
               image: ${_param:docker_image_registry}
diff --git a/galera/server/database/gnocchi.yml b/galera/server/database/gnocchi.yml
new file mode 100644
index 0000000..1ee36da
--- /dev/null
+++ b/galera/server/database/gnocchi.yml
@@ -0,0 +1,19 @@
+parameters:
+  _param:
+    mysql_gnocchi_ssl_option: []
+  mysql:
+    server:
+      database:
+        gnocchi:
+          encoding: utf8
+          users:
+          - name: gnocchi
+            password: ${_param:mysql_gnocchi_password}
+            host: '%'
+            rights: all
+            ssl_option: ${_param:mysql_gnocchi_ssl_option}
+          - name: gnocchi
+            password: ${_param:mysql_gnocchi_password}
+            host: ${_param:cluster_local_address}
+            rights: all
+            ssl_option: ${_param:mysql_gnocchi_ssl_option}
diff --git a/galera/server/database/manila.yml b/galera/server/database/manila.yml
new file mode 100644
index 0000000..3339b83
--- /dev/null
+++ b/galera/server/database/manila.yml
@@ -0,0 +1,15 @@
+parameters:
+  mysql:
+    server:
+      database:
+        manila:
+          encoding: utf8
+          users:
+          - name: manila
+            password: ${_param:mysql_manila_password}
+            host: '%'
+            rights: all
+          - name: manila
+            password: ${_param:mysql_manila_password}
+            host: ${_param:cluster_local_address}
+            rights: all
diff --git a/gnocchi/common/coordination/redis.yml b/gnocchi/common/coordination/redis.yml
new file mode 100644
index 0000000..673d9bd
--- /dev/null
+++ b/gnocchi/common/coordination/redis.yml
@@ -0,0 +1,7 @@
+parameters:
+  _param:
+    gnocchi_coordination_url: redis://${_param:single_address}:6379
+  gnocchi:
+    common:
+      coordination_backend:
+        url: ${_param:gnocchi_coordination_url}
diff --git a/gnocchi/common/storage/file.yml b/gnocchi/common/storage/file.yml
new file mode 100644
index 0000000..c035723
--- /dev/null
+++ b/gnocchi/common/storage/file.yml
@@ -0,0 +1,9 @@
+parameters:
+  _param:
+    gnocchi_storage_file_basepath: /var/lib/gnocchi
+    gnocchi_storage_driver: file
+  gnocchi:
+    common:
+      storage:
+        driver: ${_param:gnocchi_storage_driver}
+        file_basepath: ${_param:gnocchi_storage_file_basepath}
diff --git a/gnocchi/common/storage/incoming/file.yml b/gnocchi/common/storage/incoming/file.yml
new file mode 100644
index 0000000..52d57f7
--- /dev/null
+++ b/gnocchi/common/storage/incoming/file.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    gnocchi_storage_incoming_file_basepath: /var/lib/gnocchi
+    gnocchi_storage_incoming_driver: file
+  gnocchi:
+    common:
+      storage:
+        incoming:
+          driver: ${_param:gnocchi_storage_incoming_driver}
+          file_basepath: ${_param:gnocchi_storage_incoming_file_basepath}
diff --git a/gnocchi/common/storage/incoming/redis.yml b/gnocchi/common/storage/incoming/redis.yml
new file mode 100644
index 0000000..d0f04d7
--- /dev/null
+++ b/gnocchi/common/storage/incoming/redis.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    gnocchi_storage_incoming_redis_url: redis://${_param:single_address}:6379
+    gnocchi_storage_incoming_driver: redis
+  gnocchi:
+    common:
+      storage:
+        incoming:
+          driver: ${_param:gnocchi_storage_incoming_driver}
+          redis_url: ${_param:gnocchi_storage_incoming_redis_url}
\ No newline at end of file
diff --git a/gnocchi/common/storage/redis.yml b/gnocchi/common/storage/redis.yml
new file mode 100644
index 0000000..d71fcf0
--- /dev/null
+++ b/gnocchi/common/storage/redis.yml
@@ -0,0 +1,9 @@
+parameters:
+  _param:
+    gnocchi_storage_redis_url: redis://${_param:single_address}:6379
+    gnocchi_storage_driver: redis
+  gnocchi:
+    common:
+      storage:
+        driver: ${_param:gnocchi_storage_driver}
+        redis_url: ${_param:gnocchi_storage_redis_url}
\ No newline at end of file
diff --git a/gnocchi/server/cluster.yml b/gnocchi/server/cluster.yml
new file mode 100644
index 0000000..e5a4650
--- /dev/null
+++ b/gnocchi/server/cluster.yml
@@ -0,0 +1,6 @@
+classes:
+- service.gnocchi.server.cluster
+- service.haproxy.proxy.single
+- system.apache.server.site.gnocchi
+- system.haproxy.proxy.listen.openstack.gnocchi
+- system.keepalived.cluster.instance.openstack_telemetry_vip
diff --git a/gnocchi/server/single.yml b/gnocchi/server/single.yml
new file mode 100644
index 0000000..035491e
--- /dev/null
+++ b/gnocchi/server/single.yml
@@ -0,0 +1,2 @@
+classes:
+- service.gnocchi.server.single
diff --git a/gnocchi/statsd/single.yml b/gnocchi/statsd/single.yml
new file mode 100644
index 0000000..4be519f
--- /dev/null
+++ b/gnocchi/statsd/single.yml
@@ -0,0 +1,2 @@
+classes:
+- service.gnocchi.statsd.single
\ No newline at end of file
diff --git a/haproxy/proxy/listen/openstack/gnocchi.yml b/haproxy/proxy/listen/openstack/gnocchi.yml
new file mode 100644
index 0000000..ec2bb20
--- /dev/null
+++ b/haproxy/proxy/listen/openstack/gnocchi.yml
@@ -0,0 +1,23 @@
+parameters:
+  haproxy:
+    proxy:
+      listen:
+        gnocchi_api:
+          type: openstack-service
+          service_name: gnocchi
+          binds:
+          - address: ${_param:cluster_vip_address}
+            port: 8041
+          servers:
+          - name: ${_param:cluster_node01_hostname}
+            host: ${_param:cluster_node01_address}
+            port: 8041
+            params: check
+          - name: ${_param:cluster_node02_hostname}
+            host: ${_param:cluster_node02_address}
+            port: 8041
+            params: check
+          - name: ${_param:cluster_node03_hostname}
+            host: ${_param:cluster_node03_address}
+            port: 8041
+            params: check
\ No newline at end of file
diff --git a/haproxy/proxy/listen/openstack/manila.yml b/haproxy/proxy/listen/openstack/manila.yml
new file mode 100644
index 0000000..a28f365
--- /dev/null
+++ b/haproxy/proxy/listen/openstack/manila.yml
@@ -0,0 +1,23 @@
+parameters:
+  haproxy:
+    proxy:
+      listen:
+        manila_api:
+          type: openstack-service
+          service_name: manila
+          binds:
+          - address: ${_param:cluster_vip_address}
+            port: 8786
+          servers:
+          - name: ${_param:cluster_node01_hostname}
+            host: ${_param:cluster_node01_address}
+            port: 8786
+            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
+          - name: ${_param:cluster_node02_hostname}
+            host: ${_param:cluster_node02_address}
+            port: 8786
+            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
+          - name: ${_param:cluster_node03_hostname}
+            host: ${_param:cluster_node03_address}
+            port: 8786
+            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
diff --git a/haproxy/proxy/listen/openstack/nova-placement.yml b/haproxy/proxy/listen/openstack/nova-placement.yml
index 9fec963..58c9dd2 100644
--- a/haproxy/proxy/listen/openstack/nova-placement.yml
+++ b/haproxy/proxy/listen/openstack/nova-placement.yml
@@ -2,18 +2,21 @@
   haproxy:
     proxy:
       listen:
+        # Nova placement API returns 401 when doing GET to root URL, while
+        # other serivces normally returns 200 and API versions data.
         nova_placement_api:
           mode: http
-          binds:
-          - address: ${_param:cluster_vip_address}
-            port: 8778
+          service_name: nova_placement
           options:
-          - httpclose
-          - httplog
+            - httpclose
+            - httplog
           health-check:
             http:
               options:
               - expect status 401
+          binds:
+          - address: ${_param:cluster_vip_address}
+            port: 8778
           servers:
           - name: ${_param:cluster_node01_hostname}
             host: ${_param:cluster_node01_address}
diff --git a/haproxy/proxy/listen/openstack/panko.yml b/haproxy/proxy/listen/openstack/panko.yml
new file mode 100644
index 0000000..51eb030
--- /dev/null
+++ b/haproxy/proxy/listen/openstack/panko.yml
@@ -0,0 +1,23 @@
+parameters:
+  haproxy:
+    proxy:
+      listen:
+        panko_api:
+          type: general-service
+          check: false
+          binds:
+          - address: ${_param:cluster_vip_address}
+            port: 8977
+          servers:
+          - name: ${_param:cluster_node01_hostname}
+            host: ${_param:cluster_node01_address}
+            port: 8977
+            params: check
+          - name: ${_param:cluster_node02_hostname}
+            host: ${_param:cluster_node02_address}
+            port: 8977
+            params: check
+          - name: ${_param:cluster_node03_hostname}
+            host: ${_param:cluster_node03_address}
+            port: 8977
+            params: check
\ No newline at end of file
diff --git a/horizon/server/plugin/manila.yml b/horizon/server/plugin/manila.yml
new file mode 100644
index 0000000..ec00da6
--- /dev/null
+++ b/horizon/server/plugin/manila.yml
@@ -0,0 +1,17 @@
+parameters:
+  horizon:
+    server:
+      plugin:
+        manila:
+          source:
+            engine: pkg
+            name: python-manila-ui
+      policy:
+        share:
+          source: file
+          name: manila_policy.json
+          enabled: true
+        sharev2:
+          source: file
+          name: manila_policy.json
+          enabled: true
diff --git a/horizon/server/plugin/neutron_bgpvpn.yml b/horizon/server/plugin/neutron_bgpvpn.yml
new file mode 100644
index 0000000..7ad75ff
--- /dev/null
+++ b/horizon/server/plugin/neutron_bgpvpn.yml
@@ -0,0 +1,8 @@
+parameters:
+  horizon:
+    server:
+      plugin:
+        bgpvpn:
+          source:
+            engine: pkg
+            name: python-networking-bgpvpn
diff --git a/jenkins/client/job/debian/packages/extra.yml b/jenkins/client/job/debian/packages/extra.yml
index 61d7ee2..0a21a55 100644
--- a/jenkins/client/job/debian/packages/extra.yml
+++ b/jenkins/client/job/debian/packages/extra.yml
@@ -205,6 +205,10 @@
               dist: xenial
               build: pipeline
               branch: debian/xenial
+            - package: python-backports.ssl-match-hostname
+              dist: xenial
+              build: pipeline
+              branch: debian/xenial
           template:
             type: workflow-scm
             concurrent: false
diff --git a/jenkins/client/job/debian/packages/salt.yml b/jenkins/client/job/debian/packages/salt.yml
index 6089195..6230530 100644
--- a/jenkins/client/job/debian/packages/salt.yml
+++ b/jenkins/client/job/debian/packages/salt.yml
@@ -242,6 +242,9 @@
             - name: openvstorage
               upload_source_package: false
               dist: trusty
+            - name: oslo-templates
+              upload_source_package: false
+              dist: trusty
             - name: owncloud
               upload_source_package: false
               dist: trusty
@@ -581,6 +584,9 @@
             - name: openvstorage
               upload_source_package: true
               dist: xenial
+            - name: oslo-templates
+              upload_source_package: true
+              dist: xenial
             - name: owncloud
               upload_source_package: true
               dist: xenial
diff --git a/jenkins/client/job/deploy/lab/cleanup.yml b/jenkins/client/job/deploy/lab/cleanup.yml
index 0db6463..6ecaeee 100644
--- a/jenkins/client/job/deploy/lab/cleanup.yml
+++ b/jenkins/client/job/deploy/lab/cleanup.yml
@@ -87,7 +87,7 @@
               default: "openstack-devcloud-credentials"
             OPENSTACK_API_PROJECT:
               type: string
-              default: "mcp-mk"
+              default: "mcp-k8s, mcp-maintenance, mcp-mk, mcp-networking, mcp-opencontrail, mcp-oss, mcp-platform,  mcp-scale, mcp-stacklight, mcp-support"
             OPENSTACK_API_CLIENT:
               type: string
               default: ""
diff --git a/jenkins/client/job/deploy/lab/release/mcp11.yml b/jenkins/client/job/deploy/lab/release/mcp11.yml
index 657e1d1..1b62f60 100644
--- a/jenkins/client/job/deploy/lab/release/mcp11.yml
+++ b/jenkins/client/job/deploy/lab/release/mcp11.yml
@@ -27,6 +27,24 @@
         stack_type: heat
         stack_test: ""
         job_timer: ""
+      - stack_name: virtual_mcp11_ironic_ssl_small
+        stack_env: devcloud
+        stack_install: core,openstack
+        stack_type: heat
+        stack_test: ""
+        job_timer: ""
+      - stack_name: virtual_mcp11_aio_manila
+        stack_env: devcloud
+        stack_install: core,openstack,ovs
+        stack_type: heat
+        stack_test: ""
+        job_timer: ""
+      - stack_name: virtual_mcp11_aio_telemetry
+        stack_env: devcloud
+        stack_install: core,openstack,ovs
+        stack_type: heat
+        stack_test: ""
+        job_timer: ""
       - stack_name: virtual_mcp11_aio
         stack_env: devcloud
         stack_install: core,openstack,ovs
@@ -81,3 +99,15 @@
         stack_type: heat
         stack_test: ""
         job_timer: ""
+      - stack_name: virtual_mcp_pike_dvr
+        stack_env: devcloud
+        stack_install: core,openstack,dvr
+        stack_type: heat
+        stack_test: ""
+        job_timer: ""
+      - stack_name: virtual_mcp_pike_dvr_ssl
+        stack_env: devcloud
+        stack_install: core,openstack,dvr
+        stack_type: heat
+        stack_test: ""
+        job_timer: ""
diff --git a/jenkins/client/job/deploy/openstack.yml b/jenkins/client/job/deploy/openstack.yml
index d9b1c29..a9f2007 100644
--- a/jenkins/client/job/deploy/openstack.yml
+++ b/jenkins/client/job/deploy/openstack.yml
@@ -26,7 +26,7 @@
             STACK_INSTALL:
               type: string
               default: "core,kvm,openstack,stacklight"
-
+              description: "Components to be installed. Valid values are 'core,kvm,k8s,openstack,contrail,ovs,ceph,oss,cicd,stacklight,sl-legacy,finalize'. For all deployments it's recommended to run 'finalize' as a final step as Salt highstate on all nodes will be run."
             # salt master
             SALT_MASTER_CREDENTIALS:
               type: string
diff --git a/jenkins/client/job/deploy/update/init.yml b/jenkins/client/job/deploy/update/init.yml
index 4e6f460..0b10ff2 100644
--- a/jenkins/client/job/deploy/update/init.yml
+++ b/jenkins/client/job/deploy/update/init.yml
@@ -13,3 +13,4 @@
   - system.jenkins.client.job.deploy.update.restore_mysql
   - system.jenkins.client.job.deploy.update.restore_cassandra
   - system.jenkins.client.job.deploy.update.restore_zookeeper
+  - system.jenkins.client.job.deploy.update.virt_snapshot
diff --git a/jenkins/client/job/deploy/update/upgrade.yml b/jenkins/client/job/deploy/update/upgrade.yml
index 2c76753..7e94c10 100644
--- a/jenkins/client/job/deploy/update/upgrade.yml
+++ b/jenkins/client/job/deploy/update/upgrade.yml
@@ -36,6 +36,10 @@
               type: boolean
               default: 'true'
               description: "Rollback if control upgrade fails"
+            OPERATING_SYSTEM_RELEASE_UPGRADE:
+              type: boolean
+              default: 'false'
+              description: "Set to true if operating system release upgrade is desired. For ex. from Ubuntu 14.04 currently running on ctl and prx nodes to Ubuntu 16.04"
             SKIP_VM_RELAUNCH:
               type: boolean
               default: 'false'
diff --git a/jenkins/client/job/deploy/update/virt_snapshot.yml b/jenkins/client/job/deploy/update/virt_snapshot.yml
new file mode 100644
index 0000000..0388ed1
--- /dev/null
+++ b/jenkins/client/job/deploy/update/virt_snapshot.yml
@@ -0,0 +1,62 @@
+#
+# Job to manage libvirt live snapshots
+#
+parameters:
+  _param:
+    jenkins_salt_api_url: "http://${_param:salt_master_host}:6969"
+  jenkins:
+    client:
+      job:
+        manage-virt-snapshot:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Deploy - virt snapshot VM"
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            branch: "${_param:jenkins_pipelines_branch}"
+            credentials: "gerrit"
+            script: libvirt-live-snapshots.groovy
+          param:
+            SALT_MASTER_URL:
+              type: string
+              default: "${_param:jenkins_salt_api_url}"
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt"
+            CREATE_LIVE_SNAPSHOT:
+              type: boolean
+              default: 'true'
+              description: "Ensures that the live snapshot exists"
+            ROLLBACK_LIVE_SNAPSHOT:
+              type: boolean
+              default: 'false'
+              description: "Rollback the VM to a state before live snapshot was taken"
+            REMOVE_LIVE_SNAPSHOT:
+              type: boolean
+              default: 'false'
+              description: "Ensures that the live snapshot does not exist"
+            MERGE_LIVE_SNAPSHOT:
+              type: boolean
+              default: 'false'
+              description: "Ensures that the live snapshot is merged into it's base image"
+            NODE_PROVIDER:
+              type: string
+              default: "kvm01"
+              description: "KVM node that hosts the VM (for ex. kvm02)"
+            TARGET:
+              type: string
+              default: "ctl01"
+              description: "Unique identification of the VM being snapshoted without domain name (for ex. ctl01)"
+            SNAPSHOT_NAME:
+              type: string
+              default: "snapshot1"
+              description: "Snapshot name"
+            PATH:
+              type: string
+              default: "/var/lib/libvirt/images"
+              description: "Path where snapshot image and dumpxml are being put"
+            DISK_NAME:
+              type: string
+              default: "vda"
+              description: "Disk name of the snapshot"
diff --git a/jenkins/client/job/docker/cicd/init.yml b/jenkins/client/job/docker/cicd/init.yml
new file mode 100644
index 0000000..5b1df1d
--- /dev/null
+++ b/jenkins/client/job/docker/cicd/init.yml
@@ -0,0 +1,3 @@
+classes:
+  - system.jenkins.client.job.docker.cicd.rally
+  - system.jenkins.client.job.docker.cicd.tempest
diff --git a/jenkins/client/job/docker/cicd/rally.yml b/jenkins/client/job/docker/cicd/rally.yml
new file mode 100644
index 0000000..849d453
--- /dev/null
+++ b/jenkins/client/job/docker/cicd/rally.yml
@@ -0,0 +1,56 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        docker-build-images-docker-ci-rally:
+          name: docker-build-images-docker-ci-rally
+          discard:
+            build:
+              keep_num: 30
+            artifact:
+              keep_num: 30
+          type: workflow-scm
+          concurrent: true
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/oss/jenkins/pipelines"
+            credentials: "gerrit"
+            script: docker-build-image-pipeline.groovy
+          trigger:
+            gerrit:
+              project:
+                "mcp/docker-ci-rally":
+                  branches:
+                    - master
+              event:
+                patchset:
+                  - created:
+                      excludeDrafts: false
+                      excludeNoCodeChange: false
+                change:
+                  - merged
+                comment:
+                  - addedContains:
+                      commentAddedCommentContains: 'rebuild'
+          param:
+            IMAGE_NAME:
+              type: string
+              default: "ci-rally"
+            IMAGE_TAGS:
+              type: string
+              default: ""
+            CREDENTIALS_ID:
+              type: string
+              default: "gerrit"
+            DOCKER_REGISTRY:
+              type: string
+              default: "docker-dev-virtual.docker.mirantis.net"
+            PROJECT_NAMESPACE:
+              type: string
+              default: "cicd"
+            DOCKERFILE_PATH:
+              type: string
+              default: "Dockerfile"
+            CONTEXT_PATH:
+              type: string
+              default: "."
diff --git a/jenkins/client/job/docker/cicd/tempest.yml b/jenkins/client/job/docker/cicd/tempest.yml
new file mode 100644
index 0000000..7b68403
--- /dev/null
+++ b/jenkins/client/job/docker/cicd/tempest.yml
@@ -0,0 +1,56 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        docker-build-images-docker-ci-tempest:
+          name: docker-build-images-docker-ci-tempest
+          discard:
+            build:
+              keep_num: 30
+            artifact:
+              keep_num: 30
+          type: workflow-scm
+          concurrent: true
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/oss/jenkins/pipelines"
+            credentials: "gerrit"
+            script: docker-build-image-pipeline.groovy
+          trigger:
+            gerrit:
+              project:
+                "mcp/docker-ci-tempest":
+                  branches:
+                    - master
+              event:
+                patchset:
+                  - created:
+                      excludeDrafts: false
+                      excludeNoCodeChange: false
+                change:
+                  - merged
+                comment:
+                  - addedContains:
+                      commentAddedCommentContains: 'rebuild'
+          param:
+            IMAGE_NAME:
+              type: string
+              default: "ci-tempest"
+            IMAGE_TAGS:
+              type: string
+              default: ""
+            CREDENTIALS_ID:
+              type: string
+              default: "gerrit"
+            DOCKER_REGISTRY:
+              type: string
+              default: "docker-dev-virtual.docker.mirantis.net"
+            PROJECT_NAMESPACE:
+              type: string
+              default: "cicd"
+            DOCKERFILE_PATH:
+              type: string
+              default: "Dockerfile"
+            CONTEXT_PATH:
+              type: string
+              default: "."
diff --git a/jenkins/client/job/git-mirrors/2way.yml b/jenkins/client/job/git-mirrors/2way.yml
index 3b1a62f..4b4d0a3 100644
--- a/jenkins/client/job/git-mirrors/2way.yml
+++ b/jenkins/client/job/git-mirrors/2way.yml
@@ -11,6 +11,14 @@
               source: mcp/mcp-common-scripts
               target: Mirantis/mcp-common-scripts
               branches: "master"
+            - name: mcp-local-repo-model
+              source: mcp/mcp-local-repo-model
+              target: Mirantis/mcp-local-repo-model
+              branches: "master"
+            - name: mcp-offline-model
+              source: mcp/mcp-offline-model
+              target: Mirantis/mcp-offline-model
+              branches: "master"
           template:
             discard:
               build:
diff --git a/jenkins/client/job/oscore/qa.yml b/jenkins/client/job/oscore/qa.yml
index a8d4fae..258baa7 100644
--- a/jenkins/client/job/oscore/qa.yml
+++ b/jenkins/client/job/oscore/qa.yml
@@ -168,10 +168,18 @@
                 type: string
                 description: Tempest configuration file path inside container
                 default: "{{tempest_conf}}"
+              TEST_CONF:
+                type: string
+                description: Tempest configuration file path inside container
+                default: "{{test_conf}}"
               TEST_TEMPEST_TARGET:
                 type: string
                 description: Node to run tests
                 default: "{{tempest_target}}"
+              TEST_TARGET:
+                type: string
+                description: Node to run tests
+                default: "{{test_target}}"
               TEST_MODEL:
                 type: string
                 description: Environment salt model
diff --git a/jenkins/client/job/oscore/tests.yml b/jenkins/client/job/oscore/tests.yml
index f5bb092..8cedaf8 100644
--- a/jenkins/client/job/oscore/tests.yml
+++ b/jenkins/client/job/oscore/tests.yml
@@ -103,14 +103,26 @@
                 type: string
                 description: Tempest configuration file path inside container
                 default: "{{tempest_conf}}"
+              TEST_CONF:
+                type: string
+                description: Tempest configuration file path inside container
+                default: "{{test_conf}}"
               TEST_TEMPEST_TARGET:
                 type: string
                 description: Node to run tests
                 default: "{{tempest_target}}"
+              TEST_TARGET:
+                type: string
+                description: Node to run tests
+                default: "{{test_target}}"
               TEST_TEMPEST_PATTERN:
                 type: string
                 description: Run tests matched to pattern only
                 default: "tempest"
+              TEST_PATTERN:
+                type: string
+                description: Run tests matched to pattern only
+                default: "tempest"
               TEST_MODEL:
                 type: string
                 description: Environment salt model
@@ -253,14 +265,26 @@
                 type: string
                 description: Tempest configuration file path inside container
                 default: "{{tempest_conf}}"
+              TEST_CONF:
+                type: string
+                description: Tempest configuration file path inside container
+                default: "{{test_conf}}"
               TEST_TEMPEST_TARGET:
                 type: string
                 description: Node to run tests
                 default: "{{tempest_target}}"
+              TEST_TARGET:
+                type: string
+                description: Node to run tests
+                default: "{{test_target}}"
               TEST_TEMPEST_PATTERN:
                 type: string
                 description: Run tests matched to pattern only
                 default: "tempest --concurrency 2"
+              TEST_PATTERN:
+                type: string
+                description: Run tests matched to pattern only
+                default: "tempest --concurrency 2"
               TEST_MODEL:
                 type: string
                 description: Environment salt model
@@ -326,10 +350,17 @@
               TEST_TEMPEST_TARGET:
                 type: string
                 description: Salt target to run tests
+              TEST_TARGET:
+                type: string
+                description: Salt target to run tests
               TEST_TEMPEST_IMAGE:
                 type: string
                 description: Url to tempest docker image
                 default: 'docker-prod-local.artifactory.mirantis.com/mirantis/oscore/rally-tempest'
+              TEST_IMAGE:
+                type: string
+                description: Url to tempest docker image
+                default: 'docker-prod-local.artifactory.mirantis.com/mirantis/oscore/rally-tempest'
               LOCAL_TEMPEST_IMAGE:
                 type: string
                 description: Path to local docker image
@@ -337,17 +368,31 @@
               TEST_TEMPEST_PATTERN:
                 type: string
                 description: Run tests matched to pattern only
+              TEST_PATTERN:
+                type: string
+                description: Run tests matched to pattern only
               TEST_TEMPEST_SET:
                 type: string
                 description: Run tests matched by tempest set only
+              TEST_SET:
+                type: string
+                description: Run tests matched by tempest set only
               TEST_TEMPEST_CONCURRENCY:
                 type: string
                 description: How much test threads to run
                 default: "2"
+              TEST_CONCURRENCY:
+                type: string
+                description: How much test threads to run
+                default: "2"
               TEST_TEMPEST_CONF:
                 type: string
                 description: Tempest configuration file path inside container
                 default: "mcp.conf"
+              TEST_CONF:
+                type: string
+                description: Tempest configuration file path inside container
+                default: "mcp.conf"
               TEST_MODEL:
                 type: string
                 description: Environment salt model
@@ -406,6 +451,9 @@
               TEST_TEMPEST_TARGET:
                 type: string
                 description: Node to run tests
+              TEST_TARGET:
+                type: string
+                description: Node to run tests
               TEST_MILESTONE:
                 type: string
                 description: Product milestone
@@ -734,3 +782,11 @@
                 type: string
                 default: "{{systestJobPrefix}}"
                 description: "Systest job prefix. I.e. oscore-formula-systest-virtual_mcp11_aio-"
+              OPENSTACK_COMPONENTS_LIST:
+                type: string
+                description: "OpenStack related components list"
+                default: "{{openstack_components_list}}"
+              SOURCE_REPO_NAME:
+                type: string
+                description: "Name of the repo where packages are stored"
+                default: "{{source_repo_name}}"
diff --git a/jenkins/client/job/saas/init.yml b/jenkins/client/job/saas/init.yml
new file mode 100644
index 0000000..5ec05c1
--- /dev/null
+++ b/jenkins/client/job/saas/init.yml
@@ -0,0 +1,2 @@
+classes:
+  - system.jenkins.client.job.saas.test_saas_ui
diff --git a/jenkins/client/job/saas/test_saas_ui.yml b/jenkins/client/job/saas/test_saas_ui.yml
new file mode 100644
index 0000000..f49dd7f
--- /dev/null
+++ b/jenkins/client/job/saas/test_saas_ui.yml
@@ -0,0 +1,43 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        test-saas-ui:
+          name: test-saas-ui
+          discard:
+            build:
+              keep_num: 15
+            artifact:
+              keep_num: 15
+          type: workflow-scm
+          concurrent: true
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/oss/jenkins/pipelines"
+            credentials: "gerrit"
+            script: test-saas-ui-pipeline.groovy
+          trigger:
+            gerrit:
+              project:
+                "saas/frontend/ui":
+                  branches:
+                    - master
+              event:
+                patchset:
+                  - created:
+                      excludeDrafts: false
+                      excludeTrivialRebase: false
+                      excludeNoCodeChange: false
+                comment:
+                  - addedContains:
+                      commentAddedCommentContains: '^(?s:Patch Set \d+:.*(test|recheck|reverify)\s*)$'
+          param:
+            CREDENTIALS_ID:
+              type: string
+              default: "gerrit"
+            DEFAULT_GIT_URL:
+                type: string
+                default: "${_param:jenkins_gerrit_url}/saas/frontend/ui"
+            DEFAULT_GIT_REF:
+                type: string
+                default: master
diff --git a/jenkins/client/job/salt-formulas/git-mirrors/2way.yml b/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
index 249a7e5..bbb7209 100644
--- a/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
+++ b/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
@@ -9,6 +9,7 @@
           jobs:
             - name: aide
               branches: ${_param:salt_formulas_branches}
+              notification_recipients: ${_param:salt_formulas_notification_recipients}
             - name: aodh
               branches: ${_param:salt_formulas_branches}
               notification_recipients: ${_param:salt_formulas_notification_recipients}
@@ -36,6 +37,9 @@
             - name: barbican
               branches: ${_param:salt_formulas_branches}
               notification_recipients: ${_param:salt_formulas_notification_recipients}
+            - name: baremetal-simulator
+              branches: ${_param:salt_formulas_branches}
+              notification_recipients: ${_param:salt_formulas_notification_recipients}
             - name: billometer
               branches: ${_param:salt_formulas_branches}
               notification_recipients: ${_param:salt_formulas_notification_recipients}
@@ -84,6 +88,9 @@
             - name: docker
               branches: ${_param:salt_formulas_branches}
               notification_recipients: ${_param:salt_formulas_notification_recipients}
+            - name: dogtag
+              branches: ${_param:salt_formulas_branches}
+              notification_recipients: ${_param:salt_formulas_notification_recipients}
             - name: dovecot
               branches: ${_param:salt_formulas_branches}
               notification_recipients: ${_param:salt_formulas_notification_recipients}
diff --git a/jenkins/client/job/salt-formulas/tests.yml b/jenkins/client/job/salt-formulas/tests.yml
index b6d74f2..501dd38 100644
--- a/jenkins/client/job/salt-formulas/tests.yml
+++ b/jenkins/client/job/salt-formulas/tests.yml
@@ -53,6 +53,7 @@
             - name: haproxy
             - name: heat
             - name: heka
+            - name: heketi
             - name: helm
             - name: horizon
             - name: influxdb
@@ -95,6 +96,7 @@
             - name: openssh
             - name: openvpn
             - name: openvstorage
+            - name: oslo-templates
             - name: owncloud
             - name: panko
             - name: postfix
diff --git a/jenkins/client/job/salt-models/generate.yml b/jenkins/client/job/salt-models/generate.yml
index b2ef4e5..686e74d 100644
--- a/jenkins/client/job/salt-models/generate.yml
+++ b/jenkins/client/job/salt-models/generate.yml
@@ -19,25 +19,10 @@
               script: generate-cookiecutter-products.groovy
             param:
               # Cookiecutter
-              COOKIECUTTER_TEMPLATE_URL:
-                type: string
-                default: "${_param:jenkins_gerrit_url}/mk/cookiecutter-templates.git"
-              COOKIECUTTER_TEMPLATE_CREDENTIALS:
-                type: string
-                default: gerrit
-              COOKIECUTTER_TEMPLATE_BRANCH:
-                type: string
-                default: master
-              COOKIECUTTER_TEMPLATE_PATH:
-                type: string
-                default: "./"
               COOKIECUTTER_TEMPLATE_CONTEXT:
                 type: text
 
               # Other
-              SHARED_RECLASS_URL:
-                type: string
-                default: "${_param:jenkins_gerrit_url}/salt-models/reclass-system.git"
               EMAIL_ADDRESS:
                 type: string
               TEST_MODEL:
diff --git a/jenkins/client/job/salt-models/tests.yml b/jenkins/client/job/salt-models/tests.yml
index 9e6b8ac..c68e3d9 100644
--- a/jenkins/client/job/salt-models/tests.yml
+++ b/jenkins/client/job/salt-models/tests.yml
@@ -110,6 +110,10 @@
                     - addedContains:
                         commentAddedCommentContains: '^(?s:Patch Set \d+:.*(test|recheck|reverify)\s*)$'
             param:
+              TEST_CLUSTER_NAMES:
+                type: string
+                description: "Comma separated list of cluster names, empty string means all valid clusters"
+                default: "{{test_cluster_names}}"
               SALT_OPTS:
                 type: string
                 default: "--force-color"
diff --git a/jenkins/slave/libvirt.yml b/jenkins/slave/libvirt.yml
index e40b841..4ebaae2 100644
--- a/jenkins/slave/libvirt.yml
+++ b/jenkins/slave/libvirt.yml
@@ -14,6 +14,9 @@
           version: latest
         libvirt-bin:
           version: latest
+        # Reguired to simplify building custom cloud-init.iso
+        cloud-image-utils:
+          version: latest
   # Ensure FORWARD chain to be ACCEPT to avoid issue when running with docker
   # 1.13 and newer that sets chain to DROP, see:
   #   https://github.com/docker/docker/pull/28257
diff --git a/keepalived/cluster/instance/cicd_control_vip.yml b/keepalived/cluster/instance/cicd_control_vip.yml
index ab7f413..462cbd6 100644
--- a/keepalived/cluster/instance/cicd_control_vip.yml
+++ b/keepalived/cluster/instance/cicd_control_vip.yml
@@ -5,6 +5,12 @@
 parameters:
   keepalived:
     cluster:
+      vrrp_scripts:
+        vip:
+          content: "pidof haproxy && docker service ls"
+          interval: 30
+          rise: 1
+          fall: 1
       enabled: true
       instance:
         cicd_control_vip:
@@ -13,3 +19,4 @@
           interface: ${_param:keepalived_vip_interface}
           virtual_router_id: ${_param:keepalived_vip_virtual_router_id}
           priority: ${_param:keepalived_vip_priority}
+          track_script: vip
diff --git a/keepalived/cluster/instance/openstack_baremetal_vip.yml b/keepalived/cluster/instance/openstack_baremetal_vip.yml
index c3141b6..355cf53 100644
--- a/keepalived/cluster/instance/openstack_baremetal_vip.yml
+++ b/keepalived/cluster/instance/openstack_baremetal_vip.yml
@@ -11,6 +11,12 @@
     keepalived_openstack_baremetal_vip_priority: ${_param:keepalived_vip_priority}
   keepalived:
     cluster:
+      vrrp_scripts:
+        check_pidof:
+          args: "haproxy"
+          interval: 10
+          rise: 1
+          fall: 1
       enabled: true
       instance:
         openstack_baremetal_vip:
@@ -19,3 +25,4 @@
           interface: ${_param:keepalived_openstack_baremetal_vip_interface}
           virtual_router_id: ${_param:keepalived_openstack_baremetal_vip_virtual_router_id}
           priority: ${_param:keepalived_openstack_baremetal_vip_priority}
+          track_script: check_pidof
diff --git a/keepalived/cluster/instance/openstack_web_public_vip.yml b/keepalived/cluster/instance/openstack_web_public_vip.yml
index 8279b65..1080e62 100644
--- a/keepalived/cluster/instance/openstack_web_public_vip.yml
+++ b/keepalived/cluster/instance/openstack_web_public_vip.yml
@@ -9,6 +9,12 @@
     keepalived_openstack_web_public_vip_interface: eth1
   keepalived:
     cluster:
+      vrrp_scripts:
+        check_pidof:
+          args: "haproxy"
+          interval: 10
+          rise: 1
+          fall: 1
       enabled: true
       instance:
         openstack_web_public_vip:
@@ -17,3 +23,4 @@
           interface: ${_param:keepalived_openstack_web_public_vip_interface}
           virtual_router_id: 132
           priority: ${_param:keepalived_vip_priority}
+          track_script: check_pidof
diff --git a/keepalived/cluster/instance/prometheus_server_vip.yml b/keepalived/cluster/instance/prometheus_server_vip.yml
index 7bde702..aea8b55 100644
--- a/keepalived/cluster/instance/prometheus_server_vip.yml
+++ b/keepalived/cluster/instance/prometheus_server_vip.yml
@@ -5,8 +5,15 @@
 parameters:
   _param:
     keepalived_vip_priority: 101
+    keepalived_prometheus_vrrp_script_content: "pidof haproxy && docker service ls"
   keepalived:
     cluster:
+      vrrp_scripts:
+        vip:
+          content: ${_param:keepalived_prometheus_vrrp_script_content}
+          interval: 30
+          rise: 1
+          fall: 1
       enabled: true
       instance:
         prometheus_server_vip:
@@ -15,4 +22,4 @@
           interface: ${_param:keepalived_prometheus_vip_interface}
           virtual_router_id: 105
           priority: ${_param:keepalived_vip_priority}
-
+          track_script: vip
diff --git a/keepalived/cluster/instance/stacklight_log_vip.yml b/keepalived/cluster/instance/stacklight_log_vip.yml
index caa6754..44d3527 100644
--- a/keepalived/cluster/instance/stacklight_log_vip.yml
+++ b/keepalived/cluster/instance/stacklight_log_vip.yml
@@ -5,6 +5,12 @@
 parameters:
   keepalived:
     cluster:
+      vrrp_scripts:
+        check_pidof:
+          args: "haproxy"
+          interval: 10
+          rise: 1
+          fall: 1
       enabled: true
       instance:
         stacklight_log_vip:
@@ -13,3 +19,4 @@
           interface: ${_param:keepalived_stacklight_log_vip_interface}
           virtual_router_id: 110
           priority: 101
+          track_script: check_pidof
diff --git a/keepalived/cluster/instance/stacklight_monitor_vip.yml b/keepalived/cluster/instance/stacklight_monitor_vip.yml
index 28a6b69..51283b2 100644
--- a/keepalived/cluster/instance/stacklight_monitor_vip.yml
+++ b/keepalived/cluster/instance/stacklight_monitor_vip.yml
@@ -3,8 +3,16 @@
 classes:
 - service.keepalived.support
 parameters:
+  _param:
+    keepalived_docker_vrrp_script_content: "docker service ls"
   keepalived:
     cluster:
+      vrrp_scripts:
+        docker_service_ls:
+          content: ${_param:keepalived_docker_vrrp_script_content}
+          interval: 10
+          rise: 1
+          fall: 1
       enabled: true
       instance:
         stacklight_monitor_vip:
@@ -13,3 +21,4 @@
           interface: ${_param:keepalived_stacklight_monitor_vip_interface}
           virtual_router_id: 100
           priority: 101
+          track_script: docker_service_ls
diff --git a/keepalived/cluster/instance/stacklight_telemetry_vip.yml b/keepalived/cluster/instance/stacklight_telemetry_vip.yml
index e7d31a5..95d4d80 100644
--- a/keepalived/cluster/instance/stacklight_telemetry_vip.yml
+++ b/keepalived/cluster/instance/stacklight_telemetry_vip.yml
@@ -5,6 +5,12 @@
 parameters:
   keepalived:
     cluster:
+      vrrp_scripts:
+        check_pidof:
+          args: "haproxy"
+          interval: 10
+          rise: 1
+          fall: 1
       enabled: true
       instance:
         stacklight_telemetry_vip:
@@ -13,3 +19,4 @@
           interface: ${_param:keepalived_stacklight_telemetry_vip_interface}
           virtual_router_id: 120
           priority: 101
+          track_script: check_pidof
diff --git a/keystone/client/service/gnocchi.yml b/keystone/client/service/gnocchi.yml
new file mode 100644
index 0000000..dec6b83
--- /dev/null
+++ b/keystone/client/service/gnocchi.yml
@@ -0,0 +1,33 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+    gnocchi_service_protocol: http
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                gnocchi:
+                  is_admin: true
+                  password: ${_param:keystone_gnocchi_password}
+                  email: ${_param:admin_email}
+          service:
+            gnocchi:
+              type: metric
+              description: OpenStack Metric Service
+              endpoints:
+              - region: ${_param:openstack_region}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
+                public_port: 8041
+                public_path: '/'
+                internal_address: ${_param:gnocchi_service_host}
+                internal_port: 8041
+                internal_path: '/'
+                internal_protocol: ${_param:gnocchi_service_protocol}
+                admin_protocol: ${_param:gnocchi_service_protocol}
+                admin_address: ${_param:gnocchi_service_host}
+                admin_port: 8041
+                admin_path: '/'
diff --git a/keystone/client/service/manila.yml b/keystone/client/service/manila.yml
new file mode 100644
index 0000000..07e88b2
--- /dev/null
+++ b/keystone/client/service/manila.yml
@@ -0,0 +1,33 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+    manila_service_protocol: http
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                manila:
+                  is_admin: true
+                  password: ${_param:keystone_manila_password}
+                  email: ${_param:admin_email}
+          service:
+            manila:
+              type: share
+              description: OpenStack Shared File Systems V1
+              endpoints:
+              - region: ${_param:openstack_region}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
+                public_port: 8786
+                public_path: '/v1/$(tenant_id)s'
+                internal_address: ${_param:manila_service_host}
+                internal_port: 8786
+                internal_path: '/v1/$(tenant_id)s'
+                internal_protocol: ${_param:manila_service_protocol}
+                admin_protocol: ${_param:manila_service_protocol}
+                admin_address: ${_param:manila_service_host}
+                admin_port: 8786
+                admin_path: '/v1/$(tenant_id)s'
diff --git a/keystone/client/service/manila2.yml b/keystone/client/service/manila2.yml
new file mode 100644
index 0000000..1a3a125
--- /dev/null
+++ b/keystone/client/service/manila2.yml
@@ -0,0 +1,33 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+    manila_service_protocol: http
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                manila:
+                  is_admin: true
+                  password: ${_param:keystone_manila_password}
+                  email: ${_param:admin_email}
+          service:
+            manilav2:
+              type: sharev2
+              description: OpenStack Shared File Systems V2
+              endpoints:
+              - region: ${_param:openstack_region}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
+                public_port: 8786
+                public_path: '/v2/$(tenant_id)s'
+                internal_address: ${_param:manila_service_host}
+                internal_port: 8786
+                internal_path: '/v2/$(tenant_id)s'
+                internal_protocol: ${_param:manila_service_protocol}
+                admin_protocol: ${_param:manila_service_protocol}
+                admin_address: ${_param:manila_service_host}
+                admin_port: 8786
+                admin_path: '/v2/$(tenant_id)s'
diff --git a/keystone/client/service/panko.yml b/keystone/client/service/panko.yml
index 05f9453..b7c9fc3 100644
--- a/keystone/client/service/panko.yml
+++ b/keystone/client/service/panko.yml
@@ -1,6 +1,7 @@
 parameters:
   _param:
     cluster_public_protocol: https
+    panko_service_protocol: http
   keystone:
     client:
       server:
@@ -25,6 +26,8 @@
                 internal_address: ${_param:panko_service_host}
                 internal_port: 8977
                 internal_path: '/'
+                internal_protocol: ${_param:panko_service_protocol}
+                admin_protocol: ${_param:panko_service_protocol}
                 admin_address: ${_param:panko_service_host}
                 admin_port: 8977
                 admin_path: '/'
diff --git a/linux/storage/loopback_manila.yml b/linux/storage/loopback_manila.yml
new file mode 100644
index 0000000..6a9986c
--- /dev/null
+++ b/linux/storage/loopback_manila.yml
@@ -0,0 +1,8 @@
+parameters:
+  linux:
+    storage:
+      enabled: true
+      loopback:
+        loop1:
+          file: "/srv/disk1"
+          size: ${_param:loopback_device1_size}G
diff --git a/linux/system/repo/mcp/apt_mirantis/aptly.yml b/linux/system/repo/mcp/apt_mirantis/aptly.yml
index b0cf536..f91c2ed 100644
--- a/linux/system/repo/mcp/apt_mirantis/aptly.yml
+++ b/linux/system/repo/mcp/apt_mirantis/aptly.yml
@@ -6,11 +6,8 @@
     system:
       repo:
         mcp_aptly:
-          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/aptly/ ${_param:linux_system_repo_mcp_aptly_version} main"
+          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_aptly_version}/aptly/ squeeze main"
           architectures: amd64
-          key_url: "http://apt.mirantis.com/public.gpg"
+          key_id: 9E3E53F19C7DE460
+          key_server: keys.gnupg.net
           clean_file: true
-          pin:
-          - pin: 'release a=${_param:linux_system_repo_mcp_aptly_version}'
-            priority: 1100
-            package: '*'
diff --git a/linux/system/repo/mcp/apt_mirantis/cassandra.yml b/linux/system/repo/mcp/apt_mirantis/cassandra.yml
index 308f555..337321c 100644
--- a/linux/system/repo/mcp/apt_mirantis/cassandra.yml
+++ b/linux/system/repo/mcp/apt_mirantis/cassandra.yml
@@ -7,11 +7,8 @@
     system:
       repo:
         mcp_cassandra:
-          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/cassandra/ ${_param:linux_system_repo_mcp_cassandra_version} ${_param:linux_system_repo_mcp_cassandra_version_number}"
+          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_cassandra_version}/cassandra/ ${_param:linux_system_repo_mcp_cassandra_version_number} main"
           architectures: amd64
-          key_url: "http://apt.mirantis.com/public.gpg"
+          key_id: F8358FA2F2833C93
+          key_server: keyserver.ubuntu.com
           clean_file: true
-          pin:
-          - pin: 'release a=${_param:linux_system_repo_mcp_cassandra_version}'
-            priority: 1100
-            package: '*'
diff --git a/linux/system/repo/mcp/apt_mirantis/ceph.yml b/linux/system/repo/mcp/apt_mirantis/ceph.yml
index 2532f86..40c8d87 100644
--- a/linux/system/repo/mcp/apt_mirantis/ceph.yml
+++ b/linux/system/repo/mcp/apt_mirantis/ceph.yml
@@ -7,11 +7,11 @@
     system:
       repo:
         mcp_ceph:
-          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/ceph/ ${_param:linux_system_repo_mcp_ceph_version} ${_param:linux_system_repo_mcp_ceph_codename}"
+          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/ ${_param:linux_system_repo_mcp_ceph_version} ceph-${_param:linux_system_repo_mcp_ceph_codename}"
           architectures: amd64
           key_url: "http://apt.mirantis.com/public.gpg"
           clean_file: true
           pin:
           - pin: 'release a=${_param:linux_system_repo_mcp_ceph_version}'
             priority: 1100
-            package: '*'
\ No newline at end of file
+            package: '*'
diff --git a/linux/system/repo/mcp/apt_mirantis/docker.yml b/linux/system/repo/mcp/apt_mirantis/docker.yml
index cbd3097..d549979 100644
--- a/linux/system/repo/mcp/apt_mirantis/docker.yml
+++ b/linux/system/repo/mcp/apt_mirantis/docker.yml
@@ -6,11 +6,8 @@
     system:
       repo:
         mcp_docker:
-          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/docker/ ${_param:linux_system_repo_mcp_docker_version} stable"
+          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_docker_version}/docker/ ${_param:linux_system_codename} stable"
           architectures: amd64
-          key_url: "http://apt.mirantis.com/public.gpg"
-          clean_file: true
-          pin:
-          - pin: 'release a=${_param:linux_system_repo_mcp_docker_version}'
-            priority: 1100
-            package: '*'
+          key_id: 8D81803C0EBFCD88
+          key_server: keyserver.ubuntu.com
+          clean_file: true
\ No newline at end of file
diff --git a/linux/system/repo/mcp/apt_mirantis/elastic/2x.yml b/linux/system/repo/mcp/apt_mirantis/elastic/2x.yml
index 4add81e..d98baf8 100644
--- a/linux/system/repo/mcp/apt_mirantis/elastic/2x.yml
+++ b/linux/system/repo/mcp/apt_mirantis/elastic/2x.yml
@@ -6,11 +6,8 @@
     system:
       repo:
         mcp_elastic_2x:
-          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/elastic/2.x/ ${_param:linux_system_repo_mcp_elastic_2x_version} main"
+          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_elastic_2x_version}/elasticsearch-2.x/ stable main"
           architectures: amd64
-          key_url: "http://apt.mirantis.com/public.gpg"
+          key_id: D88E42B4
+          key_server: keyserver.ubuntu.com
           clean_file: true
-          pin:
-          - pin: 'release a=${_param:linux_system_repo_mcp_elastic_2x_version}'
-            priority: 1100
-            package: '*'
diff --git a/linux/system/repo/mcp/apt_mirantis/elastic/5x.yml b/linux/system/repo/mcp/apt_mirantis/elastic/5x.yml
index 8876c51..6209d53 100644
--- a/linux/system/repo/mcp/apt_mirantis/elastic/5x.yml
+++ b/linux/system/repo/mcp/apt_mirantis/elastic/5x.yml
@@ -6,11 +6,8 @@
     system:
       repo:
         mcp_elastic_5x:
-          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/elastic/5.x/ ${_param:linux_system_repo_mcp_elastic_5x_version} main"
+          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_elastic_5x_version}/elasticsearch-5.x/ stable main"
           architectures: amd64
-          key_url: "http://apt.mirantis.com/public.gpg"
+          key_id: D88E42B4
+          key_server: keyserver.ubuntu.com
           clean_file: true
-          pin:
-          - pin: 'release a=${_param:linux_system_repo_mcp_elastic_5x_version}'
-            priority: 1100
-            package: '*'
diff --git a/linux/system/repo/mcp/apt_mirantis/fluentd.yml b/linux/system/repo/mcp/apt_mirantis/fluentd.yml
index da7d3ca..2bca860 100644
--- a/linux/system/repo/mcp/apt_mirantis/fluentd.yml
+++ b/linux/system/repo/mcp/apt_mirantis/fluentd.yml
@@ -6,11 +6,8 @@
     system:
       repo:
         mcp_fluentd:
-          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/fluentd/ ${_param:linux_system_repo_mcp_fluentd_version} main"
+          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_fluentd_version}/td-agent-${_param:linux_system_codename} ${_param:linux_system_codename} contrib"
           architectures: amd64
-          key_url: "http://apt.mirantis.com/public.gpg"
+          key_id: 901F9177AB97ACBE
+          key_server: keyserver.ubuntu.com
           clean_file: true
-          pin:
-          - pin: 'release a=${_param:linux_system_repo_mcp_fluentd_version}'
-            priority: 1100
-            package: '*'
diff --git a/linux/system/repo/mcp/apt_mirantis/glusterfs.yml b/linux/system/repo/mcp/apt_mirantis/glusterfs.yml
index 1f5dd0e..8c0219e 100644
--- a/linux/system/repo/mcp/apt_mirantis/glusterfs.yml
+++ b/linux/system/repo/mcp/apt_mirantis/glusterfs.yml
@@ -2,16 +2,13 @@
   _param:
     apt_mk_version: stable
     linux_system_repo_mcp_glusterfs_version: ${_param:apt_mk_version}
-    linux_system_repo_mcp_glusterfs_version_number: "3.12"
+    linux_system_repo_mcp_glusterfs_version_number: "3.8"
   linux:
     system:
       repo:
         mcp_glusterfs:
-          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/glusterfs/ ${_param:linux_system_repo_mcp_glusterfs_version} ${_param:linux_system_repo_mcp_glusterfs_version_number}"
+          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_glusterfs_version}/glusterfs-${_param:linux_system_repo_mcp_glusterfs_version_number}/ ${_param:linux_system_codename} main"
           architectures: amd64
-          key_url: "http://apt.mirantis.com/public.gpg"
+          key_id: 3FE869A9
+          key_server: keyserver.ubuntu.com
           clean_file: true
-          pin:
-          - pin: 'release a=${_param:linux_system_repo_mcp_glusterfs_version}'
-            priority: 1100
-            package: '*'
diff --git a/linux/system/repo/mcp/apt_mirantis/grafana.yml b/linux/system/repo/mcp/apt_mirantis/grafana.yml
index 2d71740..7afe4a1 100644
--- a/linux/system/repo/mcp/apt_mirantis/grafana.yml
+++ b/linux/system/repo/mcp/apt_mirantis/grafana.yml
@@ -6,11 +6,8 @@
     system:
       repo:
         mcp_grafana:
-          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/grafana/ ${_param:linux_system_repo_mcp_grafana_version} main"
+          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_grafana_version}/grafana/ jessie main"
           architectures: amd64
-          key_url: "http://apt.mirantis.com/public.gpg"
+          key_id: C2E73424D59097AB
+          key_server: keyserver.ubuntu.com
           clean_file: true
-          pin:
-          - pin: 'release a=${_param:linux_system_repo_mcp_grafana_version}'
-            priority: 1100
-            package: '*'
diff --git a/linux/system/repo/mcp/apt_mirantis/influxdb.yml b/linux/system/repo/mcp/apt_mirantis/influxdb.yml
index f3c1fec..9f0d17a 100644
--- a/linux/system/repo/mcp/apt_mirantis/influxdb.yml
+++ b/linux/system/repo/mcp/apt_mirantis/influxdb.yml
@@ -6,11 +6,8 @@
     system:
       repo:
         mcp_influxdb:
-          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/influxdb/ ${_param:linux_system_repo_mcp_influxdb_version} main"
+          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_influxdb_version}/influxdb/ ${_param:linux_system_codename} stable"
           architectures: amd64
-          key_url: "http://apt.mirantis.com/public.gpg"
+          key_id: 684A14CF2582E0C5
+          key_server: keyserver.ubuntu.com
           clean_file: true
-          pin:
-          - pin: 'release a=${_param:linux_system_repo_mcp_influxdb_version}'
-            priority: 1100
-            package: '*'
diff --git a/linux/system/repo/mcp/apt_mirantis/kibana/46.yml b/linux/system/repo/mcp/apt_mirantis/kibana/46.yml
index f3795ad..49d4494 100644
--- a/linux/system/repo/mcp/apt_mirantis/kibana/46.yml
+++ b/linux/system/repo/mcp/apt_mirantis/kibana/46.yml
@@ -6,11 +6,8 @@
     system:
       repo:
         mcp_kibana_46:
-          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/kibana/4.6/ ${_param:linux_system_repo_mcp_kibana_46_version} kibana-46"
+          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_kibana_46_version}/kibana-4.6/ stable main"
           architectures: amd64
-          key_url: "http://apt.mirantis.com/public.gpg"
+          key_id: D88E42B4
+          key_server: keyserver.ubuntu.com
           clean_file: true
-          pin:
-          - pin: 'release a=${_param:linux_system_repo_mcp_kibana_46_version}'
-            priority: 1100
-            package: '*'
diff --git a/linux/system/repo/mcp/apt_mirantis/kibana/5x.yml b/linux/system/repo/mcp/apt_mirantis/kibana/5x.yml
index e2f4795..38bbbf3 100644
--- a/linux/system/repo/mcp/apt_mirantis/kibana/5x.yml
+++ b/linux/system/repo/mcp/apt_mirantis/kibana/5x.yml
@@ -6,11 +6,8 @@
     system:
       repo:
         mcp_kibana_5x:
-          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/kibana/5.x/ ${_param:linux_system_repo_mcp_kibana_5x_version} kibana-5x"
+          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_kibana_5x_version}/elasticsearch-5.x/ stable main"
           architectures: amd64
-          key_url: "http://apt.mirantis.com/public.gpg"
+          key_id: D88E42B4
+          key_server: keyserver.ubuntu.com
           clean_file: true
-          pin:
-          - pin: 'release a=${_param:linux_system_repo_mcp_kibana_5x_version}'
-            priority: 1100
-            package: '*'
diff --git a/linux/system/repo/mcp/apt_mirantis/maas.yml b/linux/system/repo/mcp/apt_mirantis/maas.yml
index b18bf65..d4e41c9 100644
--- a/linux/system/repo/mcp/apt_mirantis/maas.yml
+++ b/linux/system/repo/mcp/apt_mirantis/maas.yml
@@ -6,11 +6,8 @@
     system:
       repo:
         mcp_maas:
-          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/maas/ ${_param:linux_system_repo_mcp_maas_version} main"
+          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_maas_version}/maas/ ${_param:linux_system_codename} main"
           architectures: amd64
-          key_url: "http://apt.mirantis.com/public.gpg"
+          key_id: 684D4A1C
+          key_server: keyserver.ubuntu.com
           clean_file: true
-          pin:
-          - pin: 'release a=${_param:linux_system_repo_mcp_maas_version}'
-            priority: 1100
-            package: '*'
diff --git a/linux/system/repo/mcp/apt_mirantis/saltstack_2016_3.yml b/linux/system/repo/mcp/apt_mirantis/saltstack_2016_3.yml
index bec95cd..4162488 100644
--- a/linux/system/repo/mcp/apt_mirantis/saltstack_2016_3.yml
+++ b/linux/system/repo/mcp/apt_mirantis/saltstack_2016_3.yml
@@ -6,11 +6,8 @@
     system:
       repo:
         mcp_saltstack:
-          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/salt/2016.3/ ${_param:linux_system_repo_mcp_saltstack_version} main"
+          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_saltstack_version}/saltstack-2016.3/ ${_param:linux_system_codename} main"
           architectures: amd64
-          key_url: "http://apt.mirantis.com/public.gpg"
+          key_id: 0E08A149DE57BFBE
+          key_server: keyserver.ubuntu.com
           clean_file: true
-          pin:
-          - pin: 'release a=${_param:linux_system_repo_mcp_saltstack_version}'
-            priority: 1100
-            package: '*'
\ No newline at end of file
diff --git a/linux/system/repo/mcp/apt_mirantis/sensu.yml b/linux/system/repo/mcp/apt_mirantis/sensu.yml
index f86b88a..d6ae0d0 100644
--- a/linux/system/repo/mcp/apt_mirantis/sensu.yml
+++ b/linux/system/repo/mcp/apt_mirantis/sensu.yml
@@ -1,16 +1,13 @@
 parameters:
   _param:
     apt_mk_version: stable
-    linux_system_repo_mcp_extra_version: ${_param:apt_mk_version}
+    linux_system_repo_mcp_sensu_version: ${_param:apt_mk_version}
   linux:
     system:
       repo:
-        mcp_extra:
-          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/sensu/ ${_param:linux_system_repo_mcp_extra_version} main"
+        mcp_sensu:
+          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_sensu_version}/sensu/ sensu main"
           architectures: amd64
-          key_url: "http://apt.mirantis.com/public.gpg"
+          key_id: A20F259AEB9C94BB
+          key_server: keyserver.ubuntu.com
           clean_file: true
-          pin:
-          - pin: 'release a=${_param:linux_system_repo_mcp_extra_version}'
-            priority: 1100
-            package: '*'
diff --git a/linux/system/repo/mcp/updates.yml b/linux/system/repo/mcp/updates.yml
new file mode 100644
index 0000000..6d08b19
--- /dev/null
+++ b/linux/system/repo/mcp/updates.yml
@@ -0,0 +1,16 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+    linux_system_repo_mcp_updates_version: ${_param:apt_mk_version}
+  linux:
+    system:
+      repo:
+        mcp_updates:
+          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/ ${_param:linux_system_repo_mcp_updates_version} updates"
+          architectures: amd64
+          key_url: "http://apt.mirantis.com/public.gpg"
+          clean_file: true
+          pin:
+          - pin: 'release a=${_param:linux_system_repo_mcp_updates_version}'
+            priority: 1200
+            package: '*'
diff --git a/linux/system/repo_local/mcp/apt_mirantis/fluentd.yml b/linux/system/repo_local/mcp/apt_mirantis/fluentd.yml
index 40682d7..d0a1671 100644
--- a/linux/system/repo_local/mcp/apt_mirantis/fluentd.yml
+++ b/linux/system/repo_local/mcp/apt_mirantis/fluentd.yml
@@ -6,7 +6,7 @@
     system:
       repo:
         mcp_fluentd:
-          source: "deb [arch=amd64] http://${_param:local_repo_url}/ubuntu-${_param:linux_system_codename}/fluentd/ ${_param:linux_system_repo_mcp_fluentd_version} main"
+          source: "deb [arch=amd64] http://${_param:local_repo_url}/ubuntu-${_param:linux_system_codename}/fluentd ${_param:apt_mk_version} contrib"
           architectures: amd64
           key_url: "http://${_param:local_repo_url}/public.gpg"
           clean_file: true
diff --git a/linux/system/repo_local/mcp/apt_mirantis/glusterfs.yml b/linux/system/repo_local/mcp/apt_mirantis/glusterfs.yml
index ca7e1bd..cb3444b 100644
--- a/linux/system/repo_local/mcp/apt_mirantis/glusterfs.yml
+++ b/linux/system/repo_local/mcp/apt_mirantis/glusterfs.yml
@@ -2,7 +2,7 @@
   _param:
     apt_mk_version: stable
     linux_system_repo_mcp_glusterfs_version: ${_param:apt_mk_version}
-    linux_system_repo_mcp_glusterfs_version_number: "3.12"
+    linux_system_repo_mcp_glusterfs_version_number: "3.8"
   linux:
     system:
       repo:
diff --git a/linux/system/repo_local/mcp/updates.yml b/linux/system/repo_local/mcp/updates.yml
new file mode 100644
index 0000000..f7f22d1
--- /dev/null
+++ b/linux/system/repo_local/mcp/updates.yml
@@ -0,0 +1,17 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+    linux_system_repo_mcp_updates_version: ${_param:apt_mk_version}
+  linux:
+    system:
+      repo:
+        mcp_updates:
+          refresh_db: ${_param:linux_repo_refresh_db}
+          source: "deb [arch=amd64] http://${_param:local_repo_url}/ubuntu-${_param:linux_system_codename}/ ${_param:linux_system_repo_mcp_updates_version} updates"
+          architectures: amd64
+          key_url: "http://${_param:local_repo_url}/public.gpg"
+          clean_file: true
+          pin:
+          - pin: 'release a=${_param:linux_system_repo_mcp_updates_version}'
+            priority: 1200
+            package: '*'
diff --git a/manila/common/cluster.yml b/manila/common/cluster.yml
new file mode 100644
index 0000000..8763903
--- /dev/null
+++ b/manila/common/cluster.yml
@@ -0,0 +1,34 @@
+classes:
+ - service.manila.common.cluster
+ - service.haproxy.proxy.single
+ - system.haproxy.proxy.listen.openstack.manila
+parameters:
+  manila:
+    common:
+      version: ${_param:openstack_version}
+      message_queue:
+        engine: rabbitmq
+        port: 5672
+        user: openstack
+        password: ${_param:rabbitmq_openstack_password}
+        virtual_host: '/openstack'
+        host: ${_param:openstack_message_queue_address}
+      database:
+        engine: mysql
+        host: ${_param:openstack_database_address}
+        port: 3306
+        name: manila
+        user: manila
+        password: ${_param:mysql_manila_password}
+      identity:
+        engine: keystone
+        region: RegionOne
+        host: ${_param:cluster_vip_address}
+        port: 35357
+        user: manila
+        password: ${_param:keystone_manila_password}
+        tenant: service
+        auth_type: password
+        user_domain_id: default
+        project_domain_id: default
+        protocol: 'http'
diff --git a/manila/common/single.yml b/manila/common/single.yml
new file mode 100644
index 0000000..362338f
--- /dev/null
+++ b/manila/common/single.yml
@@ -0,0 +1,32 @@
+classes:
+ - service.manila.common.single
+parameters:
+  manila:
+    common:
+      version: ${_param:openstack_version}
+      message_queue:
+        engine: rabbitmq
+        port: 5672
+        user: openstack
+        password: ${_param:rabbitmq_openstack_password}
+        virtual_host: '/openstack'
+        host: ${_param:single_address}
+      database:
+        engine: mysql
+        host: ${_param:single_address}
+        port: 3306
+        name: manila
+        user: manila
+        password: ${_param:mysql_manila_password}
+      identity:
+        engine: keystone
+        region: RegionOne
+        host: ${_param:single_address}
+        port: 35357
+        user: manila
+        password: ${_param:keystone_manila_password}
+        tenant: service
+        auth_type: password
+        user_domain_id: default
+        project_domain_id: default
+        protocol: 'http'
diff --git a/manila/share/backend/lvm.yml b/manila/share/backend/lvm.yml
new file mode 100644
index 0000000..488de4d
--- /dev/null
+++ b/manila/share/backend/lvm.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    storage:
+      lvm:
+        manila-vg:
+          enabled: true
+          name: manila-volume
+          devices: ${_param:manila_lvm_devices}
+  manila:
+    share:
+      enabled_share_backends:
+        lvm:
+          name: lvm
+          type: lvm
+          enabled: true
+          lvm_share_export_ips:
+            - "${_param:single_address}"
+          dhss: false
+          share_driver: manila.share.drivers.lvm.LVMShareDriver
+          lvm_share_volume_group: manila-volume
diff --git a/neutron/client/service/manila.yml b/neutron/client/service/manila.yml
new file mode 100644
index 0000000..cdbc7bb
--- /dev/null
+++ b/neutron/client/service/manila.yml
@@ -0,0 +1,21 @@
+classes:
+- service.neutron.client
+parameters:
+  neutron:
+    client:
+      server:
+        admin_identity:
+          endpoint_type: internalURL
+          network:
+            manila-share-network:
+              tenant: admin
+              shared: false
+              admin_state_up: True
+              port_security_enabled: false
+              subnet:
+                manila-share-subnet:
+                  cidr: ${_param:openstack_manila_share_neutron_subnet_cidr}
+                  allocation_pools:
+                    - start: ${_param:openstack_manila_share_neutron_subnet_allocation_start}
+                      end: ${_param:openstack_manila_share_neutron_subnet_allocation_end}
+                  enable_dhcp: true
diff --git a/nginx/server/proxy/openstack/aodh.yml b/nginx/server/proxy/openstack/aodh.yml
index bfdb4d6..bd73165 100644
--- a/nginx/server/proxy/openstack/aodh.yml
+++ b/nginx/server/proxy/openstack/aodh.yml
@@ -1,6 +1,8 @@
 parameters:
   _param:
     nginx_proxy_openstack_api_host: ${_param:cluster_public_host}
+    nginx_proxy_openstack_api_address: 0.0.0.0
+    nginx_proxy_openstack_aodh_host: ${_param:aodh_service_host}
   nginx:
     server:
       enabled: true
@@ -11,10 +13,11 @@
           name: openstack_api_aodh
           check: false
           proxy:
-            host: ${_param:aodh_service_host}
+            host: ${_param:nginx_proxy_openstack_aodh_host}
             port: 8042
             protocol: http
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 8042
+            address: ${_param:nginx_proxy_openstack_api_address}
           ssl: ${_param:nginx_proxy_ssl}
diff --git a/nginx/server/proxy/openstack/ceilometer.yml b/nginx/server/proxy/openstack/ceilometer.yml
index 57315fe..938b6cf 100644
--- a/nginx/server/proxy/openstack/ceilometer.yml
+++ b/nginx/server/proxy/openstack/ceilometer.yml
@@ -1,6 +1,8 @@
 parameters:
   _param:
     nginx_proxy_openstack_api_host: ${_param:cluster_public_host}
+    nginx_proxy_openstack_api_address: 0.0.0.0
+    nginx_proxy_openstack_ceilometer_host: ${_param:ceilometer_service_host}
   nginx:
     server:
       enabled: true
@@ -11,10 +13,11 @@
           name: openstack_api_ceilometer
           check: false
           proxy:
-            host: ${_param:ceilometer_service_host}
+            host: ${_param:nginx_proxy_openstack_ceilometer_host}
             port: 8777
             protocol: http
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 8777
+            address: ${_param:nginx_proxy_openstack_api_address}
           ssl: ${_param:nginx_proxy_ssl}
diff --git a/nginx/server/proxy/openstack/gnocchi.yml b/nginx/server/proxy/openstack/gnocchi.yml
new file mode 100644
index 0000000..2f6d0e5
--- /dev/null
+++ b/nginx/server/proxy/openstack/gnocchi.yml
@@ -0,0 +1,23 @@
+parameters:
+  _param:
+    nginx_proxy_openstack_api_host: ${_param:cluster_public_host}
+    nginx_proxy_openstack_api_address: 0.0.0.0
+    nginx_proxy_openstack_gnocchi_host: ${_param:gnocchi_service_host}
+  nginx:
+    server:
+      enabled: true
+      site:
+        nginx_proxy_openstack_api_gnocchi:
+          enabled: true
+          type: nginx_proxy
+          name: openstack_api_gnocchi
+          check: false
+          proxy:
+            host: ${_param:nginx_proxy_openstack_gnocchi_host}
+            port: 8041
+            protocol: http
+          host:
+            name: ${_param:nginx_proxy_openstack_api_host}
+            port: 8041
+            address: ${_param:nginx_proxy_openstack_api_address}
+          ssl: ${_param:nginx_proxy_ssl}
diff --git a/nginx/server/proxy/openstack/ironic.yml b/nginx/server/proxy/openstack/ironic.yml
new file mode 100644
index 0000000..95eb1bd
--- /dev/null
+++ b/nginx/server/proxy/openstack/ironic.yml
@@ -0,0 +1,22 @@
+parameters:
+  _param:
+    nginx_proxy_openstack_api_host: ${_param:cluster_public_host}
+    nginx_proxy_openstack_api_address: 0.0.0.0
+    nginx_proxy_openstack_ironic_host: ${_param:ironic_service_host}
+  nginx:
+    server:
+      enabled: true
+      site:
+        nginx_proxy_openstack_api_ironic:
+          enabled: true
+          type: nginx_proxy
+          name: openstack_api_ironic
+          proxy:
+            host: ${_param:nginx_proxy_openstack_ironic_host}
+            port: 6385
+            protocol: http
+          host:
+            name: ${_param:nginx_proxy_openstack_api_host}
+            port: 6385
+            address: ${_param:nginx_proxy_openstack_api_address}
+          ssl: ${_param:nginx_proxy_ssl}
diff --git a/nginx/server/proxy/openstack/manila.yml b/nginx/server/proxy/openstack/manila.yml
new file mode 100644
index 0000000..050d0de
--- /dev/null
+++ b/nginx/server/proxy/openstack/manila.yml
@@ -0,0 +1,22 @@
+parameters:
+  _param:
+    nginx_proxy_openstack_api_host: ${_param:cluster_public_host}
+    nginx_proxy_openstack_api_address: 0.0.0.0
+    nginx_proxy_openstack_manila_host: ${_param:manila_service_host}
+  nginx:
+    server:
+      enabled: true
+      site:
+        nginx_proxy_openstack_api_manila:
+          enabled: true
+          type: nginx_proxy
+          name: openstack_api_manila
+          proxy:
+            host: ${_param:nginx_proxy_openstack_manila_host}
+            port: 8786
+            protocol: http
+          host:
+            name: ${_param:nginx_proxy_openstack_api_host}
+            port: 8786
+            address: ${_param:nginx_proxy_openstack_api_address}
+          ssl: ${_param:nginx_proxy_ssl}
diff --git a/nginx/server/proxy/openstack/panko.yml b/nginx/server/proxy/openstack/panko.yml
new file mode 100644
index 0000000..6081dd1
--- /dev/null
+++ b/nginx/server/proxy/openstack/panko.yml
@@ -0,0 +1,23 @@
+parameters:
+  _param:
+    nginx_proxy_openstack_api_host: ${_param:cluster_public_host}
+    nginx_proxy_openstack_api_address: 0.0.0.0
+    nginx_proxy_openstack_panko_host: ${_param:panko_service_host}
+  nginx:
+    server:
+      enabled: true
+      site:
+        nginx_proxy_openstack_api_panko:
+          enabled: true
+          type: nginx_proxy
+          name: openstack_api_panko
+          check: false
+          proxy:
+            host: ${_param:nginx_proxy_openstack_panko_host}
+            port: 8977
+            protocol: http
+          host:
+            name: ${_param:nginx_proxy_openstack_api_host}
+            port: 8977
+            address: ${_param:nginx_proxy_openstack_api_address}
+          ssl: ${_param:nginx_proxy_ssl}
diff --git a/openssh/server/team/stacklight.yml b/openssh/server/team/stacklight.yml
index b46ac24..032466b 100644
--- a/openssh/server/team/stacklight.yml
+++ b/openssh/server/team/stacklight.yml
@@ -109,6 +109,20 @@
           full_name: Christian Huebner
           home: /home/crh
           email: chuebner@mirantis.com
+        mmatuszkowiak:
+          enabled: true
+          name: mmatuszkowiak
+          sudo: true
+          full_name: Mateusz Matuszkowiak
+          home: /home/mmatuszkowiak
+          email: mmatuszkowiak@mirantis.com
+        mkobus:
+          enabled: true
+          name: mkobus
+          sudo: true
+          full_name: Michal Kobus
+          home: /home/mkobus
+          email: mkobus@mirantis.com
   openssh:
     client:
       enabled: true
@@ -190,6 +204,16 @@
           public_keys:
           - ${public_keys:crh}
           user: ${linux:system:user:crh}
+        mmatuszkowiak:
+          enabled: true
+          public_keys:
+          - ${public_keys:mmatuszkowiak}
+          user: ${linux:system:user:mmatuszkowiak}
+        mkobus:
+          enabled: true
+          public_keys:
+          - ${public_keys:mkobus}
+          user: ${linux:system:user:mkobus}
   public_keys:
     newt:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3odU+3V2uDA2ptAFL9hrJRPNEEdAyztWOZFQ5Oyd9oerTGOU3p4xmrgWWjfKFKbYGhiiIUcYAol5PkTfKukGEkkjCHYA1t023soCaaAj85wCZCnw2zQNAziwxTYmAzTqgxiSvtZNMMrtJvFHRIRDzJ3M1lV0prWNWkMM1/3FAd4W49y6VT3fkMCo8uqG7CfGdgR2DgBCxf9KaNPfW5eDEPOgmE5lK8tVSEI6T+Cg7hbcTf4lFYnlFBnlQgp/0JstsM4Vbwb4B34LOpOsf2S8rrWk2xQMjwaMHXkc2s/E8iW3F5nVFuyEXYISFQIiAHw8dzC6CHgLcyHUVWwznKawZ newt@newt-dev1
@@ -221,3 +245,7 @@
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMdgjQ/jeWwQTaPyy7G5JJAkM+QPNPFkzMldPHJzOxEBzt/M5zAooj0XgbRIDIztolhXhmj8N5QSG5n3Wn9T9e2KpoxrLaVhMV5WGTgMrXMmyT8oXLV3gLxGNHMWFvplSbHLK78EsZQQ1/kBQMyPXB1+FpIuSHVOxaospOQObJ08lvQfvlO7AUUV4ecpFj3PpV5vkKPRS+KfiRm84BeGIu51BL1BClZcOyHZPBQT+DUBjm8y4Nd7pVZRjsiBzZBvUotCbn5+RqWJnu4kyoGoRNmk8pvCx7jGL1G9rE8NNsKlCUWedvyNkDeoWKvleJuzkj3ggfuCj/iTtDoXFR95e3
     crh:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDjW4PSMoILjoZWDM8RnbiW6HXHBFntnDd6jgAlokJhTpYIjzUHpoh/OqphraKbNFnPbzL2nkIbaKZqKj+uuvbsitHnApmdFgSpOmBRGeaSExA30GqweYrIMKN5JAQTbONZWLSm+LD689CXRv2s6Th/YMELYfoi2W0pkvwiBdr+/0NxpdRvJydCn36SE6wOigu4uJXIXeNqIjTD+x4sW6GB54Ugbg+SMmI9D5ONlmfEj8K/ZmG1THdPGOLlquy/VLiuOBuwNoJCBV9shsGEmdg8NiOu8NPupQlsbmClZDbBAklJ0AF6ElAwKSiqCOhbaa7hu4qJFrCKC+XAgYxS9t7r
+    mmatuszkowiak:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDC6TGCQAH3FGNSOhSbovhwODabOAsgVqG71rEDdXvDSShwyNB3RIICefas3mdSLsG7+1K9mZ1jicWzNbotvePwzrM/MESzntzp4QZ5J/9L3BMiqWWKL2u6BQ65LGe0YMzMmdSkqMAj0uxt3+OiFDPDrwqH6qN0hwxAJM+byeUlQW8uWQYm/pmWMD60GUrnjYUfKfEa/S3symaZBHQvjtp26De8D6u/jr4TWi5VJpKqVREqU7Z4IKwn8JvHMmUbRO4endW3cRiv35Qb7s66rO6TD0KlDFnnTxOtFvLhL51j58X4MrV9FHUI6czoqjAgEDe9CW7DzZ1xMj03d6IAipgL
+    mkobus:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCBqe3X+LrneiuieWGjlw5wRtgixBu2Q8LZjH6W+8nsOkB7iN6qRdKom3jac1Cdd5wSJ0NFAhDNcTLK4Etz/3YACglsTxk09TzXlqs1V0Y7U5a2eqn3KTOgMNsJ1aOhFq/LnmUwTdN8NXac6TIkwZZBj5KhHSvIoO+mfsascct5FIVU/+p32d3o/4NqMDDdTg/qxIMKQsh5sw5Y9Tz9h28LGbDh+QF2lW+b5YJhnCG21Uw17xcyxf3/53EpJwTXfElonSR7HMVLxrq7oDzmqKFZ2z8i9do6EgODKlZpSkxiAFOBw5oA2hPtEeqtXqvddu2FcNGuSNhx/6O8ZHIKq3Xh/tTOYnoc+qYDMRCzDwzeyivfr5Ci3n64giUaZl+KUr6D1CKeL2s8j9+kod/1JJDEeoYR+V93MTiTD/39N8eQAGv+6r9HBapXIkvr3iNuTH1+5eN36Vc90jXXRmGMZkF5P9ivNGDZGcy2pBwwPg/bRn2xb0zx1fsxd4qOi+Cd7mBCF4+SfnVCqUd2H9R0O3S7WgfLr+wOXpFq6/WwgjzI9RVhLJ5cZmePJKvYZYYhkAxsVwWSE639zFFuU1zhFXr49wa0njK9DdYWiQEhOki0ki3huABmVbWKg/zP1Rlllmtk0S4mwggJ57JYbuhEV3a1x1KOtWMzODW5cb3HlPTQw==
diff --git a/panko/server/cluster.yml b/panko/server/cluster.yml
new file mode 100644
index 0000000..d2d4b9b
--- /dev/null
+++ b/panko/server/cluster.yml
@@ -0,0 +1,6 @@
+classes:
+- service.panko.server.cluster
+- service.haproxy.proxy.single
+- system.apache.server.site.panko
+- system.haproxy.proxy.listen.openstack.panko
+- system.keepalived.cluster.instance.openstack_telemetry_vip
\ No newline at end of file
diff --git a/salt/master/formula/git/manila.yml b/salt/master/formula/git/manila.yml
new file mode 100644
index 0000000..b9cf3e0
--- /dev/null
+++ b/salt/master/formula/git/manila.yml
@@ -0,0 +1,10 @@
+parameters:
+  salt:
+    master:
+      environment:
+        dev:
+          formula:
+            manila:
+              source: git
+              address: '${_param:salt_master_environment_repository}/salt-formula-manila.git'
+              revision: ${_param:salt_master_environment_revision}
diff --git a/salt/master/formula/pkg/manila.yml b/salt/master/formula/pkg/manila.yml
new file mode 100644
index 0000000..4777a36
--- /dev/null
+++ b/salt/master/formula/pkg/manila.yml
@@ -0,0 +1,9 @@
+parameters:
+  salt:
+    master:
+      environment:
+        prd:
+          formula:
+            manila:
+              source: pkg
+              name: salt-formula-manila