Merge "Remove references to the neutron:server:plugin parameter"
diff --git a/.releasenotes/notes/add-jenkins-and-gerrit-nginx-proxy-support-272f290d7c92480a.yaml b/.releasenotes/notes/add-jenkins-and-gerrit-nginx-proxy-support-272f290d7c92480a.yaml
new file mode 100644
index 0000000..f15497f
--- /dev/null
+++ b/.releasenotes/notes/add-jenkins-and-gerrit-nginx-proxy-support-272f290d7c92480a.yaml
@@ -0,0 +1,30 @@
+---
+features:
+  - |
+    Added system metadata classes to deploy reverse proxy support for
+    Jenkins and Gerrit services. When enabled, these services can be
+    accessed through a public URL or DNS.
+
+    **To apply the change to your deployment:**
+
+    #. Add the following classes to
+       ``cluster.<CLUSTER_NAME>.openstack.proxy.yml``:
+
+       .. code-block:: yaml
+
+          classes:
+            - system.nginx.server.proxy.cicd.gerrit
+            - system.nginx.server.proxy.cicd.jenkins
+
+    #. Set up the following parameters in
+       ``cluster.<CLUSTER_NAME>.cicd.control.init.yml``:
+
+       .. code-block:: yaml
+
+          parameters:
+            _param:
+              nginx_proxy_gerrit_server_site_host: ${_param:openstack_proxy_address}
+              nginx_proxy_gerrit_server_site_port: 8080
+              gerrit_http_listen_url: proxy-https://*:8080/
+              gerrit_public_host: https://${_param:nginx_proxy_gerrit_server_site_host}:${_param:nginx_proxy_gerrit_server_site_port}
+
diff --git a/.releasenotes/notes/add-upstream-proxy-feauture-for-maas-gerrit-jenkins-aptly-53bec821be830377.yaml b/.releasenotes/notes/add-upstream-proxy-feauture-for-maas-gerrit-jenkins-aptly-53bec821be830377.yaml
new file mode 100644
index 0000000..3c408a2
--- /dev/null
+++ b/.releasenotes/notes/add-upstream-proxy-feauture-for-maas-gerrit-jenkins-aptly-53bec821be830377.yaml
@@ -0,0 +1,48 @@
+---
+features:
+  - |
+    Added system metadata to set upstream proxy for the MAAS, Gerrit, Jenkins,
+    and Aptly services.
+
+    **To apply the change to an existing cicd cluster deployment:**
+
+    #. Set the ``http_proxy`` parameter in
+       ``cluster.<CLUSTER_NAME>.cicd.control.init.yml``:
+
+       .. code-block:: yaml
+
+          parameters:
+            _param:
+              http_proxy: 'http://<<upstream_proxy_address>>:<<upstream_proxy_port>>'
+
+    #. Apply the :command:`docker.client` state:
+
+       .. code-block::
+
+          salt -C 'I@docker:client' state.sls docker.client
+
+    **To apply the change to an existing maas deployment:**
+
+    #. Configure ``upstream_proxy`` for MAAS:
+
+       .. code-block:: yaml
+
+          maas:
+            region:
+              upstream_proxy:
+                address: <<upstream_proxy_address>>
+                port: <<upstream_proxy_address>>
+
+     #. On the Salt Master node, update the MaaS Salt formula to latest:
+
+        .. code-block::
+
+           salt-call state.sls salt.master
+
+     #. On the MAAS node, apply the :command:`maas.region` state:
+
+        .. code-block::
+
+           salt-call state.sls maas.region
+           reboot
+
diff --git a/.releasenotes/notes/add_ssl_support_oss-ea1eb1e086d08e3c.yaml b/.releasenotes/notes/add_ssl_support_oss-ea1eb1e086d08e3c.yaml
index b74bc21..d28f488 100644
--- a/.releasenotes/notes/add_ssl_support_oss-ea1eb1e086d08e3c.yaml
+++ b/.releasenotes/notes/add_ssl_support_oss-ea1eb1e086d08e3c.yaml
@@ -60,7 +60,7 @@
       .. note:: By default, the ``cacert_path`` variable is defined as
                 follows:
 
-               .. code-block:: yaml
+                .. code-block:: yaml
 
-                  oss_openstack_cert_path: /srv/volumes/rundeck/storage/content/keys/cis/openstack/cert.pem
+                   oss_openstack_cert_path: /srv/volumes/rundeck/storage/content/keys/cis/openstack/cert.pem
 
diff --git a/.releasenotes/notes/move-monitoring-and-oss-to-mon-nodes-9711005d184b1f59.yaml b/.releasenotes/notes/move-monitoring-and-oss-to-mon-nodes-9711005d184b1f59.yaml
new file mode 100644
index 0000000..c68faf1
--- /dev/null
+++ b/.releasenotes/notes/move-monitoring-and-oss-to-mon-nodes-9711005d184b1f59.yaml
@@ -0,0 +1,11 @@
+---
+fixes:
+  - |
+    For stability and diversification of resources, Prometheus-based Stacklight
+    and OSS services were moved to monitoring nodes. Now, on spawning new
+    monitoring nodes, different Docker swarm is set up on them to deliver
+    Stacklight and/or OSS services.
+
+    To deploy Stacklight with OSS services on monitoring nodes, generate a new
+    deployment model using the Model Designer UI.
+
diff --git a/.releasenotes/notes/nginx-timeouts-15edce840ee27b59.yaml b/.releasenotes/notes/nginx-timeouts-15edce840ee27b59.yaml
new file mode 100644
index 0000000..7d5893d
--- /dev/null
+++ b/.releasenotes/notes/nginx-timeouts-15edce840ee27b59.yaml
@@ -0,0 +1,51 @@
+---
+summary: >
+    Added possibility to define Nginx proxy timeouts for Devops Portal Service.
+
+features:
+  - |
+    Added possibility to define Nginx proxy timeouts for Devops Portal service through Salt metadata.
+    To avoid possible *Gateway Timeout* errors that occur due to huge amount
+    of data, connection, and other issues. Its possible to configure server timeouts on the side of
+    Devops Portal service.
+
+    **To configure Nginx proxy timeouts:**
+
+    #. Define following parameters on a system level for each service in
+       your Docker stack.
+
+       .. code-block:: yaml
+
+          parameters:
+            devops_portal:
+              config:
+                service:
+                  your_service:
+                    configure_proxy: true
+                    resolve_hostname: true
+                    # Proxy parameters, default value equals 300 ms
+                    proxy_connect_timeout: 300
+                    proxy_send_timeout: 300
+                    proxy_read_timeout: 300
+                    send_timeout: 300
+
+       .. note:: The following is the example of the above configuration
+                 location:
+
+                 .. code-block:: yaml
+
+                    /srv/salt/reclass/classes/system/docker/swarm/stack/YOUR_SERVICE.yml
+
+    #. Recreate devops-portal stack:
+
+       .. code-block:: bash
+
+          docker stack rm devops-portal
+          salt -C 'I@devops_portal:config' state.sls devops_portal.config
+          salt -C 'I@docker:swarm:role:master' state.sls docker.client
+
+       The Nginx configuration are updated during the Devops Portal Salt
+       formula application.
+
+    .. fixes https://mirantis.jira.com/browse/PROD-14603
+
diff --git a/.releasenotes/notes/rename-options-5db6ad4bb2ff80f5.yaml b/.releasenotes/notes/rename-options-5db6ad4bb2ff80f5.yaml
new file mode 100644
index 0000000..e5bc283
--- /dev/null
+++ b/.releasenotes/notes/rename-options-5db6ad4bb2ff80f5.yaml
@@ -0,0 +1,42 @@
+---
+summary: >
+  Improved the OpenStack cloud credentials defining process for the OSS services
+
+upgrades:
+  - |
+    Improved the OpenStack cloud credentials defining process for the OSS
+    services. The changes affect cluster and system levels of an MCP
+    deployment and include the following:
+
+    * ``cacert_path`` and ``cafile`` parameters for the Security Audit and
+      Cleanup services has changed to:
+
+      .. code-block:: yaml
+
+         security_monkey_openstack:
+           source_credentials: source/path/for/os/credentials/on/env
+           service_credentials: path/to/os/credentials/in/service/container
+
+         janitor_monkey_openstack:
+           source_credentials: source/path/for/os/credentials/on/env
+           service_credentials: path/to/os/credentials/in/service/container
+
+      Now, you do not need to specify the certificate file but only the
+      directory where it is located.
+      The certificate file is named ``cert.pem`` for all services by default;
+      and the ``source_credentials`` value equals to
+      the value of the ``oss_openstack_credentials_path`` parameter.
+
+    * ``oss_openstack_cert_path`` has changed as follows:
+
+      .. code-block:: yaml
+
+         oss_openstack_credentials_path: source/path/for/os/credentials/on/env
+
+    .. fixes:
+       - https://mirantis.jira.com/browse/PROD-14863
+       - https://mirantis.jira.com/browse/PROD-14870
+
+    .. full change-list:
+       https://gerrit.mcp.mirantis.net/#/q/topic:os-creds+(status:open+OR+status:merged)
+
diff --git a/.releasenotes/notes/sfdc-support-995867e00a89add0.yaml b/.releasenotes/notes/sfdc-support-995867e00a89add0.yaml
new file mode 100644
index 0000000..0b4bff4
--- /dev/null
+++ b/.releasenotes/notes/sfdc-support-995867e00a89add0.yaml
@@ -0,0 +1,20 @@
+---
+summary: >
+   Added support for the Push Notifications service to Salesforce.
+
+features:
+  - |
+    Added support for the Push Notification service to Salesforce.
+    To configure the Push Notification service for a SalesForce account,
+    define following variables on the cluster level metadata:
+
+    .. code-block:: yaml
+
+       sfdc_auth_url: https://login.salesforce.com/services/oauth2/token
+       sfdc_username: user@example.net
+       sfdc_password: secret
+       sfdc_consumer_key: example_consumer_key
+       sfdc_consumer_secret: example_consumer_secret
+       sfdc_organization_id: example_organization_id
+       sfdc_sandbox_enabled: True/False
+
diff --git a/aptly/server/mirror/ubuntu/trusty/ceph.yml b/aptly/server/mirror/ubuntu/trusty/ceph.yml
index 2729acc..b8e83c2 100644
--- a/aptly/server/mirror/ubuntu/trusty/ceph.yml
+++ b/aptly/server/mirror/ubuntu/trusty/ceph.yml
@@ -1,9 +1,12 @@
 parameters:
+  _param:
+    ceph_version: luminous
+    apt_mk_version: stable
   aptly:
     server:
       mirror:
         ceph-trusty:
-          source: http://download.ceph.com/debian-hammer
+          source: http://download.ceph.com/debian-${_param:ceph_version}
           distribution: trusty
           components: main
           architectures: amd64
@@ -12,4 +15,4 @@
           publisher:
             component: ceph
             distributions:
-              - ubuntu-trusty/nightly
+              - ubuntu-trusty/${_param:apt_mk_version}
diff --git a/aptly/server/mirror/ubuntu/trusty/docker.yml b/aptly/server/mirror/ubuntu/trusty/docker.yml
index 217d405..db97d14 100644
--- a/aptly/server/mirror/ubuntu/trusty/docker.yml
+++ b/aptly/server/mirror/ubuntu/trusty/docker.yml
@@ -3,12 +3,12 @@
     server:
       mirror:
         docker-trusty:
-          source: https://apt.dockerproject.org/repo
-          distribution: ubuntu-trusty
-          components: main
+          source: 'https://download.docker.com/linux/ubuntu'
+          distribution: trusty
+          components: stable
           architectures: amd64
           gpgkeys:
-            - 58118E89F3A912897C070ADBF76221572C52609D
+            - 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
           publisher:
             component: docker
             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
new file mode 100644
index 0000000..944a590
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/extra.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+  aptly:
+    server:
+      mirror:
+        mirantis_openstack_trusty_extra:
+          source: http://apt-mk.mirantis.com/trusty/
+          distribution: ${_param:apt_mk_version}
+          components: extra
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          gpgkeys:
+            - A76882D3
+          publisher:
+            component: extra
+            distributions:
+              - ubuntu-trusty/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/init.yml b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/init.yml
index 35ae854..a2a848e 100644
--- a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/init.yml
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/init.yml
@@ -1,67 +1,8 @@
-parameters:
-  _param:
-    apt_mk_version: stable
-  aptly:
-    server:
-      mirror:
-        # required for opencontrail formulas
-        mcp_opencontrail_trusty_oc311:
-          source: http://apt-mk.mirantis.com/trusty/
-          distribution: ${_param:apt_mk_version}
-          components: oc311
-          architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
-          publisher:
-            component: oc311
-            distributions:
-              - ubuntu-trusty/${_param:apt_mk_version}
-        mcp_opencontrail_trusty_oc31:
-          source: http://apt-mk.mirantis.com/trusty/
-          distribution: ${_param:apt_mk_version}
-          components: oc31
-          architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
-          publisher:
-            component: oc31
-            distributions:
-              - ubuntu-trusty/${_param:apt_mk_version}
-        mcp_opencontrail_trusty_oc32:
-          source: http://apt-mk.mirantis.com/trusty/
-          distribution: ${_param:apt_mk_version}
-          components: oc32
-          architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
-          publisher:
-            component: oc32
-            distributions:
-              - ubuntu-trusty/${_param:apt_mk_version}
-        mirantis_openstack_trusty_extra:
-          source: http://apt-mk.mirantis.com/trusty/
-          distribution: ${_param:apt_mk_version}
-          components: extra
-          architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
-          publisher:
-            component: extra
-            distributions:
-              - ubuntu-trusty/${_param:apt_mk_version}
-        mirantis_openstack_trusty_salt:
-          source: http://apt-mk.mirantis.com/trusty/
-          distribution: ${_param:apt_mk_version}
-          components: salt
-          architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
-          publisher:
-            component: salt
-            distributions:
-              - ubuntu-trusty/${_param:apt_mk_version}
+classes:
+- system.aptly.server.mirror.ubuntu.trusty.mcp.apt_mk.oc31
+- system.aptly.server.mirror.ubuntu.trusty.mcp.apt_mk.oc311
+- system.aptly.server.mirror.ubuntu.trusty.mcp.apt_mk.oc32
+- system.aptly.server.mirror.ubuntu.trusty.mcp.apt_mk.oc323
+- system.aptly.server.mirror.ubuntu.trusty.mcp.apt_mk.mitaka
+- system.aptly.server.mirror.ubuntu.trusty.mcp.apt_mk.extra
+- system.aptly.server.mirror.ubuntu.trusty.mcp.apt_mk.salt
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/mitaka.yml b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/mitaka.yml
new file mode 100644
index 0000000..5b9bc63
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/mitaka.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+  aptly:
+    server:
+      mirror:
+        mk_openstack_xenial_mitaka:
+          source: http://apt-mk.mirantis.com/xenial/
+          distribution: ${_param:apt_mk_version}
+          components: mitaka
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          gpgkeys:
+            - A76882D3
+          publisher:
+            component: mitaka
+            distributions:
+              - ubuntu-xenial/${_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
new file mode 100644
index 0000000..bae9875
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc31.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+  aptly:
+    server:
+      mirror:
+        mcp_opencontrail_trusty_oc31:
+          source: http://apt-mk.mirantis.com/trusty/
+          distribution: ${_param:apt_mk_version}
+          components: oc31
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          gpgkeys:
+            - A76882D3
+          publisher:
+            component: oc31
+            distributions:
+              - ubuntu-trusty/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc311.yml b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc311.yml
new file mode 100644
index 0000000..d60f154
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc311.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+  aptly:
+    server:
+      mirror:
+        mcp_opencontrail_trusty_oc311:
+          source: http://apt-mk.mirantis.com/trusty/
+          distribution: ${_param:apt_mk_version}
+          components: oc311
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          gpgkeys:
+            - A76882D3
+          publisher:
+            component: oc311
+            distributions:
+              - ubuntu-trusty/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc32.yml b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc32.yml
new file mode 100644
index 0000000..6fe8489
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc32.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+  aptly:
+    server:
+      mirror:
+        mcp_opencontrail_trusty_oc32:
+          source: http://apt-mk.mirantis.com/trusty/
+          distribution: ${_param:apt_mk_version}
+          components: oc32
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          gpgkeys:
+            - A76882D3
+          publisher:
+            component: oc32
+            distributions:
+              - ubuntu-trusty/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc323.yml b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc323.yml
new file mode 100644
index 0000000..e4a9462
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/oc323.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+  aptly:
+    server:
+      mirror:
+        mcp_opencontrail_trusty_oc323:
+          source: http://apt-mk.mirantis.com/trusty/
+          distribution: ${_param:apt_mk_version}
+          components: oc323
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          gpgkeys:
+            - A76882D3
+          publisher:
+            component: oc323
+            distributions:
+              - ubuntu-trusty/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/salt.yml b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/salt.yml
new file mode 100644
index 0000000..7588830
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/mcp/apt_mk/salt.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+  aptly:
+    server:
+      mirror:
+        mirantis_openstack_trusty_salt:
+          source: http://apt-mk.mirantis.com/trusty/
+          distribution: ${_param:apt_mk_version}
+          components: salt
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          gpgkeys:
+            - A76882D3
+          publisher:
+            component: salt
+            distributions:
+              - ubuntu-trusty/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu.yml
deleted file mode 100644
index 3495967..0000000
--- a/aptly/server/mirror/ubuntu/trusty/ubuntu.yml
+++ /dev/null
@@ -1,297 +0,0 @@
-parameters:
-  _param:
-    linux_system_country_code: cz
-    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
-  aptly:
-    server:
-      mirror:
-        # trusty
-        trusty-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: trusty
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          components: main
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: main
-            distributions:
-              - ubuntu/trusty
-        trusty-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: trusty
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          components: multiverse
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: multiverse
-            distributions:
-              - ubuntu/trusty
-        trusty-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty
-          components: restricted
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: restricted
-            distributions:
-              - ubuntu/trusty
-        trusty-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty
-          components: universe
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: universe
-            distributions:
-              - ubuntu/trusty
-
-        # trusty-updates
-        trusty-updates-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-updates
-          components: main
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: main
-            distributions:
-              - ubuntu/trusty-updates
-        trusty-updates-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-updates
-          components: multiverse
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: multiverse
-            distributions:
-              - ubuntu/trusty-updates
-        trusty-updates-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-updates
-          components: restricted
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: restricted
-            distributions:
-              - ubuntu/trusty-updates
-        trusty-updates-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-updates
-          components: universe
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: universe
-            distributions:
-              - ubuntu/trusty-updates
-
-        #trusty-security:
-        trusty-security-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-security
-          components: main
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: main
-            distributions:
-              - ubuntu/trusty-security
-        trusty-security-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-security
-          components: multiverse
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: multiverse
-            distributions:
-              - ubuntu/trusty-security
-        trusty-security-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-security
-          components: restricted
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: restricted
-            distributions:
-              - ubuntu/trusty-security
-        trusty-security-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-security
-          components: universe
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: universe
-            distributions:
-              - ubuntu/trusty-security
-
-        #trusty-proposed:
-        trusty-proposed-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-proposed
-          components: main
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: main
-            distributions:
-              - ubuntu/trusty-proposed
-        trusty-proposed-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-proposed
-          components: multiverse
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: multiverse
-            distributions:
-              - ubuntu/trusty-proposed
-        trusty-proposed-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-proposed
-          components: restricted
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: restricted
-            distributions:
-              - ubuntu/trusty-proposed
-        trusty-proposed-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-proposed
-          components: universe
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: universe
-            distributions:
-              - ubuntu/trusty-proposed
-
-        #trusty-backports:
-        trusty-backports-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-backports
-          components: main
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: main
-            distributions:
-              - ubuntu/trusty-backports
-        trusty-backports-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-backports
-          components: multiverse
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: multiverse
-            distributions:
-              - ubuntu/trusty-backports
-        trusty-backports-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-backports
-          components: restricted
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: restricted
-            distributions:
-              - ubuntu/trusty-backports
-        trusty-backports-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
-          distribution: trusty-backports
-          components: universe
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: universe
-            distributions:
-              - ubuntu/trusty-backports
-
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/init.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/init.yml
new file mode 100644
index 0000000..802f17b
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/init.yml
@@ -0,0 +1,6 @@
+classes:
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-backports
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-proposed
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-security
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-updates
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/init.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/init.yml
new file mode 100644
index 0000000..45fb000
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/init.yml
@@ -0,0 +1,5 @@
+classes:
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-backports.main
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-backports.multiverse
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-backports.restricted
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-backports.universe
\ 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
new file mode 100644
index 0000000..8edff1f
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/main.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-main:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: trusty-backports
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          components: main
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: main
+            distributions:
+              - ubuntu/trusty-backports
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/multiverse.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/multiverse.yml
new file mode 100644
index 0000000..1985b2d
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/multiverse.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-multiverse:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: trusty-backports
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          components: multiverse
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: multiverse
+            distributions:
+              - ubuntu/trusty-backports
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/restricted.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/restricted.yml
new file mode 100644
index 0000000..68c18be
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/restricted.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-restricted:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          distribution: trusty-backports
+          components: restricted
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: restricted
+            distributions:
+              - ubuntu/trusty-backports
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/universe.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/universe.yml
new file mode 100644
index 0000000..4bf2165
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-backports/universe.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-universe:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          distribution: trusty-backports
+          components: universe
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: universe
+            distributions:
+              - ubuntu/trusty-backports
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/init.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/init.yml
new file mode 100644
index 0000000..e749de0
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/init.yml
@@ -0,0 +1,5 @@
+classes:
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-proposed.main
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-proposed.multiverse
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-proposed.restricted
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-proposed.universe
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/main.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/main.yml
new file mode 100644
index 0000000..744e9c7
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/main.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-main:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: trusty-proposed
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          components: main
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: main
+            distributions:
+              - ubuntu/trusty-proposed
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/multiverse.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/multiverse.yml
new file mode 100644
index 0000000..cd79014
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/multiverse.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-multiverse:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: trusty-proposed
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          components: multiverse
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: multiverse
+            distributions:
+              - ubuntu/trusty-proposed
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/restricted.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/restricted.yml
new file mode 100644
index 0000000..c9c1966
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/restricted.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-restricted:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          distribution: trusty-proposed
+          components: restricted
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: restricted
+            distributions:
+              - ubuntu/trusty-proposed
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/universe.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/universe.yml
new file mode 100644
index 0000000..2049b68
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-proposed/universe.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-universe:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          distribution: trusty-proposed
+          components: universe
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: universe
+            distributions:
+              - ubuntu/trusty-proposed
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/init.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/init.yml
new file mode 100644
index 0000000..3bf3204
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/init.yml
@@ -0,0 +1,5 @@
+classes:
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-security.main
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-security.multiverse
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-security.restricted
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-security.universe
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/main.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/main.yml
new file mode 100644
index 0000000..1068a48
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/main.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-main:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: trusty-security
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          components: main
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: main
+            distributions:
+              - ubuntu/trusty-security
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/multiverse.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/multiverse.yml
new file mode 100644
index 0000000..db7b0ed
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/multiverse.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-multiverse:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: trusty-security
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          components: multiverse
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: multiverse
+            distributions:
+              - ubuntu/trusty-security
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/restricted.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/restricted.yml
new file mode 100644
index 0000000..8c93486
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/restricted.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-restricted:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          distribution: trusty-security
+          components: restricted
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: restricted
+            distributions:
+              - ubuntu/trusty-security
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/universe.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/universe.yml
new file mode 100644
index 0000000..bcc7da3
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-security/universe.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-universe:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          distribution: trusty-security
+          components: universe
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: universe
+            distributions:
+              - ubuntu/trusty-security
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/init.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/init.yml
new file mode 100644
index 0000000..0673363
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/init.yml
@@ -0,0 +1,5 @@
+classes:
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-updates.main
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-updates.multiverse
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-updates.restricted
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty-updates.universe
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/main.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/main.yml
new file mode 100644
index 0000000..8e86162
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/main.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-main:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: trusty-updates
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          components: main
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: main
+            distributions:
+              - ubuntu/trusty-updates
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/multiverse.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/multiverse.yml
new file mode 100644
index 0000000..1e6d543
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/multiverse.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-multiverse:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: trusty-updates
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          components: multiverse
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: multiverse
+            distributions:
+              - ubuntu/trusty-updates
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/restricted.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/restricted.yml
new file mode 100644
index 0000000..278376d
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/restricted.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-restricted:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          distribution: trusty-updates
+          components: restricted
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: restricted
+            distributions:
+              - ubuntu/trusty-updates
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/universe.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/universe.yml
new file mode 100644
index 0000000..632abbb
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty-updates/universe.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-universe:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          distribution: trusty-updates
+          components: universe
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: universe
+            distributions:
+              - ubuntu/trusty-updates
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/init.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/init.yml
new file mode 100644
index 0000000..71ea5a0
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/init.yml
@@ -0,0 +1,5 @@
+classes:
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty.main
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty.multiverse
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty.restricted
+- system.aptly.server.mirror.ubuntu.trusty.ubuntu.trusty.universe
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/main.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/main.yml
new file mode 100644
index 0000000..08559a6
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/main.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-main:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: trusty
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          components: main
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: main
+            distributions:
+              - ubuntu/trusty
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/multiverse.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/multiverse.yml
new file mode 100644
index 0000000..1748832
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/multiverse.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-multiverse:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: trusty
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          components: multiverse
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: multiverse
+            distributions:
+              - ubuntu/trusty
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/restricted.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/restricted.yml
new file mode 100644
index 0000000..8004636
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/restricted.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-restricted:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          distribution: trusty
+          components: restricted
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: restricted
+            distributions:
+              - ubuntu/trusty
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/universe.yml b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/universe.yml
new file mode 100644
index 0000000..ac3ba70
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/trusty/ubuntu/trusty/universe.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_trusty_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        trusty-universe:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_trusty_sources}
+          distribution: trusty
+          components: universe
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: universe
+            distributions:
+              - ubuntu/trusty
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ceph.yml b/aptly/server/mirror/ubuntu/xenial/ceph.yml
index efb1703..50afc3e 100644
--- a/aptly/server/mirror/ubuntu/xenial/ceph.yml
+++ b/aptly/server/mirror/ubuntu/xenial/ceph.yml
@@ -1,9 +1,12 @@
 parameters:
+  _param:
+    ceph_version: luminous
+    apt_mk_version: stable
   aptly:
     server:
       mirror:
         ceph-xenial:
-          source: http://download.ceph.com/debian-hammer
+          source: http://download.ceph.com/debian-${_param:ceph_version}
           distribution: xenial
           components: main
           architectures: amd64
@@ -12,4 +15,4 @@
           publisher:
             component: ceph
             distributions:
-              - ubuntu-xenial/nightly
+              - ubuntu-xenial/${_param:apt_mk_version}
diff --git a/aptly/server/mirror/ubuntu/xenial/docker.yml b/aptly/server/mirror/ubuntu/xenial/docker.yml
index 4334374..b5d98c5 100644
--- a/aptly/server/mirror/ubuntu/xenial/docker.yml
+++ b/aptly/server/mirror/ubuntu/xenial/docker.yml
@@ -1,16 +1,14 @@
 parameters:
-  _param:
-    apt_mk_version: stable
   aptly:
     server:
       mirror:
         docker-xenial:
-          source: https://apt.dockerproject.org/repo
-          distribution: ubuntu-xenial
-          components: main
+          source: 'https://download.docker.com/linux/ubuntu'
+          distribution: xenial
+          components: stable
           architectures: amd64
           gpgkeys:
-            - 58118E89F3A912897C070ADBF76221572C52609D
+            - 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
           publisher:
             component: docker
             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
new file mode 100644
index 0000000..7231ac0
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/extra.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+  aptly:
+    server:
+      mirror:
+        mirantis_openstack_xenial_extra:
+          source: http://apt-mk.mirantis.com/xenial/
+          distribution: ${_param:apt_mk_version}
+          components: extra
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          gpgkeys:
+            - A76882D3
+          publisher:
+            component: extra
+            distributions:
+              - ubuntu-xenial/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/init.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/init.yml
index a340a46..4e88f48 100644
--- a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/init.yml
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/init.yml
@@ -1,67 +1,8 @@
-parameters:
-  _param:
-    apt_mk_version: stable
-  aptly:
-    server:
-      mirror:
-        # required for opencontrail formulas
-        mcp_opencontrail_xenial_oc311:
-          source: http://apt-mk.mirantis.com/xenial/
-          distribution: ${_param:apt_mk_version}
-          components: oc311
-          architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
-          publisher:
-            component: oc311
-            distributions:
-              - ubuntu-xenial/${_param:apt_mk_version}
-        mcp_opencontrail_xenial_oc31:
-          source: http://apt-mk.mirantis.com/xenial/
-          distribution: ${_param:apt_mk_version}
-          components: oc31
-          architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
-          publisher:
-            component: oc31
-            distributions:
-              - ubuntu-xenial/${_param:apt_mk_version}
-        mcp_opencontrail_xenial_oc32:
-          source: http://apt-mk.mirantis.com/xenial/
-          distribution: ${_param:apt_mk_version}
-          components: oc32
-          architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
-          publisher:
-            component: oc32
-            distributions:
-              - ubuntu-xenial/${_param:apt_mk_version}
-        mirantis_openstack_xenial_extra:
-          source: http://apt-mk.mirantis.com/xenial/
-          distribution: ${_param:apt_mk_version}
-          components: extra
-          architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
-          publisher:
-            component: extra
-            distributions:
-              - ubuntu-xenial/${_param:apt_mk_version}
-        mirantis_openstack_xenial_salt:
-          source: http://apt-mk.mirantis.com/xenial/
-          distribution: ${_param:apt_mk_version}
-          components: salt
-          architectures: amd64
-          key_url: "http://apt-mk.mirantis.com/public.gpg"
-          gpgkeys:
-            - A76882D3
-          publisher:
-            component: salt
-            distributions:
-              - ubuntu-xenial/${_param:apt_mk_version}
+classes:
+- system.aptly.server.mirror.ubuntu.xenial.mcp.apt_mk.oc31
+- system.aptly.server.mirror.ubuntu.xenial.mcp.apt_mk.oc311
+- system.aptly.server.mirror.ubuntu.xenial.mcp.apt_mk.oc32
+- system.aptly.server.mirror.ubuntu.xenial.mcp.apt_mk.oc323
+- system.aptly.server.mirror.ubuntu.xenial.mcp.apt_mk.ocata
+- system.aptly.server.mirror.ubuntu.xenial.mcp.apt_mk.extra
+- system.aptly.server.mirror.ubuntu.xenial.mcp.apt_mk.salt
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc31.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc31.yml
new file mode 100644
index 0000000..cbd4f29
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc31.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+  aptly:
+    server:
+      mirror:
+        mcp_opencontrail_xenial_oc31:
+          source: http://apt-mk.mirantis.com/xenial/
+          distribution: ${_param:apt_mk_version}
+          components: oc31
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          gpgkeys:
+            - A76882D3
+          publisher:
+            component: oc31
+            distributions:
+              - ubuntu-xenial/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc311.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc311.yml
new file mode 100644
index 0000000..bfa1638
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc311.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+  aptly:
+    server:
+      mirror:
+        mcp_opencontrail_xenial_oc311:
+          source: http://apt-mk.mirantis.com/xenial/
+          distribution: ${_param:apt_mk_version}
+          components: oc311
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          gpgkeys:
+            - A76882D3
+          publisher:
+            component: oc311
+            distributions:
+              - ubuntu-xenial/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc32.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc32.yml
new file mode 100644
index 0000000..40ca5d1
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc32.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+  aptly:
+    server:
+      mirror:
+        mcp_opencontrail_xenial_oc32:
+          source: http://apt-mk.mirantis.com/xenial/
+          distribution: ${_param:apt_mk_version}
+          components: oc32
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          gpgkeys:
+            - A76882D3
+          publisher:
+            component: oc32
+            distributions:
+              - ubuntu-xenial/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc323.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc323.yml
new file mode 100644
index 0000000..2275c07
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/oc323.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+  aptly:
+    server:
+      mirror:
+        mcp_opencontrail_xenial_oc323:
+          source: http://apt-mk.mirantis.com/xenial/
+          distribution: ${_param:apt_mk_version}
+          components: oc323
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          gpgkeys:
+            - A76882D3
+          publisher:
+            component: oc323
+            distributions:
+              - ubuntu-xenial/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/ocata.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/ocata.yml
new file mode 100644
index 0000000..fc0e512
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/ocata.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+  aptly:
+    server:
+      mirror:
+        mk_openstack_xenial_ocata:
+          source: http://apt-mk.mirantis.com/xenial/
+          distribution: ${_param:apt_mk_version}
+          components: ocata
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          gpgkeys:
+            - A76882D3
+          publisher:
+            component: ocata
+            distributions:
+              - ubuntu-xenial/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/salt.yml b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/salt.yml
new file mode 100644
index 0000000..f5e4ca4
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/mcp/apt_mk/salt.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+  aptly:
+    server:
+      mirror:
+        mirantis_openstack_xenial_salt:
+          source: http://apt-mk.mirantis.com/xenial/
+          distribution: ${_param:apt_mk_version}
+          components: salt
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          gpgkeys:
+            - A76882D3
+          publisher:
+            component: salt
+            distributions:
+              - ubuntu-xenial/${_param:apt_mk_version}
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu.yml
deleted file mode 100644
index 6b41aee..0000000
--- a/aptly/server/mirror/ubuntu/xenial/ubuntu.yml
+++ /dev/null
@@ -1,293 +0,0 @@
-parameters:
-  _param:
-    linux_system_country_code_default: cz
-    linux_system_country_code: ${_param:linux_system_country_code_default}
-    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
-  aptly:
-    server:
-      mirror:
-        # xenial
-        xenial-main:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial
-          components: main
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: main
-            distributions:
-              - ubuntu/xenial
-        xenial-multiverse:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial
-          components: multiverse
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: multiverse
-            distributions:
-              - ubuntu/xenial
-        xenial-restricted:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial
-          components: restricted
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: restricted
-            distributions:
-              - ubuntu/xenial
-        xenial-universe:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial
-          components: universe
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: universe
-            distributions:
-              - ubuntu/xenial
-
-        # xenial-updates
-        xenial-updates-main:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-updates
-          components: main
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: main
-            distributions:
-              - ubuntu/xenial-updates
-        xenial-updates-multiverse:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-updates
-          components: multiverse
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: multiverse
-            distributions:
-              - ubuntu/xenial-updates
-        xenial-updates-restricted:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-updates
-          components: restricted
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: restricted
-            distributions:
-              - ubuntu/xenial-updates
-        xenial-updates-universe:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-updates
-          components: universe
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: universe
-            distributions:
-              - ubuntu/xenial-updates
-
-        #xenial-security:
-        xenial-security-main:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-security
-          components: main
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: main
-            distributions:
-              - ubuntu/xenial-security
-        xenial-security-multiverse:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-security
-          components: multiverse
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: multiverse
-            distributions:
-              - ubuntu/xenial-security
-        xenial-security-restricted:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-security
-          components: restricted
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: restricted
-            distributions:
-              - ubuntu/xenial-security
-        xenial-security-universe:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-security
-          components: universe
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: universe
-            distributions:
-              - ubuntu/xenial-security
-
-        #xenial-proposed:
-        xenial-proposed-main:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-proposed
-          components: main
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: main
-            distributions:
-              - ubuntu/xenial-proposed
-        xenial-proposed-multiverse:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-proposed
-          components: multiverse
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: multiverse
-            distributions:
-              - ubuntu/xenial-proposed
-        xenial-proposed-restricted:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-proposed
-          components: restricted
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: restricted
-            distributions:
-              - ubuntu/xenial-proposed
-        xenial-proposed-universe:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-proposed
-          components: universe
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: universe
-            distributions:
-              - ubuntu/xenial-proposed
-
-        #xenial-backports:
-        xenial-backports-main:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-backports
-          components: main
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: main
-            distributions:
-              - ubuntu/xenial-backports
-        xenial-backports-multiverse:
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-backports
-          components: multiverse
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: multiverse
-            distributions:
-              - ubuntu/xenial-backports
-        xenial-backports-restricted:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-backports
-          components: restricted
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: restricted
-            distributions:
-              - ubuntu/xenial-backports
-        xenial-backports-universe:
-          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
-          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
-          distribution: xenial-backports
-          components: universe
-          architectures: amd64
-          gpgkeys:
-            - 40976EAF437D05B5
-            - 437D05B5
-            - C0B21F32
-          publisher:
-            component: universe
-            distributions:
-              - ubuntu/xenial-backports
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/init.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/init.yml
new file mode 100644
index 0000000..4d8dc20
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/init.yml
@@ -0,0 +1,6 @@
+classes:
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-backports
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-proposed
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-security
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-updates
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/init.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/init.yml
new file mode 100644
index 0000000..a211387
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/init.yml
@@ -0,0 +1,5 @@
+classes:
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-backports.main
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-backports.multiverse
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-backports.restricted
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-backports.universe
\ 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
new file mode 100644
index 0000000..9aeff43
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/main.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-backports-main:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: xenial-backports
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          components: main
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: main
+            distributions:
+              - ubuntu/xenial-backports
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/multiverse.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/multiverse.yml
new file mode 100644
index 0000000..ffb9239
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/multiverse.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-backports-multiverse:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: xenial-backports
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          components: multiverse
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: multiverse
+            distributions:
+              - ubuntu/xenial-backports
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/restricted.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/restricted.yml
new file mode 100644
index 0000000..29f061e
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/restricted.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-backports-restricted:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          distribution: xenial-backports
+          components: restricted
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: restricted
+            distributions:
+              - ubuntu/xenial-backports
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/universe.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/universe.yml
new file mode 100644
index 0000000..cdf9af1
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-backports/universe.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-backports-universe:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          distribution: xenial-backports
+          components: universe
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: universe
+            distributions:
+              - ubuntu/xenial-backports
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/init.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/init.yml
new file mode 100644
index 0000000..257d7cf
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/init.yml
@@ -0,0 +1,5 @@
+classes:
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-proposed.main
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-proposed.multiverse
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-proposed.restricted
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-proposed.universe
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/main.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/main.yml
new file mode 100644
index 0000000..8763e94
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/main.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-proposed-main:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: xenial-proposed
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          components: main
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: main
+            distributions:
+              - ubuntu/xenial-proposed
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/multiverse.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/multiverse.yml
new file mode 100644
index 0000000..6263456
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/multiverse.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-proposed-multiverse:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: xenial-proposed
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          components: multiverse
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: multiverse
+            distributions:
+              - ubuntu/xenial-proposed
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/restricted.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/restricted.yml
new file mode 100644
index 0000000..e6c1562
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/restricted.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-proposed-restricted:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          distribution: xenial-proposed
+          components: restricted
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: restricted
+            distributions:
+              - ubuntu/xenial-proposed
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/universe.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/universe.yml
new file mode 100644
index 0000000..82c5bab
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-proposed/universe.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-proposed-universe:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          distribution: xenial-proposed
+          components: universe
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: universe
+            distributions:
+              - ubuntu/xenial-proposed
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/init.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/init.yml
new file mode 100644
index 0000000..ebf0830
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/init.yml
@@ -0,0 +1,5 @@
+classes:
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-security.main
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-security.multiverse
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-security.restricted
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-security.universe
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/main.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/main.yml
new file mode 100644
index 0000000..24d55ff
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/main.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-security-main:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: xenial-security
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          components: main
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: main
+            distributions:
+              - ubuntu/xenial-security
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/multiverse.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/multiverse.yml
new file mode 100644
index 0000000..e503cff
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/multiverse.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-security-multiverse:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: xenial-security
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          components: multiverse
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: multiverse
+            distributions:
+              - ubuntu/xenial-security
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/restricted.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/restricted.yml
new file mode 100644
index 0000000..3aa3b25
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/restricted.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-security-restricted:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          distribution: xenial-security
+          components: restricted
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: restricted
+            distributions:
+              - ubuntu/xenial-security
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/universe.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/universe.yml
new file mode 100644
index 0000000..b657e2d
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-security/universe.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-security-universe:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          distribution: xenial-security
+          components: universe
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: universe
+            distributions:
+              - ubuntu/xenial-security
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/init.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/init.yml
new file mode 100644
index 0000000..2e3f8b5
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/init.yml
@@ -0,0 +1,5 @@
+classes:
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-updates.main
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-updates.multiverse
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-updates.restricted
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial-updates.universe
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/main.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/main.yml
new file mode 100644
index 0000000..d84d4f0
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/main.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-updates-main:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: xenial-updates
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          components: main
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: main
+            distributions:
+              - ubuntu/xenial-updates
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/multiverse.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/multiverse.yml
new file mode 100644
index 0000000..ebef47d
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/multiverse.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-updates-multiverse:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: xenial-updates
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          components: multiverse
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: multiverse
+            distributions:
+              - ubuntu/xenial-updates
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/restricted.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/restricted.yml
new file mode 100644
index 0000000..4431c1c
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/restricted.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-updates-restricted:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          distribution: xenial-updates
+          components: restricted
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: restricted
+            distributions:
+              - ubuntu/xenial-updates
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/universe.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/universe.yml
new file mode 100644
index 0000000..e085074
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial-updates/universe.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-updates-universe:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          distribution: xenial-updates
+          components: universe
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: universe
+            distributions:
+              - ubuntu/xenial-updates
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/init.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/init.yml
new file mode 100644
index 0000000..1b81ba1
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/init.yml
@@ -0,0 +1,5 @@
+classes:
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial.main
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial.multiverse
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial.restricted
+- system.aptly.server.mirror.ubuntu.xenial.ubuntu.xenial.universe
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/main.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/main.yml
new file mode 100644
index 0000000..aa5ee5e
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/main.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-main:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: xenial
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          components: main
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: main
+            distributions:
+              - ubuntu/xenial
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/multiverse.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/multiverse.yml
new file mode 100644
index 0000000..b2c4b82
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/multiverse.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-multiverse:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          distribution: xenial
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          components: multiverse
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: multiverse
+            distributions:
+              - ubuntu/xenial
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/restricted.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/restricted.yml
new file mode 100644
index 0000000..31370d6
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/restricted.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-restricted:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          distribution: xenial
+          components: restricted
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: restricted
+            distributions:
+              - ubuntu/xenial
\ No newline at end of file
diff --git a/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/universe.yml b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/universe.yml
new file mode 100644
index 0000000..8c33902
--- /dev/null
+++ b/aptly/server/mirror/ubuntu/xenial/ubuntu/xenial/universe.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    linux_system_country_code: cz
+    aptly_server_mirror_ubuntu_xenial_sources: ${_param:aptly_server_mirror_ubuntu_sources}
+  aptly:
+    server:
+      mirror:
+        xenial-universe:
+          source: http://${_param:linux_system_country_code}.archive.ubuntu.com/ubuntu/
+          sources: ${_param:aptly_server_mirror_ubuntu_xenial_sources}
+          distribution: xenial
+          components: universe
+          architectures: amd64
+          gpgkeys:
+            - 40976EAF437D05B5
+            - 437D05B5
+            - C0B21F32
+          publisher:
+            component: universe
+            distributions:
+              - ubuntu/xenial
\ No newline at end of file
diff --git a/artifactory/client/init.yml b/artifactory/client/init.yml
index ef43633..05c05be 100644
--- a/artifactory/client/init.yml
+++ b/artifactory/client/init.yml
@@ -7,13 +7,14 @@
         server:
           host: ${_param:artifactory_server_host}
           port: ${_param:artifactory_server_port}
+          proto: ${_param:artifactory_server_proto}
+          ssl_verify: ${_param:artifactory_server_verify_ssl}
           user: ${_param:artifactory_client_user}
           password: ${_param:artifactory_client_password}
           license_key: ${_param:artifactory_license_key}
           ldap_server: ${_param:artifactory_security_ldap_server}
           ldap_account_base: ${_param:artifactory_security_ldap_root_dn}
           ldap_searchFilter: ${_param:artifactory_security_ldap_searchFilter}
-          ssl_verify: False
         repo:
           _genericRepository-local:
             description: "Used by Jimbo"
diff --git a/ceph/common/cluster.yml b/ceph/common/cluster.yml
new file mode 100644
index 0000000..6f0b9c8
--- /dev/null
+++ b/ceph/common/cluster.yml
@@ -0,0 +1,2 @@
+classes:
+- service.ceph.common.cluster
diff --git a/ceph/common/single.yml b/ceph/common/single.yml
new file mode 100644
index 0000000..66b798c
--- /dev/null
+++ b/ceph/common/single.yml
@@ -0,0 +1,2 @@
+classes:
+- service.ceph.common.single
diff --git a/ceph/mgr/cluster.yml b/ceph/mgr/cluster.yml
new file mode 100644
index 0000000..5ba2d72
--- /dev/null
+++ b/ceph/mgr/cluster.yml
@@ -0,0 +1,2 @@
+classes:
+- service.ceph.mgr.cluster
diff --git a/ceph/mgr/single.yml b/ceph/mgr/single.yml
new file mode 100644
index 0000000..daf42de
--- /dev/null
+++ b/ceph/mgr/single.yml
@@ -0,0 +1,2 @@
+classes:
+- service.ceph.mgr.single
diff --git a/ceph/mon/cluster_init.yml b/ceph/mon/cluster_init.yml
new file mode 100644
index 0000000..0b36e17
--- /dev/null
+++ b/ceph/mon/cluster_init.yml
@@ -0,0 +1,19 @@
+classes:
+- service.ceph.setup.single
+parameters:
+  ceph:
+    common:
+      keyring:
+        admin:
+          caps:
+            mds: "allow *"
+            mgr: "allow *"
+            mon: "allow *"
+            osd: "allow *"
+    mon:
+      enabled: true
+      keyring:
+        mon:
+          caps:
+            mon: "allow *"
+
diff --git a/cinder/control/backend/ceph.yml b/cinder/control/backend/ceph.yml
index 3b036d4..47846ae 100644
--- a/cinder/control/backend/ceph.yml
+++ b/cinder/control/backend/ceph.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    cinder_storage_client_key: ''
   cinder:
     controller:
       default_volume_type: standard-iops
diff --git a/cinder/volume/backend/ceph.yml b/cinder/volume/backend/ceph.yml
index 945f2f9..6b41224 100644
--- a/cinder/volume/backend/ceph.yml
+++ b/cinder/volume/backend/ceph.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    cinder_storage_client_key: ''
   cinder:
     volume:
       message_queue:
diff --git a/docker/host.yml b/docker/host.yml
index f7649b5..853a5d2 100644
--- a/docker/host.yml
+++ b/docker/host.yml
@@ -4,6 +4,9 @@
 parameters:
   docker:
     host:
+      pkgs:
+        - docker-ce
+        - python-docker
       experimental: true
       insecure_registries:
         - ${_param:cluster_vip_address}:5000
diff --git a/docker/swarm/service/artifactory.yml b/docker/swarm/service/artifactory.yml
index d7f8626..36d9577 100644
--- a/docker/swarm/service/artifactory.yml
+++ b/docker/swarm/service/artifactory.yml
@@ -30,3 +30,7 @@
               type: bind
               source: /srv/volumes/artifactory/logs
               destination: /var/opt/jfrog/artifactory/logs
+            keys:
+              type: bind
+              source: /srv/volumes/artifactory/keys
+              destination: /var/opt/jfrog/artifactory/access/etc/keys
diff --git a/docker/swarm/stack/artifactory.yml b/docker/swarm/stack/artifactory.yml
index 411b22e..caab0ee 100644
--- a/docker/swarm/stack/artifactory.yml
+++ b/docker/swarm/stack/artifactory.yml
@@ -21,3 +21,4 @@
                 - /srv/volumes/artifactory/backup:/var/opt/jfrog/artifactory/backup
                 - /srv/volumes/artifactory/etc:/var/opt/jfrog/artifactory/etc
                 - /srv/volumes/artifactory/logs:/var/opt/jfrog/artifactory/logs
+                - /srv/volumes/artifactory/keys:/var/opt/jfrog/artifactory/access/etc/keys
diff --git a/docker/swarm/stack/janitor_monkey.yml b/docker/swarm/stack/janitor_monkey.yml
index ffea607..2e5698a 100644
--- a/docker/swarm/stack/janitor_monkey.yml
+++ b/docker/swarm/stack/janitor_monkey.yml
@@ -33,8 +33,8 @@
       username: admin
       password: password
       ssl_verify: False
-      cacert_path: /srv/volumes/rundeck/storage/content/cis/openstack/cert.pem
-      cafile: /opt/certs/cert.pem
+      source_credentials: /srv/volumes/rundeck/storage/content/cis/openstack
+      service_credentials: /opt/os_creds
   docker:
     client:
       stack:
@@ -61,7 +61,7 @@
             simianarmy.client.cloudfire.domain: ${_param:janitor_monkey_openstack:project_domain_name}
             simianarmy.client.cloudfire.project: ${_param:janitor_monkey_openstack:project_name}
             simianarmy.client.cloudfire.SSLVerify: ${_param:janitor_monkey_openstack:ssl_verify}
-            simianarmy.client.cloudfire.cafile: ${_param:janitor_monkey_openstack:cafile}
+            simianarmy.client.cloudfire.cafile: ${_param:janitor_monkey_openstack:service_credentials}/cert.pem
             simianarmy.janitor.rule.stoppedInstanceRule.instanceAgeThreshold: ${_param:janitor_monkey_instance_age_threshold}
             simianarmy.janitor.notification.oss.url: ${_param:janitor_monkey_notification_oss_url}
             simianarmy.janitor.notification.oss.login_id: ${_param:janitor_monkey_notification_oss_login_id}
@@ -86,7 +86,7 @@
               ports:
                 - ${_param:haproxy_janitor_monkey_exposed_port}:${_param:janitor_monkey_bind_port}
               volumes:
-                - ${_param:janitor_monkey_openstack:cacert_path}:${_param:janitor_monkey_openstack:cafile}:ro
+                - ${_param:janitor_monkey_openstack:source_credentials}:${_param:janitor_monkey_openstack:service_credentials}:ro
           network:
             default:
               external:
diff --git a/docker/swarm/stack/jenkins/master.yml b/docker/swarm/stack/jenkins/master.yml
index f40d6cd..5f8de05 100644
--- a/docker/swarm/stack/jenkins/master.yml
+++ b/docker/swarm/stack/jenkins/master.yml
@@ -5,6 +5,7 @@
     docker_image_jenkins: tcpcloud/jenkins:2.73
     jenkins_master_extra_opts: ""
     jenkins_master_executors_num: 4
+    jenkins_master_max_concurent_requests: 40
   docker:
     client:
       stack:
@@ -15,6 +16,7 @@
                 JENKINS_HOME: /var/jenkins_home
                 JAVA_OPTS: " -server -XX:+AlwaysPreTouch -Xloggc:$JENKINS_HOME/gc-%t.log -XX:NumberOfGCLogFiles=5 -XX:+UseGCLogFileRotation -XX:GCLogFileSize=20m -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintGCCause -XX:+PrintTenuringDistribution -XX:+PrintReferenceGC -XX:+PrintAdaptiveSizePolicy -XX:+UseG1GC -XX:+ExplicitGCInvokesConcurrent -XX:+ParallelRefProcEnabled -XX:+UseStringDeduplication -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:+UnlockDiagnosticVMOptions -XX:G1SummarizeRSetStatsPeriod=1 -Djenkins.install.runSetupWizard=false -Dhudson.DNSMultiCast.disabled=true -Dhudson.udp=-1 -Dhudson.footerURL=https://www.mirantis.com ${_param:jenkins_master_extra_opts}"
                 JENKINS_NUM_EXECUTORS: ${_param:jenkins_master_executors_num}
+                JENKINS_OPTS: " --handlerCountMax=${_param:jenkins_master_max_concurent_requests}"
                 https_proxy: ${_param:docker_https_proxy}
                 http_proxy: ${_param:docker_http_proxy}
                 no_proxy: ${_param:docker_no_proxy}
diff --git a/docker/swarm/stack/monitoring/init.yml b/docker/swarm/stack/monitoring/init.yml
index e274426..6efe125 100644
--- a/docker/swarm/stack/monitoring/init.yml
+++ b/docker/swarm/stack/monitoring/init.yml
@@ -76,6 +76,7 @@
                 ALERTMANAGER_BIND_PORT: ${prometheus:alertmanager:bind:port}
                 ALERTMANAGER_BIND_ADDRESS: ${prometheus:alertmanager:bind:address}
                 ALERTMANAGER_DISCOVERY_DOMAIN: 'monitoring_alertmanager'
+                ALERTMANAGER_EXTERNAL_URL: "http://${_param:stacklight_monitor_address}:15011"
             pushgateway:
               networks:
                 - monitoring
@@ -119,3 +120,4 @@
                 PROMETHEUS_STORAGE_LOCAL_RETENTION: ${prometheus:server:storage:local:retention}
                 PROMETHEUS_STORAGE_LOCAL_TARGET_HEAP_SIZE: ${prometheus:server:storage:local:target_heap_size}
                 PROMETHEUS_STORAGE_LOCAL_NUM_FINGERPRINT_MUTEXES: ${prometheus:server:storage:local:num_fingerprint_mutexes}
+                PROMETHEUS_EXTERNAL_URL: "http://${_param:stacklight_monitor_address}:15010"
diff --git a/docker/swarm/stack/security_monkey.yml b/docker/swarm/stack/security_monkey.yml
index 67233c2..b5a1100 100644
--- a/docker/swarm/stack/security_monkey.yml
+++ b/docker/swarm/stack/security_monkey.yml
@@ -28,8 +28,8 @@
       project_domain_name: Default
       project_name: admin
       user_domain_name: Default
-      cacert_path: /srv/volumes/rundeck/storage/content/cis/openstack/cert.pem
-      cafile: /opt/certs/cert.pem
+      source_credentials: /srv/volumes/rundeck/storage/content/cis/openstack
+      service_credentials: /opt/os_creds
       endpoint_type: public
       ssl_verify: False
   docker:
@@ -58,7 +58,7 @@
             OS_PROJECT_NAME: ${_param:security_monkey_openstack:project_name}
             OS_SSL_VERIFY: ${_param:security_monkey_openstack:ssl_verify}
             OS_ENDPOINT_TYPE: ${_param:security_monkey_openstack:endpoint_type}
-            CACERT_PATH: ${_param:security_monkey_openstack:cafile}
+            CACERT_PATH: ${_param:security_monkey_openstack:service_credentials}/cert.pem
             USER_DOMAIN_NAME: ${_param:security_monkey_openstack:user_domain_name}
             SM_WTF_CSRF_ENABLED: ${_param:devops_portal_sm_wtf_csrf_enabled}
             SECURITY_MONKEY_SYNC_INTERVAL: ${_param:security_monkey_sync_interval}
@@ -75,7 +75,7 @@
                 - ${_param:haproxy_security_monkey_exposed_port}:${_param:haproxy_security_monkey_bind_port}
               volumes:
                 - /srv/volumes/security_monkey/logs:/var/log/security_monkey/logs
-                - ${_param:security_monkey_openstack:cacert_path}:${_param:security_monkey_openstack:cafile}:ro
+                - ${_param:security_monkey_openstack:source_credentials}:${_param:security_monkey_openstack:service_credentials}:ro
             security-audit-scheduler:
               image: ${_param:docker_image_security_monkey_scheduler}
               deploy:
@@ -84,7 +84,7 @@
                   condition: any
               volumes:
                 - /srv/volumes/security_monkey/logs:/var/log/security_monkey/logs
-                - ${_param:security_monkey_openstack:cacert_path}:${_param:security_monkey_openstack:cafile}:ro
+                - ${_param:security_monkey_openstack:source_credentials}:${_param:security_monkey_openstack:service_credentials}:ro
           network:
             default:
               external:
diff --git a/git/server/single.yml b/git/server/single.yml
new file mode 100644
index 0000000..788a5a8
--- /dev/null
+++ b/git/server/single.yml
@@ -0,0 +1,20 @@
+parameters:
+  _param:
+    git_server_host: git.${_param:cluster_domain}
+    git_server_port: 8088
+  git:
+    server:
+      enabled: True
+  nginx:
+    server:
+      enabled: True
+      site:
+        git_server:
+          enabled: True
+          name: git_server
+          type: git
+          root: /srv/git
+          client_max_body_size: 0
+          host:
+            name: ${_param:git_server_host}
+            port: ${_param:git_server_port}
\ No newline at end of file
diff --git a/glusterfs/client/volume/artifactory.yml b/glusterfs/client/volume/artifactory.yml
index 878131f..f8104a1 100644
--- a/glusterfs/client/volume/artifactory.yml
+++ b/glusterfs/client/volume/artifactory.yml
@@ -10,4 +10,4 @@
         artifactory:
           path: /srv/volumes/artifactory
           server: ${_param:artifactory_glusterfs_service_host}
-          opts: "defaults,backup-volfile-servers=${_param:glusterfs_node01_address}:${_param:glusterfs_node02_address}:${_param:glusterfs_node03_address}"
+          opts: "defaults,backup-volfile-servers=${_param:glusterfs_node01_address}:${_param:glusterfs_node02_address}:${_param:glusterfs_node03_address},direct-io-mode=disable"
diff --git a/haproxy/proxy/listen/cicd/aptly.yml b/haproxy/proxy/listen/cicd/aptly.yml
index 35ae3d6..682e0d3 100644
--- a/haproxy/proxy/listen/cicd/aptly.yml
+++ b/haproxy/proxy/listen/cicd/aptly.yml
@@ -24,15 +24,7 @@
             - name: ${_param:cluster_node01_name}
               host: ${_param:cluster_node01_address}
               port: 18084
-              params: check
-            - name: ${_param:cluster_node02_name}
-              host: ${_param:cluster_node02_address}
-              port: 18084
-              params: backup check
-            - name: ${_param:cluster_node03_name}
-              host: ${_param:cluster_node03_address}
-              port: 18084
-              params: backup check
+              params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
         aptly-public:
           mode: http
           options:
@@ -45,14 +37,6 @@
               port: ${_param:haproxy_aptly_public_bind_port}
           servers:
             - name: ${_param:cluster_node01_name}
-              host: ${_param:cluster_node01_address}
+              host: localhost
               port: 18085
-              params: check
-            - name: ${_param:cluster_node02_name}
-              host: ${_param:cluster_node02_address}
-              port: 18085
-              params: check
-            - name: ${_param:cluster_node03_name}
-              host: ${_param:cluster_node03_address}
-              port: 18085
-              params: check
+              params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
diff --git a/haproxy/proxy/listen/cicd/artifactory.yml b/haproxy/proxy/listen/cicd/artifactory.yml
index 349d998..cb6184e 100644
--- a/haproxy/proxy/listen/cicd/artifactory.yml
+++ b/haproxy/proxy/listen/cicd/artifactory.yml
@@ -12,27 +12,25 @@
           mode: http
           options:
             - forwardfor
-#            - httpchk
+            - httpchk
             - httpclose
             - httplog
           balance: source
+          acl:
+            is_docker: "path_reg ^/v[12][/.]*"
           http_request:
+            - action: "add-header X-Artifactory-Override-Base-Url https://%[req.hdr(host)]/artifactory"
+              condition: "if is_docker"
             - action: "add-header X-Forwarded-Proto https"
               condition: "if { ssl_fc }"
+            - action: "set-path /artifactory/api/docker/%[req.hdr(host),lower,field(1,'.')]%[path]"
+              condition: "if is_docker "
           binds:
             - address: ${_param:haproxy_artifactory_bind_host}
               port: ${_param:haproxy_artifactory_bind_port}
               ssl: ${_param:haproxy_artifactory_ssl}
           servers:
             - name: ${_param:cluster_node01_name}
-              host: ${_param:cluster_node01_address}
+              host: localhost
               port: 18082
-              params: check
-            - name: ${_param:cluster_node02_name}
-              host: ${_param:cluster_node02_address}
-              port: 18082
-              params: backup check
-            - name: ${_param:cluster_node03_name}
-              host: ${_param:cluster_node03_address}
-              port: 18082
-              params: backup check
+              params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
\ No newline at end of file
diff --git a/haproxy/proxy/listen/cicd/gerrit.yml b/haproxy/proxy/listen/cicd/gerrit.yml
index 3ee21b1..f6ded20 100644
--- a/haproxy/proxy/listen/cicd/gerrit.yml
+++ b/haproxy/proxy/listen/cicd/gerrit.yml
@@ -13,7 +13,7 @@
           mode: http
           options:
             - forwardfor
-#            - httpchk
+            - httpchk
             - httpclose
             - httplog
           balance: source
@@ -26,17 +26,9 @@
               ssl: ${_param:haproxy_gerrit_ssl}
           servers:
             - name: ${_param:cluster_node01_name}
-              host: ${_param:cluster_node01_address}
+              host: localhost
               port: 18083
-              params: check
-            - name: ${_param:cluster_node02_name}
-              host: ${_param:cluster_node02_address}
-              port: 18083
-              params: backup check
-            - name: ${_param:cluster_node03_name}
-              host: ${_param:cluster_node03_address}
-              port: 18083
-              params: backup check
+              params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
         gerrit_ssh:
           mode: tcp
           balance: source
@@ -45,14 +37,7 @@
               port: ${_param:haproxy_gerrit_ssh_bind_port}
           servers:
             - name: ${_param:cluster_node01_name}
-              host: ${_param:cluster_node01_address}
+              host: localhost
               port: 29417
-              params: check
-            - name: ${_param:cluster_node02_name}
-              host: ${_param:cluster_node02_address}
-              port: 29417
-              params: backup check
-            - name: ${_param:cluster_node03_name}
-              host: ${_param:cluster_node03_address}
-              port: 29417
-              params: backup check
+              params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
+
diff --git a/haproxy/proxy/listen/cicd/jenkins.yml b/haproxy/proxy/listen/cicd/jenkins.yml
index eda12f8..93a9fdd 100644
--- a/haproxy/proxy/listen/cicd/jenkins.yml
+++ b/haproxy/proxy/listen/cicd/jenkins.yml
@@ -13,7 +13,7 @@
           mode: http
           options:
             - forwardfor
-#            - httpchk
+            - httpchk get /login
             - httpclose
             - httplog
           balance: source
@@ -28,17 +28,9 @@
               ssl: ${_param:haproxy_jenkins_ssl}
           servers:
             - name: ${_param:cluster_node01_name}
-              host: ${_param:cluster_node01_address}
+              host: localhost
               port: 18081
-              params: check
-            - name: ${_param:cluster_node02_name}
-              host: ${_param:cluster_node02_address}
-              port: 18081
-              params: backup check
-            - name: ${_param:cluster_node03_name}
-              host: ${_param:cluster_node03_address}
-              port: 18081
-              params: backup check
+              params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
         jenkins_jnlp:
           mode: tcp
           balance: source
@@ -47,14 +39,6 @@
               port: ${_param:haproxy_jenkins_jnlp_bind_port}
           servers:
             - name: ${_param:cluster_node01_name}
-              host: ${_param:cluster_node01_address}
+              host: localhost
               port: 50001
-              params: check
-            - name: ${_param:cluster_node02_name}
-              host: ${_param:cluster_node02_address}
-              port: 50001
-              params: backup check
-            - name: ${_param:cluster_node03_name}
-              host: ${_param:cluster_node03_address}
-              port: 50001
-              params: backup check
+              params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
diff --git a/haproxy/proxy/listen/docker/registry.yml b/haproxy/proxy/listen/docker/registry.yml
index 8d45e97..e0f63e8 100644
--- a/haproxy/proxy/listen/docker/registry.yml
+++ b/haproxy/proxy/listen/docker/registry.yml
@@ -23,14 +23,7 @@
               ssl: ${_param:haproxy_docker_registry_ssl}
           servers:
             - name: ${_param:cluster_node01_name}
-              host: ${_param:cluster_node01_address}
+              host: localhost
               port: 15000
-              params: check
-            - name: ${_param:cluster_node02_name}
-              host: ${_param:cluster_node02_address}
-              port: 15000
-              params: check
-            - name: ${_param:cluster_node03_name}
-              host: ${_param:cluster_node03_address}
-              port: 15000
-              params: check
+              params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
+
diff --git a/haproxy/proxy/listen/docker/visualizer.yml b/haproxy/proxy/listen/docker/visualizer.yml
index 6fec3ba..d4e74bb 100644
--- a/haproxy/proxy/listen/docker/visualizer.yml
+++ b/haproxy/proxy/listen/docker/visualizer.yml
@@ -8,7 +8,7 @@
           mode: http
           options:
             - forwardfor
-#            - httpchk
+            - httpchk
             - httpclose
             - httplog
           balance: source
@@ -17,14 +17,6 @@
               port: ${_param:haproxy_docker_visualizer_listen_port}
           servers:
             - name: ${_param:cluster_node01_name}
-              host: ${_param:cluster_node01_address}
+              host: localhost
               port: 18090
-              params: check
-            - name: ${_param:cluster_node02_name}
-              host: ${_param:cluster_node02_address}
-              port: 18090
-              params: check
-            - name: ${_param:cluster_node03_name}
-              host: ${_param:cluster_node03_address}
-              port: 18090
-              params: check
+              params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
\ No newline at end of file
diff --git a/jenkins/client/approved_scripts.yml b/jenkins/client/approved_scripts.yml
index 62bab8d..4e3d1d1 100644
--- a/jenkins/client/approved_scripts.yml
+++ b/jenkins/client/approved_scripts.yml
@@ -130,3 +130,4 @@
         - method org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper getRawBuild
         - method hudson.model.Actionable getAction java.lang.Class
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods toSorted java.lang.Iterable
+        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods intersect java.util.List java.lang.Iterable
diff --git a/jenkins/client/job/debian/packages/salt.yml b/jenkins/client/job/debian/packages/salt.yml
index 31b8e2a..968c617 100644
--- a/jenkins/client/job/debian/packages/salt.yml
+++ b/jenkins/client/job/debian/packages/salt.yml
@@ -55,6 +55,8 @@
               dist: trusty
             - name: etcd
               dist: trusty
+            - name: fluentbit
+              dist: trusty
             - name: foreman
               dist: trusty
             - name: freeipa
@@ -253,6 +255,8 @@
               dist: xenial
             - name: etcd
               dist: xenial
+            - name: fluentbit
+              dist: xenial
             - name: foreman
               dist: xenial
             - name: freeipa
diff --git a/jenkins/client/job/deploy/lab/deploy.yml b/jenkins/client/job/deploy/lab/deploy.yml
index 4a18e8e..75c3776 100644
--- a/jenkins/client/job/deploy/lab/deploy.yml
+++ b/jenkins/client/job/deploy/lab/deploy.yml
@@ -83,6 +83,10 @@
                 type: text
                 default: ""
                 description: "YAML with overrides for Salt deployment"
+              FORMULA_PKG_REVISION:
+                type: string
+                default: ""
+                description: "Formulas revision to install on Salt Master bootstrap stage"
 
               # aws api
               AWS_STACK_REGION:
@@ -144,7 +148,7 @@
               TEST_TEMPEST_IMAGE:
                 type: string
                 description: "Tempest docker image"
-                default: "sandbox-docker-prod-local.docker.mirantis.net/mirantis/rally_tempest:0.1"
+                default: "docker-prod-local.artifactory.mirantis.com/mirantis/oscore/rally-tempest"
               TEST_TEMPEST_TARGET:
                 type: string
                 description: "Node to run tests"
diff --git a/jenkins/client/job/deploy/rollout.yml b/jenkins/client/job/deploy/rollout.yml
index 06aab0a..4854845 100644
--- a/jenkins/client/job/deploy/rollout.yml
+++ b/jenkins/client/job/deploy/rollout.yml
@@ -55,7 +55,7 @@
             TEST_TEMPEST_IMAGE:
               type: string
               description: "Tempest docker image"
-              default: "sandbox-docker-prod-local.docker.mirantis.net/mirantis/rally_tempest:0.1"
+              default: "docker-prod-local.artifactory.mirantis.com/mirantis/oscore/rally-tempest"
             TEST_TEMPEST_TARGET:
               type: string
               description: "Node to run tests"
diff --git a/jenkins/client/job/deploy/test.yml b/jenkins/client/job/deploy/test.yml
index 0f9b202..b965a52 100644
--- a/jenkins/client/job/deploy/test.yml
+++ b/jenkins/client/job/deploy/test.yml
@@ -36,7 +36,7 @@
             TEST_TEMPEST_IMAGE:
               type: string
               description: "Tempest docker image"
-              default: "obutenko/rally_tempest_docker"
+              default: "docker-prod-local.artifactory.mirantis.com/mirantis/oscore/rally-tempest"
             TEST_TEMPEST_TARGET:
               type: string
               description: "Node to run tests. use FQDN for ctl01 e.g. ctl01.deploy-heat-os_ha_contrail-17.bud-mk.local"
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 7bc2f79..b5c2d40 100644
--- a/jenkins/client/job/k8s-test/mcp-k8s-test-pipeline.yml
+++ b/jenkins/client/job/k8s-test/mcp-k8s-test-pipeline.yml
@@ -16,25 +16,25 @@
             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)'
+          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)'
           param:
             KUBE_DOCKER_REGISTRY:
               type: string
diff --git a/jenkins/client/job/salt-formulas/git-mirrors/2way.yml b/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
index 331eb59..ffcebd7 100644
--- a/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
+++ b/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
@@ -59,6 +59,8 @@
               branches: ${_param:salt_formulas_branches}
             - name: etcd
               branches: ${_param:salt_formulas_branches}
+            - name: fluentbit
+              branches: ${_param:salt_formulas_branches}
             - name: foreman
               branches: ${_param:salt_formulas_branches}
             - name: freeipa
diff --git a/jenkins/client/job/salt-formulas/tests.yml b/jenkins/client/job/salt-formulas/tests.yml
index 448c421..d35b179 100644
--- a/jenkins/client/job/salt-formulas/tests.yml
+++ b/jenkins/client/job/salt-formulas/tests.yml
@@ -32,6 +32,7 @@
             - name: dovecot
             - name: elasticsearch
             - name: etcd
+            - name: fluentbit
             - name: foreman
             - name: freeipa
             - name: galera
diff --git a/jenkins/client/job/salt-models/tests.yml b/jenkins/client/job/salt-models/tests.yml
index fc1fc5f..e60fe22 100644
--- a/jenkins/client/job/salt-models/tests.yml
+++ b/jenkins/client/job/salt-models/tests.yml
@@ -64,6 +64,12 @@
               MAX_CPU_PER_JOB:
                 type: string
                 default: "2"
+              RECLASS_IGNORE_CLASS_NOTFOUND:
+                type: boolean
+                default: "{{reclass_ignore_class_notfound}}"
+              LEGACY_TEST_MODE:
+                type: boolean
+                default: "{{legacy_test_mode}}"
         test_system_reclass:
           name: test-salt-model-{{name}}
           template:
@@ -196,3 +202,9 @@
             MAX_CPU_PER_JOB:
               type: string
               default: "2"
+            RECLASS_IGNORE_CLASS_NOTFOUND:
+              type: boolean
+              default: "false"
+            LEGACY_TEST_MODE:
+              type: boolean
+              default: "false"
diff --git a/jenkins/client/job/test_pipelines.yml b/jenkins/client/job/test_pipelines.yml
index 822084d..b1b782a 100644
--- a/jenkins/client/job/test_pipelines.yml
+++ b/jenkins/client/job/test_pipelines.yml
@@ -7,6 +7,8 @@
           jobs:
             - name: mk-mk-pipelines
               repo: mk/mk-pipelines
+            - name: mcp-ci-pipeline-library
+              repo: mcp-ci/pipeline-library
             - name: oss-jenkins-pipelines
               repo: oss/jenkins/pipelines
           template:
diff --git a/jenkins/client/job/validate.yml b/jenkins/client/job/validate.yml
index 7be935b..9ee63c1 100644
--- a/jenkins/client/job/validate.yml
+++ b/jenkins/client/job/validate.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    jenkins_salt_api_url: "http://${_param:salt_master_host}:6969"
   jenkins:
     client:
       view:
@@ -22,11 +24,11 @@
             url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
             credentials: "gerrit"
             script: validate-cloud.groovy
-
           param:
             SALT_MASTER_URL:
               type: string
-              default: ""
+              default: "${_param:jenkins_salt_api_url}"
+              description: Full Salt API address [e.g. https://10.10.10.2:6969]
             SALT_MASTER_CREDENTIALS:
               type: string
               default: "salt"
diff --git a/keystone/server/cluster.yml b/keystone/server/cluster.yml
index 0c79462..cbe89ca 100644
--- a/keystone/server/cluster.yml
+++ b/keystone/server/cluster.yml
@@ -4,6 +4,8 @@
 - system.haproxy.proxy.listen.openstack.keystone
 - system.haproxy.proxy.listen.openstack.keystone.standalone
 parameters:
+  _param:
+    keystone_tokens_expiration: 3600
   linux:
     system:
       package:
@@ -35,7 +37,7 @@
         user: keystone
       tokens:
         engine: fernet
-        expiration: 3600
+        expiration: ${_param:keystone_tokens_expiration}
         max_active_keys: 3
         location: /var/lib/keystone/fernet-keys
       credential:
diff --git a/keystone/server/single.yml b/keystone/server/single.yml
index c35ef73..16c26ca 100644
--- a/keystone/server/single.yml
+++ b/keystone/server/single.yml
@@ -7,6 +7,7 @@
     mysql_admin_user: root
     mysql_admin_password: password
     mysql_keystone_password: password
+    keystone_tokens_expiration: 3600
   linux:
     system:
       package:
@@ -38,7 +39,7 @@
         user: keystone
       tokens:
         engine: fernet
-        expiration: 3600
+        expiration: ${_param:keystone_tokens_expiration}
         max_active_keys: 3
         location: /var/lib/keystone/fernet-keys
       credential:
diff --git a/keystone/server/wsgi.yml b/keystone/server/wsgi.yml
index 1a949e9..f62c1cc 100644
--- a/keystone/server/wsgi.yml
+++ b/keystone/server/wsgi.yml
@@ -18,7 +18,7 @@
           log:
             custom:
               format: >-
-                %v:%p %h %l %u %t \"%r\" %>s %D %O \"%{Referer}i\" \"%{User-Agent}i\"
+                %v:%p %{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %D %O \"%{Referer}i\" \"%{User-Agent}i\"
 
       modules:
         - wsgi
diff --git a/linux/system/repo/docker.yml b/linux/system/repo/docker.yml
index c527aa8..bb36728 100644
--- a/linux/system/repo/docker.yml
+++ b/linux/system/repo/docker.yml
@@ -3,7 +3,6 @@
     system:
       repo:
         docker:
-          source: "deb https://apt.dockerproject.org/repo ubuntu-${_param:linux_system_codename} main"
+          source: 'deb [arch=amd64] https://download.docker.com/linux/ubuntu/ ${_param:linux_system_codename} stable'
           architectures: amd64
-          key_id: 58118E89F3A912897C070ADBF76221572C52609D
-          key_server: keyserver.ubuntu.com
+          key_url: https://download.docker.com/linux/ubuntu/gpg
diff --git a/linux/system/single/debian.yml b/linux/system/single/debian.yml
new file mode 100644
index 0000000..b6d0b2b
--- /dev/null
+++ b/linux/system/single/debian.yml
@@ -0,0 +1,10 @@
+classes:
+- system.linux.system.single
+
+# DEBIAN family overrides
+parameters:
+  linux:
+    system:
+      package:
+        python-msgpack:
+          version: latest
diff --git a/linux/system/single.yml b/linux/system/single/init.yml
similarity index 96%
rename from linux/system/single.yml
rename to linux/system/single/init.yml
index ccde6ad..1e68380 100644
--- a/linux/system/single.yml
+++ b/linux/system/single/init.yml
@@ -15,8 +15,6 @@
           name: root
           home: /root
       package:
-        python-msgpack:
-          version: latest
         cloud-init:
           version: purged
         unattended-updates:
diff --git a/linux/system/single/rhel.yml b/linux/system/single/rhel.yml
new file mode 100644
index 0000000..38dba03
--- /dev/null
+++ b/linux/system/single/rhel.yml
@@ -0,0 +1,4 @@
+classes:
+- system.linux.system.single
+
+# RHEL family overrides
diff --git a/maas/region/single.yml b/maas/region/single.yml
index d3227ca..2bf9469 100644
--- a/maas/region/single.yml
+++ b/maas/region/single.yml
@@ -1,5 +1,6 @@
 classes:
   - service.maas.region.single
+  - service.maas.cluster.single
   - service.maas.region.vendor_repo
 parameters:
   _param:
diff --git a/neutron/compute/nfv/dpdk.yml b/neutron/compute/nfv/dpdk.yml
index 90f9095..3f05d53 100644
--- a/neutron/compute/nfv/dpdk.yml
+++ b/neutron/compute/nfv/dpdk.yml
@@ -1,6 +1,4 @@
 parameters:
-  _param:
-    compute_dpdk_driver: uio
   linux:
     network:
       bridge: openvswitch
diff --git a/neutron/control/cluster.yml b/neutron/control/cluster.yml
index 9beed6b..47928b6 100644
--- a/neutron/control/cluster.yml
+++ b/neutron/control/cluster.yml
@@ -3,6 +3,7 @@
 - service.haproxy.proxy.single
 - service.neutron.control.cluster
 - system.haproxy.proxy.listen.openstack.neutron
+- system.galera.server.database.neutron
 parameters:
   linux:
     system:
@@ -10,20 +11,6 @@
         python-pymysql:
           fromrepo: ${_param:openstack_version}
           version: latest
-  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
   haproxy:
     proxy:
       listen:
diff --git a/neutron/control/opencontrail/cluster.yml b/neutron/control/opencontrail/cluster.yml
index caaaf6d..d85e554 100644
--- a/neutron/control/opencontrail/cluster.yml
+++ b/neutron/control/opencontrail/cluster.yml
@@ -3,21 +3,8 @@
 - service.haproxy.proxy.single
 - service.neutron.control.cluster
 - system.haproxy.proxy.listen.openstack.neutron
+- system.galera.server.database.neutron
 parameters:
-  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
   neutron:
     server:
       dns_domain: ${_param:cluster_domain}
diff --git a/neutron/control/opencontrail/single.yml b/neutron/control/opencontrail/single.yml
index 0c2841b..4bbd8f8 100644
--- a/neutron/control/opencontrail/single.yml
+++ b/neutron/control/opencontrail/single.yml
@@ -1,20 +1,7 @@
 classes:
 - service.neutron.control.single
+- system.galera.server.database.neutron
 parameters:
-  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
   neutron:
     server:
       dns_domain: ${_param:cluster_domain}
diff --git a/neutron/control/openvswitch/cluster.yml b/neutron/control/openvswitch/cluster.yml
index c86db48..032ffbf 100644
--- a/neutron/control/openvswitch/cluster.yml
+++ b/neutron/control/openvswitch/cluster.yml
@@ -2,6 +2,7 @@
 - service.keepalived.cluster.single
 - service.haproxy.proxy.single
 - service.neutron.control.cluster
+- system.galera.server.database.neutron
 parameters:
   _param:
     neutron_control_dvr: True
@@ -36,20 +37,6 @@
           - host: ${_param:openstack_message_queue_node01_address}
           - host: ${_param:openstack_message_queue_node02_address}
           - host: ${_param:openstack_message_queue_node03_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
   haproxy:
     proxy:
       listen:
diff --git a/neutron/control/openvswitch/single.yml b/neutron/control/openvswitch/single.yml
index 27cee80..009c116 100644
--- a/neutron/control/openvswitch/single.yml
+++ b/neutron/control/openvswitch/single.yml
@@ -1,5 +1,6 @@
 classes:
 - service.neutron.control.single
+- system.galera.server.database.neutron
 parameters:
   _param:
     neutron_control_dvr: True
@@ -32,17 +33,3 @@
       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
\ No newline at end of file
diff --git a/neutron/control/single.yml b/neutron/control/single.yml
index e412f36..7f02325 100644
--- a/neutron/control/single.yml
+++ b/neutron/control/single.yml
@@ -1,5 +1,6 @@
 classes:
 - service.neutron.control.single
+- system.galera.server.database.neutron
 parameters:
   linux:
     system:
@@ -11,18 +12,3 @@
     server:
       database:
         host: ${_param:single_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:single_address}
-            rights: all
-
diff --git a/nova/compute/storage/ceph.yml b/nova/compute/storage/ceph.yml
index 7cb24cb..7e14e1b 100644
--- a/nova/compute/storage/ceph.yml
+++ b/nova/compute/storage/ceph.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    nova_storage_client_key: nova
   nova:
     compute:
       ceph:
@@ -7,4 +9,4 @@
         rbd_pool: ${_param:nova_storage_pool}
         secret_uuid: ${_param:nova_storage_secret_uuid}
         client_cinder_key: ${_param:nova_storage_client_key}
-        rbd_user: ${_param:nova_storage_user}
\ No newline at end of file
+        rbd_user: ${_param:nova_storage_user}
diff --git a/openssh/server/team/all.yml b/openssh/server/team/all.yml
index 1fea51d..5106c73 100644
--- a/openssh/server/team/all.yml
+++ b/openssh/server/team/all.yml
@@ -10,6 +10,7 @@
 #- system.openssh.server.team.support
 - system.openssh.server.team.stacklight
 - system.openssh.server.team.networking
+- system.openssh.server.team.security
 - system.openssh.server.team.oss_team
 - system.openssh.server.team.services_qa
 - system.openssh.server.team.qa_scale
diff --git a/openssh/server/team/l1_support.yml b/openssh/server/team/l1_support.yml
index 9d2a4c9..1db07d6 100644
--- a/openssh/server/team/l1_support.yml
+++ b/openssh/server/team/l1_support.yml
@@ -13,6 +13,7 @@
 - system.openssh.server.team.members.deniskostriukov
 - system.openssh.server.team.members.dmitrygoloshubov
 - system.openssh.server.team.members.javierdiaz
+- system.openssh.server.team.members.jorgesorondo
 - system.openssh.server.team.members.josuepalmerin
 - system.openssh.server.team.members.krzysztoffranckowski
 - system.openssh.server.team.members.matthewroark
diff --git a/openssh/server/team/members/ahecko.yml b/openssh/server/team/members/ahecko.yml
new file mode 100644
index 0000000..9b5c6d8
--- /dev/null
+++ b/openssh/server/team/members/ahecko.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        ahecko:
+          enabled: true
+          name: ahecko
+          sudo: ${_param:linux_system_user_sudo}
+          full_name: Adam Hecko
+          home: /home/ahecko
+          email: ahecko@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        ahecko:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGGRD/zStceB/CAJu8bnsWs9VPWY8W1F6fz2AvX2BiyEXCE2W4uMY11In+qHQtIaWeyWVR/XmoCw0mZxk7emTz91Y1FioinEgumkhpNPLY0fPdDHzwu3atCjAc7B3ZCCXusiUC6k99aCa9YXIZ0/0/75kqilRmIcxGeneL9S2+iuFn/HSpNR7IZN03AEzWgIfXEhB4lyNs9n3RHf+XXy2wxAKkcKpMyocEO9gc3uLY5OdUhGFHRKhEZwgz3K6ysDOCIOTkiiJ8KXMM07FIDLjs5pjUjnVkZ1kWq+virLMbhhyCbMR8zrPvWMjP5oYGm9U9aEeUMA5iMCa7K+qs2AM3 adamheczko@mirantis
+          user: ${linux:system:user:ahecko}
diff --git a/openssh/server/team/members/jorgesorondo.yml b/openssh/server/team/members/jorgesorondo.yml
new file mode 100644
index 0000000..9f6a1c5
--- /dev/null
+++ b/openssh/server/team/members/jorgesorondo.yml
@@ -0,0 +1,22 @@
+parameters:
+  linux:
+    system:
+      user:
+        jsorondo:
+          enabled: true
+          name: jsorondo
+          sudo: ${_param:linux_system_user_sudo}
+          full_name: Jorge Sorondo
+          home: /home/jsorondo
+          email: jsorondo@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        jsorondo:
+          enabled: true
+          public_keys: ${public_keys:jsorondo}
+          user: ${linux:system:user:jsorondo}
+  public_keys:
+    jsorondo:
+      - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQifWsY+b8n8imC0NaP1zVpgihzIT+8A5w35W8dF7YyGcgGOYAcmTRV2Wqm8el9iLsW1ANOdjjulZ/jAzicVwh5IEq9MYjNl4+YjThDN9J1yvw9BjkXPs0Ymrqt4Xq9wZdE5c3P6DaoicxOCEpaL3t1ZxigAcMpQxa5qSyxeY0mvr5eb9O6I0eznEsSjikHOJPaWTdAG5Wx6acwhqB6G7gAF0fpE3Hn+enmtAiqJQVnaBKeX06isMPxyabaNgDCdw1jIJ+uHa3RFRXlucResGiJiDggP+GabKenrSkig8xUWk6UBoO3h28fzEF/J3LSJbL2dHTcWLIrdPZJFVj/0l/
diff --git a/openssh/server/team/members/maximefimov.yml b/openssh/server/team/members/maximefimov.yml
index 9baaaaf..1915548 100644
--- a/openssh/server/team/members/maximefimov.yml
+++ b/openssh/server/team/members/maximefimov.yml
@@ -19,5 +19,4 @@
           user: ${linux:system:user:mefimov}
   public_keys:
     mefimov:
-      - key: rsa-key AAAAB3NzaC1yc2EAAAABJQAAAQEAgLfqReVrcsOuG8GaxPF1iSJjhUPsCnoxtAwFU4YPd0qVmLFxZtcKgb29yR/OSKQz3o5RM1OvQhHs080/gfiboMIyVa5gOCcbVj1PoySd8dAAVy9DORKWCU3djWmHcsG76FU1G8UE1w7nSrWqs01KW9/NzLjiHxf/4r3YWZ51UTr/C1AFyPPMfFRbffqq6yqULG+/TfpkgN2maBrotN5trDuGAHKluyboL7+EZazYpgjUsd2cPMH8TzdQZNwYrtrzWDS0YAqSQVyMc2dFh/gptw/QCsWT2IMyQKLKOcaAy2qon1xWDRFL1fVgqjakF+oM5RBAvX1bkJ1Vx883GEnPaQ==
-
+      - key: ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAhbjsMWhgLWtiSYwJRBY8x6yuXPEmeOPjv2SWsGnhLkW3iY/6CEYph4mKBP22vvJaiXRmuUNIpQCnORjp9OrzD9gQM94EmEjpPhaLixYeejPxPW27rEfRo+Xtp9U02GfBUBpBP1hwayKvCOM8y/FTZnPF3pS2zXmBU9VYf3MGR8mt1RS1uJHj+ZBO6fDnf7LNStps1oGdyXkliTqytLH2AE7t+darR3RDN9CN8qMfAMaPSvDjjqE4UzmpoBU4+by/Rxt3bFFyGx5v0/xwq0ieSXT0pkLFSB7mX2P4BiPvr4piH3rZzcVio5QJ5zcH86fHwME9+/tUg7DXihWWW89Vvw== rsa-key-20161025
diff --git a/openssh/server/team/members/pruzicka.yml b/openssh/server/team/members/pruzicka.yml
new file mode 100644
index 0000000..93aca1f
--- /dev/null
+++ b/openssh/server/team/members/pruzicka.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        pruzicka:
+          enabled: true
+          name: pruzicka
+          sudo: ${_param:linux_system_user_sudo}
+          full_name: Petr Ruzicka
+          home: /home/pruzicka
+          email: pruzicka@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        pruzicka:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDG5m9Wwd2XIaG6iFrsH4BanLDUPpgeAy8o573iB8uqEe1vEp6IMCID5hL7+JUjRX7TGJ9B3QskgAenE50w0yTCqu+oIVXOfzYCbcOAI/Pestv7RDGwciLCX3wdtSYU1dW5Zl8mtH4LMGpBtAG1nAKP1suqXWHUr92bzrYeMicuTADvOYFLxAOVcAEXwBrRUYsy+wTF4ROSZRzE8HLwYAzSngmFqKyW1tj/nLEGTZGWcIYkXDfWR/TW1neP6svaUV6nFLXnj3pRP7KNSK8iil8YuMyT+YGz2f3971967woAAqvSOtF3Rh2f4PLGcNwsMd1tjqMIVvIlI7Lo4UsIA9AZ pruzicka@mirantis.com
+          user: ${linux:system:user:pruzicka}
diff --git a/openssh/server/team/security.yml b/openssh/server/team/security.yml
new file mode 100644
index 0000000..e165ce1
--- /dev/null
+++ b/openssh/server/team/security.yml
@@ -0,0 +1,7 @@
+classes:
+- system.linux.system.sudo
+- system.openssh.server.team.members.ahecko
+- system.openssh.server.team.members.pmichalec
+parameters:
+  _param:
+    linux_system_user_sudo: true
diff --git a/openssh/server/team/services.yml b/openssh/server/team/services.yml
index 9fb36c9..8f15552 100644
--- a/openssh/server/team/services.yml
+++ b/openssh/server/team/services.yml
@@ -4,6 +4,7 @@
 - system.openssh.server.team.members.pmichalec
 - system.openssh.server.team.members.pcizinsky
 - system.openssh.server.team.members.lmercl
+- system.openssh.server.team.members.pruzicka
 - system.openssh.server.team.members.korlowska
 - system.openssh.server.team.members.miwinski
 - system.openssh.server.team.members.mlos
diff --git a/openssh/server/team/support.yml b/openssh/server/team/support.yml
index 1005a83..f78ceac 100644
--- a/openssh/server/team/support.yml
+++ b/openssh/server/team/support.yml
@@ -10,6 +10,7 @@
 - system.openssh.server.team.members.deniskostriukov
 - system.openssh.server.team.members.dmitrygoloshubov
 - system.openssh.server.team.members.javierdiaz
+- system.openssh.server.team.members.jorgesorondo
 - system.openssh.server.team.members.josuepalmerin
 - system.openssh.server.team.members.krzysztoffranckowski
 - system.openssh.server.team.members.matthewroark
diff --git a/reclass/storage/system/ceph_mon_cluster.yml b/reclass/storage/system/ceph_mon_cluster.yml
index 85beafb..d54d767 100644
--- a/reclass/storage/system/ceph_mon_cluster.yml
+++ b/reclass/storage/system/ceph_mon_cluster.yml
@@ -12,6 +12,7 @@
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.ceph.mon
+          - cluster.${_param:cluster_name}.ceph.mon_init
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: ${_param:ceph_mon_system_codename}
diff --git a/salt/control/cluster/ceph_mon_cluster.yml b/salt/control/cluster/ceph_mon_cluster.yml
new file mode 100644
index 0000000..bccec01
--- /dev/null
+++ b/salt/control/cluster/ceph_mon_cluster.yml
@@ -0,0 +1,29 @@
+parameters:
+  salt:
+    control:
+      size:
+        ceph.mon:
+          cpu: 16
+          ram: 32768
+          disk_profile: small
+          net_profile: default
+      cluster:
+        internal:
+          domain: ${_param:cluster_domain}
+          engine: virt
+          node:
+            cmn01:
+              name: ${_param:ceph_mon_node01_hostname}
+              provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              size: ceph.mon
+            cmn02:
+              name: ${_param:ceph_mon_node02_hostname}
+              provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              size: ceph.mon
+            cmn03:
+              name: ${_param:ceph_mon_node03_hostname}
+              provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              size: ceph.mon
\ No newline at end of file
diff --git a/salt/control/virt.yml b/salt/control/virt.yml
index 6ed8537..7556dc9 100644
--- a/salt/control/virt.yml
+++ b/salt/control/virt.yml
@@ -45,3 +45,6 @@
       xxxlarge:
         - system:
             size: 500000
+      xxxxlarge:
+        - system:
+            size: 700000
diff --git a/salt/master/formula/git/openstack.yml b/salt/master/formula/git/openstack.yml
index 9173a4a..3472f2e 100644
--- a/salt/master/formula/git/openstack.yml
+++ b/salt/master/formula/git/openstack.yml
@@ -12,6 +12,10 @@
             #  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'
+              revision: ${_param:salt_master_environment_revision}
             billometer:
               source: git
               address: '${_param:salt_master_environment_repository}/salt-formula-billometer.git'
diff --git a/salt/master/formula/pkg/openstack.yml b/salt/master/formula/pkg/openstack.yml
index 827f096..663572b 100644
--- a/salt/master/formula/pkg/openstack.yml
+++ b/salt/master/formula/pkg/openstack.yml
@@ -10,6 +10,9 @@
             #avinetworks:
             #  source: pkg
             #  name: salt-formula-avinetworks
+            barbican:
+              source: pkg
+              name: salt-formula-barbican
             billometer:
               source: pkg
               name: salt-formula-billometer