Merge "Add test for tinyproxy formula"
diff --git a/.releasenotes/notes/add-mysql-cert-definition-c6a2e6445020d66f.yaml b/.releasenotes/notes/add-mysql-cert-definition-c6a2e6445020d66f.yaml
new file mode 100644
index 0000000..06398e1
--- /dev/null
+++ b/.releasenotes/notes/add-mysql-cert-definition-c6a2e6445020d66f.yaml
@@ -0,0 +1,19 @@
+---
+features:
+  - |
+    Added a system class to generate certificates and keys for MySQL.
+
+    **To generate files:**
+
+    #. Include the class to the Reclass model of your deployment:
+
+       .. code-block:: yaml
+
+          classes:
+             - system.salt.minion.cert.mysql.server
+
+    #. Apply the :command:`salt.minion.cert` Salt state:
+
+       .. code-block:: bash
+
+          salt '*' state.sls salt.minion.cert
diff --git a/.releasenotes/notes/oss-cluster-60617c0d44ca6c0a.yaml b/.releasenotes/notes/oss-cluster-60617c0d44ca6c0a.yaml
new file mode 100644
index 0000000..3dddf61
--- /dev/null
+++ b/.releasenotes/notes/oss-cluster-60617c0d44ca6c0a.yaml
@@ -0,0 +1,9 @@
+---
+prelude: >
+  Implemented the OSS nodes definition for standalone OSS deployments
+
+features:
+  - Implemented the OSS nodes definition for standalone OSS deployments.
+    Now, deployment engineers have ability to switch the placement of the OSS
+    services that are by default binded to StackLight monitoring nodes.
+
diff --git a/.releasenotes/notes/remove-repo-includes-from-system-d4af8a0ac985d4e5.yaml b/.releasenotes/notes/remove-repo-includes-from-system-d4af8a0ac985d4e5.yaml
new file mode 100644
index 0000000..c0d8932
--- /dev/null
+++ b/.releasenotes/notes/remove-repo-includes-from-system-d4af8a0ac985d4e5.yaml
@@ -0,0 +1,23 @@
+---
+summary: >
+    Removed included classes for ``linux.system.repo`` from the system level
+    Reclass model because they were breaking installation from local repos
+
+features:
+  - Added ``linux.system.repo`` definition for MAAS.
+
+deprecations:
+  - |
+    Removed:
+
+    - ``system.linux.system.repo.mcp.salt`` from ``salt/master/pkg.yml``
+    - ``system.linux.system.repo.docker`` from ``docker/host.yml``
+    - ``service.maas.region.vendor_repo`` from ``maas/region/single.yml``
+
+    These repos should be added to appropriate cluster level classes.
+    New cluster models from Cookiecutter have them already included.
+
+fixes:
+  - MCP deployments can now be installed from local repositories without
+    problems.
+
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 4fd75aa..35dcda3 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,6 +1,8 @@
 Changelog
 ==========
 
+* 2017-05-22 Petr Michalec <pmichalec@mirantis.com}
+- enable galera cluster check script for haproxy, require salt-formula-galera >= MCP 1.1
 
 * 2017-03-03 Tomáš Kukrál <tkukral@mirantis.com}
 - change default Salt-API port to 6969
diff --git a/aptly/server/docker.yml b/aptly/server/docker.yml
index 4e70a92..c33f169 100644
--- a/aptly/server/docker.yml
+++ b/aptly/server/docker.yml
@@ -8,13 +8,15 @@
     aptly_gpg_private_key: none
     aptly_server_mirror_sources: false
     aptly_server_mirror_ubuntu_sources: ${_param:aptly_server_mirror_sources}
+    docker_image_aptly:
+      base: tcpcloud/aptly
   aptly:
     server:
       enabled: true
       secure: ${_param:aptly_server_secure}
       source:
         engine: docker
-        image: tcpcloud/aptly
+        image: ${_param:docker_image_aptly:base}
       user:
         uid: 501
         gid: 501
diff --git a/aptly/server/mirror/debian/aptly.yml b/aptly/server/mirror/debian/aptly.yml
index 48a176e..ce05ee6 100644
--- a/aptly/server/mirror/debian/aptly.yml
+++ b/aptly/server/mirror/debian/aptly.yml
@@ -1,14 +1,19 @@
 parameters:
+  _param:
+    mirror_aptly_source: http://repo.aptly.info/
+    mirror_aptly_distribution: squeeze
+    mirror_aptly_components: main
+    mirror_aptly_gpgkeys:
+      - 9C7DE460
   aptly:
     server:
       mirror:
         aptly:
-          source: http://repo.aptly.info/
-          distribution: squeeze
-          components: main
+          source: ${_param:mirror_aptly_source}
+          distribution: ${_param:mirror_aptly_distribution}
+          components: ${_param:mirror_aptly_components}
           architectures: amd64
-          gpgkeys:
-            - 9C7DE460
+          gpgkeys: ${_param:mirror_aptly_gpgkeys}
           publisher:
             component: extra
             distributions:
diff --git a/aptly/server/mirror/debian/cassandra.yml b/aptly/server/mirror/debian/cassandra.yml
index 846df4e..3a19e84 100644
--- a/aptly/server/mirror/debian/cassandra.yml
+++ b/aptly/server/mirror/debian/cassandra.yml
@@ -1,18 +1,22 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_cassandra-21x_source: http://www.apache.org/dist/cassandra/debian
+    mirror_cassandra-21x_distribution: 21x
+    mirror_cassandra-21x_components: main
+    mirror_cassandra-21x_gpgkeys:
+      - F758CE318D77295D
+      - 2B5C1B00
+      - 0353B12C
   aptly:
     server:
       mirror:
         cassandra-21x:
-          source: http://www.apache.org/dist/cassandra/debian
-          distribution: 21x
-          components: main
+          source: ${_param:mirror_cassandra-21x_source}
+          distribution: ${_param:mirror_cassandra-21x_distribution}
+          components: ${_param:mirror_cassandra-21x_components}
           architectures: amd64
-          gpgkeys:
-            - F758CE318D77295D
-            - 2B5C1B00
-            - 0353B12C
+          gpgkeys: ${_param:mirror_cassandra-21x_gpgkeys}
           publisher:
             component: extra
             distributions:
diff --git a/aptly/server/mirror/debian/elasticsearch.yml b/aptly/server/mirror/debian/elasticsearch.yml
index ece60af..84a21d1 100644
--- a/aptly/server/mirror/debian/elasticsearch.yml
+++ b/aptly/server/mirror/debian/elasticsearch.yml
@@ -1,52 +1,68 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_elasticsearch-2x_source: http://packages.elastic.co/elasticsearch/2.x/debian
+    mirror_elasticsearch-2x_distribution: stable
+    mirror_elasticsearch-2x_components: main
+    mirror_elasticsearch-2x_gpgkeys:
+      - D88E42B4
+    mirror_kibana_source: http://packages.elasticsearch.org/kibana/4.4/debian
+    mirror_kibana_distribution: stable
+    mirror_kibana_components: main
+    mirror_kibana_gpgkeys:
+      - D88E42B4
+    mirror_kibana-46_source: http://packages.elasticsearch.org/kibana/4.6/debian
+    mirror_kibana-46_distribution: stable
+    mirror_kibana-46_components: main
+    mirror_kibana-46_gpgkeys:
+      - D88E42B4
+    mirror_elasticsearch-curator_source: http://packages.elastic.co/curator/4/debian
+    mirror_elasticsearch-curator_distribution: stable
+    mirror_elasticsearch-curator_components: main
+    mirror_elasticsearch-curator_gpgkeys:
+      - D88E42B4
   aptly:
     server:
       mirror:
         elasticsearch-2x:
-          source: http://packages.elastic.co/elasticsearch/2.x/debian
-          distribution: stable
-          components: main
+          source: ${_param:mirror_elasticsearch-2x_source}
+          distribution: ${_param:mirror_elasticsearch-2x_distribution}
+          components: ${_param:mirror_elasticsearch-2x_components}
           architectures: amd64
-          gpgkeys:
-            - D88E42B4
+          gpgkeys: ${_param:mirror_elasticsearch-2x_gpgkeys}
           publisher:
             component: elastic
             distributions:
               - trusty/${_param:apt_mk_version}
               - xenial/${_param:apt_mk_version}
         kibana:
-          source: http://packages.elasticsearch.org/kibana/4.4/debian
-          distribution: stable
-          components: main
+          source: ${_param:mirror_kibana_source}
+          distribution: ${_param:mirror_kibana_distribution}
+          components: ${_param:mirror_kibana_components}
           architectures: amd64
-          gpgkeys:
-            - D88E42B4
+          gpgkeys: ${_param:mirror_kibana_gpgkeys}
           publisher:
             component: elastic
             distributions:
               - trusty/${_param:apt_mk_version}
               - xenial/${_param:apt_mk_version}
         kibana-46:
-          source: http://packages.elasticsearch.org/kibana/4.6/debian
-          distribution: stable
-          components: main
+          source: ${_param:mirror_kibana-46_source}
+          distribution: ${_param:mirror_kibana-46_distribution}
+          components: ${_param:mirror_kibana-46_components}
           architectures: amd64
-          gpgkeys:
-            - D88E42B4
+          gpgkeys: ${_param:mirror_kibana-46_gpgkeys}
           publisher:
             component: elastic
             distributions:
               - trusty/${_param:apt_mk_version}
               - xenial/${_param:apt_mk_version}
         elasticsearch-curator:
-          source: http://packages.elastic.co/curator/4/debian
-          distribution: stable
-          components: main
+          source: ${_param:mirror_elasticsearch-curator_source}
+          distribution: ${_param:mirror_elasticsearch-curator_distribution}
+          components: ${_param:mirror_elasticsearch-curator_components}
           architectures: amd64
-          gpgkeys:
-            - D88E42B4
+          gpgkeys: ${_param:mirror_elasticsearch-curator_gpgkeys}
           publisher:
             component: elastic
             distributions:
diff --git a/aptly/server/mirror/debian/jenkins.yml b/aptly/server/mirror/debian/jenkins.yml
index f04f4d9..1392323 100644
--- a/aptly/server/mirror/debian/jenkins.yml
+++ b/aptly/server/mirror/debian/jenkins.yml
@@ -1,28 +1,37 @@
 parameters:
+  _param:
+    mirror_jenkins_source: http://pkg.jenkins-ci.org/debian/
+    mirror_jenkins_distribution: binary/
+    mirror_jenkins_components: ""
+    mirror_jenkins_gpgkeys:
+      - D50582E6
+    mirror_jenkins-debian-glue_source: http://jenkins.grml.org/debian/
+    mirror_jenkins-debian-glue_distribution: jenkins-debian-glue
+    mirror_jenkins-debian-glue_components: main
+    # TODO: this key is not uploaded to keyserver, workaround:
+    # su aptly -c 'curl http://jenkins.grml.org/debian/C525F56752D4A654.asc|gpg --no-default-keyring --keyring trustedkeys.gpg --import'
+    mirror_jenkins-debian-glue_gpgkeys:
+      - 52D4A654
   aptly:
     server:
       mirror:
         jenkins:
-          source: http://pkg.jenkins-ci.org/debian/
-          distribution: binary/
-          components: ""
+          source: ${_param:mirror_jenkins_source}
+          distribution: ${_param:mirror_jenkins_distribution}
+          components: ${_param:mirror_jenkins_components}
           architectures: amd64
-          gpgkeys:
-            - D50582E6
+          gpgkeys: ${_param:mirror_jenkins_gpgkeys}
           publisher:
             component: extra
             distributions:
               - trusty/nightly
               - xenial/nightly
         jenkins-debian-glue:
-          source: http://jenkins.grml.org/debian/
-          distribution: jenkins-debian-glue
-          components: main
+          source: ${_param:mirror_jenkins-debian-glue_source}
+          distribution: ${_param:mirror_jenkins-debian-glue_distribution}
+          components: ${_param:mirror_jenkins-debian-glue_components}
           architectures: amd64
-          # TODO: this key is not uploaded to keyserver, workaround:
-          # su aptly -c 'curl http://jenkins.grml.org/debian/C525F56752D4A654.asc|gpg --no-default-keyring --keyring trustedkeys.gpg --import'
-          gpgkeys:
-            - 52D4A654
+          gpgkeys: ${_param:mirror_jenkins-debian-glue_gpgkeys}
           publisher:
             component: extra
             distributions:
diff --git a/aptly/server/mirror/debian/sensu.yml b/aptly/server/mirror/debian/sensu.yml
index 0361538..9e2f5a1 100644
--- a/aptly/server/mirror/debian/sensu.yml
+++ b/aptly/server/mirror/debian/sensu.yml
@@ -1,18 +1,22 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_sensu_source: http://sensu.global.ssl.fastly.net/apt
+    mirror_sensu_distribution: sensu
+    mirror_sensu_components: main
+    mirror_sensu_gpgkeys:
+      - EB9C94BB
   aptly:
     server:
       mirror:
         sensu:
-          source: http://sensu.global.ssl.fastly.net/apt
-          distribution: sensu
-          components: main
+          source: ${_param:mirror_sensu_source}
+          distribution: ${_param:mirror_sensu_distribution}
+          components: ${_param:mirror_sensu_components}
           architectures: amd64
-          gpgkeys:
-            - EB9C94BB
+          gpgkeys: ${_param:mirror_sensu_gpgkeys}
           publisher:
             component: sensu
             distributions:
               - ubuntu-trusty/${_param:apt_mk_version}
-              - ubuntu-xenial/${_param:apt_mk_version}
+              - ubuntu-xenial/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ceph.yml b/aptly/server/mirror/ubuntu/trusty/ceph.yml
index b8e83c2..9d0d950 100644
--- a/aptly/server/mirror/ubuntu/trusty/ceph.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ceph.yml
@@ -2,16 +2,20 @@
   _param:
     ceph_version: luminous
     apt_mk_version: stable
+    mirror_ceph-trusty_source: http://download.ceph.com/debian-${_param:ceph_version}
+    mirror_ceph-trusty_distribution: trusty
+    mirror_ceph-trusty_components: main
+    mirror_ceph-trusty_gpgkeys:
+      - 460F3994
   aptly:
     server:
       mirror:
         ceph-trusty:
-          source: http://download.ceph.com/debian-${_param:ceph_version}
-          distribution: trusty
-          components: main
+          source: ${_param:mirror_ceph-trusty_source}
+          distribution: ${_param:mirror_ceph-trusty_distribution}
+          components: ${_param:mirror_ceph-trusty_components}
           architectures: amd64
-          gpgkeys:
-            - 460F3994
+          gpgkeys: ${_param:mirror_ceph-trusty_gpgkeys}
           publisher:
             component: ceph
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/docker.yml b/aptly/server/mirror/ubuntu/trusty/docker.yml
index db97d14..5ee9daf 100644
--- a/aptly/server/mirror/ubuntu/trusty/docker.yml
+++ b/aptly/server/mirror/ubuntu/trusty/docker.yml
@@ -1,14 +1,19 @@
 parameters:
+  _param:
+    mirror_docker-trusty_source: 'https://download.docker.com/linux/ubuntu'
+    mirror_docker-trusty_distribution: trusty
+    mirror_docker-trusty_components: stable
+    mirror_docker-trusty_gpgkeys:
+      - 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
   aptly:
     server:
       mirror:
         docker-trusty:
-          source: 'https://download.docker.com/linux/ubuntu'
-          distribution: trusty
-          components: stable
+          source: ${_param:mirror_docker-trusty_source}
+          distribution: ${_param:mirror_docker-trusty_distribution}
+          components: ${_param:mirror_docker-trusty_components}
           architectures: amd64
-          gpgkeys:
-            - 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
+          gpgkeys: ${_param:mirror_docker-trusty_gpgkeys}
           publisher:
             component: docker
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/docker_legacy.yml b/aptly/server/mirror/ubuntu/trusty/docker_legacy.yml
new file mode 100644
index 0000000..a686566
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/docker_legacy.yml
@@ -0,0 +1,20 @@
+parameters:
+  _param:
+    mirror_docker-trusty_source: 'https://apt.dockerproject.org/repo'
+    mirror_docker-trusty_distribution: ubuntu-trusty
+    mirror_docker-trusty_components: main
+    mirror_docker-trusty_gpgkeys:
+      - 58118E89F3A912897C070ADBF76221572C52609D
+  aptly:
+    server:
+      mirror:
+        docker-trusty-legacy:
+          source: ${_param:mirror_docker-trusty_source}
+          distribution: ${_param:mirror_docker-trusty_distribution}
+          components: ${_param:mirror_docker-trusty_components}
+          architectures: amd64
+          gpgkeys: ${_param:mirror_docker-trusty_gpgkeys}
+          publisher:
+            component: docker-legacy
+            distributions:
+              - ubuntu-trusty/nightly
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/erlang.yml b/aptly/server/mirror/ubuntu/trusty/erlang.yml
index 7a01032..cb173f1 100644
--- a/aptly/server/mirror/ubuntu/trusty/erlang.yml
+++ b/aptly/server/mirror/ubuntu/trusty/erlang.yml
@@ -1,14 +1,19 @@
 parameters:
+  _param:
+    mirror_erlang-trusty_source: http://packages.erlang-solutions.com/ubuntu
+    mirror_erlang-trusty_distribution: trusty
+    mirror_erlang-trusty_components: contrib
+    mirror_erlang-trusty_gpgkeys:
+      - A14F4FCA
   aptly:
     server:
       mirror:
         erlang-trusty:
-          source: http://packages.erlang-solutions.com/ubuntu
-          distribution: trusty
-          components: contrib
+          source: ${_param:mirror_erlang-trusty_source}
+          distribution: ${_param:mirror_erlang-trusty_distribution}
+          components: ${_param:mirror_erlang-trusty_components}
           architectures: amd64
-          gpgkeys:
-            - A14F4FCA
+          gpgkeys: ${_param:mirror_erlang-trusty_gpgkeys}
           publisher:
             component: erlang
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/foreman.yml b/aptly/server/mirror/ubuntu/trusty/foreman.yml
index 6769691..902f86e 100644
--- a/aptly/server/mirror/ubuntu/trusty/foreman.yml
+++ b/aptly/server/mirror/ubuntu/trusty/foreman.yml
@@ -1,25 +1,35 @@
 parameters:
+  _param:
+    mirror_foreman-trusty_source: http://deb.theforeman.org
+    mirror_foreman-trusty_distribution: trusty
+    mirror_foreman-trusty_components: stable
+    mirror_foreman-trusty_gpgkeys:
+      - 1AA043B8
+
+    mirror_foreman-plugins-trusty_source: http://deb.theforeman.org
+    mirror_foreman-plugins-trusty_distribution: plugins
+    mirror_foreman-plugins-trusty_components: stable
+    mirror_foreman-plugins-trusty_gpgkeys:
+      - 1AA043B8
   aptly:
     server:
       mirror:
         foreman-trusty:
-          source: http://deb.theforeman.org
-          distribution: trusty
-          components: stable
+          source: ${_param:mirror_foreman-trusty_source}
+          distribution: ${_param:mirror_foreman-trusty_distribution}
+          components: ${_param:mirror_foreman-trusty_components}
           architectures: amd64
-          gpgkeys:
-            - 1AA043B8
+          gpgkeys: ${_param:mirror_foreman-trusty_gpgkeys}
           publisher:
             component: extra
             distributions:
               - ubuntu-trusty/nightly
         foreman-plugins-trusty:
-          source: http://deb.theforeman.org
-          distribution: plugins
-          components: stable
+          source: ${_param:mirror_foreman-plugins-trusty_source}
+          distribution: ${_param:mirror_foreman-plugins-trusty_distribution}
+          components: ${_param:mirror_foreman-plugins-trusty_components}
           architectures: amd64
-          gpgkeys:
-            - 1AA043B8
+          gpgkeys: ${_param:mirror_foreman-plugins-trusty_gpgkeys}
           publisher:
             component: extra
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/galera.yml b/aptly/server/mirror/ubuntu/trusty/galera.yml
index 61acd31..1a2e749 100644
--- a/aptly/server/mirror/ubuntu/trusty/galera.yml
+++ b/aptly/server/mirror/ubuntu/trusty/galera.yml
@@ -1,14 +1,19 @@
 parameters:
+  _param:
+    mirror_galera-trusty_source: http://releases.galeracluster.com/ubuntu/
+    mirror_galera-trusty_distribution: trusty
+    mirror_galera-trusty_components: main
+    mirror_galera-trusty_gpgkeys:
+      - BC19DDBA
   aptly:
     server:
       mirror:
         galera-trusty:
-          source: http://releases.galeracluster.com/ubuntu/
-          distribution: trusty
-          components: main
+          source: ${_param:mirror_galera-trusty_source}
+          distribution: ${_param:mirror_galera-trusty_distribution}
+          components: ${_param:mirror_galera-trusty_components}
           architectures: amd64
-          gpgkeys:
-            - BC19DDBA
+          gpgkeys: ${_param:mirror_galera-trusty_gpgkeys}
           publisher:
             component: galera
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/glusterfs.yml b/aptly/server/mirror/ubuntu/trusty/glusterfs.yml
index 4d27bf6..1777777 100644
--- a/aptly/server/mirror/ubuntu/trusty/glusterfs.yml
+++ b/aptly/server/mirror/ubuntu/trusty/glusterfs.yml
@@ -1,17 +1,21 @@
 parameters:
   _param:
     glusterfs_version: 3.8
+    mirror_glusterfs_upstream_trusty_source: http://ppa.launchpad.net/gluster/glusterfs-${_param:glusterfs_version}/ubuntu
+    mirror_glusterfs_upstream_trusty_distribution: trusty
+    mirror_glusterfs_upstream_trusty_components: main
+    mirror_glusterfs_upstream_trusty_gpgkeys:
+      - 3FE869A9
   aptly:
     server:
       mirror:
         glusterfs_upstream_trusty:
-          source: http://ppa.launchpad.net/gluster/glusterfs-${_param:glusterfs_version}/ubuntu
-          distribution: trusty
-          components: main
+          source: ${_param:mirror_glusterfs_upstream_trusty_source}
+          distribution: ${_param:mirror_glusterfs_upstream_trusty_distribution}
+          components: ${_param:mirror_glusterfs_upstream_trusty_components}
           architectures: amd64
-          gpgkeys:
-            - 3FE869A9
+          gpgkeys: ${_param:mirror_glusterfs_upstream_trusty_gpgkeys}
           publisher:
             component: glusterfs
             distributions:
-              - ubuntu-trusty/nightly
+              - ubuntu-trusty/nightly
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/grafana.yml b/aptly/server/mirror/ubuntu/trusty/grafana.yml
index 68ff86a..16c4124 100644
--- a/aptly/server/mirror/ubuntu/trusty/grafana.yml
+++ b/aptly/server/mirror/ubuntu/trusty/grafana.yml
@@ -1,14 +1,19 @@
 parameters:
+  _param:
+    mirror_grafana-trusty_source: https://packagecloud.io/grafana/stable/debian/
+    mirror_grafana-trusty_distribution: wheezy
+    mirror_grafana-trusty_components: main
+    mirror_grafana-trusty_gpgkeys:
+      - D59097AB
   aptly:
     server:
       mirror:
         grafana-trusty:
-          source: https://packagecloud.io/grafana/stable/debian/
-          distribution: wheezy
-          components: main
+          source: ${_param:mirror_grafana-trusty_source}
+          distribution: ${_param:mirror_grafana-trusty_distribution}
+          components: ${_param:mirror_grafana-trusty_components}
           architectures: amd64
-          gpgkeys:
-            - D59097AB
+          gpgkeys: ${_param:mirror_grafana-trusty_gpgkeys}
           publisher:
             component: grafana
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/haproxy.yml b/aptly/server/mirror/ubuntu/trusty/haproxy.yml
index 0b92cb2..ca4c9c5 100644
--- a/aptly/server/mirror/ubuntu/trusty/haproxy.yml
+++ b/aptly/server/mirror/ubuntu/trusty/haproxy.yml
@@ -1,14 +1,19 @@
 parameters:
+  _param:
+    mirror_haproxy-trusty_source: http://ppa.launchpad.net/vbernat/haproxy-1.5/ubuntu
+    mirror_haproxy-trusty_distribution: trusty
+    mirror_haproxy-trusty_components: main
+    mirror_haproxy-trusty_gpgkeys:
+      - 1C61B9CD
   aptly:
     server:
       mirror:
         haproxy-trusty:
-          source: http://ppa.launchpad.net/vbernat/haproxy-1.5/ubuntu
-          distribution: trusty
-          components: main
+          source: ${_param:mirror_haproxy-trusty_source}
+          distribution: ${_param:mirror_haproxy-trusty_distribution}
+          components: ${_param:mirror_haproxy-trusty_components}
           architectures: amd64
-          gpgkeys:
-            - 1C61B9CD
+          gpgkeys: ${_param:mirror_haproxy-trusty_gpgkeys}
           publisher:
             component: haproxy
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/influxdb.yml b/aptly/server/mirror/ubuntu/trusty/influxdb.yml
index 8d30a05..824cde6 100644
--- a/aptly/server/mirror/ubuntu/trusty/influxdb.yml
+++ b/aptly/server/mirror/ubuntu/trusty/influxdb.yml
@@ -1,14 +1,19 @@
 parameters:
+  _param:
+    mirror_influxdb-trusty_source: https://repos.influxdata.com/ubuntu/
+    mirror_influxdb-trusty_distribution: trusty
+    mirror_influxdb-trusty_components: stable
+    mirror_influxdb-trusty_gpgkeys:
+      - 2582E0C5
   aptly:
     server:
       mirror:
         influxdb-trusty:
-          source: https://repos.influxdata.com/ubuntu/
-          distribution: trusty
-          components: stable
+          source: ${_param:mirror_influxdb-trusty_source}
+          distribution: ${_param:mirror_influxdb-trusty_distribution}
+          components: ${_param:mirror_influxdb-trusty_components}
           architectures: amd64
-          gpgkeys:
-            - 2582E0C5
+          gpgkeys: ${_param:mirror_influxdb-trusty_gpgkeys}
           publisher:
             component: influxdb
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/extra.yml b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/extra.yml
index 944a590..89e3da0 100644
--- a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/extra.yml
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/extra.yml
@@ -1,17 +1,22 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_mirantis_openstack_trusty_extra_source: http://apt.mirantis.com/trusty/
+    mirror_mirantis_openstack_trusty_extra_distribution: ${_param:apt_mk_version}
+    mirror_mirantis_openstack_trusty_extra_components: extra
+    mirror_mirantis_openstack_trusty_extra_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mirantis_openstack_trusty_extra_gpgkeys:
+      - A76882D3
   aptly:
     server:
       mirror:
         mirantis_openstack_trusty_extra:
-          source: http://apt-mk.mirantis.com/trusty/
-          distribution: ${_param:apt_mk_version}
-          components: extra
+          source: ${_param:mirror_mirantis_openstack_trusty_extra_source}
+          distribution: ${_param:mirror_mirantis_openstack_trusty_extra_distribution}
+          components: ${_param:mirror_mirantis_openstack_trusty_extra_components}
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
+          key_url: ${_param:mirror_mirantis_openstack_trusty_extra_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_trusty_extra_gpgkeys}
           publisher:
             component: extra
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/mitaka.yml b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/mitaka.yml
index 5b9bc63..6ad0019 100644
--- a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/mitaka.yml
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/mitaka.yml
@@ -1,18 +1,23 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_mk_openstack_xenial_mitaka_source: http://apt.mirantis.com/trusty/
+    mirror_mk_openstack_xenial_mitaka_distribution: ${_param:apt_mk_version}
+    mirror_mk_openstack_xenial_mitaka_components: mitaka
+    mirror_mk_openstack_xenial_mitaka_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mk_openstack_xenial_mitaka_gpgkeys:
+      - A76882D3
   aptly:
     server:
       mirror:
         mk_openstack_xenial_mitaka:
-          source: http://apt-mk.mirantis.com/xenial/
-          distribution: ${_param:apt_mk_version}
-          components: mitaka
+          source: ${_param:mirror_mk_openstack_xenial_mitaka_source}
+          distribution: ${_param:mirror_mk_openstack_xenial_mitaka_distribution}
+          components: ${_param:mirror_mk_openstack_xenial_mitaka_components}
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
+          key_url: ${_param:mirror_mk_openstack_xenial_mitaka_key_url}
+          gpgkeys: ${_param:mirror_mk_openstack_xenial_mitaka_gpgkeys}
           publisher:
             component: mitaka
             distributions:
-              - ubuntu-xenial/${_param:apt_mk_version}
\ No newline at end of file
+              - ubuntu-trusty/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc31.yml b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc31.yml
index bae9875..5678d34 100644
--- a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc31.yml
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc31.yml
@@ -1,17 +1,22 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_mcp_opencontrail_trusty_oc31_source: http://apt.mirantis.com/trusty/
+    mirror_mcp_opencontrail_trusty_oc31_distribution: ${_param:apt_mk_version}
+    mirror_mcp_opencontrail_trusty_oc31_components: oc31
+    mirror_mcp_opencontrail_trusty_oc31_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mcp_opencontrail_trusty_oc31_gpgkeys:
+      - A76882D3
   aptly:
     server:
       mirror:
         mcp_opencontrail_trusty_oc31:
-          source: http://apt-mk.mirantis.com/trusty/
-          distribution: ${_param:apt_mk_version}
-          components: oc31
+          source: ${_param:mirror_mcp_opencontrail_trusty_oc31_source}
+          distribution: ${_param:mirror_mcp_opencontrail_trusty_oc31_distribution}
+          components: ${_param:mirror_mcp_opencontrail_trusty_oc31_components}
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
+          key_url: ${_param:mirror_mcp_opencontrail_trusty_oc31_key_url}
+          gpgkeys: ${_param:mirror_mcp_opencontrail_trusty_oc31_gpgkeys}
           publisher:
             component: oc31
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc311.yml b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc311.yml
index d60f154..026abdc 100644
--- a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc311.yml
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc311.yml
@@ -1,17 +1,22 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_mcp_opencontrail_trusty_oc311_source: http://apt.mirantis.com/trusty/
+    mirror_mcp_opencontrail_trusty_oc311_distribution: ${_param:apt_mk_version}
+    mirror_mcp_opencontrail_trusty_oc311_components: oc311
+    mirror_mcp_opencontrail_trusty_oc311_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mcp_opencontrail_trusty_oc311_gpgkeys:
+      - A76882D3
   aptly:
     server:
       mirror:
         mcp_opencontrail_trusty_oc311:
-          source: http://apt-mk.mirantis.com/trusty/
-          distribution: ${_param:apt_mk_version}
-          components: oc311
+          source: ${_param:mirror_mcp_opencontrail_trusty_oc311_source}
+          distribution: ${_param:mirror_mcp_opencontrail_trusty_oc311_distribution}
+          components: ${_param:mirror_mcp_opencontrail_trusty_oc311_components}
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
+          key_url: ${_param:mirror_mcp_opencontrail_trusty_oc311_key_url}
+          gpgkeys: ${_param:mirror_mcp_opencontrail_trusty_oc311_gpgkeys}
           publisher:
             component: oc311
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc32.yml b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc32.yml
index 6fe8489..a9f388b 100644
--- a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc32.yml
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc32.yml
@@ -1,17 +1,22 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_mcp_opencontrail_trusty_oc32_source: http://apt.mirantis.com/trusty/
+    mirror_mcp_opencontrail_trusty_oc32_distribution: ${_param:apt_mk_version}
+    mirror_mcp_opencontrail_trusty_oc32_components: oc32
+    mirror_mcp_opencontrail_trusty_oc32_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mcp_opencontrail_trusty_oc32_gpgkeys:
+      - A76882D3
   aptly:
     server:
       mirror:
         mcp_opencontrail_trusty_oc32:
-          source: http://apt-mk.mirantis.com/trusty/
-          distribution: ${_param:apt_mk_version}
-          components: oc32
+          source: ${_param:mirror_mcp_opencontrail_trusty_oc32_source}
+          distribution: ${_param:mirror_mcp_opencontrail_trusty_oc32_distribution}
+          components: ${_param:mirror_mcp_opencontrail_trusty_oc32_components}
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
+          key_url: ${_param:mirror_mcp_opencontrail_trusty_oc32_key_url}
+          gpgkeys: ${_param:mirror_mcp_opencontrail_trusty_oc32_gpgkeys}
           publisher:
             component: oc32
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc323.yml b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc323.yml
index e4a9462..10b503e 100644
--- a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc323.yml
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc323.yml
@@ -1,17 +1,22 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_mcp_opencontrail_trusty_oc323_source: http://apt.mirantis.com/trusty/
+    mirror_mcp_opencontrail_trusty_oc323_distribution: ${_param:apt_mk_version}
+    mirror_mcp_opencontrail_trusty_oc323_components: oc323
+    mirror_mcp_opencontrail_trusty_oc323_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mcp_opencontrail_trusty_oc323_gpgkeys:
+      - A76882D3
   aptly:
     server:
       mirror:
         mcp_opencontrail_trusty_oc323:
-          source: http://apt-mk.mirantis.com/trusty/
-          distribution: ${_param:apt_mk_version}
-          components: oc323
+          source: ${_param:mirror_mcp_opencontrail_trusty_oc323_source}
+          distribution: ${_param:mirror_mcp_opencontrail_trusty_oc323_distribution}
+          components: ${_param:mirror_mcp_opencontrail_trusty_oc323_components}
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
+          key_url: ${_param:mirror_mcp_opencontrail_trusty_oc323_key_url}
+          gpgkeys: ${_param:mirror_mcp_opencontrail_trusty_oc323_gpgkeys}
           publisher:
             component: oc323
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/salt.yml b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/salt.yml
index 7588830..5e06a4e 100644
--- a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/salt.yml
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/salt.yml
@@ -1,17 +1,22 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_mirantis_openstack_trusty_salt_source: http://apt.mirantis.com/trusty/
+    mirror_mirantis_openstack_trusty_salt_distribution: ${_param:apt_mk_version}
+    mirror_mirantis_openstack_trusty_salt_components: salt
+    mirror_mirantis_openstack_trusty_salt_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mirantis_openstack_trusty_salt_gpgkeys:
+      - A76882D3
   aptly:
     server:
       mirror:
         mirantis_openstack_trusty_salt:
-          source: http://apt-mk.mirantis.com/trusty/
-          distribution: ${_param:apt_mk_version}
-          components: salt
+          source: ${_param:mirror_mirantis_openstack_trusty_salt_source}
+          distribution: ${_param:mirror_mirantis_openstack_trusty_salt_distribution}
+          components: ${_param:mirror_mirantis_openstack_trusty_salt_components}
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
+          key_url: ${_param:mirror_mirantis_openstack_trusty_salt_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_trusty_salt_gpgkeys}
           publisher:
             component: salt
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/mcp/openstack_mitaka.yml b/aptly/server/mirror/ubuntu/trusty/mcp/openstack_mitaka.yml
index d9e54e5..8263ad1 100644
--- a/aptly/server/mirror/ubuntu/trusty/mcp/openstack_mitaka.yml
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/openstack_mitaka.yml
@@ -1,41 +1,73 @@
 parameters:
+  _param:
+    mirror_mirantis_openstack_mitaka_trusty_source: http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty
+    mirror_mirantis_openstack_mitaka_trusty_distribution: mitaka
+    mirror_mirantis_openstack_mitaka_trusty_components: main restricted
+    mirror_mirantis_openstack_mitaka_trusty_key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty/archive-mcpmitaka.key"
+    mirror_mirantis_openstack_mitaka_trusty_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_mitaka_hotfix_trusty_source: http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty
+    mirror_mirantis_openstack_mitaka_hotfix_trusty_distribution: mitaka-hotfix
+    mirror_mirantis_openstack_mitaka_hotfix_trusty_components: main restricted
+    mirror_mirantis_openstack_mitaka_hotfix_trusty_key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty/archive-mcpmitaka.key"
+    mirror_mirantis_openstack_mitaka_hotfix_trusty_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_mitaka_security_trusty_source: http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty
+    mirror_mirantis_openstack_mitaka_security_trusty_distribution: mitaka-security
+    mirror_mirantis_openstack_mitaka_security_trusty_components: main restricted
+    mirror_mirantis_openstack_mitaka_security_trusty_key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty/archive-mcpmitaka.key"
+    mirror_mirantis_openstack_mitaka_security_trusty_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_mitaka_updates_trusty_source: http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty
+    mirror_mirantis_openstack_mitaka_updates_trusty_distribution: mitaka-updates
+    mirror_mirantis_openstack_mitaka_updates_trusty_components: main restricted
+    mirror_mirantis_openstack_mitaka_updates_trusty_key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty/archive-mcpmitaka.key"
+    mirror_mirantis_openstack_mitaka_updates_trusty_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_mitaka_holdback_trusty_source: http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty
+    mirror_mirantis_openstack_mitaka_holdback_trusty_distribution: mitaka-holdback
+    mirror_mirantis_openstack_mitaka_holdback_trusty_components: main restricted
+    mirror_mirantis_openstack_mitaka_holdback_trusty_key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty/archive-mcpmitaka.key"
+    mirror_mirantis_openstack_mitaka_holdback_trusty_gpgkeys:
+      - 1FA22B08
   aptly:
     server:
       mirror:
         mirantis_openstack_mitaka_trusty:
-          source: http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty
-          distribution: mitaka
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_mitaka_trusty_source}
+          distribution: ${_param:mirror_mirantis_openstack_mitaka_trusty_distribution}
+          components: ${_param:mirror_mirantis_openstack_mitaka_trusty_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty/archive-mcpmitaka.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_mitaka_trusty_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_mitaka_trusty_gpgkeys}
           publisher:
             component: main
             distributions:
               - ubuntu-trusty/mitaka
 
         mirantis_openstack_mitaka_hotfix_trusty:
-          source: http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty
-          distribution: mitaka-hotfix
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_mitaka_hotfix_trusty_source}
+          distribution: ${_param:mirror_mirantis_openstack_mitaka_hotfix_trusty_distribution}
+          components: ${_param:mirror_mirantis_openstack_mitaka_hotfix_trusty_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty/archive-mcpmitaka.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_mitaka_hotfix_trusty_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_mitaka_hotfix_trusty_gpgkeys}
           publisher:
             component: main
             distributions:
               - ubuntu-trusty/mitaka-hotfix
 
         mirantis_openstack_mitaka_security_trusty:
-          source: http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty
-          distribution: mitaka-security
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_mitaka_security_trusty_source}
+          distribution: ${_param:mirror_mirantis_openstack_mitaka_security_trusty_distribution}
+          components: ${_param:mirror_mirantis_openstack_mitaka_security_trusty_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty/archive-mcpmitaka.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_mitaka_security_trusty_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_mitaka_security_trusty_gpgkeys}
           publisher:
             component: main
             distributions:
@@ -43,13 +75,12 @@
 
         # required for alternative horizon plugins/etc..
         mirantis_openstack_mitaka_updates_trusty:
-          source: http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty
-          distribution: mitaka-updates
-          components:  main restricted
+          source: ${_param:mirror_mirantis_openstack_mitaka_updates_trusty_source}
+          distribution: ${_param:mirror_mirantis_openstack_mitaka_updates_trusty_distribution}
+          components:  ${_param:mirror_mirantis_openstack_mitaka_updates_trusty_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty/archive-mcpmitaka.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_mitaka_updates_trusty_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_mitaka_updates_trusty_gpgkeys}
           publisher:
             component: main
             distributions:
@@ -57,15 +88,13 @@
 
         # required for salt formulas
         mirantis_openstack_mitaka_holdback_trusty:
-          source: http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty
-          distribution: mitaka-holdback
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_mitaka_holdback_trusty_source}
+          distribution: ${_param:mirror_mirantis_openstack_mitaka_holdback_trusty_distribution}
+          components: ${_param:mirror_mirantis_openstack_mitaka_holdback_trusty_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/trusty/archive-mcpmitaka.key"
-          gpgkeys:
-          - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_mitaka_holdback_trusty_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_mitaka_holdback_trusty_gpgkeys}
           publisher:
             component: main
             distributions:
-              - ubuntu-trusty/mitaka-holdback
-
+              - ubuntu-trusty/mitaka-holdback
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/mos8.yml b/aptly/server/mirror/ubuntu/trusty/mos8.yml
index c85363f..a9c1ce1 100644
--- a/aptly/server/mirror/ubuntu/trusty/mos8.yml
+++ b/aptly/server/mirror/ubuntu/trusty/mos8.yml
@@ -1,14 +1,34 @@
 parameters:
+  _param:
+    mirror_mirantis-openstack-8.0-trusty_source: http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/
+    mirror_mirantis-openstack-8.0-trusty_distribution: mos8.0
+    mirror_mirantis-openstack-8.0-trusty_components: main restricted
+    mirror_mirantis-openstack-8.0-trusty_key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/archive-mos8.0.key"
+    mirror_mirantis-openstack-8.0-trusty_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis-openstack-8.0-proposed-trusty_source: http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/
+    mirror_mirantis-openstack-8.0-proposed-trusty_distribution: mos8.0-proposed
+    mirror_mirantis-openstack-8.0-proposed-trusty_components: main restricted
+    mirror_mirantis-openstack-8.0-proposed-trusty_key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/archive-mos8.0.key"
+    mirror_mirantis-openstack-8.0-proposed-trusty_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis-openstack-8.0-updates-trusty_source: http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/
+    mirror_mirantis-openstack-8.0-updates-trusty_distribution: mos8.0-updates
+    mirror_mirantis-openstack-8.0-updates-trusty_components: main restricted
+    mirror_mirantis-openstack-8.0-updates-trusty_key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/archive-mos8.0.key"
+    mirror_mirantis-openstack-8.0-updates-trusty_gpgkeys:
+      - 1FA22B08
   aptly:
     server:
       mirror:
         mirantis-openstack-8.0-trusty:
-          source: http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/
-          distribution: mos8.0
-          components: main restricted
+          source: ${_param:mirror_mirantis-openstack-8.0-trusty_source}
+          distribution: ${_param:mirror_mirantis-openstack-8.0-trusty_distribution}
+          components: ${_param:mirror_mirantis-openstack-8.0-trusty_components}
           architectures: amd64
-          gpgkeys:
-            - 1FA22B08
+          gpgkeys: ${_param:mirror_mirantis-openstack-8.0-trusty_gpgkeys}
           publisher:
             component: main
             distributions:
@@ -27,13 +47,12 @@
         #    distributions:
         #      - mos8/mos8.0-hotfix
         mirantis-openstack-8.0-proposed-trusty:
-          source: http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/
-          distribution: mos8.0-proposed
-          components: main restricted
+          source: ${_param:mirror_mirantis-openstack-8.0-proposed-trusty_source}
+          distribution: ${_param:mirror_mirantis-openstack-8.0-proposed-trusty_distribution}
+          components: ${_param:mirror_mirantis-openstack-8.0-proposed-trusty_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/archive-mos8.0.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis-openstack-8.0-proposed-trusty_key_url}
+          gpgkeys: ${_param:mirror_mirantis-openstack-8.0-proposed-trusty_gpgkeys}
           publisher:
             component: main
             distributions:
@@ -52,13 +71,12 @@
         #    distributions:
         #      - mos8/mos8.0-security
         mirantis-openstack-8.0-updates-trusty:
-          source: http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/
-          distribution: mos8.0-updates
-          components: main restricted
+          source: ${_param:mirror_mirantis-openstack-8.0-updates-trusty_source}
+          distribution: ${_param:mirror_mirantis-openstack-8.0-updates-trusty_distribution}
+          components: ${_param:mirror_mirantis-openstack-8.0-updates-trusty_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/archive-mos8.0.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis-openstack-8.0-updates-trusty_key_url}
+          gpgkeys: ${_param:mirror_mirantis-openstack-8.0-updates-trusty_gpgkeys}
           publisher:
             component: main
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/mos9.yml b/aptly/server/mirror/ubuntu/trusty/mos9.yml
index 29415ab..1d7b7a4 100644
--- a/aptly/server/mirror/ubuntu/trusty/mos9.yml
+++ b/aptly/server/mirror/ubuntu/trusty/mos9.yml
@@ -1,14 +1,41 @@
 parameters:
+  _param:
+    mirror_mirantis-openstack-9.0-trusty_source: http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/
+    mirror_mirantis-openstack-9.0-trusty_distribution: mos9.0
+    mirror_mirantis-openstack-9.0-trusty_components: main restricted
+    mirror_mirantis-openstack-9.0-trusty_key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/archive-mos9.0.key"
+    mirror_mirantis-openstack-9.0-trusty_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis-openstack-9.0-proposed-trusty_source: http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/
+    mirror_mirantis-openstack-9.0-proposed-trusty_distribution: mos9.0-proposed
+    mirror_mirantis-openstack-9.0-proposed-trusty_components: main restricted
+    mirror_mirantis-openstack-9.0-proposed-trusty_key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/archive-mos9.0.key"
+    mirror_mirantis-openstack-9.0-proposed-trusty_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis-openstack-9.0-updates-trusty_source: http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/
+    mirror_mirantis-openstack-9.0-updates-trusty_distribution: mos9.0-updates
+    mirror_mirantis-openstack-9.0-updates-trusty_components: main restricted
+    mirror_mirantis-openstack-9.0-updates-trusty_key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/archive-mos9.0.key"
+    mirror_mirantis-openstack-9.0-updates-trusty_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis-openstack-9.0-extras-murano_source: http://mirror.fuel-infra.org/extras/murano-plugin-repos/release/1.2.0/ubuntu/9.0/
+    mirror_mirantis-openstack-9.0-extras-murano_distribution: mos9.0
+    mirror_mirantis-openstack-9.0-extras-murano_components: main restricted
+    mirror_mirantis-openstack-9.0-extras-murano_key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/archive-mos9.0.key"
+    mirror_mirantis-openstack-9.0-extras-murano_gpgkeys:
+      - 1FA22B08
   aptly:
     server:
       mirror:
         mirantis-openstack-9.0-trusty:
-          source: http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/
-          distribution: mos9.0
-          components: main restricted
+          source: ${_param:mirror_mirantis-openstack-9.0-trusty_source}
+          distribution: ${_param:mirror_mirantis-openstack-9.0-trusty_distribution}
+          components: ${_param:mirror_mirantis-openstack-9.0-trusty_components}
           architectures: amd64
-          gpgkeys:
-            - 1FA22B08
+          gpgkeys: ${_param:mirror_mirantis-openstack-9.0-trusty_gpgkeys}
           publisher:
             component: main
             distributions:
@@ -26,13 +53,12 @@
         #    distributions:
         #      - mos9/mos9.0-hotfix
         mirantis-openstack-9.0-proposed-trusty:
-          source: http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/
-          distribution: mos9.0-proposed
-          components: main restricted
+          source: ${_param:mirror_mirantis-openstack-9.0-proposed-trusty_source}
+          distribution: ${_param:mirror_mirantis-openstack-9.0-proposed-trusty_distribution}
+          components: ${_param:mirror_mirantis-openstack-9.0-proposed-trusty_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/archive-mos9.0.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis-openstack-9.0-proposed-trusty_key_url}
+          gpgkeys: ${_param:mirror_mirantis-openstack-9.0-proposed-trusty_gpgkeys}
           publisher:
             component: main
             distributions:
@@ -51,25 +77,23 @@
         #    distributions:
         #      - mos9/mos9.0-security
         mirantis-openstack-9.0-updates-trusty:
-          source: http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/
-          distribution: mos9.0-updates
-          components: main restricted
+          source: ${_param:mirror_mirantis-openstack-9.0-updates-trusty_source}
+          distribution: ${_param:mirror_mirantis-openstack-9.0-updates-trusty_distribution}
+          components: ${_param:mirror_mirantis-openstack-9.0-updates-trusty_}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/archive-mos9.0.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis-openstack-9.0-updates-trusty_key_url}
+          gpgkeys: ${_param:mirror_mirantis-openstack-9.0-updates-trusty_gpgkeys}
           publisher:
             component: main
             distributions:
               - mos9/mos9.0-updates
         mirantis-openstack-9.0-extras-murano:
-          source: http://mirror.fuel-infra.org/extras/murano-plugin-repos/release/1.2.0/ubuntu/9.0/
-          distribution: mos9.0
-          components: main restricted
+          source: ${_param:mirror_mirantis-openstack-9.0-extras-murano_source}
+          distribution: ${_param:mirror_mirantis-openstack-9.0-extras-murano_distribution}
+          components: ${_param:mirror_mirantis-openstack-9.0-extras-murano_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/archive-mos9.0.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis-openstack-9.0-extras-murano_key_url}
+          gpgkeys: ${_param:mirror_mirantis-openstack-9.0-extras-murano_gpgkeys}
           publisher:
             component: murano
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/rabbitmq.yml b/aptly/server/mirror/ubuntu/trusty/rabbitmq.yml
index 0b40092..5caa9b5 100644
--- a/aptly/server/mirror/ubuntu/trusty/rabbitmq.yml
+++ b/aptly/server/mirror/ubuntu/trusty/rabbitmq.yml
@@ -1,14 +1,19 @@
 parameters:
+  _param:
+    mirror_rabbitmq-testing-trusty_source: http://www.rabbitmq.com/debian/
+    mirror_rabbitmq-testing-trusty_distribution: testing
+    mirror_rabbitmq-testing-trusty_components: main
+    mirror_rabbitmq-testing-trusty_gpgkeys:
+      - 056E8E56
   aptly:
     server:
       mirror:
         rabbitmq-testing-trusty:
-          source: http://www.rabbitmq.com/debian/
-          distribution: testing
-          components: main
+          source: ${_param:mirror_rabbitmq-testing-trusty_source}
+          distribution: ${_param:mirror_rabbitmq-testing-trusty_distribution}
+          components: ${_param:mirror_rabbitmq-testing-trusty_components}
           architectures: amd64
-          gpgkeys:
-            - 056E8E56
+          gpgkeys: ${_param:mirror_rabbitmq-testing-trusty_gpgkeys}
           publisher:
             component: rabbitmq
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/salt.yml b/aptly/server/mirror/ubuntu/trusty/salt.yml
index 4c243b8..89bf1c5 100644
--- a/aptly/server/mirror/ubuntu/trusty/salt.yml
+++ b/aptly/server/mirror/ubuntu/trusty/salt.yml
@@ -1,16 +1,20 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_salt-2016-3-trusty_source: http://repo.saltstack.com/apt/ubuntu/14.04/amd64/2016.3
+    mirror_salt-2016-3-trusty_distribution: trusty
+    mirror_salt-2016-3-trusty_components: main
+    mirror_salt-2016-3-trusty_gpgkeys:
+      - DE57BFBE
   aptly:
     server:
       mirror:
         salt-2016.3-trusty:
-          source: http://repo.saltstack.com/apt/ubuntu/14.04/amd64/2016.3
-          distribution: trusty
-          components: main
+          source: ${_param:mirror_salt-2016-3-trusty_source}
+          distribution: ${_param:mirror_salt-2016-3-trusty_distribution}
+          components: ${_param:mirror_salt-2016-3-trusty_components}
           architectures: amd64
-          gpgkeys:
-            - DE57BFBE
+          gpgkeys: ${_param:mirror_salt-2016-3-trusty_gpgkeys}
           publisher:
             component: salt
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/sssd.yml b/aptly/server/mirror/ubuntu/trusty/sssd.yml
index 59436a0..3b23542 100644
--- a/aptly/server/mirror/ubuntu/trusty/sssd.yml
+++ b/aptly/server/mirror/ubuntu/trusty/sssd.yml
@@ -1,14 +1,19 @@
 parameters:
+  _param:
+    mirror_sssd-trusty_source: http://ppa.launchpad.net/sssd/updates/ubuntu
+    mirror_sssd-trusty_distribution: trusty
+    mirror_sssd-trusty_components: main
+    mirror_sssd-trusty_gpgkeys:
+      - CA45F42B
   aptly:
     server:
       mirror:
         sssd-trusty:
-          source: http://ppa.launchpad.net/sssd/updates/ubuntu
-          distribution: trusty
-          components: main
+          source: ${_param:mirror_sssd-trusty_source}
+          distribution: ${_param:mirror_sssd-trusty_distribution}
+          components: ${_param:mirror_sssd-trusty_components}
           architectures: amd64
-          gpgkeys:
-            - CA45F42B
+          gpgkeys: ${_param:mirror_sssd-trusty_gpgkeys}
           publisher:
             component: extra
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/tcpcloud.yml b/aptly/server/mirror/ubuntu/trusty/tcpcloud.yml
index c1196d7..08e2f54 100644
--- a/aptly/server/mirror/ubuntu/trusty/tcpcloud.yml
+++ b/aptly/server/mirror/ubuntu/trusty/tcpcloud.yml
@@ -2,78 +2,100 @@
   aptly:
     server:
       mirror:
+        mirror_tcpcloud-nightly-main-trusty_source: http://apt.tcpcloud.eu/nightly
+        mirror_tcpcloud-nightly-main-trusty_distribution: trusty
+        mirror_tcpcloud-nightly-main-trusty_components: main security
+        mirror_tcpcloud-nightly-main-trusty_key_url: "http://apt.tcpcloud.eu/public.gpg"
+        mirror_tcpcloud-nightly-main-trusty_gpgkeys:
+          - 3EF02D1C
 
+        mirror_tcpcloud-nightly-tcp-trusty_source: http://apt.tcpcloud.eu/nightly
+        mirror_tcpcloud-nightly-tcp-trusty_distribution: trusty
+        mirror_tcpcloud-nightly-tcp-trusty_components: tcp
+        mirror_tcpcloud-nightly-tcp-trusty_key_url: "http://apt.tcpcloud.eu/public.gpg"
+        mirror_tcpcloud-nightly-tcp-trusty_gpgkeys:
+          - 3EF02D1C
+
+        mirror_tcpcloud-nightly-extra-trusty_source: http://apt.tcpcloud.eu/nightly
+        mirror_tcpcloud-nightly-extra-trusty_distribution: trusty
+        mirror_tcpcloud-nightly-extra-trusty_components: extra
+        mirror_tcpcloud-nightly-tcp-trusty_key_url: "http://apt.tcpcloud.eu/public.gpg"
+        mirror_tcpcloud-nightly-extra-trusty_gpgkeys:
+          - 3EF02D1C
+
+        mirror_tcpcloud-nightly-salt-trusty_source: http://apt.tcpcloud.eu/nightly
+        mirror_tcpcloud-nightly-salt-trusty_distribution: trusty
+        mirror_tcpcloud-nightly-salt-trusty_components: tcp-salt
+        mirror_tcpcloud-nightly-tcp-trusty_key_url: "http://apt.tcpcloud.eu/public.gpg"
+        mirror_tcpcloud-nightly-salt-trusty_gpgkeys:
+          - 3EF02D1C
+
+        mirror_tcpcloud-nightly-oc30-trusty_source: http://apt.tcpcloud.eu/nightly
+        mirror_tcpcloud-nightly-oc30-trusty_distribution: trusty
+        mirror_tcpcloud-nightly-oc30-trusty_components: oc30
+        mirror_tcpcloud-nightly-tcp-trusty_key_url: "http://apt.tcpcloud.eu/public.gpg"
+        mirror_tcpcloud-nightly-oc30-trusty_gpgkeys:
+          - 3EF02D1C
+
+        mirror_tcpcloud-nightly-elastic-trusty_source: http://apt.tcpcloud.eu/nightly
+        mirror_tcpcloud-nightly-elastic-trusty_distribution: trusty
+        mirror_tcpcloud-nightly-elastic-trusty_components: elastic
+        mirror_tcpcloud-nightly-tcp-trusty_key_url: "http://apt.tcpcloud.eu/public.gpg"
+        mirror_tcpcloud-nightly-elastic-trusty_gpgkeys:
+          - 3EF02D1C
         #TOOD: 4x the lower below
-        #tcpcloud-[stable/testing]-xxx-[trusty/xenial]:
+        #tcpcloud-[stable/testing]-xxx-[trusty/trusty]:
         #
         # Other components
         # salt tcp-salt extra liberty mitaka oc30 security mitaka
 
         tcpcloud-nightly-main-trusty:
-          source: http://apt.tcpcloud.eu/nightly
-          distribution: trusty
+          source: ${_param:mirror_tcpcloud-nightly-main-trusty_source}
+          distribution: ${_param:mirror_tcpcloud-nightly-main-trusty_distribution}
             #TODO: extra component might not be needed; tcp is just for heka
-          components: main security
+          components: ${_param:mirror_tcpcloud-nightly-main-trusty_components}
           architectures: amd64
-          key_url: "http://apt.tcpcloud.eu/public.gpg"
-          gpgkeys:
-            - 3EF02D1C
+          key_url: ${_param:mirror_tcpcloud-nightly-main-trusty_key_url}
+          gpgkeys: ${_param:mirror_tcpcloud-nightly-main-trusty_gpgkeys}
           publisher:
             component: tcp-main
             distributions:
               - ubuntu-trusty/nightly
 
-        tcpcloud-nightly-main-trusty:
-          source: http://apt.tcpcloud.eu/nightly
-          distribution: trusty
+        tcpcloud-nightly-tcp-trusty:
+          source: ${_param:mirror_tcpcloud-nightly-tcp-trusty_source}
+          distribution: ${_param:mirror_tcpcloud-nightly-tcp-trusty_distribution}
             #TODO: extra component might not be needed; tcp is just for heka
-          components: tcp
+          components: ${_param:mirror_tcpcloud-nightly-tcp-trusty_components}
           architectures: amd64
-          key_url: "http://apt.tcpcloud.eu/public.gpg"
-          gpgkeys:
-            - 3EF02D1C
+          key_url: ${_param:mirror_tcpcloud-nightly-tcp-trusty_key_url}
+          gpgkeys: ${_param:mirror_tcpcloud-nightly-tcp-trusty_gpgkeys}
           publisher:
             component: tcp
             distributions:
               - ubuntu-trusty/nightly
 
         tcpcloud-nightly-extra-trusty:
-          source: http://apt.tcpcloud.eu/nightly
-          distribution: trusty
+          source: ${_param:mirror_tcpcloud-nightly-extra-trusty_source}
+          distribution: ${_param:mirror_tcpcloud-nightly-extra-trusty_distribution}
             #TODO: extra component might not be needed; tcp is just for heka
-          components: extra
+          components: ${_param:mirror_tcpcloud-nightly-extra-trusty_components}
           architectures: amd64
-          key_url: "http://apt.tcpcloud.eu/public.gpg"
-          gpgkeys:
-            - 3EF02D1C
+          key_url: ${_param:mirror_tcpcloud-nightly-extra-trusty_key_url}
+          gpgkeys: ${_param:mirror_tcpcloud-nightly-extra-trusty_gpgkeys}
           publisher:
             component: tcp-extra
             distributions:
               - ubuntu-trusty/nightly
 
-        # required for alternative horizon plugins/etc..
-        tcpcloud-nightly-liberty-trusty:
-          source: http://apt.tcpcloud.eu/nightly
-          distribution: trusty
-          components: liberty
-          architectures: amd64
-          key_url: "http://apt.tcpcloud.eu/public.gpg"
-          gpgkeys:
-            - 3EF02D1C
-          publisher:
-            component: tcp-liberty
-            distributions:
-              - ubuntu-trusty/nightly
-
         # required for salt formulas
         tcpcloud-nightly-salt-trusty:
-          source: http://apt.tcpcloud.eu/nightly
-          distribution: trusty
-          components: tcp-salt
+          source: ${_param:mirror_tcpcloud-nightly-salt-trusty_source}
+          distribution: ${_param:mirror_tcpcloud-nightly-salt-trusty_distribution}
+          components: ${_param:mirror_tcpcloud-nightly-salt-trusty_components}
           architectures: amd64
-          key_url: "http://apt.tcpcloud.eu/public.gpg"
-          gpgkeys:
-          - 3EF02D1C
+          key_url: ${_param:mirror_tcpcloud-nightly-salt-trusty_key_url}
+          gpgkeys: ${_param:mirror_tcpcloud-nightly-salt-trusty_gpgkeys}
           publisher:
             component: tcp-salt
             distributions:
@@ -81,13 +103,12 @@
 
         # required for opencontrail formulas
         tcpcloud-nightly-oc30-trusty:
-          source: http://apt.tcpcloud.eu/nightly
-          distribution: trusty
-          components: oc30
+          source: ${_param:mirror_tcpcloud-nightly-oc30-trusty_source}
+          distribution: ${_param:mirror_tcpcloud-nightly-oc30-trusty_distribution}
+          components: ${_param:mirror_tcpcloud-nightly-oc30-trusty_components}
           architectures: amd64
-          key_url: "http://apt.tcpcloud.eu/public.gpg"
-          gpgkeys:
-            - 3EF02D1C
+          key_url: ${_param:mirror_tcpcloud-nightly-oc30-trusty_key_url}
+          gpgkeys: ${_param:mirror_tcpcloud-nightly-oc30-trusty_gpgkeys}
           publisher:
             component: tcp-oc30
             distributions:
@@ -95,15 +116,13 @@
 
         # elastic, kibana is there
         tcpcloud-nightly-elastic-trusty:
-          source: http://apt.tcpcloud.eu/nightly
-          distribution: trusty
-          components: elastic
+          source: ${_param:mirror_tcpcloud-nightly-elastic-trusty_source}
+          distribution: ${_param:mirror_tcpcloud-nightly-elastic-trusty_distribution}
+          components: ${_param:mirror_tcpcloud-nightly-elastic-trusty_components}
           architectures: amd64
-          key_url: "http://apt.tcpcloud.eu/public.gpg"
-          gpgkeys:
-            - 3EF02D1C
+          key_url: ${_param:mirror_tcpcloud-nightly-elastic-trusty_key_url}
+          gpgkeys: ${_param:mirror_tcpcloud-nightly-elastic-trusty_gpgkeys}
           publisher:
             component: tcp-elastic
             distributions:
-              - ubuntu-trusty/nightly
-
+              - ubuntu-trusty/nightly
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/main.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/main.yml
index 8edff1f..3625d51 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/main.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/main.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-backports-main_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-backports-main_distribution: trusty-backports
+    mirror_trusty-backports-main_components: main
+    mirror_trusty-backports-main_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: trusty-backports
+        trusty-backports-main:
+          source: ${_param:mirror_trusty-backports-main_source}
+          distribution: ${_param:mirror_trusty-backports-main_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          components: main
+          components: ${_param:mirror_trusty-backports-main_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-backports-main_gpgkeys}
           publisher:
             component: main
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/multiverse.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/multiverse.yml
index 1985b2d..96dc420 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/multiverse.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/multiverse.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-backports-multiverse_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-backports-multiverse_distribution: trusty-backports
+    mirror_trusty-backports-multiverse_components: multiverse
+    mirror_trusty-backports-multiverse_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: trusty-backports
+        trusty-backports-multiverse:
+          source: ${_param:mirror_trusty-backports-multiverse_source}
+          distribution: ${_param:mirror_trusty-backports-multiverse_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          components: multiverse
+          components: ${_param:mirror_trusty-backports-multiverse_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-backports-multiverse_gpgkeys}
           publisher:
             component: multiverse
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/restricted.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/restricted.yml
index 68c18be..712bebc 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/restricted.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/restricted.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-backports-restricted_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-backports-restricted_distribution: trusty-backports
+    mirror_trusty-backports-restricted_components: restricted
+    mirror_trusty-backports-restricted_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+        trusty-backports-restricted:
+          source: ${_param:mirror_trusty-backports-restricted_source}
+          distribution: ${_param:mirror_trusty-backports-restricted_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-backports
-          components: restricted
+          components: ${_param:mirror_trusty-backports-restricted_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-backports-restricted_gpgkeys}
           publisher:
             component: restricted
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/universe.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/universe.yml
index 4bf2165..f18b504 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/universe.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/universe.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-backports-universe_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-backports-universe_distribution: trusty-backports
+    mirror_trusty-backports-universe_components: universe
+    mirror_trusty-backports-universe_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+        trusty-backports-universe:
+          source: ${_param:mirror_trusty-backports-universe_source}
+          distribution: ${_param:mirror_trusty-backports-universe_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-backports
-          components: universe
+          components: ${_param:mirror_trusty-backports-universe_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-backports-universe_gpgkeys}
           publisher:
             component: universe
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/main.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/main.yml
index 744e9c7..7164628 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/main.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/main.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-proposed-main_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-proposed-main_distribution: trusty-proposed
+    mirror_trusty-proposed-main_components: main
+    mirror_trusty-proposed-main_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: trusty-proposed
+        trusty-proposed-main:
+          source: ${_param:mirror_trusty-proposed-main_source}
+          distribution: ${_param:mirror_trusty-proposed-main_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          components: main
+          components: ${_param:mirror_trusty-proposed-main_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-proposed-main_gpgkeys}
           publisher:
             component: main
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/multiverse.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/multiverse.yml
index cd79014..9227036 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/multiverse.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/multiverse.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-proposed-multiverse_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-proposed-multiverse_distribution: trusty-proposed
+    mirror_trusty-proposed-multiverse_components: multiverse
+    mirror_trusty-proposed-multiverse_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: trusty-proposed
+        trusty-proposed-multiverse:
+          source: ${_param:mirror_trusty-proposed-multiverse_source}
+          distribution: ${_param:mirror_trusty-proposed-multiverse_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          components: multiverse
+          components: ${_param:mirror_trusty-proposed-multiverse_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-proposed-multiverse_gpgkeys}
           publisher:
             component: multiverse
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/restricted.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/restricted.yml
index c9c1966..f5378b9 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/restricted.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/restricted.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-proposed-restricted_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-proposed-restricted_distribution: trusty-proposed
+    mirror_trusty-proposed-restricted_components: restricted
+    mirror_trusty-proposed-restricted_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+        trusty-proposed-restricted:
+          source: ${_param:mirror_trusty-proposed-restricted_source}
+          distribution: ${_param:mirror_trusty-proposed-restricted_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-proposed
-          components: restricted
+          components: ${_param:mirror_trusty-proposed-restricted_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-proposed-restricted_gpgkeys}
           publisher:
             component: restricted
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/universe.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/universe.yml
index 2049b68..b6f321b 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/universe.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/universe.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-proposed-universe_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-proposed-universe_distribution: trusty-proposed
+    mirror_trusty-proposed-universe_components: universe
+    mirror_trusty-proposed-universe_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+        trusty-proposed-universe:
+          source: ${_param:mirror_trusty-proposed-universe_source}
+          distribution: ${_param:mirror_trusty-proposed-universe_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-proposed
-          components: universe
+          components: ${_param:mirror_trusty-proposed-universe_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-proposed-universe_gpgkeys}
           publisher:
             component: universe
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/main.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/main.yml
index 1068a48..1a797f7 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/main.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/main.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-security-main_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-security-main_distribution: trusty-security
+    mirror_trusty-security-main_components: main
+    mirror_trusty-security-main_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: trusty-security
+        trusty-security-main:
+          source: ${_param:mirror_trusty-security-main_source}
+          distribution: ${_param:mirror_trusty-security-main_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          components: main
+          components: ${_param:mirror_trusty-security-main_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-security-main_gpgkeys}
           publisher:
             component: main
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/multiverse.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/multiverse.yml
index db7b0ed..b38e42b 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/multiverse.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/multiverse.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-security-multiverse_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-security-multiverse_distribution: trusty-security
+    mirror_trusty-security-multiverse_components: multiverse
+    mirror_trusty-security-multiverse_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: trusty-security
+        trusty-security-multiverse:
+          source: ${_param:mirror_trusty-security-multiverse_source}
+          distribution: ${_param:mirror_trusty-security-multiverse_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          components: multiverse
+          components: ${_param:mirror_trusty-security-multiverse_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-security-multiverse_gpgkeys}
           publisher:
             component: multiverse
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/restricted.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/restricted.yml
index 8c93486..76d2b4a 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/restricted.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/restricted.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-security-restricted_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-security-restricted_distribution: trusty-security
+    mirror_trusty-security-restricted_components: restricted
+    mirror_trusty-security-restricted_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+        trusty-security-restricted:
+          source: ${_param:mirror_trusty-security-restricted_source}
+          distribution: ${_param:mirror_trusty-security-restricted_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-security
-          components: restricted
+          components: ${_param:mirror_trusty-security-restricted_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-security-restricted_gpgkeys}
           publisher:
             component: restricted
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/universe.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/universe.yml
index bcc7da3..33d42f5 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/universe.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/universe.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-security-universe_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-security-universe_distribution: trusty-security
+    mirror_trusty-security-universe_components: universe
+    mirror_trusty-security-universe_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+        trusty-security-universe:
+          source: ${_param:mirror_trusty-security-universe_source}
+          distribution: ${_param:mirror_trusty-security-universe_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-security
-          components: universe
+          components: ${_param:mirror_trusty-security-universe_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-security-universe_gpgkeys}
           publisher:
             component: universe
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/main.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/main.yml
index 8e86162..d7db631 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/main.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/main.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-updates-main_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-updates-main_distribution: trusty-updates
+    mirror_trusty-updates-main_components: main
+    mirror_trusty-updates-main_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: trusty-updates
+        trusty-updates-main:
+          source: ${_param:mirror_trusty-updates-main_source}
+          distribution: ${_param:mirror_trusty-updates-main_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          components: main
+          components: ${_param:mirror_trusty-updates-main_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-updates-main_gpgkeys}
           publisher:
             component: main
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/multiverse.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/multiverse.yml
index 1e6d543..518b0ff 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/multiverse.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/multiverse.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-updates-multiverse_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-updates-multiverse_distribution: trusty-updates
+    mirror_trusty-updates-multiverse_components: multiverse
+    mirror_trusty-updates-multiverse_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: trusty-updates
+        trusty-updates-multiverse:
+          source: ${_param:mirror_trusty-updates-multiverse_source}
+          distribution: ${_param:mirror_trusty-updates-multiverse_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          components: multiverse
+          components: ${_param:mirror_trusty-updates-multiverse_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-updates-multiverse_gpgkeys}
           publisher:
             component: multiverse
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/restricted.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/restricted.yml
index 278376d..1b7ea0f 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/restricted.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/restricted.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-updates-restricted_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-updates-restricted_distribution: trusty-updates
+    mirror_trusty-updates-restricted_components: restricted
+    mirror_trusty-updates-restricted_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+        trusty-updates-restricted:
+          source: ${_param:mirror_trusty-updates-restricted_source}
+          distribution: ${_param:mirror_trusty-updates-restricted_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-updates
-          components: restricted
+          components: ${_param:mirror_trusty-updates-restricted_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-updates-restricted_gpgkeys}
           publisher:
             component: restricted
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/universe.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/universe.yml
index 632abbb..3f4d815 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/universe.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/universe.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-updates-universe_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-updates-universe_distribution: trusty-updates
+    mirror_trusty-updates-universe_components: universe
+    mirror_trusty-updates-universe_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
-        trusty-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+        trusty-updates-universe:
+          source: ${_param:mirror_trusty-updates-universe_source}
+          distribution: ${_param:mirror_trusty-updates-universe_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-updates
-          components: universe
+          components: ${_param:mirror_trusty-updates-universe_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-updates-universe_gpgkeys}
           publisher:
             component: universe
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/main.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/main.yml
index 08559a6..3a054e7 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/main.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/main.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-main_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-main_distribution: trusty
+    mirror_trusty-main_components: main
+    mirror_trusty-main_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         trusty-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: trusty
+          source: ${_param:mirror_trusty-main_source}
+          distribution: ${_param:mirror_trusty-main_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          components: main
+          components: ${_param:mirror_trusty-main_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-main_gpgkeys}
           publisher:
             component: main
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/multiverse.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/multiverse.yml
index 1748832..37a0b05 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/multiverse.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/multiverse.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-multiverse_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-multiverse_distribution: trusty
+    mirror_trusty-multiverse_components: multiverse
+    mirror_trusty-multiverse_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         trusty-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: trusty
+          source: ${_param:mirror_trusty-multiverse_source}
+          distribution: ${_param:mirror_trusty-multiverse_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          components: multiverse
+          components: ${_param:mirror_trusty-multiverse_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-multiverse_gpgkeys}
           publisher:
             component: multiverse
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/restricted.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/restricted.yml
index 8004636..dca087a 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/restricted.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/restricted.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-restricted_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-restricted_distribution: trusty
+    mirror_trusty-restricted_components: restricted
+    mirror_trusty-restricted_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         trusty-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          source: ${_param:mirror_trusty-restricted_source}
+          distribution: ${_param:mirror_trusty-restricted_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty
-          components: restricted
+          components: ${_param:mirror_trusty-restricted_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-restricted_gpgkeys}
           publisher:
             component: restricted
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/universe.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/universe.yml
index ac3ba70..a112b94 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/universe.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/universe.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_trusty-universe_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_trusty-universe_distribution: trusty
+    mirror_trusty-universe_components: universe
+    mirror_trusty-universe_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         trusty-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          source: ${_param:mirror_trusty-universe_source}
+          distribution: ${_param:mirror_trusty-universe_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty
-          components: universe
+          components: ${_param:mirror_trusty-universe_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_trusty-universe_gpgkeys}
           publisher:
             component: universe
             distributions:
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntucloud.yml b/aptly/server/mirror/ubuntu/trusty/ubuntucloud.yml
index b66d34c..e8d1f54 100644
--- a/aptly/server/mirror/ubuntu/trusty/ubuntucloud.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntucloud.yml
@@ -1,4 +1,16 @@
 parameters:
+  _param:
+    mirror_trusty-updates-liberty_source: http://ubuntu-cloud.archive.canonical.com/ubuntu/
+    mirror_trusty-updates-liberty_distribution: trusty-updates/liberty
+    mirror_trusty-updates-liberty_components: main
+    mirror_trusty-updates-liberty_gpgkeys:
+      - EC4926EA
+
+    mirror_trusty-updates-mitaka_source: http://ubuntu-cloud.archive.canonical.com/ubuntu/
+    mirror_trusty-updates-mitaka_distribution: trusty-updates/mitaka
+    mirror_trusty-updates-mitaka_components: main
+    mirror_trusty-updates-mitaka_gpgkeys:
+      - EC4926EA
   aptly:
     server:
       mirror:
@@ -24,24 +36,25 @@
         #    component: kilo
         #    distributions:
         #      - trusty
+  aptly:
+    server:
+      mirror:
         trusty-updates-liberty:
-          source: http://ubuntu-cloud.archive.canonical.com/ubuntu/
-          distribution: trusty-updates/liberty
-          components: main
+          source: ${_param:mirror_trusty-updates-liberty_source}
+          distribution: ${_param:mirror_trusty-updates-liberty_distribution}
+          components: ${_param:mirror_trusty-updates-liberty_components}
           architectures: amd64
-          gpgkeys:
-            - EC4926EA
+          gpgkeys: ${_param:mirror_trusty-updates-liberty_gpgkeys}
           publisher:
             component: liberty
             distributions:
               - ubuntu-trusty/nightly
         trusty-updates-mitaka:
-          source: http://ubuntu-cloud.archive.canonical.com/ubuntu/
-          distribution: trusty-updates/mitaka
-          components: main
+          source: ${_param:mirror_trusty-updates-mitaka_source}
+          distribution: ${_param:mirror_trusty-updates-mitaka_distribution}
+          components: ${_param:mirror_trusty-updates-mitaka_components}
           architectures: amd64
-          gpgkeys:
-            - EC4926EA
+          gpgkeys: ${_param:mirror_trusty-updates-mitaka_gpgkeys}
           publisher:
             component: mitaka
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ceph.yml b/aptly/server/mirror/ubuntu/xenial/ceph.yml
index 50afc3e..f3ade60 100644
--- a/aptly/server/mirror/ubuntu/xenial/ceph.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ceph.yml
@@ -2,16 +2,20 @@
   _param:
     ceph_version: luminous
     apt_mk_version: stable
+    mirror_ceph-xenial_source: http://download.ceph.com/debian-${_param:ceph_version}
+    mirror_ceph-xenial_distribution: xenial
+    mirror_ceph-xenial_components: main
+    mirror_ceph-xenial_gpgkeys:
+      - 460F3994
   aptly:
     server:
       mirror:
         ceph-xenial:
-          source: http://download.ceph.com/debian-${_param:ceph_version}
-          distribution: xenial
-          components: main
+          source: ${_param:mirror_ceph-xenial_source}
+          distribution: ${_param:mirror_ceph-xenial_distribution}
+          components: ${_param:mirror_ceph-xenial_components}
           architectures: amd64
-          gpgkeys:
-            - 460F3994
+          gpgkeys: ${_param:mirror_ceph-xenial_gpgkeys}
           publisher:
             component: ceph
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ceph_mirantis.yml b/aptly/server/mirror/ubuntu/xenial/ceph_mirantis.yml
index eda0368..a2e28ee 100644
--- a/aptly/server/mirror/ubuntu/xenial/ceph_mirantis.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ceph_mirantis.yml
@@ -1,16 +1,20 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_ubuntu-xenial-ceph-mirantis_source: http://eu.mirror.fuel-infra.org/decapod/ceph/jewel-xenial
+    mirror_ubuntu-xenial-ceph-mirantis_distribution: jewel-xenial
+    mirror_ubuntu-xenial-ceph-mirantis_components: main
+    mirror_ubuntu-xenial-ceph-mirantis_gpgkeys:
+      - 460F3994
   aptly:
     server:
       mirror:
         ubuntu-xenial-ceph-mirantis:
-          source: http://eu.mirror.fuel-infra.org/decapod/ceph/jewel-xenial
-          distribution: jewel-xenial
-          components: main
+          source: ${_param:mirror_ubuntu-xenial-ceph-mirantis_source}
+          distribution: ${_param:mirror_ubuntu-xenial-ceph-mirantis_distribution}
+          components: ${_param:mirror_ubuntu-xenial-ceph-mirantis_components}
           architectures: amd64
-          gpgkeys:
-            - 460F3994
+          gpgkeys: ${_param:mirror_ubuntu-xenial-ceph-mirantis_gpgkeys}
           publisher:
             component: ceph-mirantis
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/docker.yml b/aptly/server/mirror/ubuntu/xenial/docker.yml
index b5d98c5..5c1f719 100644
--- a/aptly/server/mirror/ubuntu/xenial/docker.yml
+++ b/aptly/server/mirror/ubuntu/xenial/docker.yml
@@ -1,14 +1,19 @@
 parameters:
+  _param:
+    mirror_docker-xenial_source: 'https://download.docker.com/linux/ubuntu'
+    mirror_docker-xenial_distribution: xenial
+    mirror_docker-xenial_components: stable
+    mirror_docker-xenial_gpgkeys:
+      - 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
   aptly:
     server:
       mirror:
         docker-xenial:
-          source: 'https://download.docker.com/linux/ubuntu'
-          distribution: xenial
-          components: stable
+          source: ${_param:mirror_docker-xenial_source}
+          distribution: ${_param:mirror_docker-xenial_distribution}
+          components: ${_param:mirror_docker-xenial_components}
           architectures: amd64
-          gpgkeys:
-            - 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
+          gpgkeys: ${_param:mirror_docker-xenial_gpgkeys}
           publisher:
             component: docker
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/docker_legacy.yml b/aptly/server/mirror/ubuntu/xenial/docker_legacy.yml
new file mode 100644
index 0000000..f58a974
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/docker_legacy.yml
@@ -0,0 +1,20 @@
+parameters:
+  _param:
+    mirror_docker-xenial_source: 'https://apt.dockerproject.org/repo'
+    mirror_docker-xenial_distribution: ubuntu-xenial
+    mirror_docker-xenial_components: main
+    mirror_docker-xenial_gpgkeys:
+      - 58118E89F3A912897C070ADBF76221572C52609D
+  aptly:
+    server:
+      mirror:
+        docker-xenial-legacy:
+          source: ${_param:mirror_docker-xenial_source}
+          distribution: ${_param:mirror_docker-xenial_distribution}
+          components: ${_param:mirror_docker-xenial_components}
+          architectures: amd64
+          gpgkeys: ${_param:mirror_docker-xenial_gpgkeys}
+          publisher:
+            component: docker-legacy
+            distributions:
+              - ubuntu-xenial/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/glusterfs.yml b/aptly/server/mirror/ubuntu/xenial/glusterfs.yml
index 248de32..5ad4089 100644
--- a/aptly/server/mirror/ubuntu/xenial/glusterfs.yml
+++ b/aptly/server/mirror/ubuntu/xenial/glusterfs.yml
@@ -2,16 +2,20 @@
   _param:
     apt_mk_version: stable
     glusterfs_version: 3.8
+    mirror_glusterfs_upstream_xenial_source: http://ppa.launchpad.net/gluster/glusterfs-${_param:glusterfs_version}/ubuntu
+    mirror_glusterfs_upstream_xenial_distribution: xenial
+    mirror_glusterfs_upstream_xenial_components: main
+    mirror_glusterfs_upstream_xenial_gpgkeys:
+      - 3FE869A9
   aptly:
     server:
       mirror:
         glusterfs_upstream_xenial:
-          source: http://ppa.launchpad.net/gluster/glusterfs-${_param:glusterfs_version}/ubuntu
-          distribution: xenial
-          components: main
+          source: ${_param:mirror_glusterfs_upstream_xenial_source}
+          distribution: ${_param:mirror_glusterfs_upstream_xenial_distribution}
+          components: ${_param:mirror_glusterfs_upstream_xenial_components}
           architectures: amd64
-          gpgkeys:
-            - 3FE869A9
+          gpgkeys: ${_param:mirror_glusterfs_upstream_xenial_gpgkeys}
           publisher:
             component: glusterfs
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/grafana.yml b/aptly/server/mirror/ubuntu/xenial/grafana.yml
index 8dbb6ea..4ae2047 100644
--- a/aptly/server/mirror/ubuntu/xenial/grafana.yml
+++ b/aptly/server/mirror/ubuntu/xenial/grafana.yml
@@ -1,16 +1,20 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_grafana-xenial_source: https://packagecloud.io/grafana/stable/debian/
+    mirror_grafana-xenial_distribution: jessie
+    mirror_grafana-xenial_components: main
+    mirror_grafana-xenial_gpgkeys:
+      - D59097AB
   aptly:
     server:
       mirror:
         grafana-xenial:
-          source: https://packagecloud.io/grafana/stable/debian/
-          distribution: jessie
-          components: main
+          source: ${_param:mirror_grafana-xenial_source}
+          distribution: ${_param:mirror_grafana-xenial_distribution}
+          components: ${_param:mirror_grafana-xenial_components}
           architectures: amd64
-          gpgkeys:
-            - D59097AB
+          gpgkeys: ${_param:mirror_grafana-xenial_gpgkeys}
           publisher:
             component: grafana
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/hp.yml b/aptly/server/mirror/ubuntu/xenial/hp.yml
index 5b84417..9f5c6ef 100644
--- a/aptly/server/mirror/ubuntu/xenial/hp.yml
+++ b/aptly/server/mirror/ubuntu/xenial/hp.yml
@@ -1,17 +1,22 @@
 parameters:
+  _param:
+    mirror_hp-xenial_source: http://downloads.linux.hpe.com/SDR/repo/mcp/Ubuntu
+    mirror_hp-xenial_distribution: xenial/current
+    mirror_hp-xenial_components: non-free
+    mirror_hp-xenial_gpgkeys:
+      - 26C2B797
+      - B1275EA3
+      - 5CE2D476
+      - 2689B887
   aptly:
     server:
       mirror:
         hp-xenial:
-          source: http://downloads.linux.hpe.com/SDR/repo/mcp/Ubuntu
-          distribution: xenial/current
-          components: non-free
+          source: ${_param:mirror_hp-xenial_source}
+          distribution: ${_param:mirror_hp-xenial_distribution}
+          components: ${_param:mirror_hp-xenial_components}
           architectures: amd64
-          gpgkeys:
-            - 26C2B797
-            - B1275EA3
-            - 5CE2D476
-            - 2689B887
+          gpgkeys: ${_param:mirror_hp-xenial_gpgkeys}
           publisher:
             component: hp-non-free
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/influxdb.yml b/aptly/server/mirror/ubuntu/xenial/influxdb.yml
index a2ac597..2f61cb4 100644
--- a/aptly/server/mirror/ubuntu/xenial/influxdb.yml
+++ b/aptly/server/mirror/ubuntu/xenial/influxdb.yml
@@ -1,16 +1,20 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_influxdb-xenial_source: https://repos.influxdata.com/ubuntu/
+    mirror_influxdb-xenial_distribution: xenial
+    mirror_influxdb-xenial_components: stable
+    mirror_influxdb-xenial_gpgkeys:
+      - 2582E0C5
   aptly:
     server:
       mirror:
         influxdb-xenial:
-          source: https://repos.influxdata.com/ubuntu/
-          distribution: xenial
-          components: stable
+          source: ${_param:mirror_influxdb-xenial_source}
+          distribution: ${_param:mirror_influxdb-xenial_distribution}
+          components: ${_param:mirror_influxdb-xenial_components}
           architectures: amd64
-          gpgkeys:
-            - 2582E0C5
+          gpgkeys: ${_param:mirror_influxdb-xenial_gpgkeys}
           publisher:
             component: influxdb
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/maas.yml b/aptly/server/mirror/ubuntu/xenial/maas.yml
index 0e4a559..75cc04a 100644
--- a/aptly/server/mirror/ubuntu/xenial/maas.yml
+++ b/aptly/server/mirror/ubuntu/xenial/maas.yml
@@ -1,16 +1,20 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_maas-xenial_source: http://ppa.launchpad.net/maas/stable/ubuntu
+    mirror_maas-xenial_distribution: xenial
+    mirror_maas-xenial_components: main
+    mirror_maas-xenial_gpgkeys:
+      - 684D4A1C
   aptly:
     server:
       mirror:
         maas-xenial:
-          source: http://ppa.launchpad.net/maas/stable/ubuntu
-          distribution: xenial
-          components: main
+          source: ${_param:mirror_maas-xenial_source}
+          distribution: ${_param:mirror_maas-xenial_distribution}
+          components: ${_param:mirror_maas-xenial_components}
           architectures: amd64
-          gpgkeys:
-            - 684D4A1C
+          gpgkeys: ${_param:mirror_maas-xenial_gpgkeys}
           publisher:
             component: maas
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/extra.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/extra.yml
index 7231ac0..1f2b7d8 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/extra.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/extra.yml
@@ -1,17 +1,22 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_mirantis_openstack_xenial_extra_source: http://apt.mirantis.com/xenial/
+    mirror_mirantis_openstack_xenial_extra_distribution: ${_param:apt_mk_version}
+    mirror_mirantis_openstack_xenial_extra_components: extra
+    mirror_mirantis_openstack_xenial_extra_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mirantis_openstack_xenial_extra_gpgkeys:
+      - A76882D3
   aptly:
     server:
       mirror:
         mirantis_openstack_xenial_extra:
-          source: http://apt-mk.mirantis.com/xenial/
-          distribution: ${_param:apt_mk_version}
-          components: extra
+          source: ${_param:mirror_mirantis_openstack_xenial_extra_source}
+          distribution: ${_param:mirror_mirantis_openstack_xenial_extra_distribution}
+          components: ${_param:mirror_mirantis_openstack_xenial_extra_components}
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
+          key_url: ${_param:mirror_mirantis_openstack_xenial_extra_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_xenial_extra_gpgkeys}
           publisher:
             component: extra
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc31.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc31.yml
index cbd4f29..a2b64a0 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc31.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc31.yml
@@ -1,17 +1,22 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_mcp_opencontrail_xenial_oc31_source: http://apt.mirantis.com/xenial/
+    mirror_mcp_opencontrail_xenial_oc31_distribution: ${_param:apt_mk_version}
+    mirror_mcp_opencontrail_xenial_oc31_components: oc31
+    mirror_mcp_opencontrail_xenial_oc31_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mcp_opencontrail_xenial_oc31_gpgkeys:
+      - A76882D3
   aptly:
     server:
       mirror:
         mcp_opencontrail_xenial_oc31:
-          source: http://apt-mk.mirantis.com/xenial/
-          distribution: ${_param:apt_mk_version}
-          components: oc31
+          source: ${_param:mirror_mcp_opencontrail_xenial_oc31_source}
+          distribution: ${_param:mirror_mcp_opencontrail_xenial_oc31_distribution}
+          components: ${_param:mirror_mcp_opencontrail_xenial_oc31_components}
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
+          key_url: ${_param:mirror_mcp_opencontrail_xenial_oc31_key_url}
+          gpgkeys: ${_param:mirror_mcp_opencontrail_xenial_oc31_gpgkeys}
           publisher:
             component: oc31
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc311.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc311.yml
index bfa1638..c09a324 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc311.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc311.yml
@@ -1,17 +1,22 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_mcp_opencontrail_xenial_oc311_source: http://apt.mirantis.com/xenial/
+    mirror_mcp_opencontrail_xenial_oc311_distribution: ${_param:apt_mk_version}
+    mirror_mcp_opencontrail_xenial_oc311_components: oc311
+    mirror_mcp_opencontrail_xenial_oc311_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mcp_opencontrail_xenial_oc311_gpgkeys:
+      - A76882D3
   aptly:
     server:
       mirror:
         mcp_opencontrail_xenial_oc311:
-          source: http://apt-mk.mirantis.com/xenial/
-          distribution: ${_param:apt_mk_version}
-          components: oc311
+          source: ${_param:mirror_mcp_opencontrail_xenial_oc311_source}
+          distribution: ${_param:mirror_mcp_opencontrail_xenial_oc311_distribution}
+          components: ${_param:mirror_mcp_opencontrail_xenial_oc311_components}
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
+          key_url: ${_param:mirror_mcp_opencontrail_xenial_oc311_key_url}
+          gpgkeys: ${_param:mirror_mcp_opencontrail_xenial_oc311_gpgkeys}
           publisher:
             component: oc311
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc32.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc32.yml
index 40ca5d1..95f33e8 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc32.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc32.yml
@@ -1,17 +1,22 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_mcp_opencontrail_xenial_oc32_source: http://apt.mirantis.com/xenial/
+    mirror_mcp_opencontrail_xenial_oc32_distribution: ${_param:apt_mk_version}
+    mirror_mcp_opencontrail_xenial_oc32_components: oc32
+    mirror_mcp_opencontrail_xenial_oc32_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mcp_opencontrail_xenial_oc32_gpgkeys:
+      - A76882D3
   aptly:
     server:
       mirror:
         mcp_opencontrail_xenial_oc32:
-          source: http://apt-mk.mirantis.com/xenial/
-          distribution: ${_param:apt_mk_version}
-          components: oc32
+          source: ${_param:mirror_mcp_opencontrail_xenial_oc32_source}
+          distribution: ${_param:mirror_mcp_opencontrail_xenial_oc32_distribution}
+          components: ${_param:mirror_mcp_opencontrail_xenial_oc32_components}
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
+          key_url: ${_param:mirror_mcp_opencontrail_xenial_oc32_key_url}
+          gpgkeys: ${_param:mirror_mcp_opencontrail_xenial_oc32_gpgkeys}
           publisher:
             component: oc32
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc323.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc323.yml
index 2275c07..deceada 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc323.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc323.yml
@@ -1,17 +1,22 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_mcp_opencontrail_xenial_oc323_source: http://apt.mirantis.com/xenial/
+    mirror_mcp_opencontrail_xenial_oc323_distribution: ${_param:apt_mk_version}
+    mirror_mcp_opencontrail_xenial_oc323_components: oc323
+    mirror_mcp_opencontrail_xenial_oc323_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mcp_opencontrail_xenial_oc323_gpgkeys:
+      - A76882D3
   aptly:
     server:
       mirror:
         mcp_opencontrail_xenial_oc323:
-          source: http://apt-mk.mirantis.com/xenial/
-          distribution: ${_param:apt_mk_version}
-          components: oc323
+          source: ${_param:mirror_mcp_opencontrail_xenial_oc323_source}
+          distribution: ${_param:mirror_mcp_opencontrail_xenial_oc323_distribution}
+          components: ${_param:mirror_mcp_opencontrail_xenial_oc323_components}
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
+          key_url: ${_param:mirror_mcp_opencontrail_xenial_oc323_key_url}
+          gpgkeys: ${_param:mirror_mcp_opencontrail_xenial_oc323_gpgkeys}
           publisher:
             component: oc323
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/ocata.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/ocata.yml
index fc0e512..b42fdbe 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/ocata.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/ocata.yml
@@ -1,17 +1,22 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_mk_openstack_xenial_ocata_source: http://apt.mirantis.com/xenial/
+    mirror_mk_openstack_xenial_ocata_distribution: ${_param:apt_mk_version}
+    mirror_mk_openstack_xenial_ocata_components: ocata
+    mirror_mk_openstack_xenial_ocata_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mk_openstack_xenial_ocata_gpgkeys:
+      - A76882D3
   aptly:
     server:
       mirror:
         mk_openstack_xenial_ocata:
-          source: http://apt-mk.mirantis.com/xenial/
-          distribution: ${_param:apt_mk_version}
-          components: ocata
+          source: ${_param:mirror_mk_openstack_xenial_ocata_source}
+          distribution: ${_param:mirror_mk_openstack_xenial_ocata_distribution}
+          components: ${_param:mirror_mk_openstack_xenial_ocata_components}
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
+          key_url: ${_param:mirror_mk_openstack_xenial_ocata_key_url}
+          gpgkeys: ${_param:mirror_mk_openstack_xenial_ocata_gpgkeys}
           publisher:
             component: ocata
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/salt.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/salt.yml
index f5e4ca4..8e872b7 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/salt.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/salt.yml
@@ -1,17 +1,22 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_mirantis_openstack_xenial_salt_source: http://apt.mirantis.com/xenial/
+    mirror_mirantis_openstack_xenial_salt_distribution: ${_param:apt_mk_version}
+    mirror_mirantis_openstack_xenial_salt_components: salt
+    mirror_mirantis_openstack_xenial_salt_key_url: "http://apt.mirantis.com/public.gpg"
+    mirror_mirantis_openstack_xenial_salt_gpgkeys:
+      - A76882D3
   aptly:
     server:
       mirror:
         mirantis_openstack_xenial_salt:
-          source: http://apt-mk.mirantis.com/xenial/
-          distribution: ${_param:apt_mk_version}
-          components: salt
+          source: ${_param:mirror_mirantis_openstack_xenial_salt_source}
+          distribution: ${_param:mirror_mirantis_openstack_xenial_salt_distribution}
+          components: ${_param:mirror_mirantis_openstack_xenial_salt_components}
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
+          key_url: ${_param:mirror_mirantis_openstack_xenial_salt_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_xenial_salt_gpgkeys}
           publisher:
             component: salt
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/openstack_mitaka.yml b/aptly/server/mirror/ubuntu/xenial/mcp/openstack_mitaka.yml
index 32254d5..b10e128 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/openstack_mitaka.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/openstack_mitaka.yml
@@ -1,41 +1,73 @@
 parameters:
+  _param:
+    mirror_mirantis_openstack_mitaka_xenial_source: http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial
+    mirror_mirantis_openstack_mitaka_xenial_distribution: mitaka
+    mirror_mirantis_openstack_mitaka_xenial_components: main restricted
+    mirror_mirantis_openstack_mitaka_xenial_key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial/archive-mcpmitaka.key"
+    mirror_mirantis_openstack_mitaka_xenial_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_mitaka_hotfix_xenial_source: http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial
+    mirror_mirantis_openstack_mitaka_hotfix_xenial_distribution: mitaka-hotfix
+    mirror_mirantis_openstack_mitaka_hotfix_xenial_components: main restricted
+    mirror_mirantis_openstack_mitaka_hotfix_xenial_key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial/archive-mcpmitaka.key"
+    mirror_mirantis_openstack_mitaka_hotfix_xenial_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_mitaka_security_xenial_source: http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial
+    mirror_mirantis_openstack_mitaka_security_xenial_distribution: mitaka-security
+    mirror_mirantis_openstack_mitaka_security_xenial_components: main restricted
+    mirror_mirantis_openstack_mitaka_security_xenial_key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial/archive-mcpmitaka.key"
+    mirror_mirantis_openstack_mitaka_security_xenial_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_mitaka_updates_xenial_source: http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial
+    mirror_mirantis_openstack_mitaka_updates_xenial_distribution: mitaka-updates
+    mirror_mirantis_openstack_mitaka_updates_xenial_components: main restricted
+    mirror_mirantis_openstack_mitaka_updates_xenial_key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial/archive-mcpmitaka.key"
+    mirror_mirantis_openstack_mitaka_updates_xenial_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_mitaka_holdback_xenial_source: http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial
+    mirror_mirantis_openstack_mitaka_holdback_xenial_distribution: mitaka-holdback
+    mirror_mirantis_openstack_mitaka_holdback_xenial_components: main restricted
+    mirror_mirantis_openstack_mitaka_holdback_xenial_key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial/archive-mcpmitaka.key"
+    mirror_mirantis_openstack_mitaka_holdback_xenial_gpgkeys:
+      - 1FA22B08
   aptly:
     server:
       mirror:
         mirantis_openstack_mitaka_xenial:
-          source: http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial
-          distribution: mitaka
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_mitaka_xenial_source}
+          distribution: ${_param:mirror_mirantis_openstack_mitaka_xenial_distribution}
+          components: ${_param:mirror_mirantis_openstack_mitaka_xenial_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial/archive-mcpmitaka.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_mitaka_xenial_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_mitaka_xenial_gpgkeys}
           publisher:
             component: main
             distributions:
               - ubuntu-xenial/mitaka
 
         mirantis_openstack_mitaka_hotfix_xenial:
-          source: http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial
-          distribution: mitaka-hotfix
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_mitaka_hotfix_xenial_source}
+          distribution: ${_param:mirror_mirantis_openstack_mitaka_hotfix_xenial_distribution}
+          components: ${_param:mirror_mirantis_openstack_mitaka_hotfix_xenial_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial/archive-mcpmitaka.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_mitaka_hotfix_xenial_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_mitaka_hotfix_xenial_gpgkeys}
           publisher:
             component: main
             distributions:
               - ubuntu-xenial/mitaka-hotfix
 
         mirantis_openstack_mitaka_security_xenial:
-          source: http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial
-          distribution: mitaka-security
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_mitaka_security_xenial_source}
+          distribution: ${_param:mirror_mirantis_openstack_mitaka_security_xenial_distribution}
+          components: ${_param:mirror_mirantis_openstack_mitaka_security_xenial_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial/archive-mcpmitaka.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_mitaka_security_xenial_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_mitaka_security_xenial_gpgkeys}
           publisher:
             component: main
             distributions:
@@ -43,13 +75,12 @@
 
         # required for alternative horizon plugins/etc..
         mirantis_openstack_mitaka_updates_xenial:
-          source: http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial
-          distribution: mitaka-updates
-          components:  main restricted
+          source: ${_param:mirror_mirantis_openstack_mitaka_updates_xenial_source}
+          distribution: ${_param:mirror_mirantis_openstack_mitaka_updates_xenial_distribution}
+          components:  ${_param:mirror_mirantis_openstack_mitaka_updates_xenial_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial/archive-mcpmitaka.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_mitaka_updates_xenial_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_mitaka_updates_xenial_gpgkeys}
           publisher:
             component: main
             distributions:
@@ -57,13 +88,12 @@
 
         # required for salt formulas
         mirantis_openstack_mitaka_holdback_xenial:
-          source: http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial
-          distribution: mitaka-holdback
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_mitaka_holdback_xenial_source}
+          distribution: ${_param:mirror_mirantis_openstack_mitaka_holdback_xenial_distribution}
+          components: ${_param:mirror_mirantis_openstack_mitaka_holdback_xenial_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/xenial/archive-mcpmitaka.key"
-          gpgkeys:
-          - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_mitaka_holdback_xenial_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_mitaka_holdback_xenial_gpgkeys}
           publisher:
             component: main
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/openstack_newton.yml b/aptly/server/mirror/ubuntu/xenial/mcp/openstack_newton.yml
index 2f08b2c..aa10e46 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/openstack_newton.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/openstack_newton.yml
@@ -1,41 +1,73 @@
 parameters:
+  _param:
+    mirror_mirantis_openstack_newton_xenial_source: http://mirror.fuel-infra.org/mcp-repos/newton/xenial
+    mirror_mirantis_openstack_newton_xenial_distribution: newton
+    mirror_mirantis_openstack_newton_xenial_components: main restricted
+    mirror_mirantis_openstack_newton_xenial_key_url: "http://mirror.fuel-infra.org/mcp-repos/newton/xenial/archive-mcpnewton.key"
+    mirror_mirantis_openstack_newton_xenial_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_newton_hotfix_xenial_source: http://mirror.fuel-infra.org/mcp-repos/newton/xenial
+    mirror_mirantis_openstack_newton_hotfix_xenial_distribution: newton-hotfix
+    mirror_mirantis_openstack_newton_hotfix_xenial_components: main restricted
+    mirror_mirantis_openstack_newton_hotfix_xenial_key_url: "http://mirror.fuel-infra.org/mcp-repos/newton/xenial/archive-mcpnewton.key"
+    mirror_mirantis_openstack_newton_hotfix_xenial_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_newton_security_xenial_source: http://mirror.fuel-infra.org/mcp-repos/newton/xenial
+    mirror_mirantis_openstack_newton_security_xenial_distribution: newton-security
+    mirror_mirantis_openstack_newton_security_xenial_components: main restricted
+    mirror_mirantis_openstack_newton_security_xenial_key_url: "http://mirror.fuel-infra.org/mcp-repos/newton/xenial/archive-mcpnewton.key"
+    mirror_mirantis_openstack_newton_security_xenial_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_newton_updates_xenial_source: http://mirror.fuel-infra.org/mcp-repos/newton/xenial
+    mirror_mirantis_openstack_newton_updates_xenial_distribution: newton-updates
+    mirror_mirantis_openstack_newton_updates_xenial_components: main restricted
+    mirror_mirantis_openstack_newton_updates_xenial_key_url: "http://mirror.fuel-infra.org/mcp-repos/newton/xenial/archive-mcpnewton.key"
+    mirror_mirantis_openstack_newton_updates_xenial_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_newton_holdback_xenial_source: http://mirror.fuel-infra.org/mcp-repos/newton/xenial
+    mirror_mirantis_openstack_newton_holdback_xenial_distribution: newton-holdback
+    mirror_mirantis_openstack_newton_holdback_xenial_components: main restricted
+    mirror_mirantis_openstack_newton_holdback_xenial_key_url: "http://mirror.fuel-infra.org/mcp-repos/newton/xenial/archive-mcpnewton.key"
+    mirror_mirantis_openstack_newton_holdback_xenial_gpgkeys:
+      - 1FA22B08
   aptly:
     server:
       mirror:
         mirantis_openstack_newton_xenial:
-          source: http://mirror.fuel-infra.org/mcp-repos/newton/xenial
-          distribution: newton
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_newton_xenial_source}
+          distribution: ${_param:mirror_mirantis_openstack_newton_xenial_distribution}
+          components: ${_param:mirror_mirantis_openstack_newton_xenial_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/newton/xenial/archive-mcpnewton.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_newton_xenial_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_newton_xenial_gpgkeys}
           publisher:
             component: main
             distributions:
               - ubuntu-xenial/newton
 
         mirantis_openstack_newton_hotfix_xenial:
-          source: http://mirror.fuel-infra.org/mcp-repos/newton/xenial
-          distribution: newton-hotfix
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_newton_hotfix_xenial_source}
+          distribution: ${_param:mirror_mirantis_openstack_newton_hotfix_xenial_distribution}
+          components: ${_param:mirror_mirantis_openstack_newton_hotfix_xenial_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/newton/xenial/archive-mcpnewton.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_newton_hotfix_xenial_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_newton_hotfix_xenial_gpgkeys}
           publisher:
             component: main
             distributions:
               - ubuntu-xenial/newton-hotfix
 
         mirantis_openstack_newton_security_xenial:
-          source: http://mirror.fuel-infra.org/mcp-repos/newton/xenial
-          distribution: newton-security
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_newton_security_xenial_source}
+          distribution: ${_param:mirror_mirantis_openstack_newton_security_xenial_distribution}
+          components: ${_param:mirror_mirantis_openstack_newton_security_xenial_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/newton/xenial/archive-mcpnewton.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_newton_security_xenial_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_newton_security_xenial_gpgkeys}
           publisher:
             component: main
             distributions:
@@ -43,13 +75,12 @@
 
         # required for alternative horizon plugins/etc..
         mirantis_openstack_newton_updates_xenial:
-          source: http://mirror.fuel-infra.org/mcp-repos/newton/xenial
-          distribution: newton-updates
-          components:  main restricted
+          source: ${_param:mirror_mirantis_openstack_newton_updates_xenial_source}
+          distribution: ${_param:mirror_mirantis_openstack_newton_updates_xenial_distribution}
+          components:  ${_param:mirror_mirantis_openstack_newton_updates_xenial_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/newton/xenial/archive-mcpnewton.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_newton_updates_xenial_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_newton_updates_xenial_gpgkeys}
           publisher:
             component: main
             distributions:
@@ -57,15 +88,13 @@
 
         # required for salt formulas
         mirantis_openstack_newton_holdback_xenial:
-          source: http://mirror.fuel-infra.org/mcp-repos/newton/xenial
-          distribution: newton-holdback
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_newton_holdback_xenial_source}
+          distribution: ${_param:mirror_mirantis_openstack_newton_holdback_xenial_distribution}
+          components: ${_param:mirror_mirantis_openstack_newton_holdback_xenial_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/newton/xenial/archive-mcpnewton.key"
-          gpgkeys:
-          - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_newton_holdback_xenial_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_newton_holdback_xenial_gpgkeys}
           publisher:
             component: main
             distributions:
-              - ubuntu-xenial/newton-holdback
-
+              - ubuntu-xenial/newton-holdback
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/openstack_ocata.yml b/aptly/server/mirror/ubuntu/xenial/mcp/openstack_ocata.yml
index 8c12ddc..45d1efe 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/openstack_ocata.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/openstack_ocata.yml
@@ -1,41 +1,73 @@
 parameters:
+  _param:
+    mirror_mirantis_openstack_ocata_xenial_source: http://mirror.fuel-infra.org/mcp-repos/ocata/xenial
+    mirror_mirantis_openstack_ocata_xenial_distribution: ocata
+    mirror_mirantis_openstack_ocata_xenial_components: main restricted
+    mirror_mirantis_openstack_ocata_xenial_key_url: "http://mirror.fuel-infra.org/mcp-repos/ocata/xenial/archive-mcpocata.key"
+    mirror_mirantis_openstack_ocata_xenial_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_ocata_hotfix_xenial_source: http://mirror.fuel-infra.org/mcp-repos/ocata/xenial
+    mirror_mirantis_openstack_ocata_hotfix_xenial_distribution: ocata-hotfix
+    mirror_mirantis_openstack_ocata_hotfix_xenial_components: main restricted
+    mirror_mirantis_openstack_ocata_hotfix_xenial_key_url: "http://mirror.fuel-infra.org/mcp-repos/ocata/xenial/archive-mcpocata.key"
+    mirror_mirantis_openstack_ocata_hotfix_xenial_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_ocata_security_xenial_source: http://mirror.fuel-infra.org/mcp-repos/ocata/xenial
+    mirror_mirantis_openstack_ocata_security_xenial_distribution: ocata-security
+    mirror_mirantis_openstack_ocata_security_xenial_components: main restricted
+    mirror_mirantis_openstack_ocata_security_xenial_key_url: "http://mirror.fuel-infra.org/mcp-repos/ocata/xenial/archive-mcpocata.key"
+    mirror_mirantis_openstack_ocata_security_xenial_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_ocata_updates_xenial_source: http://mirror.fuel-infra.org/mcp-repos/ocata/xenial
+    mirror_mirantis_openstack_ocata_updates_xenial_distribution: ocata-updates
+    mirror_mirantis_openstack_ocata_updates_xenial_components: main restricted
+    mirror_mirantis_openstack_ocata_updates_xenial_key_url: "http://mirror.fuel-infra.org/mcp-repos/ocata/xenial/archive-mcpocata.key"
+    mirror_mirantis_openstack_ocata_updates_xenial_gpgkeys:
+      - 1FA22B08
+
+    mirror_mirantis_openstack_ocata_holdback_xenial_source: http://mirror.fuel-infra.org/mcp-repos/ocata/xenial
+    mirror_mirantis_openstack_ocata_holdback_xenial_distribution: ocata-holdback
+    mirror_mirantis_openstack_ocata_holdback_xenial_components: main restricted
+    mirror_mirantis_openstack_ocata_holdback_xenial_key_url: "http://mirror.fuel-infra.org/mcp-repos/ocata/xenial/archive-mcpocata.key"
+    mirror_mirantis_openstack_ocata_holdback_xenial_gpgkeys:
+      - 1FA22B08
   aptly:
     server:
       mirror:
         mirantis_openstack_ocata_xenial:
-          source: http://mirror.fuel-infra.org/mcp-repos/ocata/xenial
-          distribution: ocata
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_ocata_xenial_source}
+          distribution: ${_param:mirror_mirantis_openstack_ocata_xenial_distribution}
+          components: ${_param:mirror_mirantis_openstack_ocata_xenial_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/ocata/xenial/archive-mcpocata.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_ocata_xenial_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_ocata_xenial_gpgkeys}
           publisher:
             component: main
             distributions:
               - ubuntu-xenial/ocata
 
         mirantis_openstack_ocata_hotfix_xenial:
-          source: http://mirror.fuel-infra.org/mcp-repos/ocata/xenial
-          distribution: ocata-hotfix
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_ocata_hotfix_xenial_source}
+          distribution: ${_param:mirror_mirantis_openstack_ocata_hotfix_xenial_distribution}
+          components: ${_param:mirror_mirantis_openstack_ocata_hotfix_xenial_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/ocata/xenial/archive-mcpocata.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_ocata_hotfix_xenial_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_ocata_hotfix_xenial_gpgkeys}
           publisher:
             component: main
             distributions:
               - ubuntu-xenial/ocata-hotfix
 
         mirantis_openstack_ocata_security_xenial:
-          source: http://mirror.fuel-infra.org/mcp-repos/ocata/xenial
-          distribution: ocata-security
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_ocata_security_xenial_source}
+          distribution: ${_param:mirror_mirantis_openstack_ocata_security_xenial_distribution}
+          components: ${_param:mirror_mirantis_openstack_ocata_security_xenial_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/ocata/xenial/archive-mcpocata.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_ocata_security_xenial_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_ocata_security_xenial_gpgkeys}
           publisher:
             component: main
             distributions:
@@ -43,13 +75,12 @@
 
         # required for alternative horizon plugins/etc..
         mirantis_openstack_ocata_updates_xenial:
-          source: http://mirror.fuel-infra.org/mcp-repos/ocata/xenial
-          distribution: ocata-updates
-          components:  main restricted
+          source: ${_param:mirror_mirantis_openstack_ocata_updates_xenial_source}
+          distribution: ${_param:mirror_mirantis_openstack_ocata_updates_xenial_distribution}
+          components:  ${_param:mirror_mirantis_openstack_ocata_updates_xenial_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/ocata/xenial/archive-mcpocata.key"
-          gpgkeys:
-            - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_ocata_updates_xenial_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_ocata_updates_xenial_gpgkeys}
           publisher:
             component: main
             distributions:
@@ -57,15 +88,13 @@
 
         # required for salt formulas
         mirantis_openstack_ocata_holdback_xenial:
-          source: http://mirror.fuel-infra.org/mcp-repos/ocata/xenial
-          distribution: ocata-holdback
-          components: main restricted
+          source: ${_param:mirror_mirantis_openstack_ocata_holdback_xenial_source}
+          distribution: ${_param:mirror_mirantis_openstack_ocata_holdback_xenial_distribution}
+          components: ${_param:mirror_mirantis_openstack_ocata_holdback_xenial_components}
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/ocata/xenial/archive-mcpocata.key"
-          gpgkeys:
-          - 1FA22B08
+          key_url: ${_param:mirror_mirantis_openstack_ocata_holdback_xenial_key_url}
+          gpgkeys: ${_param:mirror_mirantis_openstack_ocata_holdback_xenial_gpgkeys}
           publisher:
             component: main
             distributions:
-              - ubuntu-xenial/ocata-holdback
-
+              - ubuntu-xenial/ocata-holdback
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/salt.yml b/aptly/server/mirror/ubuntu/xenial/salt.yml
index a100bde..7a01bb3 100644
--- a/aptly/server/mirror/ubuntu/xenial/salt.yml
+++ b/aptly/server/mirror/ubuntu/xenial/salt.yml
@@ -1,17 +1,21 @@
 parameters:
   _param:
     apt_mk_version: stable
+    mirror_salt-2016-3-xenial_source: http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3/
+    mirror_salt-2016-3-xenial_distribution: xenial
+    mirror_salt-2016-3-xenial_components: main
+    mirror_salt-2016-3-xenial_gpgkeys:
+      - DE57BFBE
   aptly:
     server:
       mirror:
         salt-2016.3-xenial:
-          source: http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3/
-          distribution: xenial
-          components: main
+          source: ${_param:mirror_salt-2016-3-xenial_source}
+          distribution: ${_param:mirror_salt-2016-3-xenial_distribution}
+          components: ${_param:mirror_salt-2016-3-xenial_components}
           architectures: amd64
-          gpgkeys:
-            - DE57BFBE
+          gpgkeys: ${_param:mirror_salt-2016-3-xenial_gpgkeys}
           publisher:
             component: salt
             distributions:
-              - ubuntu-xenial/${_param:apt_mk_version}
+              - ubuntu-xenial/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/tcpcloud.yml b/aptly/server/mirror/ubuntu/xenial/tcpcloud.yml
index 740fa7b..a6c0a85 100644
--- a/aptly/server/mirror/ubuntu/xenial/tcpcloud.yml
+++ b/aptly/server/mirror/ubuntu/xenial/tcpcloud.yml
@@ -2,7 +2,47 @@
   aptly:
     server:
       mirror:
+        mirror_tcpcloud-nightly-main-xenial_source: http://apt.tcpcloud.eu/nightly
+        mirror_tcpcloud-nightly-main-xenial_distribution: xenial
+        mirror_tcpcloud-nightly-main-xenial_components: main security
+        mirror_tcpcloud-nightly-main-xenial_key_url: "http://apt.tcpcloud.eu/public.gpg"
+        mirror_tcpcloud-nightly-main-xenial_gpgkeys:
+          - 3EF02D1C
 
+        mirror_tcpcloud-nightly-tcp-xenial_source: http://apt.tcpcloud.eu/nightly
+        mirror_tcpcloud-nightly-tcp-xenial_distribution: xenial
+        mirror_tcpcloud-nightly-tcp-xenial_components: tcp
+        mirror_tcpcloud-nightly-tcp-xenial_key_url: "http://apt.tcpcloud.eu/public.gpg"
+        mirror_tcpcloud-nightly-tcp-xenial_gpgkeys:
+          - 3EF02D1C
+
+        mirror_tcpcloud-nightly-extra-xenial_source: http://apt.tcpcloud.eu/nightly
+        mirror_tcpcloud-nightly-extra-xenial_distribution: xenial
+        mirror_tcpcloud-nightly-extra-xenial_components: extra
+        mirror_tcpcloud-nightly-tcp-xenial_key_url: "http://apt.tcpcloud.eu/public.gpg"
+        mirror_tcpcloud-nightly-extra-xenial_gpgkeys:
+          - 3EF02D1C
+
+        mirror_tcpcloud-nightly-salt-xenial_source: http://apt.tcpcloud.eu/nightly
+        mirror_tcpcloud-nightly-salt-xenial_distribution: xenial
+        mirror_tcpcloud-nightly-salt-xenial_components: tcp-salt
+        mirror_tcpcloud-nightly-tcp-xenial_key_url: "http://apt.tcpcloud.eu/public.gpg"
+        mirror_tcpcloud-nightly-salt-xenial_gpgkeys:
+          - 3EF02D1C
+
+        mirror_tcpcloud-nightly-oc30-xenial_source: http://apt.tcpcloud.eu/nightly
+        mirror_tcpcloud-nightly-oc30-xenial_distribution: xenial
+        mirror_tcpcloud-nightly-oc30-xenial_components: oc30
+        mirror_tcpcloud-nightly-tcp-xenial_key_url: "http://apt.tcpcloud.eu/public.gpg"
+        mirror_tcpcloud-nightly-oc30-xenial_gpgkeys:
+          - 3EF02D1C
+
+        mirror_tcpcloud-nightly-elastic-xenial_source: http://apt.tcpcloud.eu/nightly
+        mirror_tcpcloud-nightly-elastic-xenial_distribution: xenial
+        mirror_tcpcloud-nightly-elastic-xenial_components: elastic
+        mirror_tcpcloud-nightly-tcp-xenial_key_url: "http://apt.tcpcloud.eu/public.gpg"
+        mirror_tcpcloud-nightly-elastic-xenial_gpgkeys:
+          - 3EF02D1C
         #TOOD: 4x the lower below
         #tcpcloud-[stable/testing]-xxx-[xenial/xenial]:
         #
@@ -10,44 +50,39 @@
         # salt tcp-salt extra liberty mitaka oc30 security mitaka
 
         tcpcloud-nightly-main-xenial:
-          source: http://apt.tcpcloud.eu/nightly
-          distribution: xenial
+          source: ${_param:mirror_tcpcloud-nightly-main-xenial_source}
+          distribution: ${_param:mirror_tcpcloud-nightly-main-xenial_distribution}
             #TODO: extra component might not be needed; tcp is just for heka
-          components: main security
+          components: ${_param:mirror_tcpcloud-nightly-main-xenial_components}
           architectures: amd64
-          key_url: "http://apt.tcpcloud.eu/public.gpg"
-          gpgkeys:
-            - 3EF02D1C
+          key_url: ${_param:mirror_tcpcloud-nightly-main-xenial_key_url}
+          gpgkeys: ${_param:mirror_tcpcloud-nightly-main-xenial_gpgkeys}
           publisher:
             component: tcp-main
             distributions:
               - ubuntu-xenial/nightly
 
-
         tcpcloud-nightly-tcp-xenial:
-          source: http://apt.tcpcloud.eu/nightly
-          distribution: xenial
+          source: ${_param:mirror_tcpcloud-nightly-tcp-xenial_source}
+          distribution: ${_param:mirror_tcpcloud-nightly-tcp-xenial_distribution}
             #TODO: extra component might not be needed; tcp is just for heka
-          components: tcp
+          components: ${_param:mirror_tcpcloud-nightly-tcp-xenial_components}
           architectures: amd64
-          key_url: "http://apt.tcpcloud.eu/public.gpg"
-          gpgkeys:
-            - 3EF02D1C
+          key_url: ${_param:mirror_tcpcloud-nightly-tcp-xenial_key_url}
+          gpgkeys: ${_param:mirror_tcpcloud-nightly-tcp-xenial_gpgkeys}
           publisher:
             component: tcp
             distributions:
               - ubuntu-xenial/nightly
 
-
         tcpcloud-nightly-extra-xenial:
-          source: http://apt.tcpcloud.eu/nightly
-          distribution: xenial
+          source: ${_param:mirror_tcpcloud-nightly-extra-xenial_source}
+          distribution: ${_param:mirror_tcpcloud-nightly-extra-xenial_distribution}
             #TODO: extra component might not be needed; tcp is just for heka
-          components: extra
+          components: ${_param:mirror_tcpcloud-nightly-extra-xenial_components}
           architectures: amd64
-          key_url: "http://apt.tcpcloud.eu/public.gpg"
-          gpgkeys:
-            - 3EF02D1C
+          key_url: ${_param:mirror_tcpcloud-nightly-extra-xenial_key_url}
+          gpgkeys: ${_param:mirror_tcpcloud-nightly-extra-xenial_gpgkeys}
           publisher:
             component: tcp-extra
             distributions:
@@ -55,13 +90,12 @@
 
         # required for salt formulas
         tcpcloud-nightly-salt-xenial:
-          source: http://apt.tcpcloud.eu/nightly
-          distribution: xenial
-          components: tcp-salt
+          source: ${_param:mirror_tcpcloud-nightly-salt-xenial_source}
+          distribution: ${_param:mirror_tcpcloud-nightly-salt-xenial_distribution}
+          components: ${_param:mirror_tcpcloud-nightly-salt-xenial_components}
           architectures: amd64
-          key_url: "http://apt.tcpcloud.eu/public.gpg"
-          gpgkeys:
-          - 3EF02D1C
+          key_url: ${_param:mirror_tcpcloud-nightly-salt-xenial_key_url}
+          gpgkeys: ${_param:mirror_tcpcloud-nightly-salt-xenial_gpgkeys}
           publisher:
             component: tcp-salt
             distributions:
@@ -69,13 +103,12 @@
 
         # required for opencontrail formulas
         tcpcloud-nightly-oc30-xenial:
-          source: http://apt.tcpcloud.eu/nightly
-          distribution: xenial
-          components: oc30
+          source: ${_param:mirror_tcpcloud-nightly-oc30-xenial_source}
+          distribution: ${_param:mirror_tcpcloud-nightly-oc30-xenial_distribution}
+          components: ${_param:mirror_tcpcloud-nightly-oc30-xenial_components}
           architectures: amd64
-          key_url: "http://apt.tcpcloud.eu/public.gpg"
-          gpgkeys:
-            - 3EF02D1C
+          key_url: ${_param:mirror_tcpcloud-nightly-oc30-xenial_key_url}
+          gpgkeys: ${_param:mirror_tcpcloud-nightly-oc30-xenial_gpgkeys}
           publisher:
             component: tcp-oc30
             distributions:
@@ -83,15 +116,13 @@
 
         # elastic, kibana is there
         tcpcloud-nightly-elastic-xenial:
-          source: http://apt.tcpcloud.eu/nightly
-          distribution: xenial
-          components: elastic
+          source: ${_param:mirror_tcpcloud-nightly-elastic-xenial_source}
+          distribution: ${_param:mirror_tcpcloud-nightly-elastic-xenial_distribution}
+          components: ${_param:mirror_tcpcloud-nightly-elastic-xenial_components}
           architectures: amd64
-          key_url: "http://apt.tcpcloud.eu/public.gpg"
-          gpgkeys:
-            - 3EF02D1C
+          key_url: ${_param:mirror_tcpcloud-nightly-elastic-xenial_key_url}
+          gpgkeys: ${_param:mirror_tcpcloud-nightly-elastic-xenial_gpgkeys}
           publisher:
             component: tcp-elastic
             distributions:
-              - ubuntu-xenial/nightly
-
+              - ubuntu-xenial/nightly
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/main.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/main.yml
index 9aeff43..f9ad68e 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/main.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/main.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-backports-main_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-backports-main_distribution: xenial-backports
+    mirror_xenial-backports-main_components: main
+    mirror_xenial-backports-main_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-backports-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-backports
+          source: ${_param:mirror_xenial-backports-main_source}
+          distribution: ${_param:mirror_xenial-backports-main_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          components: main
+          components: ${_param:mirror_xenial-backports-main_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-backports-main_gpgkeys}
           publisher:
             component: main
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/multiverse.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/multiverse.yml
index ffb9239..3ef9908 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/multiverse.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/multiverse.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-backports-multiverse_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-backports-multiverse_distribution: xenial-backports
+    mirror_xenial-backports-multiverse_components: multiverse
+    mirror_xenial-backports-multiverse_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-backports-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-backports
+          source: ${_param:mirror_xenial-backports-multiverse_source}
+          distribution: ${_param:mirror_xenial-backports-multiverse_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          components: multiverse
+          components: ${_param:mirror_xenial-backports-multiverse_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-backports-multiverse_gpgkeys}
           publisher:
             component: multiverse
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/restricted.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/restricted.yml
index 29f061e..5a32ee2 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/restricted.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/restricted.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-backports-restricted_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-backports-restricted_distribution: xenial-backports
+    mirror_xenial-backports-restricted_components: restricted
+    mirror_xenial-backports-restricted_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-backports-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          source: ${_param:mirror_xenial-backports-restricted_source}
+          distribution: ${_param:mirror_xenial-backports-restricted_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          distribution: xenial-backports
-          components: restricted
+          components: ${_param:mirror_xenial-backports-restricted_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-backports-restricted_gpgkeys}
           publisher:
             component: restricted
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/universe.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/universe.yml
index cdf9af1..aca402e 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/universe.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/universe.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-backports-universe_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-backports-universe_distribution: xenial-backports
+    mirror_xenial-backports-universe_components: universe
+    mirror_xenial-backports-universe_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-backports-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          source: ${_param:mirror_xenial-backports-universe_source}
+          distribution: ${_param:mirror_xenial-backports-universe_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          distribution: xenial-backports
-          components: universe
+          components: ${_param:mirror_xenial-backports-universe_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-backports-universe_gpgkeys}
           publisher:
             component: universe
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/main.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/main.yml
index 8763e94..920a16f 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/main.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/main.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-proposed-main_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-proposed-main_distribution: xenial-proposed
+    mirror_xenial-proposed-main_components: main
+    mirror_xenial-proposed-main_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-proposed-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-proposed
+          source: ${_param:mirror_xenial-proposed-main_source}
+          distribution: ${_param:mirror_xenial-proposed-main_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          components: main
+          components: ${_param:mirror_xenial-proposed-main_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-proposed-main_gpgkeys}
           publisher:
             component: main
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/multiverse.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/multiverse.yml
index 6263456..aa6cf27 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/multiverse.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/multiverse.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-proposed-multiverse_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-proposed-multiverse_distribution: xenial-proposed
+    mirror_xenial-proposed-multiverse_components: multiverse
+    mirror_xenial-proposed-multiverse_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-proposed-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-proposed
+          source: ${_param:mirror_xenial-proposed-multiverse_source}
+          distribution: ${_param:mirror_xenial-proposed-multiverse_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          components: multiverse
+          components: ${_param:mirror_xenial-proposed-multiverse_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-proposed-multiverse_gpgkeys}
           publisher:
             component: multiverse
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/restricted.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/restricted.yml
index e6c1562..78aef0b 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/restricted.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/restricted.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-proposed-restricted_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-proposed-restricted_distribution: xenial-proposed
+    mirror_xenial-proposed-restricted_components: restricted
+    mirror_xenial-proposed-restricted_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-proposed-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          source: ${_param:mirror_xenial-proposed-restricted_source}
+          distribution: ${_param:mirror_xenial-proposed-restricted_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          distribution: xenial-proposed
-          components: restricted
+          components: ${_param:mirror_xenial-proposed-restricted_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-proposed-restricted_gpgkeys}
           publisher:
             component: restricted
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/universe.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/universe.yml
index 82c5bab..618e4e8 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/universe.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/universe.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-proposed-universe_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-proposed-universe_distribution: xenial-proposed
+    mirror_xenial-proposed-universe_components: universe
+    mirror_xenial-proposed-universe_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-proposed-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          source: ${_param:mirror_xenial-proposed-universe_source}
+          distribution: ${_param:mirror_xenial-proposed-universe_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          distribution: xenial-proposed
-          components: universe
+          components: ${_param:mirror_xenial-proposed-universe_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-proposed-universe_gpgkeys}
           publisher:
             component: universe
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/main.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/main.yml
index 24d55ff..dc1309a 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/main.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/main.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-security-main_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-security-main_distribution: xenial-security
+    mirror_xenial-security-main_components: main
+    mirror_xenial-security-main_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-security-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-security
+          source: ${_param:mirror_xenial-security-main_source}
+          distribution: ${_param:mirror_xenial-security-main_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          components: main
+          components: ${_param:mirror_xenial-security-main_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-security-main_gpgkeys}
           publisher:
             component: main
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/multiverse.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/multiverse.yml
index e503cff..77fcd1c 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/multiverse.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/multiverse.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-security-multiverse_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-security-multiverse_distribution: xenial-security
+    mirror_xenial-security-multiverse_components: multiverse
+    mirror_xenial-security-multiverse_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-security-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-security
+          source: ${_param:mirror_xenial-security-multiverse_source}
+          distribution: ${_param:mirror_xenial-security-multiverse_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          components: multiverse
+          components: ${_param:mirror_xenial-security-multiverse_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-security-multiverse_gpgkeys}
           publisher:
             component: multiverse
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/restricted.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/restricted.yml
index 3aa3b25..b6046ff 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/restricted.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/restricted.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-security-restricted_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-security-restricted_distribution: xenial-security
+    mirror_xenial-security-restricted_components: restricted
+    mirror_xenial-security-restricted_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-security-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          source: ${_param:mirror_xenial-security-restricted_source}
+          distribution: ${_param:mirror_xenial-security-restricted_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          distribution: xenial-security
-          components: restricted
+          components: ${_param:mirror_xenial-security-restricted_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-security-restricted_gpgkeys}
           publisher:
             component: restricted
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/universe.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/universe.yml
index b657e2d..0a41112 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/universe.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/universe.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-security-universe_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-security-universe_distribution: xenial-security
+    mirror_xenial-security-universe_components: universe
+    mirror_xenial-security-universe_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-security-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          source: ${_param:mirror_xenial-security-universe_source}
+          distribution: ${_param:mirror_xenial-security-universe_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          distribution: xenial-security
-          components: universe
+          components: ${_param:mirror_xenial-security-universe_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-security-universe_gpgkeys}
           publisher:
             component: universe
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/main.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/main.yml
index d84d4f0..a97dcc4 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/main.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/main.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-updates-main_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-updates-main_distribution: xenial-updates
+    mirror_xenial-updates-main_components: main
+    mirror_xenial-updates-main_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-updates-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-updates
+          source: ${_param:mirror_xenial-updates-main_source}
+          distribution: ${_param:mirror_xenial-updates-main_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          components: main
+          components: ${_param:mirror_xenial-updates-main_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-updates-main_gpgkeys}
           publisher:
             component: main
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/multiverse.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/multiverse.yml
index ebef47d..2373c56 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/multiverse.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/multiverse.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-updates-multiverse_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-updates-multiverse_distribution: xenial-updates
+    mirror_xenial-updates-multiverse_components: multiverse
+    mirror_xenial-updates-multiverse_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-updates-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-updates
+          source: ${_param:mirror_xenial-updates-multiverse_source}
+          distribution: ${_param:mirror_xenial-updates-multiverse_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          components: multiverse
+          components: ${_param:mirror_xenial-updates-multiverse_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-updates-multiverse_gpgkeys}
           publisher:
             component: multiverse
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/restricted.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/restricted.yml
index 4431c1c..74aba0b 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/restricted.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/restricted.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-updates-restricted_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-updates-restricted_distribution: xenial-updates
+    mirror_xenial-updates-restricted_components: restricted
+    mirror_xenial-updates-restricted_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-updates-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          source: ${_param:mirror_xenial-updates-restricted_source}
+          distribution: ${_param:mirror_xenial-updates-restricted_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          distribution: xenial-updates
-          components: restricted
+          components: ${_param:mirror_xenial-updates-restricted_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-updates-restricted_gpgkeys}
           publisher:
             component: restricted
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/universe.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/universe.yml
index e085074..cf8c817 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/universe.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/universe.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-updates-universe_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-updates-universe_distribution: xenial-updates
+    mirror_xenial-updates-universe_components: universe
+    mirror_xenial-updates-universe_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-updates-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          source: ${_param:mirror_xenial-updates-universe_source}
+          distribution: ${_param:mirror_xenial-updates-universe_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          distribution: xenial-updates
-          components: universe
+          components: ${_param:mirror_xenial-updates-universe_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-updates-universe_gpgkeys}
           publisher:
             component: universe
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/main.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/main.yml
index aa5ee5e..4d9db03 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/main.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/main.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-main_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-main_distribution: xenial
+    mirror_xenial-main_components: main
+    mirror_xenial-main_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial
+          source: ${_param:mirror_xenial-main_source}
+          distribution: ${_param:mirror_xenial-main_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          components: main
+          components: ${_param:mirror_xenial-main_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-main_gpgkeys}
           publisher:
             component: main
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/multiverse.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/multiverse.yml
index b2c4b82..a74c520 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/multiverse.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/multiverse.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-multiverse_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-multiverse_distribution: xenial
+    mirror_xenial-multiverse_components: multiverse
+    mirror_xenial-multiverse_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial
+          source: ${_param:mirror_xenial-multiverse_source}
+          distribution: ${_param:mirror_xenial-multiverse_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          components: multiverse
+          components: ${_param:mirror_xenial-multiverse_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-multiverse_gpgkeys}
           publisher:
             component: multiverse
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/restricted.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/restricted.yml
index 31370d6..bde6b36 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/restricted.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/restricted.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-restricted_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-restricted_distribution: xenial
+    mirror_xenial-restricted_components: restricted
+    mirror_xenial-restricted_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          source: ${_param:mirror_xenial-restricted_source}
+          distribution: ${_param:mirror_xenial-restricted_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          distribution: xenial
-          components: restricted
+          components: ${_param:mirror_xenial-restricted_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-restricted_gpgkeys}
           publisher:
             component: restricted
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/universe.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/universe.yml
index 8c33902..b24cc1a 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/universe.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/universe.yml
@@ -2,19 +2,23 @@
   _param:
     linux_system_country_code: cz
     aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+    mirror_xenial-universe_source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+    mirror_xenial-universe_distribution: xenial
+    mirror_xenial-universe_components: universe
+    mirror_xenial-universe_gpgkeys:
+      - 40976EAF437D05B5
+      - 437D05B5
+      - C0B21F32
   aptly:
     server:
       mirror:
         xenial-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          source: ${_param:mirror_xenial-universe_source}
+          distribution: ${_param:mirror_xenial-universe_distribution}
           sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          distribution: xenial
-          components: universe
+          components: ${_param:mirror_xenial-universe_components}
           architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
+          gpgkeys: ${_param:mirror_xenial-universe_gpgkeys}
           publisher:
             component: universe
             distributions:
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntucloud.yml b/aptly/server/mirror/ubuntu/xenial/ubuntucloud.yml
index 509c65a..7183d13 100644
--- a/aptly/server/mirror/ubuntu/xenial/ubuntucloud.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntucloud.yml
@@ -1,25 +1,35 @@
 parameters:
+  _param:
+    mirror_xenial-updates-newton_source: http://ubuntu-cloud.archive.canonical.com/ubuntu/
+    mirror_xenial-updates-newton_distribution: xenial-updates/newton
+    mirror_xenial-updates-newton_components: main
+    mirror_xenial-updates-newton_gpgkeys:
+      - EC4926EA
+
+    mirror_xenial-updates-ocata_source: http://ubuntu-cloud.archive.canonical.com/ubuntu/
+    mirror_xenial-updates-ocata_distribution: xenial-updates/ocata
+    mirror_xenial-updates-ocata_components: main
+    mirror_xenial-updates-ocata_gpgkeys:
+      - EC4926EA
   aptly:
     server:
       mirror:
         xenial-updates-newton:
-          source: http://ubuntu-cloud.archive.canonical.com/ubuntu/
-          distribution: xenial-updates/newton
-          components: main
+          source: ${_param:mirror_xenial-updates-newton_source}
+          distribution: ${_param:mirror_xenial-updates-newton_distribution}
+          components: ${_param:mirror_xenial-updates-newton_components}
           architectures: amd64
-          gpgkeys:
-            - EC4926EA
+          gpgkeys: ${_param:mirror_xenial-updates-newton_gpgkeys}
           publisher:
             component: newton
             distributions:
               - ubuntu-xenial/nightly
         xenial-updates-ocata:
-          source: http://ubuntu-cloud.archive.canonical.com/ubuntu/
-          distribution: xenial-updates/ocata
-          components: main
+          source: ${_param:mirror_xenial-updates-ocata_source}
+          distribution: ${_param:mirror_xenial-updates-ocata_distribution}
+          components: ${_param:mirror_xenial-updates-ocata_components}
           architectures: amd64
-          gpgkeys:
-            - EC4926EA
+          gpgkeys: ${_param:mirror_xenial-updates-ocata_gpgkeys}
           publisher:
             component: ocata
             distributions:
diff --git a/ceph/client/container.yml b/ceph/client/container.yml
index d200a1d..8c6afaf 100644
--- a/ceph/client/container.yml
+++ b/ceph/client/container.yml
@@ -3,3 +3,26 @@
 parameters:
   _param:
     ceph_client_prefix_dir: /srv/volumes/ceph
+    ceph_auth_client_required: cephx
+  ceph:
+    client:
+      config:
+        global:
+          fsid: ${_param:ceph_fsid}
+          mon_initial_members: ${_param:ceph_mon_initial_members}
+          mon_host: ${_param:ceph_mon_host}
+          auth_client_required: ${_param:ceph_auth_client_required}
+          public_network: ${_param:ceph_public_network}
+          cluster_network: ${_param:ceph_cluster_network}
+          osd_fs_mount_options_xfs: rw,noatime
+          osd_fs_type: xfs
+        osd:
+          filestore_xattr_use_omap: True
+          osd_journal_size: 7500
+        mon:
+          mon_debug_dump_transactions: False
+        client:
+          rbd_cache_size: 268435456
+          rbd_cache_max_dirty: 134217728
+          rbd_cache_max_dirty_age: 5
+          rbd_cache: True
diff --git a/ceph/rgw/cluster.yml b/ceph/rgw/cluster.yml
index fbee1fc..31aae9a 100644
--- a/ceph/rgw/cluster.yml
+++ b/ceph/rgw/cluster.yml
@@ -1,7 +1,5 @@
 classes:
 - system.haproxy.proxy.single
 - system.haproxy.proxy.listen.radosgw
-- system.linux.system.repo.ceph
-- system.linux.system.repo.ubuntu
 - service.keepalived.cluster.single
 - service.ceph.radosgw.cluster
diff --git a/ceph/rgw/single.yml b/ceph/rgw/single.yml
index 4dba033..c140ec8 100644
--- a/ceph/rgw/single.yml
+++ b/ceph/rgw/single.yml
@@ -1,4 +1,2 @@
 classes:
-- system.linux.system.repo.ceph
-- system.linux.system.repo.ubuntu
 - service.ceph.radosgw.single
diff --git a/designate/server/backend/pdns.yml b/designate/server/backend/pdns.yml
index 50ec3a2..45ad0b7 100644
--- a/designate/server/backend/pdns.yml
+++ b/designate/server/backend/pdns.yml
@@ -1,3 +1,5 @@
+classes:
+- service.powerdns.server.single
 parameters:
   designate:
     server:
@@ -7,7 +9,6 @@
           api_endpoint: ${_param:designate_pdns_api_endpoint}
   powerdns:
     server:
-      enabled: true
       bind:
         address: ${_param:single_address}
         port: 53
diff --git a/devops_portal/service/jenkins.yml b/devops_portal/service/jenkins.yml
index 2a5dbc9..ee00912 100644
--- a/devops_portal/service/jenkins.yml
+++ b/devops_portal/service/jenkins.yml
@@ -1,4 +1,7 @@
 parameters:
+  _param:
+    oss_jenkins_user: admin
+    oss_jenkins_password: password
   devops_portal:
     config:
       service:
@@ -12,3 +15,6 @@
             address: ${_param:haproxy_jenkins_bind_host}
             port: ${_param:haproxy_jenkins_bind_port}
             https: ${_param:haproxy_jenkins_ssl:enabled}
+          credentials:
+            username: ${_param:oss_jenkins_user}
+            password: ${_param:oss_jenkins_password}
diff --git a/devops_portal/service/rundeck.yml b/devops_portal/service/rundeck.yml
index 946e0c2..542974e 100644
--- a/devops_portal/service/rundeck.yml
+++ b/devops_portal/service/rundeck.yml
@@ -1,4 +1,8 @@
 parameters:
+  _param:
+    oss_rundeck_user: ${_param:rundeck_admin_username}
+    oss_rundeck_password: ${_param:rundeck_admin_password}
+    oss_rundeck_token: ${_param:rundeck_admin_token}
   devops_portal:
     config:
       service:
@@ -10,9 +14,9 @@
           proxy_read_timeout: 300
           send_timeout: 300
           credentials:
-            username: ${_param:rundeck_admin_username}
-            password: ${_param:rundeck_admin_password}
-            token: ${_param:rundeck_admin_token}
+            username: ${_param:oss_rundeck_user}
+            password: ${_param:oss_rundeck_password}
+            token: ${_param:oss_rundeck_token}
           endpoint:
             address: ${_param:haproxy_rundeck_bind_host}
             port: ${_param:haproxy_rundeck_bind_port}
diff --git a/devops_portal/service/security_monkey.yml b/devops_portal/service/security_monkey.yml
index 9fce180..36b79f6 100644
--- a/devops_portal/service/security_monkey.yml
+++ b/devops_portal/service/security_monkey.yml
@@ -1,4 +1,7 @@
 parameters:
+  _param:
+    oss_security_monkey_user: ${_param:security_monkey_user}
+    oss_security_monkey_password: ${_param:security_monkey_password}
   devops_portal:
     config:
       service:
@@ -14,5 +17,5 @@
             port: ${_param:security_monkey_bind_port}
             https: ${_param:security_monkey_ssl:enabled}
           credentials:
-            username: ${_param:security_monkey_user}
-            password: ${_param:security_monkey_password}
+            username: ${_param:oss_security_monkey_user}
+            password: ${_param:oss_security_monkey_password}
diff --git a/docker/client.yml b/docker/client.yml
index 4691ddb..df11493 100644
--- a/docker/client.yml
+++ b/docker/client.yml
@@ -1,10 +1,12 @@
 classes:
   - service.docker.client
 parameters:
+  _param:
+    docker_image_compose: docker/compose:1.8.0
   docker:
     client:
       enabled: true
       compose:
         source:
           engine: docker
-          image: "docker/compose:1.8.0"
+          image: ${_param:docker_image_compose}
diff --git a/docker/host.yml b/docker/host.yml
index 853a5d2..c3cc808 100644
--- a/docker/host.yml
+++ b/docker/host.yml
@@ -1,6 +1,5 @@
 classes:
   - service.docker.host
-  - system.linux.system.repo.docker
 parameters:
   docker:
     host:
@@ -11,3 +10,6 @@
       insecure_registries:
         - ${_param:cluster_vip_address}:5000
         - ${_param:cluster_public_host}:5000
+      options:
+        ipv6: true
+        fixed-cidr-v6: fc00::/7
diff --git a/docker/swarm/stack/jenkins/master.yml b/docker/swarm/stack/jenkins/master.yml
index e974dee..1237fe3 100644
--- a/docker/swarm/stack/jenkins/master.yml
+++ b/docker/swarm/stack/jenkins/master.yml
@@ -2,7 +2,7 @@
 - system.docker
 parameters:
   _param:
-    docker_image_jenkins: tcpcloud/jenkins:2.83
+    docker_image_jenkins: tcpcloud/jenkins:2.89
     jenkins_master_extra_opts: ""
     jenkins_master_executors_num: 4
     jenkins_master_max_concurent_requests: 40
diff --git a/docker/swarm/stack/pushkin.yml b/docker/swarm/stack/pushkin.yml
index a1fc0a8..d0a3bce 100644
--- a/docker/swarm/stack/pushkin.yml
+++ b/docker/swarm/stack/pushkin.yml
@@ -8,6 +8,7 @@
     pushkin_ssl:
       enabled: false
     pushkin_db: pushkin
+    pushkin_db_host: ${_param:haproxy_postgresql_bind_host}
     pushkin_smtp_host: smtp.gmail.com
     pushkin_smtp_port: 587
     webhook_from: your_sender@mail.com
@@ -30,7 +31,7 @@
             POSTGRES_USER: ${_param:pushkin_db_user}
             POSTGRES_PASSWORD: ${_param:pushkin_db_user_password}
             POSTGRES_DB: ${_param:pushkin_db}
-            PUSHKINDBHOST: ${_param:postgresql_bind_host}
+            PUSHKINDBHOST: ${_param:pushkin_db_host}
             PUSHKINELASTICHOST: ${_param:pushkin_elasticsearch}
             WEBHOOK_FROM: ${_param:webhook_from}
             EMAIL_SENDER_PASSWORD: ${_param:pushkin_email_sender_password}
diff --git a/fluentd/label/default_output/file.yml b/fluentd/label/default_output/file.yml
new file mode 100644
index 0000000..5e0050d
--- /dev/null
+++ b/fluentd/label/default_output/file.yml
@@ -0,0 +1,27 @@
+parameters:
+  _param:
+    fluentd_default_output_file: /var/log/td-agent/default-all.log
+  fluentd:
+    config:
+      dollar: '$'
+      label:
+        default_output:
+          filter:
+            add_general_fields:
+              tag: "**"
+              type: record_transformer
+              enable_ruby: true
+              record:
+                - name: Type
+                  value: log
+                - name: environment_label
+                  value: ${_param:cluster_domain}
+                - name: Hostname
+                  value: ${fluentd:config:dollar}{ hostname }
+                - name: Timestamp
+                  value: ${fluentd:config:dollar}{ time.strftime('%Y-%m-%dT%H:%M:%S%z') }
+          match:
+            everything:
+              tag: '**'
+              type: 'file'
+              path: ${_param:fluentd_default_output_file}
diff --git a/galera/server/cluster.yml b/galera/server/cluster.yml
index f1c3a48..ba2a3ff 100644
--- a/galera/server/cluster.yml
+++ b/galera/server/cluster.yml
@@ -1,4 +1,4 @@
 classes:
 - service.keepalived.cluster.single
 - service.haproxy.proxy.single
-- system.haproxy.proxy.listen.openstack.galera
\ No newline at end of file
+- system.haproxy.proxy.listen.openstack.galera
diff --git a/galera/server/clustercheck.yml b/galera/server/clustercheck.yml
new file mode 100644
index 0000000..a5d7137
--- /dev/null
+++ b/galera/server/clustercheck.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    galera_clustercheck_password: clustercheck
+  galera:
+    clustercheck:
+      enabled: True
+      user: clustercheck
+      password: ${_param:galera_clustercheck_password}
+      port: 9200
+      available_when_donor: 0
+      available_when_readonly: 0
+  mysql:
+    server:
+      users:
+      - name: clustercheck
+        password: ${_param:galera_clustercheck_password}
+        database: '*.*'
+        grants: PROCESS
diff --git a/glusterfs/server/volume/aptly.yml b/glusterfs/server/volume/aptly.yml
index db01638..9c9e518 100644
--- a/glusterfs/server/volume/aptly.yml
+++ b/glusterfs/server/volume/aptly.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/artifactory.yml b/glusterfs/server/volume/artifactory.yml
index a19115e..f70d2f0 100644
--- a/glusterfs/server/volume/artifactory.yml
+++ b/glusterfs/server/volume/artifactory.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/decapod.yml b/glusterfs/server/volume/decapod.yml
index e4b80df..e8f4c99 100644
--- a/glusterfs/server/volume/decapod.yml
+++ b/glusterfs/server/volume/decapod.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/devops_portal.yml b/glusterfs/server/volume/devops_portal.yml
index 0b71b62..a2f00ba 100644
--- a/glusterfs/server/volume/devops_portal.yml
+++ b/glusterfs/server/volume/devops_portal.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/elasticsearch.yml b/glusterfs/server/volume/elasticsearch.yml
index 73f35c1..65cf76e 100644
--- a/glusterfs/server/volume/elasticsearch.yml
+++ b/glusterfs/server/volume/elasticsearch.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/gerrit.yml b/glusterfs/server/volume/gerrit.yml
index 6667f93..b959f82 100644
--- a/glusterfs/server/volume/gerrit.yml
+++ b/glusterfs/server/volume/gerrit.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/glance.yml b/glusterfs/server/volume/glance.yml
index 0f54219..d0dfdf1 100644
--- a/glusterfs/server/volume/glance.yml
+++ b/glusterfs/server/volume/glance.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/influxdb.yml b/glusterfs/server/volume/influxdb.yml
index 7f2d894..9a75a2f 100644
--- a/glusterfs/server/volume/influxdb.yml
+++ b/glusterfs/server/volume/influxdb.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/jenkins.yml b/glusterfs/server/volume/jenkins.yml
index 5c077d0..9a2582a 100644
--- a/glusterfs/server/volume/jenkins.yml
+++ b/glusterfs/server/volume/jenkins.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/keystone.yml b/glusterfs/server/volume/keystone.yml
index 2515fca..81e14be 100644
--- a/glusterfs/server/volume/keystone.yml
+++ b/glusterfs/server/volume/keystone.yml
@@ -15,6 +15,7 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
         keystone-credential-keys:
           storage: /srv/glusterfs/keystone-credential-keys
           replica: 3
@@ -28,3 +29,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/mongodb.yml b/glusterfs/server/volume/mongodb.yml
index a9c69f7..f694ad7 100644
--- a/glusterfs/server/volume/mongodb.yml
+++ b/glusterfs/server/volume/mongodb.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/mysql.yml b/glusterfs/server/volume/mysql.yml
index 0e7367c..c473de6 100644
--- a/glusterfs/server/volume/mysql.yml
+++ b/glusterfs/server/volume/mysql.yml
@@ -14,4 +14,5 @@
             nfs.disable: On
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
-            diagnostics.brick-log-level: WARNING
\ No newline at end of file
+            diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/openldap.yml b/glusterfs/server/volume/openldap.yml
index d507b44..84619c0 100644
--- a/glusterfs/server/volume/openldap.yml
+++ b/glusterfs/server/volume/openldap.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/postgresql.yml b/glusterfs/server/volume/postgresql.yml
index 26290f8..c48d833 100644
--- a/glusterfs/server/volume/postgresql.yml
+++ b/glusterfs/server/volume/postgresql.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/privatebin.yml b/glusterfs/server/volume/privatebin.yml
index 8be5a76..e2eba2d 100644
--- a/glusterfs/server/volume/privatebin.yml
+++ b/glusterfs/server/volume/privatebin.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/pushkin.yml b/glusterfs/server/volume/pushkin.yml
index 52d393e..2d6a249 100644
--- a/glusterfs/server/volume/pushkin.yml
+++ b/glusterfs/server/volume/pushkin.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/registry.yml b/glusterfs/server/volume/registry.yml
index 5df7d8a..474ce7b 100644
--- a/glusterfs/server/volume/registry.yml
+++ b/glusterfs/server/volume/registry.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/rundeck.yml b/glusterfs/server/volume/rundeck.yml
index 22e5563..c0ced5b 100644
--- a/glusterfs/server/volume/rundeck.yml
+++ b/glusterfs/server/volume/rundeck.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/salt.yml b/glusterfs/server/volume/salt.yml
index f87b029..e14701d 100644
--- a/glusterfs/server/volume/salt.yml
+++ b/glusterfs/server/volume/salt.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/salt_pki.yml b/glusterfs/server/volume/salt_pki.yml
index 7af39da..9a26bdb 100644
--- a/glusterfs/server/volume/salt_pki.yml
+++ b/glusterfs/server/volume/salt_pki.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/glusterfs/server/volume/security_monkey.yml b/glusterfs/server/volume/security_monkey.yml
index 478aec3..e730c90 100644
--- a/glusterfs/server/volume/security_monkey.yml
+++ b/glusterfs/server/volume/security_monkey.yml
@@ -15,3 +15,4 @@
             network.remote-dio: On
             diagnostics.client-log-level: WARNING
             diagnostics.brick-log-level: WARNING
+            cluster.favorite-child-policy: mtime
diff --git a/grafana/client/datasource/prometheus.yml b/grafana/client/datasource/prometheus.yml
index c4835ef..681b9df 100644
--- a/grafana/client/datasource/prometheus.yml
+++ b/grafana/client/datasource/prometheus.yml
@@ -2,6 +2,7 @@
   _param:
     grafana_prometheus_is_default: true
     grafana_prometheus_ds_name: prometheus
+    grafana_prometheus_address: ${_param:stacklight_monitor_address}
   grafana:
     client:
       datasource:
diff --git a/haproxy/proxy/listen/openstack/galera/clustercheck.yml b/haproxy/proxy/listen/openstack/galera/clustercheck.yml
new file mode 100644
index 0000000..f09e404
--- /dev/null
+++ b/haproxy/proxy/listen/openstack/galera/clustercheck.yml
@@ -0,0 +1,12 @@
+parameters:
+  _param:
+    haproxy_params_check: 'check port 9200'
+  haproxy:
+    proxy:
+      listen:
+        mysql_cluster:
+          # mysql clustercheck service at port 9200 is in conflict
+          # with regular haproxy mysql-check option on port 3306
+          health-check:
+            mysql:
+              enabled: False
diff --git a/haproxy/proxy/listen/openstack/galera.yml b/haproxy/proxy/listen/openstack/galera/init.yml
similarity index 67%
rename from haproxy/proxy/listen/openstack/galera.yml
rename to haproxy/proxy/listen/openstack/galera/init.yml
index 7298cfc..c9bd41c 100644
--- a/haproxy/proxy/listen/openstack/galera.yml
+++ b/haproxy/proxy/listen/openstack/galera/init.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    haproxy_params_check: 'check'
   haproxy:
     proxy:
       timeout:
@@ -19,12 +21,12 @@
           - name: ${_param:cluster_node01_hostname}
             host: ${_param:cluster_node01_address}
             port: 3306
-            params: check inter 20s fastinter 2s downinter 2s rise 3 fall 3
+            params: ${_param:haproxy_params_check} inter 20s fastinter 2s downinter 2s rise 3 fall 3
           - name: ${_param:cluster_node02_hostname}
             host: ${_param:cluster_node02_address}
             port: 3306
-            params: backup check inter 20s fastinter 2s downinter 2s rise 3 fall 3
+            params: backup ${_param:haproxy_params_check} inter 20s fastinter 2s downinter 2s rise 3 fall 3
           - name: ${_param:cluster_node03_hostname}
             host: ${_param:cluster_node03_address}
             port: 3306
-            params: backup check inter 20s fastinter 2s downinter 2s rise 3 fall 3
+            params: backup ${_param:haproxy_params_check} inter 20s fastinter 2s downinter 2s rise 3 fall 3
diff --git a/jenkins/client/approved_scripts.yml b/jenkins/client/approved_scripts.yml
index 4e3d1d1..daafadd 100644
--- a/jenkins/client/approved_scripts.yml
+++ b/jenkins/client/approved_scripts.yml
@@ -14,6 +14,7 @@
         - method groovy.lang.GroovyObject getProperty java.lang.String
         - method groovy.util.Node attributes
         - method groovy.util.XmlParser parse java.io.File
+        - method groovy.util.XmlParser parseText java.lang.String
         - method hudson.PluginManager getPlugins
         - method hudson.PluginWrapper getShortName
         - method hudson.model.Item getName
@@ -48,6 +49,7 @@
         - method java.net.URLConnection setRequestProperty java.lang.String java.lang.String
         - method java.util.Collection remove java.lang.Object
         - method java.util.Collection stream
+        - method java.util.Date getTime
         - method java.util.LinkedHashMap$LinkedHashIterator hasNext
         - method java.util.List subList int int
         - method java.util.Map remove java.lang.Object
@@ -98,6 +100,7 @@
         - staticMethod java.util.regex.Pattern quote java.lang.String
         - staticMethod java.util.stream.Collectors joining java.lang.CharSequence
         - staticMethod jenkins.model.Jenkins getInstance
+        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods asBoolean java.util.regex.Matcher
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods collect java.util.Map groovy.lang.Closure
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods eachFile java.io.File groovy.io.FileType groovy.lang.Closure
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods find java.util.Collection groovy.lang.Closure
diff --git a/jenkins/client/job/ceph/add-node.yml b/jenkins/client/job/ceph/add-node.yml
new file mode 100644
index 0000000..9fee51e
--- /dev/null
+++ b/jenkins/client/job/ceph/add-node.yml
@@ -0,0 +1,34 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        ceph-add-node:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Ceph - add node"
+          discard:
+            build:
+              keep_num: 50
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: ceph-add-node.groovy
+          param:
+            # general parameters
+            SALT_MASTER_URL:
+              type: string
+              description: URL of Salt master
+              default: "http://${_param:salt_master_host}:6969"
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              description: Credentials for login to Salt API
+              default: salt
+            HOST:
+              type: string
+              description: OSD HOST that will be added to Ceph cluster (rgw04*)
+              default: 'rgw04*'
+            HOST_TYPE:
+              type: string
+              description: Type of Ceph node to be added. Valid values are mon/osd/rgw
+              default: 'rgw'
diff --git a/jenkins/client/job/ceph/backend-migration.yml b/jenkins/client/job/ceph/backend-migration.yml
new file mode 100644
index 0000000..a8736a2
--- /dev/null
+++ b/jenkins/client/job/ceph/backend-migration.yml
@@ -0,0 +1,57 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        ceph-backend-migration:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Ceph - backend migration"
+          discard:
+            build:
+              keep_num: 50
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: ceph-backend-migration.groovy
+          param:
+            # general parameters
+            SALT_MASTER_URL:
+              type: string
+              description: URL of Salt master
+              default: "http://${_param:salt_master_host}:6969"
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              description: Credentials for login to Salt API
+              default: salt
+            TARGET:
+              type: string
+              description: OSD hosts (minion ids) to be targeted
+              default: 'osd*'
+            OSD:
+              type: string
+              description: OSD ids to be migrated (comma-separated list - 1,2,3)
+              default: '*'
+            ADMIN_HOST:
+              type: string
+              description: Host with admin keyring and access to cluster management
+              default: 'cmn01*'
+            CLUSTER_FLAGS:
+              type: string
+              description: Flags to be aplied before pipeline and after pipeline (comma-separated list)
+            WAIT_FOR_HEALTHY:
+              type: boolean
+              default: 'true'
+              description: Wait for healthy during pipeline
+            PER_OSD_CONTROL:
+              type: boolean
+              default: 'true'
+              description: Set to true if Ceph status verification after every osd disk migration is desired
+            PER_OSD_HOST_CONTROL:
+              type: boolean
+              default: 'true'
+              description: Set to true if Ceph status verificaton after whole OSD host migration is desired
+            ORIGIN_BACKEND:
+              type: string
+              description: Ceph backend before migration
+              default: 'filestore'
diff --git a/jenkins/client/job/ceph/init.yml b/jenkins/client/job/ceph/init.yml
index e4f2ba4..19bafca 100644
--- a/jenkins/client/job/ceph/init.yml
+++ b/jenkins/client/job/ceph/init.yml
@@ -1,2 +1,7 @@
 classes:
 - system.jenkins.client.job.ceph.remove-osd
+- system.jenkins.client.job.ceph.replace-failed-osd
+- system.jenkins.client.job.ceph.add-node
+- system.jenkins.client.job.ceph.remove-node
+- system.jenkins.client.job.ceph.upgrade
+- system.jenkins.client.job.ceph.backend-migration
diff --git a/jenkins/client/job/ceph/remove-node.yml b/jenkins/client/job/ceph/remove-node.yml
new file mode 100644
index 0000000..4a5efe3
--- /dev/null
+++ b/jenkins/client/job/ceph/remove-node.yml
@@ -0,0 +1,46 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        ceph-remove-node:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Ceph - remove node"
+          discard:
+            build:
+              keep_num: 50
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: ceph-remove-node.groovy
+          param:
+            # general parameters
+            SALT_MASTER_URL:
+              type: string
+              description: URL of Salt master
+              default: "http://${_param:salt_master_host}:6969"
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              description: Credentials for login to Salt API
+              default: salt
+            HOST:
+              type: string
+              description: OSD HOST that will be removed from Ceph cluster (rgw04*)
+              default: 'rgw04*'
+            HOST_TYPE:
+              type: string
+              description: Type of Ceph node to be removed. Valid values are mon/osd/rgw
+              default: 'rgw'
+            ADMIN_HOST:
+              type: string
+              description: Host with admin keyring and access to cluster management
+              default: 'cmn01*'
+            GENERATE_CRUSHMAP:
+              type: boolean
+              default: 'false'
+              description: Only if removing OSD host. Set to true if crush map file should be updated. Enforce has to happen manually unless it is specifically set to be enforced in pillar.
+            WAIT_FOR_HEALTHY:
+              type: boolean
+              default: 'false'
+              description: Wait for healthy during pipeline
diff --git a/jenkins/client/job/ceph/replace-failed-osd.yml b/jenkins/client/job/ceph/replace-failed-osd.yml
new file mode 100644
index 0000000..57081ec
--- /dev/null
+++ b/jenkins/client/job/ceph/replace-failed-osd.yml
@@ -0,0 +1,49 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        ceph-replace-failed-osd:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Ceph - replace failed OSD"
+          discard:
+            build:
+              keep_num: 50
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: ceph-replace-failed-osd.groovy
+          param:
+            # general parameters
+            SALT_MASTER_URL:
+              type: string
+              description: URL of Salt master
+              default: "http://${_param:salt_master_host}:6969"
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              description: Credentials for login to Salt API
+              default: salt
+            HOST:
+              type: string
+              description: Failed OSDs on this HOST will replaced
+            OSD:
+              type: string
+              description: These OSD IDs at HOST will be replaced (comma-separated list - 1,2,3)
+            DEVICE:
+              type: string
+              description: Comma separated list of failed devices that will be replaced at HOST (/dev/sdb,/dev/sdc)
+            JOURNAL_OR_BLOCKDB_PARTITION:
+              type: string
+              description: Comma separated list of partitions where journal or block_db for the failed devices on this HOST were stored (/dev/sdh2,/dev/sdh3)
+            ADMIN_HOST:
+              type: string
+              description: Host with admin keyring and correct crushmap file in /etc/ceph/crushmap
+              default: 'cmn01*'
+            WAIT_FOR_HEALTHY:
+              type: boolean
+              default: 'false'
+              description: Wait for healthy during pipeline
+            CLUSTER_FLAGS:
+              type: string
+              description: Flags to be aplied before pipeline and after pipeline (comma-separated list)
diff --git a/jenkins/client/job/ceph/upgrade.yml b/jenkins/client/job/ceph/upgrade.yml
new file mode 100644
index 0000000..9b58f3b
--- /dev/null
+++ b/jenkins/client/job/ceph/upgrade.yml
@@ -0,0 +1,74 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        ceph-upgrade:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Ceph - upgrade"
+          discard:
+            build:
+              keep_num: 50
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: ceph-upgrade.groovy
+          param:
+            # general parameters
+            SALT_MASTER_URL:
+              type: string
+              description: URL of Salt master
+              default: "http://${_param:salt_master_host}:6969"
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              description: Credentials for login to Salt API
+              default: salt
+            ADMIN_HOST:
+              type: string
+              description: Host with admin keyring and correct crushmap file in /etc/ceph/crushmap
+              default: 'cmn01*'
+            WAIT_FOR_HEALTHY:
+              type: boolean
+              default: 'true'
+              description: Wait for healthy during pipeline
+            CLUSTER_FLAGS:
+              type: string
+              default: 'sortbitwise,noout'
+              description: Flags to be aplied before pipeline and after pipeline (comma-separated list)
+            ORIGIN_RELEASE:
+              type: string
+              description: Ceph release version before upgrade
+              default: 'jewel'
+            TARGET_RELEASE:
+              type: string
+              description: Ceph release version after upgrade
+              default: 'luminous'
+            STAGE_UPGRADE_MON:
+              type: boolean
+              default: 'true'
+              description: Set to True if Ceph mon nodes upgrade is desired
+            STAGE_UPGRADE_MGR:
+              type: boolean
+              default: 'true'
+              description: Set to True if Ceph mgr nodes upgrade or new deploy is desired
+            STAGE_UPGRADE_OSD:
+              type: boolean
+              default: 'true'
+              description: Set to True if Ceph osd nodes upgrade is desired
+            STAGE_UPGRADE_RGW:
+              type: boolean
+              default: 'true'
+              description: Set to True if Ceph rgw nodes upgrade is desired
+            STAGE_UPGRADE_CLIENT:
+              type: boolean
+              default: 'true'
+              description: Set to True if Ceph client nodes upgrade is desired (includes for example ctl/cmp nodes)
+            STAGE_FINALIZE:
+              type: boolean
+              default: 'true'
+              description: Set to True if configs recommended for TARGET_RELEASE should be set after upgrade is done
+            BACKUP_ENABLED:
+              type: boolean
+              default: 'true'
+              description: Set to True if disks of Ceph VMs should be copied before upgrade
diff --git a/jenkins/client/job/custompatches.yml b/jenkins/client/job/custompatches.yml
new file mode 100644
index 0000000..e7a7eed
--- /dev/null
+++ b/jenkins/client/job/custompatches.yml
@@ -0,0 +1,43 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        custompatches:
+          concurrent: true
+          discard:
+            build:
+              keep_num: 20
+          display_name: Custom Patches - find and upload to review
+          name: custom-patches
+          param:
+            GERRIT_URI:
+              type: string
+              default: ''
+              description: "Gerrit URI to the projec"
+            GERRIT_CREDENTIALS:
+              default: mcp-ci-gerrit
+              type: string
+              description: "Name of creadentials to use when connecting to gerrit"
+            TARGET_GERRIT_URI:
+              default: ''
+              type: string
+              description: "Link to the target on gerrit, if not set GERRIT_URI is picked"
+            OLD_BRANCH:
+              default: ''
+              type: string
+              description: "Old branch on GERRIT_URI to take patches from, tupically previous release"
+            NEW_BRANCH:
+              default: ''
+              type: string
+              description: "New branch to compare with and push patches to, tupically current release"
+            DRY_RUN:
+              default: 'false'
+              type: boolean
+              description: "Do not upload custom patches on review, just log them"
+          scm:
+            script: custompatches.groovy
+            type: git
+            url: "${_param:jenkins_gerrit_url}/openstack-ci/openstack-pipelines"
+            credentials: "gerrit"
+          type: workflow-scm
+
diff --git a/jenkins/client/job/debian/packages/salt.yml b/jenkins/client/job/debian/packages/salt.yml
index 41fdb7a..74665e7 100644
--- a/jenkins/client/job/debian/packages/salt.yml
+++ b/jenkins/client/job/debian/packages/salt.yml
@@ -71,6 +71,9 @@
             - name: docker
               upload_source_package: false
               dist: trusty
+            - name: dogtag
+              upload_source_package: false
+              dist: trusty
             - name: dovecot
               upload_source_package: false
               dist: trusty
@@ -83,6 +86,9 @@
             - name: fluentbit
               upload_source_package: false
               dist: trusty
+            - name: fluentd
+              upload_source_package: false
+              dist: trusty
             - name: foreman
               upload_source_package: false
               dist: trusty
@@ -290,6 +296,9 @@
             - name: telegraf
               upload_source_package: false
               dist: trusty
+            - name: tinyproxy
+              upload_source_package: false
+              dist: trusty
             - name: tftpd-hpa
               upload_source_package: false
               dist: trusty
@@ -371,6 +380,9 @@
             - name: docker
               upload_source_package: true
               dist: xenial
+            - name: dogtag
+              upload_source_package: true
+              dist: xenial
             - name: dovecot
               upload_source_package: true
               dist: xenial
@@ -599,6 +611,9 @@
             - name: telegraf
               upload_source_package: true
               dist: xenial
+            - name: tinyproxy
+              upload_source_package: true
+              dist: xenial
             - name: tftpd-hpa
               upload_source_package: true
               dist: xenial
diff --git a/jenkins/client/job/deploy/lab/deploy.yml b/jenkins/client/job/deploy/lab/deploy.yml
index e64858a..108e30d 100644
--- a/jenkins/client/job/deploy/lab/deploy.yml
+++ b/jenkins/client/job/deploy/lab/deploy.yml
@@ -27,6 +27,9 @@
               ASK_ON_ERROR:
                 type: boolean
                 default: 'false'
+              SLAVE_NODE:
+                type: string
+                default: 'python'
 
               # deployments
               STACK_NAME:
diff --git a/jenkins/client/job/deploy/lab/init.yml b/jenkins/client/job/deploy/lab/init.yml
index 0fce66b..52ec947 100644
--- a/jenkins/client/job/deploy/lab/init.yml
+++ b/jenkins/client/job/deploy/lab/init.yml
@@ -12,6 +12,7 @@
   - system.jenkins.client.job.deploy.lab.component.kubernetes
   - system.jenkins.client.job.deploy.lab.component.openstack
   - system.jenkins.client.job.deploy.lab.component.stacklight
+  - system.jenkins.client.job.deploy.lab.ironic
 
 parameters:
   jenkins:
diff --git a/jenkins/client/job/deploy/lab/ironic.yml b/jenkins/client/job/deploy/lab/ironic.yml
new file mode 100644
index 0000000..8c397cf
--- /dev/null
+++ b/jenkins/client/job/deploy/lab/ironic.yml
@@ -0,0 +1,79 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        ironic_node_provision:
+          concurrent: true
+          discard:
+            build:
+              keep_num: 20
+          display_name: Ironic - provision nodes
+          name: ironic-provision-nodes
+          param:
+            ASK_ON_ERROR:
+              default: 'false'
+              type: boolean
+            HEAT_STACK_ZONE:
+              default: mcp-mk
+              type: string
+            OPENSTACK_API_CLIENT:
+              default: ''
+              type: string
+            OPENSTACK_API_CREDENTIALS:
+              default: openstack-devcloud-credentials
+              type: string
+            OPENSTACK_API_PROJECT:
+              default: mcp-mk
+              type: string
+            OPENSTACK_API_PROJECT_DOMAIN:
+              default: default
+              type: string
+            OPENSTACK_API_PROJECT_ID:
+              default: ''
+              type: string
+            OPENSTACK_API_URL:
+              default: https://cloud-cz.bud.mirantis.net:5000
+              type: string
+            OPENSTACK_API_USER_DOMAIN:
+              default: default
+              type: string
+            OPENSTACK_API_USER_DOMAIN_ID:
+              default: default
+              type: string
+            OPENSTACK_API_VERSION:
+              default: '3'
+              type: string
+            ENV_NAME:
+              type: string
+            SALT_MASTER_CREDENTIALS:
+              default: salt-qa-credentials
+              type: string
+            SALT_MASTER_URL:
+              default: ''
+              type: string
+            STACK_TYPE:
+              default: heat
+              type: string
+            IRONIC_AUTHORIZATION_PROFILE:
+              default: admin_identity
+              type: string
+            IRONIC_DEPLOY_NODES:
+              default: ''
+              type: string
+            IRONIC_DEPLOY_PROFILE:
+              default: ''
+              type: string
+            IRONIC_DEPLOY_TIMEOUT:
+              default: '60'
+              type: string
+            IRONIC_DEPLOY_PARTITION_PROFILE:
+              default: ''
+              type: string
+            RUN_TARGET:
+              default: 'I@ironic:client and *01*'
+              type: string
+          scm:
+            script: ironic-node-provision-pipeline.groovy
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+          type: workflow-scm
diff --git a/jenkins/client/job/deploy/update/init.yml b/jenkins/client/job/deploy/update/init.yml
index 6b0aebd..4d77c7b 100644
--- a/jenkins/client/job/deploy/update/init.yml
+++ b/jenkins/client/job/deploy/update/init.yml
@@ -3,6 +3,7 @@
   - system.jenkins.client.job.deploy.update.config
   - system.jenkins.client.job.deploy.update.saltenv
   - system.jenkins.client.job.deploy.update.update_salt_environment
+  - system.jenkins.client.job.deploy.update.update_mirror_image
   - system.jenkins.client.job.deploy.update.upgrade
   - system.jenkins.client.job.deploy.update.upgrade_compute
   - system.jenkins.client.job.deploy.update.upgrade_ovs_gateway
diff --git a/jenkins/client/job/deploy/update/update_mirror_image.yml b/jenkins/client/job/deploy/update/update_mirror_image.yml
new file mode 100644
index 0000000..75363db
--- /dev/null
+++ b/jenkins/client/job/deploy/update/update_mirror_image.yml
@@ -0,0 +1,25 @@
+#
+# Jobs to update Salt master environment (formulas and models)
+#
+parameters:
+  _param:
+    jenkins_salt_api_url: "http://${_param:salt_master_host}:6969"
+  jenkins:
+    client:
+      job:
+        deploy-update-mirror-image:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Deploy - update mirror image"
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: update-mirror-image.groovy
+          param:
+            SALT_MASTER_URL:
+              type: string
+              default: "${_param:jenkins_salt_api_url}"
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt"
\ No newline at end of file
diff --git a/jenkins/client/job/deploy/update/upgrade.yml b/jenkins/client/job/deploy/update/upgrade.yml
index efbd153..415e0b4 100644
--- a/jenkins/client/job/deploy/update/upgrade.yml
+++ b/jenkins/client/job/deploy/update/upgrade.yml
@@ -35,3 +35,7 @@
               type: boolean
               default: 'true'
               description: "Rollback if control upgrade fails"
+            SKIP_VM_RELAUNCH:
+              type: boolean
+              default: 'false'
+              description: "Set to true if vms should not be recreated"
diff --git a/jenkins/client/job/docker/build-images.yml b/jenkins/client/job/docker/build-images.yml
index 61f1e6d..a953d95 100644
--- a/jenkins/client/job/docker/build-images.yml
+++ b/jenkins/client/job/docker/build-images.yml
@@ -11,6 +11,8 @@
               repo: mk
             - name: prometheus
               repo: mcp
+            - name: opencontrail
+              repo: mk
           template:
             discard:
               build:
diff --git a/jenkins/client/job/docker/init.yml b/jenkins/client/job/docker/init.yml
index b6ed029..63c3f27 100644
--- a/jenkins/client/job/docker/init.yml
+++ b/jenkins/client/job/docker/init.yml
@@ -19,6 +19,10 @@
               tags: "2.13.6 latest"
               dockerfile: "Dockerfile"
             - name: jenkins
+              branch: "master"
+              tags: ""
+              dockerfile: "Dockerfile"
+            - name: jenkins
               branch: "2.32.3"
               tags: "2.32"
               dockerfile: "Dockerfile"
diff --git a/jenkins/client/job/k8s-test/init.yml b/jenkins/client/job/k8s-test/init.yml
index 0157bb8..0cdaa09 100644
--- a/jenkins/client/job/k8s-test/init.yml
+++ b/jenkins/client/job/k8s-test/init.yml
@@ -1,2 +1,3 @@
 classes:
-- system.jenkins.client.job.k8s-test.mcp-k8s-test-pipeline
\ No newline at end of file
+- system.jenkins.client.job.k8s-test.mcp-k8s-test-pipeline
+- system.jenkins.client.job.k8s-test.mcp-k8s-merge-pipeline
\ No newline at end of file
diff --git a/jenkins/client/job/k8s-test/mcp-k8s-merge-pipeline.yml b/jenkins/client/job/k8s-test/mcp-k8s-merge-pipeline.yml
new file mode 100644
index 0000000..f209aa2
--- /dev/null
+++ b/jenkins/client/job/k8s-test/mcp-k8s-merge-pipeline.yml
@@ -0,0 +1,36 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        mcp_k8s_merge_pipeline:
+          type: workflow-scm
+          name: mcp-k8s-merge-pipeline
+          display_name: "Kubernetes merge pipeline"
+          discard:
+            build:
+              keep_num: 20
+          concurrent: false
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/kubernetes-ci/kubernetes-pipelines"
+            credentials: "gerrit"
+            script: pipelines/mcp-k8s-test-pipeline.groovy
+          trigger:
+            gerrit:
+              project:
+                kubernetes/kubernetes:
+                  branches:
+                    - compare_type: "ANT"
+                      name: "**mcp**"
+              message:
+                build_successful: "Build successful"
+                build_unstable: "Build unstable"
+                build_failure: "Build failed"
+              event:
+                change:
+                  - merged
+          param:
+            KUBE_DOCKER_REGISTRY:
+              type: string
+              default: 'docker-dev-local.docker.mirantis.net'
+              description: 'Docker registry for binaries and images'
diff --git a/jenkins/client/job/k8s-test/mcp-k8s-test-pipeline.yml b/jenkins/client/job/k8s-test/mcp-k8s-test-pipeline.yml
index b5c2d40..8490ee7 100644
--- a/jenkins/client/job/k8s-test/mcp-k8s-test-pipeline.yml
+++ b/jenkins/client/job/k8s-test/mcp-k8s-test-pipeline.yml
@@ -15,30 +15,33 @@
             url: "${_param:jenkins_gerrit_url}/kubernetes-ci/kubernetes-pipelines"
             credentials: "gerrit"
             script: pipelines/mcp-k8s-test-pipeline.groovy
-            trigger:
-          gerrit:
-            project:
-              kubernetes/kubernetes:
-                branches:
-                  - compare_type: "ANT"
-                    name: "**"
-            message:
-              build_successful: "Build successful"
-              build_unstable: "Build unstable"
-              build_failure: "Build failed"
-            event:
-              patchset:
-                - created:
-                    excludeDrafts: false
-                    excludeTrivialRebase: false
-                    excludeNoCodeChange: false
-              comment:
-                - addedContains:
-                    commentAddedCommentContains: '(recheck|reverify)'
+          trigger:
+            gerrit:
+              project:
+                kubernetes/kubernetes:
+                  branches:
+                    - compare_type: "ANT"
+                      name: "**"
+              message:
+                build_successful: "Build successful"
+                build_unstable: "Build unstable"
+                build_failure: "Build failed"
+              event:
+                patchset:
+                  - created:
+                      excludeDrafts: false
+                      excludeTrivialRebase: false
+                      excludeNoCodeChange: false
+                comment:
+                  - addedContains:
+                      commentAddedCommentContains: '(recheck|reverify)'
+              override-votes:
+                gerritBuildUnstableVerifiedValue: 1
+                gerritBuildUnstableCodeReviewValue: 1
           param:
             KUBE_DOCKER_REGISTRY:
               type: string
-              default: 'docker-dev-virtual.docker.mirantis.net'
+              default: 'docker-dev-local.docker.mirantis.net'
               description: 'Docker registry for binaries and images'
             CALICO_DOCKER_REGISTRY:
               type: string
@@ -46,16 +49,8 @@
               description: 'Docker registry for published Calico images'
             K8S_BASE_IMAGE:
               type: string
-              default: '{docker-prod-virtual}/mirantis/base-images/debian-base:20161223134732'
+              default: 'mirantis/base-images/debian-base:20161223134732'
               description: 'Base Docker image to build k8s'
-            DOCKER_IMAGE_UNIT:
-              type: string
-              default: '{docker-prod-virtual}/mirantis/k8s-tests-images/k8s-tests-unit:latest'
-              desription: 'Docker image for k8s unit tests'
-            DOCKER_IMAGE_INTEGRATION:
-              type: string
-              default: '{docker-prod-virtual}/mirantis/k8s-tests-images/k8s-tests-integration:latest'
-              desription: 'Docker image for k8s integration tests'
             CALICO_CNI_IMAGE_REPO:
               type: string
               default: 'calico/cni'
diff --git a/jenkins/client/job/oscore/init.yml b/jenkins/client/job/oscore/init.yml
new file mode 100644
index 0000000..fc06d59
--- /dev/null
+++ b/jenkins/client/job/oscore/init.yml
@@ -0,0 +1,11 @@
+classes:
+  - system.jenkins.client.job.oscore.tests
+  - system.jenkins.client.job.oscore.qa
+parameters:
+  jenkins:
+    client:
+      view:
+        "OSCORE":
+          enabled: true
+          type: ListView
+          include_regex: "^oscore-.*"
diff --git a/jenkins/client/job/oscore/qa.yml b/jenkins/client/job/oscore/qa.yml
new file mode 100644
index 0000000..1fa2ab3
--- /dev/null
+++ b/jenkins/client/job/oscore/qa.yml
@@ -0,0 +1,48 @@
+parameters:
+  jenkins:
+    client:
+      job_template:
+        oscore-build-docker-image:
+          name: "{{job_prefix}}-{{oscore-qa-project}}-build-docker-image"
+          template:
+            discard:
+              build:
+                keep_num: 25
+              artifact:
+                keep_num: 25
+            type: workflow-scm
+            concurrent: true
+            scm:
+              type: git
+              url: "${_param:jenkins_gerrit_url}/openstack-ci/openstack-pipelines.git"
+              credentials: "gerrit"
+              branch: 'master'
+              script: build-docker-image-pipeline.groovy
+            trigger:
+              gerrit:
+                project:
+                  mcp/{{oscore-qa-project}}:
+                    branches:
+                      - master
+                event:
+                  change:
+                    - merged
+            param:
+              GIT_URL:
+                type: string
+                default: "ssh://mcp-ci-gerrit@gerrit.mcp.mirantis.net:29418/mcp/{{oscore-qa-project}}"
+              GIT_REF:
+                type: string
+                default: "master"
+              GIT_CREDS_ID:
+                type: string
+                default: "mcp-ci-gerrit"
+              IMAGE_NAME:
+                type: string
+                default: "mirantis/oscore/{{oscore-qa-project}}"
+              IMAGE_TAG:
+                type: string
+                default: "latest"
+              DOCKER_REGISTRY:
+                type: string
+                default: "docker-prod-local.docker.mirantis.net"
diff --git a/jenkins/client/job/oscore/tests.yml b/jenkins/client/job/oscore/tests.yml
new file mode 100644
index 0000000..4844708
--- /dev/null
+++ b/jenkins/client/job/oscore/tests.yml
@@ -0,0 +1,363 @@
+parameters:
+  jenkins:
+    client:
+      job_template:
+        test-openstack-component-periodic:
+          name: "{{job_prefix}}-{{milestone}}-{{model}}-{{openstack_version}}-{{formula_pkg_revision}}"
+          template:
+            discard:
+              build:
+                keep_num: 30
+              artifact:
+                keep_num: 30
+            type: workflow-scm
+            concurrent: true
+            scm:
+              type: git
+              url: "${_param:jenkins_gerrit_url}/openstack-ci/openstack-pipelines.git"
+              credentials: "gerrit"
+              branch: 'master'
+              script: test-openstack-component-pipeline.groovy
+            trigger:
+              timer:
+               spec: "0 21 * * *"
+            param:
+              # general
+              HEAT_STACK_ZONE:
+                type: string
+                description: AZ
+                default: "mcp-oscore-ci"
+              OPENSTACK_VERSION:
+                type: string
+                description: Version of openstack to test
+                default: "{{openstack_version}}"
+              PROJECT:
+                type: string
+                description: Project to test
+                default: "all"
+              STACK_TEST_JOB:
+                type: string
+                description: Job for environment deployment
+                default: "{{stack_test_job}}"
+              STACK_TYPE:
+                type: string
+                default: "{{stack_type}}"
+              STACK_INSTALL:
+                type: string
+                description: components to install
+                default: 'core,openstack,ovs'
+              STACK_DELETE:
+                type: boolean
+                default: 'false'
+                description: Don't enable it if you need to use the lab after
+              STACK_CLEANUP_JOB:
+                type: string
+                default: "{{stack_cleanup_job}}"
+              # salt
+              SALT_OVERRIDES:
+                type: text
+                default: ""
+                description: YAML with overrides for Salt deployment
+              FORMULA_PKG_REVISION:
+                type: string
+                description: Version of formulas for salt-master bootstrap
+                default: "{{formula_pkg_revision}}"
+              EXTRA_REPO:
+                type: string
+                description: Optional extra repository to run tests with
+                default: ''
+              EXTRA_REPO_PIN:
+                type: string
+                description: Optional extra repository pin definition
+                default: ''
+              EXTRA_REPO_PRIORITY:
+                type: string
+                description: Optional extra repository pin priority
+                default: ''
+              # openstack api
+              OPENSTACK_API_URL:
+                type: string
+                default: "https://cloud-cz.bud.mirantis.net:5000"
+              OPENSTACK_API_CREDENTIALS:
+                type: string
+                default: "openstack-devcloud-credentials"
+              OPENSTACK_API_PROJECT:
+                type: string
+                default: "mcp-oscore-ci"
+              OPENSTACK_API_PROJECT_DOMAIN:
+                type: string
+                default: "default"
+              OPENSTACK_API_PROJECT_ID:
+                type: string
+                default: ""
+              OPENSTACK_API_USER_DOMAIN:
+                type: string
+                default: "default"
+              OPENSTACK_API_CLIENT:
+                type: string
+                default: ""
+              OPENSTACK_API_VERSION:
+                type: string
+                default: "3"
+              # test
+              TEST_MILESTONE:
+                type: string
+                description: Product milestone
+                default: "{{milestone}}"
+              TEST_TEMPEST_CONF:
+                type: string
+                description: Tempest configuration file path inside container
+                default: "{{tempest_conf}}"
+              TEST_TEMPEST_TARGET:
+                type: string
+                description: Node to run tests
+                default: "{{tempest_target}}"
+              TEST_TEMPEST_PATTERN:
+                type: string
+                description: Run tests matched to pattern only
+                default: "tempest"
+              TEST_MODEL:
+                type: string
+                description: Environment salt model
+                default: "{{model}}"
+              TEST_PASS_THRESHOLD:
+                type: string
+                description: Tests pass rate to consider build successful
+                default: "{{test_threshold}}"
+              FAIL_ON_TESTS:
+                type: boolean
+                default: 'true'
+                description: Whether to fail build on test results
+        test-runner-template:
+          name: "{{job_prefix}}-{{test_type}}-runner"
+          template:
+            discard:
+              build:
+                keep_num: 30
+              artifact:
+                keep_num: 30
+            type: workflow-scm
+            concurrent: true
+            scm:
+              type: git
+              url: "${_param:jenkins_gerrit_url}/openstack-ci/openstack-pipelines.git"
+              credentials: "gerrit"
+              branch: 'master'
+              script: run-openstack-tests.groovy
+            param:
+              # general
+              FAIL_ON_TESTS:
+                type: boolean
+                default: 'true'
+                description: Whether to fail build on test results
+              TEST_MILESTONE:
+                type: string
+                description: Product milestone
+              OPENSTACK_VERSION:
+                type: string
+                description: Version of openstack to test
+              PROJECT:
+                type: string
+                description: Name of project being tested
+              PROC_RESULTS_JOB:
+                type: string
+                description: Job for results processing
+                default: "{{proc_results_job}}"
+              SLAVE_NODE:
+                type: string
+                default: 'python'
+              # salt
+              SALT_MASTER_CREDENTIALS:
+                type: string
+                default: "salt-qa-credentials"
+              SALT_MASTER_URL:
+                type: string
+                default: ""
+              # test
+              TESTRAIL:
+                type: boolean
+                default: 'false'
+                description: Upload results to testrail or not
+              TEST_TEMPEST_TARGET:
+                type: string
+                description: Salt target to run tests
+              TEST_TEMPEST_IMAGE:
+                type: string
+                description: Node to run tests
+                default: 'docker-prod-local.artifactory.mirantis.com/mirantis/oscore/rally-tempest'
+              TEST_TEMPEST_PATTERN:
+                type: string
+                description: Run tests matched to pattern only
+              TEST_TEMPEST_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_MODEL:
+                type: string
+                description: Environment salt model
+              TEST_DOCKER_INSTALL:
+                type: boolean
+                default: 'true'
+                description: Whether to install docker for tempest
+              TEST_PASS_THRESHOLD:
+                type: string
+                description: Tests pass rate to consider build successful
+                default: "90"
+        results-checker-template:
+          name: "{{job_prefix}}-{{test_type}}-results-checker"
+          template:
+            discard:
+              build:
+                keep_num: 30
+              artifact:
+                keep_num: 30
+            type: workflow-scm
+            concurrent: true
+            scm:
+              type: git
+              url: "${_param:jenkins_gerrit_url}/openstack-ci/openstack-pipelines.git"
+              credentials: "gerrit"
+              branch: 'master'
+              script: process-openstack-test-results.groovy
+            param:
+              # general
+              FAIL_ON_TESTS:
+                type: boolean
+                default: 'false'
+                description: Whether to fail build on test results
+              OPENSTACK_VERSION:
+                type: string
+                description: Version of openstack to test
+              TARGET_JOB:
+                type: string
+                description: Job to analyse results from
+              TARGET_BUILD_NUMBER:
+                type: string
+                description: Build number to analyse results from
+              # test
+              TESTRAIL:
+                type: boolean
+                default: 'false'
+                description: Whether to upload results to testrail or not
+              TESTRAIL_QA_CREDENTIALS:
+                type: string
+                default: "{{testrail_credentials}}"
+                description: Credentials for results upload to testrail
+              TEST_TEMPEST_TARGET:
+                type: string
+                description: Node to run tests
+              TEST_MILESTONE:
+                type: string
+                description: Product milestone
+              TEST_SUITE:
+                type: string
+                description: Testrail test suite
+                default: >-
+                  'Tempest 16.0.0 with designate tests'
+              TEST_PLAN:
+                type: string
+                description: Testrail test plan
+                default: ''
+              TEST_GROUP:
+                type: string
+                description: Testrail test group
+                default: ''
+              TEST_REPORTER_IMAGE:
+                type: string
+                description: Docker image of testrail reporter tool
+                default: "{{test_reporter_image}}"
+              TEST_MODEL:
+                type: string
+                description: Environment salt model
+              TEST_DATE:
+                type: string
+                description: "TEST run date"
+              TEST_PASS_THRESHOLD:
+                type: string
+                description: Tests pass rate to consider build successful
+                default: "90"
+        deploy-kvm-virtual-template:
+          name: "{{job_prefix}}-deploy-kvm-VMs"
+          template:
+            discard:
+              build:
+                keep_num: 30
+              artifact:
+                keep_num: 30
+            type: workflow-scm
+            concurrent: true
+            scm:
+              type: git
+              url: "${_param:jenkins_gerrit_url}/openstack-ci/openstack-pipelines.git"
+              credentials: "gerrit"
+              branch: 'master'
+              script: deploy-kvm-pipeline.groovy
+            param:
+              # general
+              STACK_NAME:
+                type: string
+                description: "VM prefix name"
+                default: "kvm-aio-node"
+              TEMPLATE:
+                type: choice
+                choices:
+                  - AIO
+                  - Multi
+                default: "AIO"
+              DEPLOY_OPENSTACK:
+                type: boolean
+                default: 'false'
+                description: "Enable it if openstack deployment is required"
+              JOB_DEP_NAME:
+                type: string
+                default:
+                description: "Name of the job to deploy openstack"
+              DESTROY_ENV:
+                type: boolean
+                default: 'false'
+                description: "Enable if env have to be destoyed."
+              CREATE_ENV:
+                type: boolean
+                default: 'true'
+                description: "Enable it if KVM VM have to be created."
+              STACK_DELETE:
+                type: boolean
+                default: 'false'
+                description: "Enable it if KVM VM have to be deleted."
+              STACK_TYPE:
+                type: string
+                default: "{{stack_type}}"
+              OPENSTACK_API_PROJECT:
+                type: string
+                default: "mcp-oscore-ci"
+              HEAT_STACK_ZONE:
+                type: string
+                description: AZ
+                default: "mcp-oscore-ci"
+              STACK_INSTALL:
+                type: string
+                description: components to install
+                default: 'core,openstack,ovs'
+              STACK_TEST:
+                type: string
+                description: Job for environment deployment
+                default: ''
+              # salt
+              SALT_MASTER_CREDENTIALS:
+                type: string
+                default: "salt-qa-credentials"
+              SALT_MASTER_URL:
+                type: string
+                default: ""
+              SALT_OVERRIDES:
+                type: text
+                default: ""
+                description: YAML with overrides for Salt deployment
+              TEST_MODEL:
+                type: string
+                description: Environment salt model
+                default: "{{model}}"
diff --git a/jenkins/client/job/salt-formulas/git-mirrors/2way.yml b/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
index 34b7460..2de63a5 100644
--- a/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
+++ b/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
@@ -61,6 +61,8 @@
               branches: ${_param:salt_formulas_branches}
             - name: fluentbit
               branches: ${_param:salt_formulas_branches}
+            - name: fluentd
+              branches: ${_param:salt_formulas_branches}
             - name: foreman
               branches: ${_param:salt_formulas_branches}
             - name: freeipa
@@ -221,6 +223,8 @@
               branches: ${_param:salt_formulas_branches}
             - name: telegraf
               branches: ${_param:salt_formulas_branches}
+            - name: tinyproxy
+              branches: ${_param:salt_formulas_branches}
             - name: varnish
               branches: ${_param:salt_formulas_branches}
             - name: xtrabackup
diff --git a/jenkins/client/job/salt-formulas/tests.yml b/jenkins/client/job/salt-formulas/tests.yml
index 159411d..3b3eb43 100644
--- a/jenkins/client/job/salt-formulas/tests.yml
+++ b/jenkins/client/job/salt-formulas/tests.yml
@@ -29,10 +29,12 @@
             - name: dekapod
             - name: devops-portal
             - name: docker
+            - name: dogtag
             - name: dovecot
             - name: elasticsearch
             - name: etcd
             - name: fluentbit
+            - name: fluentd
             - name: foreman
             - name: freeipa
             - name: galera
@@ -112,6 +114,7 @@
             - name: supervisor
             - name: swift
             - name: taiga
+            - name: tinyproxy
             - name: telegraf
             - name: tinyproxy
             - name: tftpd-hpa
diff --git a/jenkins/client/job/salt-models/tests.yml b/jenkins/client/job/salt-models/tests.yml
index e60fe22..5e7e82b 100644
--- a/jenkins/client/job/salt-models/tests.yml
+++ b/jenkins/client/job/salt-models/tests.yml
@@ -70,6 +70,12 @@
               LEGACY_TEST_MODE:
                 type: boolean
                 default: "{{legacy_test_mode}}"
+              APT_REPOSITORY:
+                type: string
+                default: ""
+              APT_REPOSITORY_GPG:
+                type: string
+                default: ""
         test_system_reclass:
           name: test-salt-model-{{name}}
           template:
@@ -147,6 +153,12 @@
               RECLASS_MODEL_BRANCH:
                 type: string
                 default: master
+              SYSTEM_GIT_URL:
+                type: string
+                default: ""
+              SYSTEM_GIT_REF:
+                type: string
+                default: ""
               PARALLEL_NODE_GROUP_SIZE:
                 type: string
                 default: "1"
@@ -208,3 +220,9 @@
             LEGACY_TEST_MODE:
               type: boolean
               default: "false"
+            APT_REPOSITORY:
+              type: string
+              default: ""
+            APT_REPOSITORY_GPG:
+              type: string
+              default: ""
diff --git a/jenkins/client/job/validate.yml b/jenkins/client/job/validate.yml
index bc7e847..6d3ecda 100644
--- a/jenkins/client/job/validate.yml
+++ b/jenkins/client/job/validate.yml
@@ -32,50 +32,144 @@
             SALT_MASTER_CREDENTIALS:
               type: string
               default: "salt"
+              description: Credentials to the Salt API
             TEST_IMAGE:
               type: string
               default: "docker-prod-local.artifactory.mirantis.com/mirantis/oss/qa-tools"
+              description: Docker image to setup testing environment
             TARGET_NODE:
               type: string
               default: ""
+              description: Target node where this job will be executed from
             RUN_RALLY_TESTS:
               type: boolean
               default: 'true'
+              description: If chosen then Rally tests will be executed
             RUN_TEMPEST_TESTS:
               type: boolean
               default: 'true'
+              description: If chosen then Tempest tests will be executed
             RUN_K8S_TESTS:
               type: boolean
               default: 'true'
+              description: If chosen then K8S tests will be executed
             TEMPEST_TEST_SET:
               type: choice
               choices:
                 - smoke
                 - full
+              description: Set of Tempest tests to run
+            TEMPEST_CONFIG_REPO:
+              type: string
+              default: ""
+              description: Git repository with configuration files for Tempest
+            TEMPEST_CONFIG_BRANCH:
+              type: string
+              default: ""
+              description: Git branch which will be used during the checkout
+            TEMPEST_REPO:
+              type: string
+              default: ""
+              description: Git repository with Tempest
+            TEMPEST_VERSION:
+              type: string
+              default: ""
+              description: Version of Tempest (tag, branch or commit)
+            TEST_K8S_NODE:
+              type: string
+              default: ""
+              description: Kubernetes node to run tests from
             TEST_K8S_API_SERVER:
               type: string
               default: "http://127.0.0.1:8080"
+              description: API server parameter for K8S tests
             TEST_K8S_CONFORMANCE_IMAGE:
               type: string
               default: "docker-dev-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.7.5-2_1504192939316"
+              description: Docker image to run K8S tests
             RUN_SPT_TESTS:
               type: boolean
               default: 'true'
+              description: If chosen then SPT tests will be executed
             SPT_SSH_USER:
               type: string
               default: "root"
-            SPT_FLOATING_NETWORK:
+              description: Username that is used to ssh between cluster nodes
+            FLOATING_NETWORK:
               type: string
               default: ""
+              description: External(floating) network name (used in both SPT and Rally)
             SPT_IMAGE:
               type: string
               default: ""
-            SPT_USER:
+              description: Image that is used for network-VM-to-VM-iperf-tests tests
+            SPT_IMAGE_USER:
               type: string
               default: ""
+              description: Username that is used to ssh to SPT_IMAGE
             SPT_FLAVOR:
               type: string
               default: ""
-            SPT_AVAILABILITY_ZONE:
+              description: Flavor name for SPT_IMAGE (make sure you have required flavor created)
+            RALLY_IMAGE:
+              type: string
+              default: "cirros"
+            RALLY_FLAVOR:
+              type: string
+              default: "m1.tiny"
+              description: Flavor name for Rally scenarios
+            RALLY_CONFIG_REPO:
+              type: string
+              default: ""
+              description: Git repository with configuration files for Rally
+            RALLY_CONFIG_BRANCH:
+              type: string
+              default: ""
+              description: Git branch which will be used during the checkout
+            AVAILABILITY_ZONE:
               type: string
               default: "nova"
+              description: Name of availability zone
+            GENERATE_REPORT:
+              type: boolean
+              default: 'true'
+              description: If chosen then at the end of the test run HTML report will be generated
+            ACCUMULATE_RESULTS:
+              type: boolean
+              default: 'true'
+              description: If chosen then previous build results will be used in the current build
+        cvp-sanity:
+          type: workflow-scm
+          name: validate-cvp-sanity
+          display_name: "CVP - Sanity checks"
+          discard:
+            build:
+              keep_num: 20
+            artifact:
+              keep_num: 20
+          concurrent: false
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: cvp-sanity.groovy
+          param:
+            SALT_MASTER_URL:
+              type: string
+              default: ""
+              description: Full Salt API address [e.g. https://10.10.10.2:6969]
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt"
+            SANITY_TESTS_REPO:
+              type: string
+              default: "https://github.com/Mirantis/cvp-sanity-checks"
+              description: Url for cvp-sanity-checks
+            SANITY_TESTS_SET:
+              type: string
+              default: ""
+              description: Leave empty for full run or choose a file, e.g. test_mtu.py
+            PROXY:
+              type: string
+              default: ""
+              description: Proxy address to clone repo and install python requirements
diff --git a/keystone/client/service/barbican.yml b/keystone/client/service/barbican.yml
index 70b6054..497eb50 100644
--- a/keystone/client/service/barbican.yml
+++ b/keystone/client/service/barbican.yml
@@ -7,6 +7,7 @@
         identity:
           roles:
           - creator
+          - key-manager:service-admin
           project:
             service:
               user:
@@ -16,6 +17,7 @@
                   roles:
                   - admin
                   - creator
+                  - key-manager:service-admin
           service:
             barbican:
               type: key-manager
diff --git a/kubernetes/control/init.yml b/kubernetes/control/init.yml
index 87aee26..6e5fb40 100644
--- a/kubernetes/control/init.yml
+++ b/kubernetes/control/init.yml
@@ -1,3 +1,2 @@
 classes:
   - service.kubernetes.control.cluster
-  - system.linux.system.repo.docker_legacy
diff --git a/kubernetes/master/cluster.yml b/kubernetes/master/cluster.yml
index 4164267..f21f003 100644
--- a/kubernetes/master/cluster.yml
+++ b/kubernetes/master/cluster.yml
@@ -3,7 +3,6 @@
 - service.keepalived.cluster.single
 - service.haproxy.proxy.single
 - system.haproxy.proxy.listen.kubernetes.apiserver
-- system.linux.system.repo.docker_legacy
 parameters:
   _param:
     kubernetes_netchecker_agent_image: quay.io/l23network/k8s-netchecker-agent:v1.0
diff --git a/kubernetes/master/single.yml b/kubernetes/master/single.yml
index a546233..cc8d8ab 100644
--- a/kubernetes/master/single.yml
+++ b/kubernetes/master/single.yml
@@ -1,6 +1,5 @@
 classes:
 - service.kubernetes.master.single
-- system.linux.system.repo.docker_legacy
 parameters:
   _param:
     kubernetes_netchecker_agent_image: quay.io/l23network/k8s-netchecker-agent:v1.0
diff --git a/kubernetes/pool/cluster.yml b/kubernetes/pool/cluster.yml
index 252a0b7..0f961a3 100644
--- a/kubernetes/pool/cluster.yml
+++ b/kubernetes/pool/cluster.yml
@@ -1,7 +1,6 @@
 classes:
 - service.kubernetes.pool.cluster
 - service.docker.host
-- system.linux.system.repo.docker_legacy
 parameters:
   _param:
     # component docker images
diff --git a/kubernetes/pool/single.yml b/kubernetes/pool/single.yml
index c2505bb..00f22b8 100644
--- a/kubernetes/pool/single.yml
+++ b/kubernetes/pool/single.yml
@@ -1,7 +1,6 @@
 classes:
 - service.kubernetes.pool.single
 - service.docker.host
-- system.linux.system.repo.docker_legacy
 parameters:
   _param:
     # component docker images
diff --git a/linux/system/repo/maas.yml b/linux/system/repo/maas.yml
new file mode 100644
index 0000000..d36784e
--- /dev/null
+++ b/linux/system/repo/maas.yml
@@ -0,0 +1,7 @@
+parameters:
+  linux:
+    system:
+      repo:
+        maas:
+          source: deb http://ppa.launchpad.net/maas/stable/ubuntu xenial main
+          key_url: salt://maas/files/vendor_key.gpg
\ No newline at end of file
diff --git a/linux/system/repo/mcp/contrail.yml b/linux/system/repo/mcp/contrail.yml
index 8dad590..85e66ae 100644
--- a/linux/system/repo/mcp/contrail.yml
+++ b/linux/system/repo/mcp/contrail.yml
@@ -7,9 +7,9 @@
     system:
       repo:
         mcp_opencontrail:
-          source: "deb [arch=amd64] http://apt-mk.mirantis.com/${_param:linux_system_codename}/ ${_param:linux_system_repo_mcp_contrail_version} ${_param:linux_repo_contrail_component} extra"
+          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/ ${_param:linux_system_repo_mcp_contrail_version} ${_param:linux_repo_contrail_component} extra"
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          key_url: "http://apt.mirantis.com/public.gpg"
           pin:
           - pin: 'release a=${_param:linux_system_repo_mcp_contrail_version}'
             priority: 1100
diff --git a/linux/system/repo/mcp/extra.yml b/linux/system/repo/mcp/extra.yml
index 826969b..9839a23 100644
--- a/linux/system/repo/mcp/extra.yml
+++ b/linux/system/repo/mcp/extra.yml
@@ -6,9 +6,9 @@
     system:
       repo:
         mcp_extra:
-          source: "deb [arch=amd64] http://apt-mk.mirantis.com/${_param:linux_system_codename}/ ${_param:linux_system_repo_mcp_extra_version} extra"
+          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/ ${_param:linux_system_repo_mcp_extra_version} extra"
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          key_url: "http://apt.mirantis.com/public.gpg"
           clean_file: true
           pin:
           - pin: 'release a=${_param:linux_system_repo_mcp_extra_version}'
diff --git a/linux/system/repo/mcp/openstack.yml b/linux/system/repo/mcp/openstack.yml
index 2235b2c..8b91431 100644
--- a/linux/system/repo/mcp/openstack.yml
+++ b/linux/system/repo/mcp/openstack.yml
@@ -46,9 +46,9 @@
             priority: 1100
             package: '*'
         mk_openstack:
-          source: "deb [arch=amd64] http://apt-mk.mirantis.com/${_param:linux_system_codename}/ ${_param:linux_system_repo_mk_openstack_version} ${_param:openstack_version}"
+          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/ ${_param:linux_system_repo_mk_openstack_version} ${_param:openstack_version}"
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          key_url: "http://apt.mirantis.com/public.gpg"
           pin:
           - pin: 'release a=${_param:linux_system_repo_mk_openstack_version}'
             priority: 1100
diff --git a/linux/system/repo/mcp/salt/init.yml b/linux/system/repo/mcp/salt/init.yml
index 6d79919..61a2d2e 100644
--- a/linux/system/repo/mcp/salt/init.yml
+++ b/linux/system/repo/mcp/salt/init.yml
@@ -6,9 +6,9 @@
     system:
       repo:
         mcp_salt:
-          source: "deb [arch=amd64] http://apt-mk.mirantis.com/${_param:linux_system_codename}/ ${_param:linux_system_repo_mcp_salt_version} salt"
+          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/ ${_param:linux_system_repo_mcp_salt_version} salt"
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          key_url: "http://apt.mirantis.com/public.gpg"
           clean_file: true
           pin:
           - pin: 'release a=${_param:linux_system_repo_mcp_salt_version}'
diff --git a/linux/system/repo/mcp/salt/unstable.yml b/linux/system/repo/mcp/salt/unstable.yml
index b0b992e..8350413 100644
--- a/linux/system/repo/mcp/salt/unstable.yml
+++ b/linux/system/repo/mcp/salt/unstable.yml
@@ -7,9 +7,9 @@
     system:
       repo:
         mcp_salt_unstable:
-          source: "deb [arch=amd64] http://apt-mk.mirantis.com/${_param:linux_system_codename}/ ${_param:linux_system_repo_mcp_salt_unstable_version} salt"
+          source: "deb [arch=amd64] http://apt.mirantis.com/${_param:linux_system_codename}/ ${_param:linux_system_repo_mcp_salt_unstable_version} salt"
           architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          key_url: "http://apt.mirantis.com/public.gpg"
           clean_file: true
           pin:
           - pin: 'release a=${_param:linux_system_repo_mcp_salt_unstable_version}'
diff --git a/linux/system/repo/saltstack/rhel.yml b/linux/system/repo/saltstack/rhel.yml
index b0f28f3..ba045c5 100644
--- a/linux/system/repo/saltstack/rhel.yml
+++ b/linux/system/repo/saltstack/rhel.yml
@@ -6,9 +6,11 @@
   linux:
     system:
       repo:
-        salt:
+        saltstack:
           humanname: "SaltStack repo for RHEL/CentOS ${rhel_repo_releasever}"
           source: "https://repo.saltstack.com/yum/redhat/${_param:rhel_releasever}/${_param:rhel_basearch}/${_param:salt_version}"
           gpgkey: "https://repo.saltstack.com/yum/redhat/${_param:rhel_releasever}/${_param:rhel_basearch}/${_param:salt_version}/SALTSTACK-GPG-KEY.pub"
           gpgcheck: true
           architectures: amd64
+        salt:
+          enabled: false
diff --git a/linux/system/repo/saltstack/trusty.yml b/linux/system/repo/saltstack/trusty.yml
index 68ce215..a4bde9a 100644
--- a/linux/system/repo/saltstack/trusty.yml
+++ b/linux/system/repo/saltstack/trusty.yml
@@ -4,7 +4,9 @@
   linux:
     system:
       repo:
-        salt:
+        saltstack:
           source: "deb http://repo.saltstack.com/apt/ubuntu/14.04/amd64/${_param:salt_version} trusty main"
           architectures: amd64
-          key_url: "http://repo.saltstack.com/apt/ubuntu/14.04/amd64/${_param:salt_version}/SALTSTACK-GPG-KEY.pub"
\ No newline at end of file
+          key_url: "http://repo.saltstack.com/apt/ubuntu/14.04/amd64/${_param:salt_version}/SALTSTACK-GPG-KEY.pub"
+        salt:
+          enabled: false
diff --git a/linux/system/repo/saltstack/xenial.yml b/linux/system/repo/saltstack/xenial.yml
index aca462a..e63ff41 100644
--- a/linux/system/repo/saltstack/xenial.yml
+++ b/linux/system/repo/saltstack/xenial.yml
@@ -4,7 +4,9 @@
   linux:
     system:
       repo:
-        salt:
+        saltstack:
           source: "deb http://repo.saltstack.com/apt/ubuntu/16.04/amd64/${_param:salt_version} xenial main"
           architectures: amd64
-          key_url: "http://repo.saltstack.com/apt/ubuntu/16.04/amd64/${_param:salt_version}/SALTSTACK-GPG-KEY.pub"
\ No newline at end of file
+          key_url: "http://repo.saltstack.com/apt/ubuntu/16.04/amd64/${_param:salt_version}/SALTSTACK-GPG-KEY.pub"
+        salt:
+          enabled: false
diff --git a/linux/system/repo/saltstack_2016_3_trusty.yml b/linux/system/repo/saltstack_2016_3_trusty.yml
index c7e03d7..d968734 100644
--- a/linux/system/repo/saltstack_2016_3_trusty.yml
+++ b/linux/system/repo/saltstack_2016_3_trusty.yml
@@ -3,6 +3,8 @@
   linux:
     system:
       repo:
-        salt:
+        saltstack:
           source: "deb http://repo.saltstack.com/apt/ubuntu/14.04/amd64/2016.3 trusty main"
-          key_url: "http://repo.saltstack.com/apt/ubuntu/14.04/amd64/2016.3/SALTSTACK-GPG-KEY.pub"
\ No newline at end of file
+          key_url: "http://repo.saltstack.com/apt/ubuntu/14.04/amd64/2016.3/SALTSTACK-GPG-KEY.pub"
+        salt:
+          enabled: false
diff --git a/linux/system/repo/saltstack_2016_3_xenial.yml b/linux/system/repo/saltstack_2016_3_xenial.yml
index 413294f..ee2189a 100644
--- a/linux/system/repo/saltstack_2016_3_xenial.yml
+++ b/linux/system/repo/saltstack_2016_3_xenial.yml
@@ -3,6 +3,8 @@
   linux:
     system:
       repo:
-        salt:
+        saltstack:
           source: "deb http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3 xenial main"
-          key_url: "http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3/SALTSTACK-GPG-KEY.pub"
\ No newline at end of file
+          key_url: "http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3/SALTSTACK-GPG-KEY.pub"
+        salt:
+          enabled: false
diff --git a/linux/system/repo_local/docker_legacy.yml b/linux/system/repo_local/docker_legacy.yml
new file mode 100644
index 0000000..d12cc0d
--- /dev/null
+++ b/linux/system/repo_local/docker_legacy.yml
@@ -0,0 +1,9 @@
+parameters:
+  linux:
+    system:
+      repo:
+        docker:
+          refresh_db: ${_param:linux_repo_refresh_db}
+          source: "deb [arch=amd64] http://${_param:local_repo_url}/ubuntu-${_param:linux_system_codename}/ ${_param:apt_mk_version} docker-legacy"
+          architectures: amd64
+          key_url: "http://${_param:local_repo_url}/public.gpg"
\ No newline at end of file
diff --git a/linux/system/single/init.yml b/linux/system/single/init.yml
index 1e68380..8de2dda 100644
--- a/linux/system/single/init.yml
+++ b/linux/system/single/init.yml
@@ -17,7 +17,7 @@
       package:
         cloud-init:
           version: purged
-        unattended-updates:
+        unattended-upgrades:
           version: purged
         mcelog:
           version: latest
diff --git a/maas/region/single.yml b/maas/region/single.yml
index 2bf9469..20779aa 100644
--- a/maas/region/single.yml
+++ b/maas/region/single.yml
@@ -1,7 +1,6 @@
 classes:
   - service.maas.region.single
   - service.maas.cluster.single
-  - service.maas.region.vendor_repo
 parameters:
   _param:
     maas_admin_username: mirantis
diff --git a/neutron/control/ovn/single.yml b/neutron/control/ovn/single.yml
new file mode 100644
index 0000000..c02f621
--- /dev/null
+++ b/neutron/control/ovn/single.yml
@@ -0,0 +1,48 @@
+classes:
+- service.neutron.control.single
+parameters:
+  _param:
+    neutron_control_dvr: False
+    neutron_l3_ha: False
+    neutron_global_physnet_mtu: 1500
+    neutron_external_mtu: 1500
+    neutron_tenant_network_types: "geneve,flat"
+    neutron_enable_qos: False
+    neutron_enable_vlan_aware_vms: False
+  neutron:
+    server:
+      global_physnet_mtu: ${_param:neutron_global_physnet_mtu}
+      l3_ha: ${_param:neutron_l3_ha}
+      dvr: ${_param:neutron_control_dvr}
+      qos: ${_param:neutron_enable_qos}
+      vlan_aware_vms: ${_param:neutron_enable_vlan_aware_vms}
+      backend:
+        engine: ovn
+        tenant_network_types: "${_param:neutron_tenant_network_types}"
+        external_mtu: ${_param:neutron_external_mtu}
+        mechanism:
+          ovn:
+            driver: ovn
+      compute:
+        region: ${_param:openstack_region}
+      database:
+        host: ${_param:openstack_database_address}
+      identity:
+        region: ${_param:openstack_region}
+      message_queue:
+        members:
+          - host: ${_param:openstack_message_queue_node01_address}
+  mysql:
+    server:
+      database:
+        neutron:
+          encoding: utf8
+          users:
+          - name: neutron
+            password: ${_param:mysql_neutron_password}
+            host: '%'
+            rights: all
+          - name: neutron
+            password: ${_param:mysql_neutron_password}
+            host: ${_param:cluster_local_address}
+            rights: all
diff --git a/nginx/server/proxy/graphite_web.yml b/nginx/server/proxy/graphite_web.yml
index 02035cd..2f3e1e8 100644
--- a/nginx/server/proxy/graphite_web.yml
+++ b/nginx/server/proxy/graphite_web.yml
@@ -8,7 +8,7 @@
           type: nginx_proxy
           name: graphite
           proxy:
-            host: mon
+            host: ${_param:stacklight_monitor_hostname}
             port: 80
             protocol: http
           host:
diff --git a/nginx/server/proxy/infra/sphinx.yml b/nginx/server/proxy/infra/sphinx.yml
index 5f733ac..b7bbfc1 100644
--- a/nginx/server/proxy/infra/sphinx.yml
+++ b/nginx/server/proxy/infra/sphinx.yml
@@ -8,7 +8,7 @@
           type: nginx_proxy
           name: sphinx
           proxy:
-            host: prx
+            host: ${_param:openstack_proxy_hostname}
             port: 8090
             protocol: http
           host:
diff --git a/nginx/server/proxy/openstack_api.yml b/nginx/server/proxy/openstack_api.yml
index 2b84993..4b0b3f4 100644
--- a/nginx/server/proxy/openstack_api.yml
+++ b/nginx/server/proxy/openstack_api.yml
@@ -88,7 +88,7 @@
         nginx_proxy_openstack_api_heat_cloudwatch:
           enabled: true
           type: nginx_proxy
-          name: openstack_api_heat_cfn
+          name: openstack_api_heat_cloudwatch
           proxy:
             host: ${_param:heat_service_host}
             port: 8003
@@ -100,7 +100,7 @@
         nginx_proxy_openstack_api_heat_cfn:
           enabled: true
           type: nginx_proxy
-          name: openstack_api_heat_cloudwatch
+          name: openstack_api_heat_cfn
           proxy:
             host: ${_param:heat_service_host}
             port: 8000
diff --git a/nginx/server/proxy/sensu_web.yml b/nginx/server/proxy/sensu_web.yml
index e06120d..c250a49 100644
--- a/nginx/server/proxy/sensu_web.yml
+++ b/nginx/server/proxy/sensu_web.yml
@@ -8,7 +8,7 @@
           type: nginx_proxy
           name: sensu
           proxy:
-            host: mon
+            host: ${_param:stacklight_monitor_hostname}
             port: 3000
             protocol: http
           host:
diff --git a/nginx/server/proxy/sphinx_web.yml b/nginx/server/proxy/sphinx_web.yml
index 5f733ac..b7bbfc1 100644
--- a/nginx/server/proxy/sphinx_web.yml
+++ b/nginx/server/proxy/sphinx_web.yml
@@ -8,7 +8,7 @@
           type: nginx_proxy
           name: sphinx
           proxy:
-            host: prx
+            host: ${_param:openstack_proxy_hostname}
             port: 8090
             protocol: http
           host:
diff --git a/nova/compute/cluster.yml b/nova/compute/cluster.yml
index 4d07a3e..e8b29cc 100644
--- a/nova/compute/cluster.yml
+++ b/nova/compute/cluster.yml
@@ -1,5 +1,6 @@
 classes:
 - service.nova.compute.kvm
+- service.iptables.server
 parameters:
   _param:
     nova_vncproxy_url: https://${_param:cluster_public_host}:6080
@@ -93,3 +94,16 @@
       user:
         public_key: ${_param:nova_compute_ssh_public}
         private_key: ${_param:nova_compute_ssh_private}
+      my_ip: ${_param:single_address}
+      libvirt:
+        uri: qemu+unix:///system?socket=/var/run/libvirt/libvirt-sock
+  iptables:
+    service:
+      enabled: true
+      chain:
+        INPUT:
+          rules:
+            # deny any connections to libvirt port
+            - destination_port: 16509
+              protocol: tcp
+              jump: DROP
\ No newline at end of file
diff --git a/nova/compute/single.yml b/nova/compute/single.yml
index f50b937..d5126df 100644
--- a/nova/compute/single.yml
+++ b/nova/compute/single.yml
@@ -2,6 +2,7 @@
 - nova
 classes:
 - service.nova.compute.kvm
+- service.iptables.server
 parameters:
   _param:
     nova_vncproxy_url: https://${_param:cluster_public_host}:6080
@@ -89,3 +90,16 @@
       user:
         public_key: ${_param:nova_compute_ssh_public}
         private_key: ${_param:nova_compute_ssh_private}
+      my_ip: ${_param:single_address}
+      libvirt:
+        uri: qemu+unix:///system?socket=/var/run/libvirt/libvirt-sock
+  iptables:
+    service:
+      enabled: true
+      chain:
+        INPUT:
+          rules:
+            # deny any connections to libvirt port
+            - destination_port: 16509
+              protocol: tcp
+              jump: DROP
\ No newline at end of file
diff --git a/openssh/server/team/all.yml b/openssh/server/team/all.yml
index 5106c73..5daf27d 100644
--- a/openssh/server/team/all.yml
+++ b/openssh/server/team/all.yml
@@ -1,13 +1,11 @@
 classes:
+# avoid teams w/sudo group restrictions, or override restrictions
 - system.openssh.server.team.lab
 - system.openssh.server.team.cicd
 - system.openssh.server.team.mcp_qa
 - system.openssh.server.team.mcp_ci
-- system.openssh.server.team.mmo_devops
 - system.openssh.server.team.presales
 - system.openssh.server.team.services
-# avoid teams w/sudo group restrictions, or override restrictions
-#- system.openssh.server.team.support
 - system.openssh.server.team.stacklight
 - system.openssh.server.team.networking
 - system.openssh.server.team.security
@@ -17,6 +15,8 @@
 - system.openssh.server.team.oscore_devops
 - system.openssh.server.team.k8s_team
 - system.openssh.server.team.k8s_apps_team
+# to include support team, please integrate submodule opscare into cluster model
+# https://gerrit.mirantis.com/#/admin/projects/mmo-support/reclass-opscare
 parameters:
   _param:
     linux_system_user_sudo: true
diff --git a/openssh/server/team/l1_support.yml b/openssh/server/team/l1_support.yml
index 1db07d6..8f1d5c1 100644
--- a/openssh/server/team/l1_support.yml
+++ b/openssh/server/team/l1_support.yml
@@ -1,5 +1,6 @@
 ## DEPRECATED, this class will be removed 01/2018
-#  please use support.yml instead
+## please integrate submodule opscare instead
+## https://gerrit.mirantis.com/#/admin/projects/mmo-support/reclass-opscare
 classes:
 - system.linux.system.sudo
 # L1
diff --git a/openssh/server/team/l2_support.yml b/openssh/server/team/l2_support.yml
index d231abc..91c7fa8 100644
--- a/openssh/server/team/l2_support.yml
+++ b/openssh/server/team/l2_support.yml
@@ -1,5 +1,6 @@
 ## DEPRECATED, this class will be removed 01/2018
-#  please use support3.yml instead
+## please integrate submodule opscare instead
+## https://gerrit.mirantis.com/#/admin/projects/mmo-support/reclass-opscare
 classes:
 - system.linux.system.sudo
 # L2
diff --git a/openssh/server/team/members/listomin.yml b/openssh/server/team/members/listomin.yml
new file mode 100644
index 0000000..4a22a23
--- /dev/null
+++ b/openssh/server/team/members/listomin.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        listomin:
+          enabled: true
+          name: listomin
+          sudo: ${_param:linux_system_user_sudo}
+          full_name: Leontii Istomin
+          home: /home/listomin
+          email: listomin@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        listomin:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkiHTkB53cYMFqNsKjEa1W+O3KpSRk26zCQtNsJO4KrNTSuROcpSjSGLUL55YgjBzVUUo88WNFJgu5e3oJNmXpWcfyRa2LoQyhAws6LxsGb5hH0YWB34w4uzvcHIpO5QNGmHIMaczdS721cgGMygBla32putV13gZE/y2ucFh4oza5lRuY5GZm2i1iTaDV5QqamDeYC3venjTtnXXuZbsW0Mkyn8mPXe5d3/FYSKLBGGCELnxpyopfpuCBsQEPSuYIz7EWsLCCjKgUrYZ4Uu5Sg5Ifs+Z0lSQR7/wbraDoGSyrubBHP3ub57lJvQ5kvNyKnT+BwGpoF8V+oMuoqR4l listomin@listomin-laptop
+          user: ${linux:system:user:listomin}
\ No newline at end of file
diff --git a/openssh/server/team/members/obasov.yml b/openssh/server/team/members/obasov.yml
new file mode 100644
index 0000000..8f58212
--- /dev/null
+++ b/openssh/server/team/members/obasov.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        obasov:
+          enabled: true
+          name: obasov
+          sudo: ${_param:linux_system_user_sudo}
+          full_name: Oleg Basov
+          home: /home/obasov
+          email: obasov@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        obasov:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkbt+z214gkpRTA1Fso0ltxDq37Cu0l75stLO9eIPh9Gd38MliXB5NpJsGk3b521y/a2fdIKMfzwlt3WpC/cgx16l2PesEt4b/ASHYiHNtoGPxbcDRfgcamAsUyUyPtKjbBJJJ2aPfYRRhnEDOZwA3P6ITvpfzj4I24Y46j1H+qmi8gKzFTZpj0EobaPTi/sRztuVLspTy3MntcIwGBJMZCaz0jifYLEEFdEQRHdaZy5L2/2jv7GVECBRd0ucHr+zSM1uV4LQbQVCuGquTn05GZBpwgtMyfwhm7ySMsewZpssVReDha+0WVpNiftKcyBAjXdUsLAgZqeaAz4exey1r olegeech@ns1.sytkovo.su
+          user: ${linux:system:user:obasov}
\ No newline at end of file
diff --git a/openssh/server/team/members/sgalkin.yml b/openssh/server/team/members/sgalkin.yml
new file mode 100644
index 0000000..1388ebc
--- /dev/null
+++ b/openssh/server/team/members/sgalkin.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        sgalkin:
+          enabled: true
+          name: sgalkin
+          sudo: ${_param:linux_system_user_sudo}
+          full_name: Sergey Galkin
+          home: /home/sgalkin
+          email: sgalkin@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        sgalkin:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyaEWaI1tkQiWHIB/pHZ6jrZyN7fQDxYodhT54rtbFcwnxGM0L1PuL1WcHGB9GJgWwOe7FE+9/kGxAuabjiFjg/NagdtAOfBp2b9+9sYCc8luJxIicTXHI5fY/tVW28OL8s51cw3Gr2m0atRDxKpb8Zv78qfYSSaENB9vq02IYu4Cr1CLEB6Zawm9iRq9ahMwWfslwIii4wKFuWcgjT6spMiHNkUwIYwxdFlCUh3gEhJYfwhe3LpoAvHmBESW0hdEj0S9YgTByBRgKkKrh98irf6B4DVOLWQLudLjAl59lb9Gz2s6fKUBYbz++I6bejHQ6I83VzT0DDKnbiQRXLh4/Q== gals@gals
+          user: ${linux:system:user:sgalkin}
\ No newline at end of file
diff --git a/openssh/server/team/mmo_devops.yml b/openssh/server/team/mmo_devops.yml
index 1fe82c6..986c5e3 100644
--- a/openssh/server/team/mmo_devops.yml
+++ b/openssh/server/team/mmo_devops.yml
@@ -1,3 +1,4 @@
+## DEPRECATED, this class will be removed 01/2018
 classes:
 # DevOps/SRE Team
 - system.openssh.server.team.members.cade
diff --git a/openssh/server/team/qa_scale.yml b/openssh/server/team/qa_scale.yml
index a3f4a91..98c5540 100644
--- a/openssh/server/team/qa_scale.yml
+++ b/openssh/server/team/qa_scale.yml
@@ -1,25 +1,8 @@
+classes:
+- system.openssh.server.team.members.listomin
+- system.openssh.server.team.members.sgalkin
+- system.openssh.server.team.members.obasov
+
 parameters:
   _param:
     linux_system_user_sudo: true
-  linux:
-    system:
-      user:
-        dburnazyan:
-          enabled: true
-          name: dburnazyan
-          sudo: true
-          full_name: David Burnazyan
-          home: /home/dburnazyan
-          email: dburnazyan@mirantis.com
-  openssh:
-    server:
-      enabled: true
-      user:
-        dburnazyan:
-          enabled: true
-          public_keys:
-          - ${public_keys:dburnazyan}
-          user: ${linux:system:user:dburnazyan}
-  public_keys:
-    dburnazyan:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4xJvnHle7Omjhnv8AsqfXlp1Sg4Ixq/p0Dpcj5SlGN5YTnIs+eRXwy7WHICCgWC1OA+o4omzWQI486u0C4qMkdv+nvuAsvJQVRGNiGVp4gi48x3KqMxlEzeCScMH5oj+W5LJLcb2czHulBPXRluKlITOlF4i5+z3GbFwb8Dg5hBnnbxhhRyh6XyUOh8WQvBqXAk2EqY8vqYAZxV9DXI8OSIYsvpM9jQo/26YrSoTWZ4caCNmL6zVVH7eXaqEzVwDHxpXHLvzSP4bIl85dKygJI1DyN9mZ1B77z1lNZnk7Fu8yQP05Guln5Hzg+VqycAZxOk6ysjRXiYNu56DVZuc3 dburnazyan@dburnazyan-pc.msk.mirantis.net
diff --git a/openssh/server/team/support.yml b/openssh/server/team/support.yml
index f78ceac..1c59bb8 100644
--- a/openssh/server/team/support.yml
+++ b/openssh/server/team/support.yml
@@ -1,3 +1,6 @@
+## DEPRECATED, this class will be removed 01/2018
+## please integrate submodule opscare instead
+## https://gerrit.mirantis.com/#/admin/projects/mmo-support/reclass-opscare
 classes:
 - system.linux.system.sudo
 # L1
@@ -86,8 +89,6 @@
             - ${linux:system:user:nkabanova:name}
             - ${linux:system:user:rsoto:name}
             - ${linux:system:user:rsafonov:name}
-            - ${linux:system:user:smachtmes:name}
-            - ${linux:system:user:zkhurasani:name}
             # L2OPS
             - ${linux:system:user:aepifanov:name}
             - ${linux:system:user:apetrenko:name}
@@ -104,12 +105,9 @@
             - ${linux:system:user:oliemieshko:name}
             - ${linux:system:user:sovsianikov:name}
             - ${linux:system:user:pmichalec:name}
-            - ${linux:system:user:pmathews:name}
             - ${linux:system:user:pcizinsky:name}
             - ${linux:system:user:osmola:name}
-            - ${linux:system:user:cade:name}
             - ${linux:system:user:jmosher:name}
-            - ${linux:system:user:ecantwell:name}
             - ${linux:system:user:lmercl:name}
       sudo:
         enabled: true
diff --git a/reclass/storage/system/oss_cluster.yml b/reclass/storage/system/oss_cluster.yml
new file mode 100644
index 0000000..71d42ce
--- /dev/null
+++ b/reclass/storage/system/oss_cluster.yml
@@ -0,0 +1,43 @@
+parameters:
+  _param:
+    oss_node01_hostname: mon01
+    oss_node02_hostname: mon02
+    oss_node03_hostname: mon03
+    oss_system_codename: xenial
+  reclass:
+    storage:
+      node:
+        stacklight_server_node01:
+          name: ${_param:oss_node01_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - system.docker.swarm.master
+          - cluster.${_param:cluster_name}.oss.client
+          - cluster.${_param:cluster_name}.oss.server
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: ${_param:oss_system_codename}
+            single_address: ${_param:oss_node01_address}
+            keepalived_vip_priority: 103
+        stacklight_server_node02:
+          name: ${_param:oss_node02_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - system.docker.swarm.manager
+          - cluster.${_param:cluster_name}.oss.server
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: ${_param:oss_system_codename}
+            single_address: ${_param:oss_node02_address}
+            keepalived_vip_priority: 102
+        stacklight_server_node03:
+          name: ${_param:oss_node03_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - system.docker.swarm.manager
+          - cluster.${_param:cluster_name}.oss.server
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: ${_param:oss_system_codename}
+            single_address: ${_param:oss_node03_address}
+            keepalived_vip_priority: 101
diff --git a/salt/control/cluster/infra_idm_cluster.yml b/salt/control/cluster/infra_idm_cluster.yml
index 3db87a2..ff135a1 100644
--- a/salt/control/cluster/infra_idm_cluster.yml
+++ b/salt/control/cluster/infra_idm_cluster.yml
@@ -13,14 +13,17 @@
           engine: virt
           node:
             idm01:
+              name: ${_param:infra_idm_node01_hostname}
               provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_centos7_image}
               size: infra.idm
             idm02:
+              name: ${_param:infra_idm_node02_hostname}
               provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_centos7_image}
               size: infra.idm
             idm03:
+              name: ${_param:infra_idm_node03_hostname}
               provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_centos7_image}
               size: infra.idm
diff --git a/salt/control/cluster/openstack_baremetal_cluster.yml b/salt/control/cluster/openstack_baremetal_cluster.yml
index 609be28..4dd62e4 100644
--- a/salt/control/cluster/openstack_baremetal_cluster.yml
+++ b/salt/control/cluster/openstack_baremetal_cluster.yml
@@ -13,14 +13,17 @@
           engine: virt
           node:
             bmt01:
+              name: ${_param:openstack_baremetal_node01_hostname}
               provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.baremetal
             bmt02:
+              name: ${_param:openstack_baremetal_node02_hostname}
               provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.baremetal
             bmt03:
+              name: ${_param:openstack_baremetal_node03_hostname}
               provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.baremetal
diff --git a/salt/control/cluster/openstack_baremetal_single.yml b/salt/control/cluster/openstack_baremetal_single.yml
index 5ff00f5..f0aa319 100644
--- a/salt/control/cluster/openstack_baremetal_single.yml
+++ b/salt/control/cluster/openstack_baremetal_single.yml
@@ -13,6 +13,7 @@
           engine: virt
           node:
             bmt01:
+              name: ${_param:openstack_baremetal_node01_hostname}
               provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.baremetal
diff --git a/salt/control/cluster/openstack_benchmark_single.yml b/salt/control/cluster/openstack_benchmark_single.yml
index 0677320..ea10fc3 100644
--- a/salt/control/cluster/openstack_benchmark_single.yml
+++ b/salt/control/cluster/openstack_benchmark_single.yml
@@ -13,6 +13,7 @@
           engine: virt
           node:
             bmk01:
+              name: ${_param:openstack_benchmark_node01_hostname}
               provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_trusty_image}
               size: openstack.benchmark
diff --git a/salt/control/cluster/openstack_dns_cluster.yml b/salt/control/cluster/openstack_dns_cluster.yml
index 71af5c1..7f1dbb8 100644
--- a/salt/control/cluster/openstack_dns_cluster.yml
+++ b/salt/control/cluster/openstack_dns_cluster.yml
@@ -13,10 +13,12 @@
           engine: virt
           node:
             dns01:
+              name: ${_param:openstack_dns_node01_hostname}
               provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.dns
             dns02:
+              name: ${_param:openstack_dns_node02_hostname}
               provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.dns
diff --git a/salt/control/cluster/openstack_gateway_cluster.yml b/salt/control/cluster/openstack_gateway_cluster.yml
index efc7215..1a7e06b 100644
--- a/salt/control/cluster/openstack_gateway_cluster.yml
+++ b/salt/control/cluster/openstack_gateway_cluster.yml
@@ -13,14 +13,17 @@
           engine: virt
           node:
             gtw01:
+              name: ${_param:openstack_gateway_node01_hostname}
               provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.gateway
             gtw02:
+              name: ${_param:openstack_gateway_node02_hostname}
               provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.gateway
             gtw03:
+              name: ${_param:openstack_gateway_node03_hostname}
               provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.gateway
diff --git a/salt/control/cluster/openstack_gateway_single.yml b/salt/control/cluster/openstack_gateway_single.yml
index e10d1b2..801ee0c 100644
--- a/salt/control/cluster/openstack_gateway_single.yml
+++ b/salt/control/cluster/openstack_gateway_single.yml
@@ -13,6 +13,7 @@
           engine: virt
           node:
             gtw01:
+              name: ${_param:openstack_gateway_node01_hostname}
               provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.gateway
diff --git a/salt/control/cluster/rsyslog_single.yml b/salt/control/cluster/rsyslog_single.yml
index 76cc77f..72e6c86 100644
--- a/salt/control/cluster/rsyslog_single.yml
+++ b/salt/control/cluster/rsyslog_single.yml
@@ -13,6 +13,7 @@
           engine: virt
           node:
             rsl01:
+              name: ${_param:rsyslog_node01_hostname}
               provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: infra.rsyslog
diff --git a/salt/control/cluster/stacklight_log_cluster.yml b/salt/control/cluster/stacklight_log_cluster.yml
index 330e301..e4c08b6 100644
--- a/salt/control/cluster/stacklight_log_cluster.yml
+++ b/salt/control/cluster/stacklight_log_cluster.yml
@@ -5,7 +5,7 @@
         stacklight.log:
           cpu: 32
           ram: 65536
-          disk_profile: small
+          disk_profile: xxxxlarge
           net_profile: default
       cluster:
         internal:
diff --git a/salt/control/cluster/stacklight_server_cluster.yml b/salt/control/cluster/stacklight_server_cluster.yml
index 0055d20..6e7da61 100644
--- a/salt/control/cluster/stacklight_server_cluster.yml
+++ b/salt/control/cluster/stacklight_server_cluster.yml
@@ -5,7 +5,7 @@
         stacklight.server:
           cpu: 32
           ram: 65536
-          disk_profile: small
+          disk_profile: xxlarge
           net_profile: default
       cluster:
         internal:
diff --git a/salt/control/cluster/stacklight_telemetry_cluster.yml b/salt/control/cluster/stacklight_telemetry_cluster.yml
index bfd14b0..1b39b61 100644
--- a/salt/control/cluster/stacklight_telemetry_cluster.yml
+++ b/salt/control/cluster/stacklight_telemetry_cluster.yml
@@ -5,7 +5,7 @@
         stacklight.telemetry:
           cpu: 32
           ram: 65536
-          disk_profile: small
+          disk_profile: xxxlarge
           net_profile: default
       cluster:
         internal:
diff --git a/salt/master/formula/git/openstack.yml b/salt/master/formula/git/openstack.yml
index 3472f2e..cd9df0a 100644
--- a/salt/master/formula/git/openstack.yml
+++ b/salt/master/formula/git/openstack.yml
@@ -8,10 +8,10 @@
               source: git
               address: '${_param:salt_master_environment_repository}/salt-formula-aodh.git'
               revision: ${_param:salt_master_environment_revision}
-            #avinetworks:
-            #  source: git
-            #  address: '${_param:salt_master_environment_repository}/salt-formula-avinetworks.git'
-            #  revision: ${_param:salt_master_environment_revision}
+            avinetworks:
+              source: git
+              address: '${_param:salt_master_environment_repository}/salt-formula-avinetworks.git'
+              revision: ${_param:salt_master_environment_revision}
             barbican:
               source: git
               address: '${_param:salt_master_environment_repository}/salt-formula-barbican.git'
diff --git a/salt/master/formula/pkg/foundation.yml b/salt/master/formula/pkg/foundation.yml
index 3111419..5d530d4 100644
--- a/salt/master/formula/pkg/foundation.yml
+++ b/salt/master/formula/pkg/foundation.yml
@@ -34,3 +34,6 @@
             lldp:
               source: pkg
               name: salt-formula-lldp
+            tinyproxy:
+              source: pkg
+              name: salt-formula-tinyproxy
diff --git a/salt/master/formula/pkg/openstack.yml b/salt/master/formula/pkg/openstack.yml
index 663572b..3d22c41 100644
--- a/salt/master/formula/pkg/openstack.yml
+++ b/salt/master/formula/pkg/openstack.yml
@@ -7,9 +7,9 @@
             aodh:
               source: pkg
               name: salt-formula-aodh
-            #avinetworks:
-            #  source: pkg
-            #  name: salt-formula-avinetworks
+            avinetworks:
+              source: pkg
+              name: salt-formula-avinetworks
             barbican:
               source: pkg
               name: salt-formula-barbican
diff --git a/salt/master/pkg.yml b/salt/master/pkg.yml
index dba30d0..ac839f8 100644
--- a/salt/master/pkg.yml
+++ b/salt/master/pkg.yml
@@ -9,5 +9,4 @@
 - system.salt.master.formula.pkg.stacklight
 - system.salt.master.formula.pkg.monitoring
 - system.salt.master.formula.pkg.helm
-- system.salt.master.formula.pkg.ceph
-- system.linux.system.repo.mcp.salt
+- system.salt.master.formula.pkg.ceph
\ No newline at end of file
diff --git a/salt/minion/cert/etcd_server_single.yml b/salt/minion/cert/etcd_server_single.yml
index f9fc585..d333fb8 100644
--- a/salt/minion/cert/etcd_server_single.yml
+++ b/salt/minion/cert/etcd_server_single.yml
@@ -7,7 +7,7 @@
           authority: ${_param:salt_minion_ca_authority}
           common_name: ${linux:system:name}
           signing_policy: cert_open
-          alternative_names: IP:127.0.0.1,DNS:${linux:system:name},DNS:${linux:network:fqdn}
+          alternative_names: IP:127.0.0.1,IP:${_param:cluster_local_address},DNS:${linux:system:name},DNS:${linux:network:fqdn}
           extended_key_usage: serverAuth,clientAuth
           key_usage: "digitalSignature,nonRepudiation,keyEncipherment"
           key_file: /var/lib/etcd/etcd-server.key
diff --git a/salt/minion/cert/mysql/init.yml b/salt/minion/cert/mysql/init.yml
new file mode 100644
index 0000000..a1c480f
--- /dev/null
+++ b/salt/minion/cert/mysql/init.yml
@@ -0,0 +1,13 @@
+parameters:
+  _param:
+    salt_minion_ca_host: cfg01.${_param:cluster_domain}
+    salt_minion_ca_authority: salt_master_ca
+  salt:
+    minion:
+      cert:
+        mysql_server:
+          host: ${_param:salt_minion_ca_host}
+          signing_policy: cert_server
+          authority: ${_param:salt_minion_ca_authority}
+          common_name: mysql_server
+          signing_policy: cert_open
diff --git a/salt/minion/cert/mysql/pki.yml b/salt/minion/cert/mysql/pki.yml
new file mode 100644
index 0000000..b19ef5e
--- /dev/null
+++ b/salt/minion/cert/mysql/pki.yml
@@ -0,0 +1,8 @@
+parameters:
+  salt:
+    minion:
+      cert:
+        mysql_server:
+          key_file:   /srv/salt/pki/${_param:cluster_name}/${salt:minion:cert:mysql_server:common_name}.key
+          cert_file:  /srv/salt/pki/${_param:cluster_name}/${salt:minion:cert:mysql_server:common_name}.crt
+          all_file:   /srv/salt/pki/${_param:cluster_name}/${salt:minion:cert:mysql_server:common_name}-chain-with-key.pem
diff --git a/salt/minion/cert/mysql/server.yml b/salt/minion/cert/mysql/server.yml
new file mode 100644
index 0000000..8ff7519
--- /dev/null
+++ b/salt/minion/cert/mysql/server.yml
@@ -0,0 +1,27 @@
+classes:
+- system.salt.minion.cert.mysql
+
+parameters:
+  _param:
+    mysql_ssl_key_file: /etc/mysql/ssl/key.pem
+    mysql_ssl_cert_file: /etc/mysql/ssl/cert.pem
+    mysql_ssl_ca_file: /etc/mysql/ssl/ca.pem
+  salt:
+    minion:
+      cert:
+        mysql_server:
+          # IP are used as DNS due to cert verificaiton issue of python2:
+          # https://bugs.python.org/issue12000
+          alternative_names: >
+            IP:${_param:cluster_local_address},
+            IP:${_param:cluster_vip_address},
+            DNS:${_param:cluster_local_address},
+            DNS:${_param:cluster_vip_address},
+            DNS:${linux:system:name},
+            DNS:${linux:network:fqdn}
+          key_usage: "digitalSignature,nonRepudiation,keyEncipherment"
+          key_file: ${_param:mysql_ssl_key_file}
+          cert_file: ${_param:mysql_ssl_cert_file}
+          ca_file: ${_param:mysql_ssl_ca_file}
+          user: mysql
+          group: mysql