Merge "Add janitor monkey system metadata"
diff --git a/aptly/server/mirror/debian/sensu.yml b/aptly/server/mirror/debian/sensu.yml
index 10f3926..0361538 100644
--- a/aptly/server/mirror/debian/sensu.yml
+++ b/aptly/server/mirror/debian/sensu.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    apt_mk_version: stable
   aptly:
     server:
       mirror:
@@ -10,7 +12,7 @@
           gpgkeys:
             - EB9C94BB
           publisher:
-            component: extra
+            component: sensu
             distributions:
-              - trusty/nightly
-              - xenial/nightly
+              - ubuntu-trusty/${_param:apt_mk_version}
+              - ubuntu-xenial/${_param:apt_mk_version}
diff --git a/aptly/server/repo/ubuntu/trusty/extra.yml b/aptly/server/repo/ubuntu/trusty/extra.yml
new file mode 100644
index 0000000..9a799b3
--- /dev/null
+++ b/aptly/server/repo/ubuntu/trusty/extra.yml
@@ -0,0 +1,15 @@
+parameters:
+  aptly:
+    server:
+      repo:
+        ubuntu-trusty-extra:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Extra packages for Ubuntu Trusty"
+          publisher:
+            component: extra
+            distributions:
+              - trusty/nightly
+            architectures:
+              - amd64
diff --git a/aptly/server/repo/ubuntu/trusty/opencontrail.yml b/aptly/server/repo/ubuntu/trusty/opencontrail.yml
new file mode 100644
index 0000000..5d98c42
--- /dev/null
+++ b/aptly/server/repo/ubuntu/trusty/opencontrail.yml
@@ -0,0 +1,136 @@
+parameters:
+  aptly:
+    server:
+      repo:
+        ubuntu-trusty-oc302:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.0.2.x"
+          publisher:
+            component: oc302
+            distributions:
+              - trusty/nightly
+            architectures:
+              - amd64
+        ubuntu-trusty-oc303:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.0.3.x"
+          publisher:
+            component: oc303
+            distributions:
+              - trusty/nightly
+            architectures:
+              - amd64
+        ubuntu-trusty-oc31:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.1"
+          publisher:
+            component: oc31
+            distributions:
+              - trusty/nightly
+            architectures:
+              - amd64
+        ubuntu-trusty-oc31-exp:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.1 experimental"
+          publisher:
+            component: oc31
+            distributions:
+              - trusty-dev/nightly
+            architectures:
+              - amd64
+        ubuntu-trusty-oc311:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.1.1.x"
+          publisher:
+            component: oc311
+            distributions:
+              - trusty/nightly
+            architectures:
+              - amd64
+        ubuntu-trusty-oc311-exp:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.1.1.x experimental"
+          publisher:
+            component: oc311
+            distributions:
+              - trusty-dev/nightly
+            architectures:
+              - amd64
+        ubuntu-trusty-oc32:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.2"
+          publisher:
+            component: oc32
+            distributions:
+              - trusty/nightly
+            architectures:
+              - amd64
+        ubuntu-trusty-oc323:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.2.3.x"
+          publisher:
+            component: oc323
+            distributions:
+              - trusty/nightly
+            architectures:
+              - amd64
+        ubuntu-trusty-oc32-exp:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.2 experimental"
+          publisher:
+            component: oc32
+            distributions:
+              - trusty-dev/nightly
+            architectures:
+              - amd64
+        ubuntu-trusty-oc40:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 4.0"
+          publisher:
+            component: oc40
+            distributions:
+              - trusty/nightly
+            architectures:
+              - amd64
+        ubuntu-trusty-oc40-exp:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 4.0 experimental"
+          publisher:
+            component: oc40
+            distributions:
+              - trusty-dev/nightly
+            architectures:
+              - amd64
+        ubuntu-trusty-oc666:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Opencontrail master"
+          publisher:
+            component: oc666
+            distributions:
+              - trusty/nightly
+            architectures:
+              - amd64
diff --git a/aptly/server/repo/ubuntu/trusty/openstack.yml b/aptly/server/repo/ubuntu/trusty/openstack.yml
new file mode 100644
index 0000000..09ace8f
--- /dev/null
+++ b/aptly/server/repo/ubuntu/trusty/openstack.yml
@@ -0,0 +1,37 @@
+parameters:
+  aptly:
+    server:
+      repo:
+        ubuntu-trusty-kilo:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Extra packages for Openstack Kilo"
+          publisher:
+            component: kilo
+            distributions:
+              - trusty/nightly
+            architectures:
+              - amd64
+        ubuntu-trusty-liberty:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Extra packages for Openstack Liberty"
+          publisher:
+            component: liberty
+            distributions:
+              - trusty/nightly
+            architectures:
+              - amd64
+        ubuntu-trusty-mitaka:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Extra packages for Openstack Mitaka"
+          publisher:
+            component: mitaka
+            distributions:
+              - trusty/nightly
+            architectures:
+              - amd64
diff --git a/aptly/server/repo/ubuntu/trusty/salt.yml b/aptly/server/repo/ubuntu/trusty/salt.yml
new file mode 100644
index 0000000..473c968
--- /dev/null
+++ b/aptly/server/repo/ubuntu/trusty/salt.yml
@@ -0,0 +1,15 @@
+parameters:
+  aptly:
+    server:
+      repo:
+        ubuntu-trusty-salt:
+          distribution: trusty
+          component: main
+          architectures: amd64
+          comment: "Salt formulas for Ubuntu Trusty"
+          publisher:
+            component: salt
+            distributions:
+              - trusty/nightly
+            architectures:
+              - amd64
diff --git a/aptly/server/repo/ubuntu/xenial/extra.yml b/aptly/server/repo/ubuntu/xenial/extra.yml
new file mode 100644
index 0000000..2af633f
--- /dev/null
+++ b/aptly/server/repo/ubuntu/xenial/extra.yml
@@ -0,0 +1,15 @@
+parameters:
+  aptly:
+    server:
+      repo:
+        ubuntu-xenial-extra:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Extra packages for Ubuntu Xenial"
+          publisher:
+            component: extra
+            distributions:
+              - xenial/nightly
+            architectures:
+              - amd64
diff --git a/aptly/server/repo/ubuntu/xenial/opencontrail.yml b/aptly/server/repo/ubuntu/xenial/opencontrail.yml
new file mode 100644
index 0000000..7f47577
--- /dev/null
+++ b/aptly/server/repo/ubuntu/xenial/opencontrail.yml
@@ -0,0 +1,136 @@
+parameters:
+  aptly:
+    server:
+      repo:
+        ubuntu-xenial-oc302:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.0.2.x"
+          publisher:
+            component: oc302
+            distributions:
+              - xenial/nightly
+            architectures:
+              - amd64
+        ubuntu-xenial-oc303:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.0.3.x"
+          publisher:
+            component: oc303
+            distributions:
+              - xenial/nightly
+            architectures:
+              - amd64
+        ubuntu-xenial-oc31:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.1"
+          publisher:
+            component: oc31
+            distributions:
+              - xenial/nightly
+            architectures:
+              - amd64
+        ubuntu-xenial-oc31-exp:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.1 experimental"
+          publisher:
+            component: oc31
+            distributions:
+              - xenial-dev/nightly
+            architectures:
+              - amd64
+        ubuntu-xenial-oc311:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.1.1.x"
+          publisher:
+            component: oc311
+            distributions:
+              - xenial/nightly
+            architectures:
+              - amd64
+        ubuntu-xenial-oc311-exp:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.1.1.x experimental"
+          publisher:
+            component: oc311
+            distributions:
+              - xenial-dev/nightly
+            architectures:
+              - amd64
+        ubuntu-xenial-oc32:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.2"
+          publisher:
+            component: oc32
+            distributions:
+              - xenial/nightly
+            architectures:
+              - amd64
+        ubuntu-xenial-oc323:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.2.3.x"
+          publisher:
+            component: oc323
+            distributions:
+              - xenial/nightly
+            architectures:
+              - amd64
+        ubuntu-xenial-oc32-exp:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 3.2 experimental"
+          publisher:
+            component: oc32
+            distributions:
+              - xenial-dev/nightly
+            architectures:
+              - amd64
+        ubuntu-xenial-oc40:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 4.0"
+          publisher:
+            component: oc40
+            distributions:
+              - xenial/nightly
+            architectures:
+              - amd64
+        ubuntu-xenial-oc40-exp:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Opencontrail 4.0 experimental"
+          publisher:
+            component: oc40
+            distributions:
+              - xenial-dev/nightly
+            architectures:
+              - amd64
+        ubuntu-xenial-oc666:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Opencontrail master"
+          publisher:
+            component: oc666
+            distributions:
+              - xenial/nightly
+            architectures:
+              - amd64
diff --git a/aptly/server/repo/ubuntu/xenial/openstack.yml b/aptly/server/repo/ubuntu/xenial/openstack.yml
new file mode 100644
index 0000000..8639807
--- /dev/null
+++ b/aptly/server/repo/ubuntu/xenial/openstack.yml
@@ -0,0 +1,59 @@
+parameters:
+  aptly:
+    server:
+      repo:
+        ubuntu-xenial-kilo:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Extra packages for Openstack Kilo"
+          publisher:
+            component: kilo
+            distributions:
+              - xenial/nightly
+            architectures:
+              - amd64
+        ubuntu-xenial-liberty:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Extra packages for Openstack Liberty"
+          publisher:
+            component: liberty
+            distributions:
+              - xenial/nightly
+            architectures:
+              - amd64
+        ubuntu-xenial-mitaka:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Extra packages for Openstack Mitaka"
+          publisher:
+            component: mitaka
+            distributions:
+              - xenial/nightly
+            architectures:
+              - amd64
+        ubuntu-xenial-newton:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Extra packages for Openstack Newton"
+          publisher:
+            component: newton
+            distributions:
+              - xenial/nightly
+            architectures:
+              - amd64
+        ubuntu-xenial-ocata:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Extra packages for Openstack Ocata"
+          publisher:
+            component: ocata
+            distributions:
+              - xenial/nightly
+            architectures:
+              - amd64
diff --git a/aptly/server/repo/ubuntu/xenial/salt.yml b/aptly/server/repo/ubuntu/xenial/salt.yml
new file mode 100644
index 0000000..df74fc2
--- /dev/null
+++ b/aptly/server/repo/ubuntu/xenial/salt.yml
@@ -0,0 +1,15 @@
+parameters:
+  aptly:
+    server:
+      repo:
+        ubuntu-xenial-salt:
+          distribution: xenial
+          component: main
+          architectures: amd64
+          comment: "Salt formulas for Ubuntu Xenial"
+          publisher:
+            component: salt
+            distributions:
+              - xenial/nightly
+            architectures:
+              - amd64
diff --git a/artifactory/client/init.yml b/artifactory/client/init.yml
new file mode 100644
index 0000000..9aea48b
--- /dev/null
+++ b/artifactory/client/init.yml
@@ -0,0 +1,22 @@
+parameters:
+  artifactory:
+    client:
+        enabled: True
+        source:
+          engine: pip
+        server:
+          host: ${_param:artifactory_server_host}
+          port: ${_param:artifactory_server_port}
+          user: ${_param:artifactory_client_user}
+          password: ${_param:artifactory_client_password}
+          ssl_verify: False
+        repo:
+          local_artifactory_repo:
+            name: local_artifactory_repo
+            package_type: generic
+            repo_type: local
+          remote_artifactory_repo:
+            name: remote_artifactory_repo
+            package_type: generic
+            repo_type: remote
+            url: "http://artifactory.mcp.mirantis.net/"
diff --git a/cassandra/backup/client/single.yml b/cassandra/backup/client/single.yml
new file mode 100644
index 0000000..90fdc5d
--- /dev/null
+++ b/cassandra/backup/client/single.yml
@@ -0,0 +1,13 @@
+classes:
+- system.openssh.client.root
+parameters:
+  _param:
+    cassandra_remote_backup_server: cfg01
+  cassandra:
+    backup:
+      client:
+        enabled: true
+        full_backups_to_keep: 3
+        hours_before_full: 24
+        target:
+          host: ${_param:cassandra_remote_backup_server}
diff --git a/cassandra/backup/server/single.yml b/cassandra/backup/server/single.yml
new file mode 100644
index 0000000..1762504
--- /dev/null
+++ b/cassandra/backup/server/single.yml
@@ -0,0 +1,13 @@
+parameters:
+  _param:
+    cassandra_backup_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzLUiHKAjfFXiZ3fsgx35uXF6VivfC5WFafu4QMalxmj6W+s277oCfdWA8Du5f1wtQXM73VQ5nHkXhM2UIfUMarsyhXK+BxKVrcgEBNHdKlDytaecUPyuOxTDdGWhN/DPv5/vL8NYWweEYBbNbLgU0Td7Rvm52TUXKThIDjeF7XDxX4ShXWipBSwU4boOUBtR8KWfga8fsqeBN+eacuAQFR3MrrOfVvAuWW6Bsf047cmd+V6Qv0raoW73Nu4M/ZAdTsaR5k62a0cHsSRoi3hCmNRqw+CZaQi8prQU6t26eWPEtznjp5EkPF+LLh8LxUoCfWqWT+Lxe8QQwT1nx/LCN
+  cassandra:
+    backup:
+      server:
+        enabled: true
+        hours_before_full: 24
+        full_backups_to_keep: 5
+        key:
+          cassandra_pub_key:
+            enabled: true
+            key: ${_param:cassandra_backup_public_key}
diff --git a/cinder/control/backend/solidfire.yml b/cinder/control/backend/solidfire.yml
new file mode 100644
index 0000000..20d708c
--- /dev/null
+++ b/cinder/control/backend/solidfire.yml
@@ -0,0 +1,14 @@
+parameters:
+  cinder:
+    controller:
+      defaul_volume_type: normal-storage
+      backend: 
+        solidfire:
+          engine: solidfire
+          type_name: normal-storage
+          engine: solidfire
+          san_ip: ${_param:san_ip_address}
+          san_login: ${_param:san_login}
+          san_password: ${_param:san_password}
+          clustername: ${_param:san_cluster_name}
+          sf_emulate_512: true
\ No newline at end of file
diff --git a/cinder/volume/backend/solidfire.yml b/cinder/volume/backend/solidfire.yml
new file mode 100644
index 0000000..3a38e03
--- /dev/null
+++ b/cinder/volume/backend/solidfire.yml
@@ -0,0 +1,15 @@
+parameters:
+  cinder:
+    volume:
+      enabled: true
+      default_volume_type: normal_storage
+      backend:
+        solidfire:
+          engine: solidfire
+          type_name: normal-storage
+          engine: solidfire
+          san_ip: ${_param:san_ip_address}
+          san_login: ${_param:san_login}
+          san_password: ${_param:san_password}
+          clustername: ${_param:san_cluster_name}
+          sf_emulate_512: true
diff --git a/designate/server/single.yml b/designate/server/single.yml
index bef6e4d..623c357 100644
--- a/designate/server/single.yml
+++ b/designate/server/single.yml
@@ -1,6 +1,5 @@
 classes:
 - service.designate.server.single
-- service.haproxy.proxy.single
 parameters:
   designate:
     server:
@@ -23,7 +22,7 @@
         password: ${_param:mysql_designate_password}
       identity:
         engine: keystone
-        host: ${_param:openstack_control_address}
+        host: ${_param:single_address}
         port: 35357
         tenant: service
         user: designate
@@ -35,3 +34,14 @@
         user: openstack
         password: ${_param:rabbitmq_openstack_password}
         virtual_host: '/openstack'
+      pools:
+        default:
+          description: 'default pool'
+          ns_records: ${_param:designate_pool_ns_records}
+          nameservers: ${_param:designate_pool_nameservers}
+          targets:
+            default:
+              type: ${_param:designate_pool_target_type}
+              description: 'default target'
+              masters: ${_param:designate_pool_target_masters}
+              options: ${_param:designate_pool_target_options}
diff --git a/docker/swarm/service/dashboard/grafana_server.yml b/docker/swarm/service/dashboard/grafana_server.yml
deleted file mode 100644
index 9da7aa5..0000000
--- a/docker/swarm/service/dashboard/grafana_server.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-parameters:
-  _param:
-    docker_grafana_replicas: 1
-    grafana_database_type: sqlite3
-    grafana_database_host: localhost
-    grafana_database_port: 3306
-    grafana_database_password: password
-  docker:
-    client:
-      service:
-        grafana_server:
-          replicas: ${_param:docker_grafana_replicas}
-          environment:
-            GF_DATABASE_TYPE: ${_param:grafana_database_type}
-            GF_DATABASE_NAME: grafana
-            GF_DATABASE_USER: grafana
-            GF_DATABASE_PASSWORD: ${_param:grafana_database_password}
-            GF_DATABASE_HOST: "${_param:grafana_database_host}:${_param:grafana_database_port}"
-            GF_SECURITY_ADMIN_PASSWORD: ${_param:grafana_admin_password}
-          restart:
-            condition: any
-          image: ${_param:docker_image_grafana}
-          ports:
-            - 15013:3000
diff --git a/docker/swarm/service/jenkins.yml b/docker/swarm/service/jenkins.yml
index b2fdeb6..a39b7a4 100644
--- a/docker/swarm/service/jenkins.yml
+++ b/docker/swarm/service/jenkins.yml
@@ -1,6 +1,6 @@
 parameters:
   _param:
-    docker_image_jenkins: tcpcloud/jenkins:2.52
+    docker_image_jenkins: tcpcloud/jenkins:2.63
   docker:
     client:
       service:
diff --git a/docker/swarm/stack/artifactory.yml b/docker/swarm/stack/artifactory.yml
index cda48fe..411b22e 100644
--- a/docker/swarm/stack/artifactory.yml
+++ b/docker/swarm/stack/artifactory.yml
@@ -13,7 +13,7 @@
               deploy:
                 restart_policy:
                   condition: any
-              image: ${_param:docker_image_repository:cicd}/artifactory
+              image: ${_param:docker_image_repository:cicd}
               ports:
                 - 18082:8081
               volumes:
diff --git a/docker/swarm/stack/devops_portal.yml b/docker/swarm/stack/devops_portal.yml
index 430c329..f553114 100644
--- a/docker/swarm/stack/devops_portal.yml
+++ b/docker/swarm/stack/devops_portal.yml
@@ -1,7 +1,7 @@
 parameters:
   _param:
     docker_devops_portal_replicas: 1
-    docker_image_devops_portal: docker-prod-virtual.docker.mirantis.net/mirantis/oss/devops-portal:latest
+    docker_image_devops_portal: docker-prod-local.artifactory.mirantis.com/mirantis/oss/devops-portal:latest
   docker:
     client:
       stack:
diff --git a/docker/swarm/stack/docker.yml b/docker/swarm/stack/docker.yml
index a680d4c..7f8c153 100644
--- a/docker/swarm/stack/docker.yml
+++ b/docker/swarm/stack/docker.yml
@@ -1,7 +1,7 @@
 parameters:
   _param:
     docker_image_registry: registry:2
-    docker_image_visualizer: manomarks/visualizer
+    docker_image_visualizer: dockersamples/visualizer
   docker:
     client:
       stack:
diff --git a/docker/swarm/stack/elasticsearch.yml b/docker/swarm/stack/elasticsearch.yml
index 7e3a7a6..5ee295c 100644
--- a/docker/swarm/stack/elasticsearch.yml
+++ b/docker/swarm/stack/elasticsearch.yml
@@ -26,4 +26,4 @@
                 - ${_param:haproxy_elasticsearch_http_exposed_port}:${_param:haproxy_elasticsearch_http_bind_port}
                 - ${_param:haproxy_elasticsearch_binary_exposed_port}:${_param:haproxy_elasticsearch_binary_bind_port}
               volumes:
-                - /srv/volumes/elasticsearch:/usr/share/elasticsearch/data
\ No newline at end of file
+                - /srv/volumes/elasticsearch:/usr/share/elasticsearch/data
diff --git a/docker/swarm/stack/jenkins/master.yml b/docker/swarm/stack/jenkins/master.yml
index 8b66187..54b0093 100644
--- a/docker/swarm/stack/jenkins/master.yml
+++ b/docker/swarm/stack/jenkins/master.yml
@@ -1,6 +1,6 @@
 parameters:
   _param:
-    docker_image_jenkins: tcpcloud/jenkins:2.52
+    docker_image_jenkins: tcpcloud/jenkins:2.63
   docker:
     client:
       stack:
diff --git a/docker/swarm/stack/jenkins/slave.yml b/docker/swarm/stack/jenkins/slave.yml
index 52015ec..fc281b7 100644
--- a/docker/swarm/stack/jenkins/slave.yml
+++ b/docker/swarm/stack/jenkins/slave.yml
@@ -31,6 +31,7 @@
                 - /etc/aptly-publisher.yaml:/etc/aptly-publisher.yaml:ro
                 - /var/run/docker.sock:/var/run/docker.sock
                 - /usr/bin/docker:/usr/bin/docker:ro
+                - /var/lib/jenkins:/var/lib/jenkins
             slave02:
               environment:
                 JENKINS_URL: ${_param:jenkins_master_url}
@@ -50,6 +51,7 @@
                 - /etc/aptly-publisher.yaml:/etc/aptly-publisher.yaml:ro
                 - /var/run/docker.sock:/var/run/docker.sock
                 - /usr/bin/docker:/usr/bin/docker:ro
+                - /var/lib/jenkins:/var/lib/jenkins
             slave03:
               environment:
                 JENKINS_URL: ${_param:jenkins_master_url}
@@ -69,3 +71,4 @@
                 - /etc/aptly-publisher.yaml:/etc/aptly-publisher.yaml:ro
                 - /var/run/docker.sock:/var/run/docker.sock
                 - /usr/bin/docker:/usr/bin/docker:ro
+                - /var/lib/jenkins:/var/lib/jenkins
diff --git a/docker/swarm/stack/monitoring.yml b/docker/swarm/stack/monitoring/init.yml
similarity index 94%
rename from docker/swarm/stack/monitoring.yml
rename to docker/swarm/stack/monitoring/init.yml
index a11024d..e5d11e1 100644
--- a/docker/swarm/stack/monitoring.yml
+++ b/docker/swarm/stack/monitoring/init.yml
@@ -1,10 +1,9 @@
 classes:
-- service.prometheus.server.container
-- service.prometheus.alertmanager.container
-- service.prometheus.pushgateway.container
-- service.prometheus.remote_storage_adapter.container
-- system.prometheus.server
-- system.prometheus.alertmanager
+- system.prometheus.alertmanager.container
+- system.prometheus.pushgateway.container
+- system.prometheus.remote_storage_adapter.container
+- system.prometheus.server.container
+- system.telegraf.agent.remote
 parameters:
   docker:
     client:
diff --git a/docker/swarm/stack/monitoring/remote_collector.yml b/docker/swarm/stack/monitoring/remote_collector.yml
new file mode 100644
index 0000000..ff6af95
--- /dev/null
+++ b/docker/swarm/stack/monitoring/remote_collector.yml
@@ -0,0 +1,29 @@
+classes:
+- system.heka.remote_collector.container
+- system.heka.remote_collector.input.amqp
+- system.heka.remote_collector.output.elasticsearch
+- system.heka.remote_collector.output.telegraf
+- system.telegraf.agent.remote.input.http_listener
+parameters:
+  docker:
+    client:
+      stack:
+        monitoring:
+          service:
+            remote_collector:
+              networks:
+                - monitoring
+              deploy:
+                replicas: 1
+                labels:
+                  com.mirantis.monitoring: "remote_collector"
+                restart_policy:
+                  condition: any
+              labels:
+                com.mirantis.monitoring: "remote_collector"
+              image: ${_param:docker_image_remote_collector}
+              volumes:
+                - ${heka:remote_collector:prefix_dir}/etc/remote_collector:/etc/heka
+                - ${heka:remote_collector:prefix_dir}/usr/share/lma_collector:/usr/share/lma_collector
+              environment:
+                HEKA_CACHE_DIR: /var/cache/remote_collector
diff --git a/docker/swarm/stack/postgresql.yml b/docker/swarm/stack/postgresql.yml
index 7ae4052..73435fb 100644
--- a/docker/swarm/stack/postgresql.yml
+++ b/docker/swarm/stack/postgresql.yml
@@ -11,6 +11,7 @@
           environment:
             POSTGRES_USER: ${_param:postgresql_admin_user}
             POSTGRES_PASSWORD: ${_param:postgresql_admin_user_password}
+            SQLALCHEMY_POOL_RECYCLE: 14400
           service:
             db:
               image: ${_param:docker_image_postgresql}
diff --git a/docker/swarm/stack/pushkin.yml b/docker/swarm/stack/pushkin.yml
index 3232301..dde8541 100644
--- a/docker/swarm/stack/pushkin.yml
+++ b/docker/swarm/stack/pushkin.yml
@@ -13,6 +13,11 @@
             POSTGRES_DB: ${_param:pushkin_db}
             PUSHKINDBHOST: ${_param:pushkin_db_host}
             PUSHKINELASTICHOST: ${_param:haproxy_elasticsearch_bind_host}
+            WEBHOOK_FROM: ${_param:webhook_from}
+            WEBHOOK_RECIPIENTS: ${_param:webhook_recipients}
+            WEBHOOK_LOGIN_ID: ${_param:webhook_login_id}
+            WEBHOOK_APPLICATION_ID: ${_param:webhook_application_id}
+            WEBHOOK_SFDC_USERNAME: ${_param:webhook_sfdc_username}
           service:
             api:
               image: ${_param:docker_image_pushkin}
diff --git a/docker/swarm/stack/rundeck.yml b/docker/swarm/stack/rundeck.yml
index 322a285..216415c 100644
--- a/docker/swarm/stack/rundeck.yml
+++ b/docker/swarm/stack/rundeck.yml
@@ -1,7 +1,7 @@
 parameters:
   _param:
     docker_rundeck_replicas: 1
-    docker_image_rundeck: docker-prod-virtual.docker.mirantis.net/mirantis/oss/rundeck:latest
+    docker_image_rundeck: docker-prod-local.artifactory.mirantis.com/mirantis/oss/rundeck:latest
   docker:
     client:
       stack:
diff --git a/docker/swarm/stack/security_monkey.yml b/docker/swarm/stack/security_monkey.yml
index 143b321..a83f2a0 100644
--- a/docker/swarm/stack/security_monkey.yml
+++ b/docker/swarm/stack/security_monkey.yml
@@ -2,14 +2,19 @@
   _param:
     docker_security_monkey_api_replicas: 1
     docker_security_monkey_scheduler_replicas: 1
-    docker_image_security_monkey_api: docker-sandbox.sandbox.mirantis.net/vstoiko/oss/security-monkey-api:4435
-    docker_image_security_monkey_scheduler: docker-sandbox.sandbox.mirantis.net/vstoiko/oss/security-monkey-scheduler:4435
+    docker_image_security_monkey_api: docker-sandbox.sandbox.mirantis.net/vstoiko/oss/security-monkey-api:6700
+    docker_image_security_monkey_scheduler: docker-sandbox.sandbox.mirantis.net/vstoiko/oss/security-monkey-scheduler:6700
     security_monkey_db: secmonkey
     notification_service_url: http://${_param:haproxy_pushkin_bind_host}:${_param:haproxy_pushkin_bind_port}/post_notification_json
     security_monkey_user: devopsportal@devopsportal.local
     security_monkey_password: devopsportal
     security_monkey_role: Justify
+    security_monkey_fqdn: ${_param:haproxy_security_monkey_bind_host}
+    security_monkey_web_port: ${_param:haproxy_security_monkey_bind_port}
+    security_monkey_api_port: ${_param:haproxy_security_monkey_bind_port}
+    security_monkey_nginx_port: ${_param:haproxy_security_monkey_bind_port}
     devops_portal_sm_wtf_csrf_enabled: False
+    security_monkey_sync_interval: 15
     security_monkey_openstack:
       os_account_id: mcp_cloud
       os_account_name: mcp_cloud
@@ -28,6 +33,10 @@
             SECURITY_MONKEY_POSTGRES_PASSWORD: ${_param:secmonkey_db_user_password}
             SECURITY_MONKEY_POSTGRES_HOST: ${_param:secmonkey_db_host}
             SECURITY_MONKEY_POSTGRES_PORT: ${_param:haproxy_postgresql_bind_port}
+            SECURITY_MONKEY_FQDN: ${_param:security_monkey_fqdn}
+            WEB_PORT: ${_param:security_monkey_web_port}
+            API_PORT: ${_param:security_monkey_api_port}
+            NGINX_PORT: ${_param:security_monkey_nginx_port}
             NOTIFICATIONS_SERVICE_URL: ${_param:notification_service_url}
             DEFAULT_USER: ${_param:security_monkey_user}
             DEFAULT_PASSWORD: ${_param:security_monkey_password}
@@ -41,6 +50,7 @@
             OS_PROJECT_NAME: ${_param:security_monkey_openstack:project_name}
             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}
           service:
             api:
               image: ${_param:docker_image_security_monkey_api}
@@ -59,4 +69,4 @@
                 restart_policy:
                   condition: any
               volumes:
-                - /srv/volumes/security_monkey/logs:/var/log/security_monkey/logs
\ No newline at end of file
+                - /srv/volumes/security_monkey/logs:/var/log/security_monkey/logs
diff --git a/galera/server/database/octavia.yml b/galera/server/database/octavia.yml
new file mode 100644
index 0000000..dfefb9c
--- /dev/null
+++ b/galera/server/database/octavia.yml
@@ -0,0 +1,15 @@
+parameters:
+  mysql:
+    server:
+      database:
+        octavia:
+          encoding: 'utf8'
+          users:
+          - name: 'octavia'
+            password: '${_param:mysql_octavia_password}'
+            host: '%'
+            rights: 'all'
+          - name: 'octavia'
+            password: '${_param:mysql_octavia_password}'
+            host: '${_param:cluster_local_address}'
+            rights: 'all'
diff --git a/gerrit/client/project/docker_images.yml b/gerrit/client/project/docker_images.yml
new file mode 100644
index 0000000..cc35eb3
--- /dev/null
+++ b/gerrit/client/project/docker_images.yml
@@ -0,0 +1,20 @@
+parameters:
+  gerrit:
+    client:
+      project:
+        mk/docker-aptly:
+          enabled: true
+          description: Aptly docker images
+          upstream: https://github.com/tcpcloud/docker-aptly
+          access: ${gerrit:client:default_access}
+          require_change_id: true
+          require_agreement: false
+          merge_content: true
+        mk/python-flask-hello:
+          enabled: true
+          description: Flask hello demo application
+          upstream: https://github.com/tcpcloud/python-flask-hello
+          access: ${gerrit:client:default_access}
+          require_change_id: true
+          require_agreement: false
+          merge_content: true
diff --git a/glance/client/image/octavia.yml b/glance/client/image/octavia.yml
new file mode 100644
index 0000000..de81f7f
--- /dev/null
+++ b/glance/client/image/octavia.yml
@@ -0,0 +1,29 @@
+classes:
+- system.glance.client
+parameters:
+  _param:
+    amphora_image_url: "https://artifactory.mirantis.com/binary-prod-local/mirantis/openstack/octavia/images/ocata/amphora-x64-haproxy.qcow2"
+    amphora_image_name:  "amphora-x64-haproxy"
+  glance:
+    client:
+      identity:
+        admin_identity:
+          endpoint_type: internalURL
+          image:
+            amphora-x64-haproxy:
+              name: ${_param:amphora_image_name}
+              location: ${_param:amphora_image_url}
+              import_from_format: 'qcow2'
+              container_format: 'bare'
+              disk_format: 'qcow2'
+              tags:
+                - 'amphora'
+              visibility: public
+              wait_timeout: 1000
+  salt:
+    minion:
+      mine:
+        module:
+          glanceng.get_image_owner_id:
+            - ${_param:amphora_image_name}
+            - 'admin_identity'
diff --git a/glance/client/init.yml b/glance/client/init.yml
new file mode 100644
index 0000000..305f9ba
--- /dev/null
+++ b/glance/client/init.yml
@@ -0,0 +1,4 @@
+parameters:
+  glance:
+    client:
+      enabled: true
diff --git a/glance/control/image_manager.yml b/glance/control/image_manager.yml
new file mode 100644
index 0000000..27103a3
--- /dev/null
+++ b/glance/control/image_manager.yml
@@ -0,0 +1,5 @@
+parameters:
+  glance:
+    server:
+      policy:
+        publicize_image: ['role:admin', 'role:image_manager']
diff --git a/glusterfs/client/volume/elasticsearch.yml b/glusterfs/client/volume/elasticsearch.yml
index 0248093..2ebfcfc 100644
--- a/glusterfs/client/volume/elasticsearch.yml
+++ b/glusterfs/client/volume/elasticsearch.yml
@@ -11,3 +11,5 @@
           path: /srv/volumes/elasticsearch
           server: ${_param:elasticsearch_glusterfs_service_host}
           opts: "defaults,backup-volfile-servers=${_param:glusterfs_node01_address}:${_param:glusterfs_node02_address}:${_param:glusterfs_node03_address}"
+          user: 1000
+          group: 1000
diff --git a/haproxy/proxy/listen/cicd/artifactory.yml b/haproxy/proxy/listen/cicd/artifactory.yml
new file mode 100644
index 0000000..5bf9bda
--- /dev/null
+++ b/haproxy/proxy/listen/cicd/artifactory.yml
@@ -0,0 +1,38 @@
+parameters:
+  _param:
+    haproxy_artifactory_bind_host: ${_param:haproxy_bind_address}
+    haproxy_artifactory_bind_port: 8081
+    haproxy_artifactory_ssh_bind_host: ${_param:haproxy_artifactory_bind_host}
+    haproxy_artifactory_ssl:
+      enabled: false
+  haproxy:
+    proxy:
+      listen:
+        artifactory:
+          mode: http
+          options:
+            - forwardfor
+            - httpchk
+            - httpclose
+            - httplog
+          balance: source
+          http_request:
+            - action: "add-header X-Forwarded-Proto https"
+              condition: "if { ssl_fc }"
+          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}
+              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
diff --git a/haproxy/proxy/listen/openstack/heat.yml b/haproxy/proxy/listen/openstack/heat.yml
index 440a018..2e6b918 100644
--- a/haproxy/proxy/listen/openstack/heat.yml
+++ b/haproxy/proxy/listen/openstack/heat.yml
@@ -7,19 +7,19 @@
           service_name: heat
           binds:
           - address: ${_param:cluster_vip_address}
-            port: 8000
+            port: 8003
           servers:
           - name: ctl01
             host: ${_param:cluster_node01_address}
-            port: 8000
+            port: 8003
             params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
           - name: ctl02
             host: ${_param:cluster_node02_address}
-            port: 8000
+            port: 8003
             params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
           - name: ctl03
             host: ${_param:cluster_node03_address}
-            port: 8000
+            port: 8003
             params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
         heat_api:
           type: openstack-service
@@ -45,17 +45,17 @@
           service_name: heat
           binds:
           - address: ${_param:cluster_vip_address}
-            port: 8003
+            port: 8000
           servers:
           - name: ctl01
             host: ${_param:cluster_node01_address}
-            port: 8003
+            port: 8000
             params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
           - name: ctl02
             host: ${_param:cluster_node02_address}
-            port: 8003
+            port: 8000
             params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
           - name: ctl03
             host: ${_param:cluster_node03_address}
-            port: 8003
-            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
\ No newline at end of file
+            port: 8000
+            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
diff --git a/haproxy/proxy/listen/openstack/octavia.yml b/haproxy/proxy/listen/openstack/octavia.yml
new file mode 100644
index 0000000..7360557
--- /dev/null
+++ b/haproxy/proxy/listen/openstack/octavia.yml
@@ -0,0 +1,23 @@
+parameters:
+  haproxy:
+    proxy:
+      listen:
+        octavia_api:
+          type: openstack-service
+          service_name: octavia
+          binds:
+          - address: ${_param:cluster_vip_address}
+            port: 9876
+          servers:
+          - name: ctl01
+            host: ${_param:cluster_node01_address}
+            port: 9876
+            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
+          - name: ctl02
+            host: ${_param:cluster_node02_address}
+            port: 9876
+            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
+          - name: ctl03
+            host: ${_param:cluster_node03_address}
+            port: 9876
+            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
diff --git a/haproxy/proxy/listen/oss/postgresql.yml b/haproxy/proxy/listen/oss/postgresql.yml
index 1bc1f44..a356a48 100644
--- a/haproxy/proxy/listen/oss/postgresql.yml
+++ b/haproxy/proxy/listen/oss/postgresql.yml
@@ -7,6 +7,11 @@
       enabled: false
   haproxy:
     proxy:
+      timeout:
+        queue: '8h'
+        client: '8h'
+        server: '8h'
+        check: '10s'
       listen:
         postgresql:
           mode: tcp
diff --git a/heka/log_collector/output/sensu.yml b/heka/log_collector/output/sensu.yml
index e7bf79d..23085b7 100644
--- a/heka/log_collector/output/sensu.yml
+++ b/heka/log_collector/output/sensu.yml
@@ -1,3 +1,2 @@
 classes:
 - service.heka.log_collector.output.sensu
-
diff --git a/heka/log_collector/output/telegraf.yml b/heka/log_collector/output/telegraf.yml
new file mode 100644
index 0000000..e6a9488
--- /dev/null
+++ b/heka/log_collector/output/telegraf.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    log_collector_telegraf_port: 8186
+  heka:
+    log_collector:
+      telegraf_host: 127.0.0.1
+      telegraf_port: ${_param:log_collector_telegraf_port}
+      telegraf_timeout: 2000
+      emit_rates: false
+      alarms_enabled: false
diff --git a/heka/remote_collector/container.yml b/heka/remote_collector/container.yml
new file mode 100644
index 0000000..61b8c31
--- /dev/null
+++ b/heka/remote_collector/container.yml
@@ -0,0 +1,9 @@
+classes:
+- service.heka.remote_collector.container
+- system.heka.server
+parameters:
+  _param:
+    remote_collector_prefix_dir: /srv/volumes/local/remote_collector
+  heka:
+    remote_collector:
+      prefix_dir: ${_param:remote_collector_prefix_dir}
\ No newline at end of file
diff --git a/heka/remote_collector/output/telegraf.yml b/heka/remote_collector/output/telegraf.yml
new file mode 100644
index 0000000..48da337
--- /dev/null
+++ b/heka/remote_collector/output/telegraf.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    remote_collector_telegraf_port: 8186
+  heka:
+    remote_collector:
+      influxdb_host: ${_param:remote_collector_telegraf_host}
+      influxdb_port: ${_param:remote_collector_telegraf_port}
+      influxdb_timeout: 2000
+      emit_rates: false
+      alarms_enabled: false
diff --git a/ironic/conductor/cluster.yml b/ironic/conductor/cluster.yml
index 43e870c..ba0c538 100644
--- a/ironic/conductor/cluster.yml
+++ b/ironic/conductor/cluster.yml
@@ -3,4 +3,4 @@
 parameters:
   ironic:
     conductor:
-      api_url: 'http://${_param:cluster_baremetal_vip_address}'
+      api_url: 'http://${_param:cluster_baremetal_vip_address}:6385'
diff --git a/jenkins/client/job/debian/packages/extra.yml b/jenkins/client/job/debian/packages/extra.yml
index fe50cd6..7371d3b 100644
--- a/jenkins/client/job/debian/packages/extra.yml
+++ b/jenkins/client/job/debian/packages/extra.yml
@@ -93,6 +93,10 @@
               dist: trusty
               build: pipeline
               branch: debian/trusty
+            - package: jmx-exporter
+              dist: trusty
+              build: jmx-exporter
+              branch: master
             - package: librdkafka
               dist: xenial
               build: pipeline
@@ -153,6 +157,10 @@
               dist: xenial
               build: pipeline
               branch: debian/xenial
+            - package: jmx-exporter
+              dist: xenial
+              build: jmx-exporter
+              branch: master
           template:
             type: workflow-scm
             concurrent: false
diff --git a/jenkins/client/job/debian/packages/horizon/modules.yml b/jenkins/client/job/debian/packages/horizon/modules.yml
index d3deab7..4fe4966 100644
--- a/jenkins/client/job/debian/packages/horizon/modules.yml
+++ b/jenkins/client/job/debian/packages/horizon/modules.yml
@@ -6,6 +6,18 @@
           name: build-debian-horizon-module-{{name}}-{{os_version}}-{{os}}-{{dist}}
           jobs:
             # Trusty
+            - name: horizon-avi-panels
+              os: ubuntu
+              dist: trusty
+              os_version: mitaka
+              branch: stable/mitaka
+            # Xenial
+            - name: horizon-avi-panels
+              os: ubuntu
+              dist: xenial
+              os_version: mitaka
+              branch: stable/mitaka
+            # Trusty
             - name: horizon-neutron-lbaasv2-panel
               os: ubuntu
               dist: trusty
diff --git a/jenkins/client/job/debian/packages/salt.yml b/jenkins/client/job/debian/packages/salt.yml
index c5a6709..6ccb432 100644
--- a/jenkins/client/job/debian/packages/salt.yml
+++ b/jenkins/client/job/debian/packages/salt.yml
@@ -19,6 +19,8 @@
               dist: trusty
             - name: backupninja
               dist: trusty
+            - name: baremetal-simulator
+              dist: trusty
             - name: billometer
               dist: trusty
             - name: bind
@@ -211,6 +213,8 @@
               dist: xenial
             - name: avinetworks
               dist: xenial
+            - name: baremetal-simulator
+              dist: xenial
             - name: backupninja
               dist: xenial
             - name: billometer
@@ -271,6 +275,8 @@
               dist: xenial
             - name: heka
               dist: xenial
+            - name: helm
+              dist: xenial
             - name: influxdb
               dist: xenial
             - name: iptables
diff --git a/jenkins/client/job/debian/packages/testing.yml b/jenkins/client/job/debian/packages/testing.yml
new file mode 100644
index 0000000..c7ecf98
--- /dev/null
+++ b/jenkins/client/job/debian/packages/testing.yml
@@ -0,0 +1,74 @@
+parameters:
+  _param:
+    jenkins_pollscm_spec: "H/60 * * * *"
+  jenkins:
+    client:
+      job_template:
+        build-debian-python-flask-hello:
+          name: build-debian-{{package}}-ubuntu-{{dist}}
+          jobs:
+            - package: python-flask-hello
+              dist: trusty
+              build: pipeline
+              branch: master
+          template:
+            type: workflow-scm
+            concurrent: false
+            scm:
+              type: git
+              url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+              credentials: "gerrit"
+              script: build-debian-packages-{{build}}.groovy
+            trigger:
+              gerrit:
+                project:
+                  mk/{{package}}:
+                    branches:
+                      - "{{branch}}"
+                message:
+                  build_successful: "Build successful"
+                  build_unstable: "Build unstable"
+                  build_failure: "Build failed"
+                event:
+                  ref:
+                    - updated
+            param:
+              SOURCE_URL:
+                type: string
+                default: "${_param:jenkins_gerrit_url}/mk/python-flask-hello"
+              SOURCE_BRANCH:
+                type: string
+                default: "{{branch}}"
+              SOURCE_CREDENTIALS:
+                type: string
+                default: "gerrit"
+              EXTRA_REPO_URL:
+                type: string
+                default: ""
+              EXTRA_REPO_KEY_URL:
+                type: string
+                default: "${_param:jenkins_aptly_url}/public.gpg"
+              APTLY_URL:
+                type: string
+                default: "${_param:jenkins_aptly_api_url}"
+              APTLY_REPO:
+                type: string
+                default: "ubuntu-{{dist}}-extra"
+              OS:
+                type: string
+                default: "ubuntu"
+              DIST:
+                type: string
+                default: "{{dist}}"
+              ARCH:
+                type: string
+                default: "amd64"
+              PPA:
+                type: string
+                default: "mirantis-opencontrail/extra"
+              UPLOAD_PPA:
+                type: boolean
+                default: 'false'
+              UPLOAD_APTLY:
+                type: boolean
+                default: 'true'
diff --git a/jenkins/client/job/deploy/k8s_control.yml b/jenkins/client/job/deploy/k8s_control.yml
new file mode 100644
index 0000000..7e915c2
--- /dev/null
+++ b/jenkins/client/job/deploy/k8s_control.yml
@@ -0,0 +1,34 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        deploy_k8s_control:
+          type: workflow-scm
+          name: deploy-k8s-control
+          display_name: "Deploy - k8s control"
+          discard:
+            build:
+              keep_num: 20
+          concurrent: false
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: deploy-k8s-deployments.groovy
+          param:
+            # deployments and test settings
+            TARGET_MINIONS:
+              type: string
+              default: "E@k8s-ctl01.*"
+              description: "Salt compound target to match nodes to be updated [*, G@osfamily:debian]."
+            EXTRA_COMMAND:
+              type: string
+              default: ""
+              description: "Extra command to run before update"
+            # salt master
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt"
+            SALT_MASTER_URL:
+              type: string
+              default: "${_param:jenkins_salt_api_url}"
diff --git a/jenkins/client/job/deploy/lab/cicd.yml b/jenkins/client/job/deploy/lab/cicd.yml
index fb1dd92..9002c9c 100644
--- a/jenkins/client/job/deploy/lab/cicd.yml
+++ b/jenkins/client/job/deploy/lab/cicd.yml
@@ -20,7 +20,7 @@
               # heat
               HEAT_TEMPLATE_URL:
                 type: string
-                default: "git@github.com:Mirantis/mk-lab-heat-templates.git"
+                default: "${_param:jenkins_gerrit_url}/mk/heat-templates"
               HEAT_TEMPLATE_CREDENTIALS:
                 type: string
                 default: "gerrit"
@@ -35,13 +35,13 @@
                 default: "{{lab}}"
               HEAT_STACK_ENVIRONMENT:
                 type: string
-                default: "tcpisek"
+                default: "devcloud"
               HEAT_STACK_ZONE:
                 type: string
-                default: "mirantis-zone-qa"
+                default: "mcp-mk"
               HEAT_STACK_PUBLIC_NET:
                 type: string
-                default: "mirantis-private"
+                default: "public"
               HEAT_STACK_DELETE:
                 type: boolean
                 default: 'true'
@@ -62,19 +62,19 @@
               # openstack api
               OPENSTACK_API_URL:
                 type: string
-                default: "https://vpc.tcpisek.cz:5000"
+                default: "https://cloud-cz.bud.mirantis.net:5000"
               OPENSTACK_API_CREDENTIALS:
                 type: string
-                default: "openstack-qa-credentials"
+                default: "openstack-devcloud-credentials"
               OPENSTACK_API_PROJECT:
                 type: string
-                default: "mirantis_mk20_qa"
+                default: "mcp-mk"
               OPENSTACK_API_CLIENT:
                 type: string
-                default: "liberty"
+                default: ""
               OPENSTACK_API_VERSION:
                 type: string
-                default: "2"
+                default: "3"
               OPENSTACK_API_PROJECT_DOMAIN:
                 type: string
                 default: "default"
diff --git a/jenkins/client/job/deploy/lab/mk/cleanup.yml b/jenkins/client/job/deploy/lab/mk/cleanup.yml
index a400842..626dd4e 100644
--- a/jenkins/client/job/deploy/lab/mk/cleanup.yml
+++ b/jenkins/client/job/deploy/lab/mk/cleanup.yml
@@ -29,19 +29,19 @@
             # heat parameters
             OPENSTACK_API_URL:
               type: string
-              default: "https://vpc.tcpisek.cz:5000"
+              default: "https://cloud-cz.bud.mirantis.net:5000"
             OPENSTACK_API_CREDENTIALS:
               type: string
-              default: "openstack-qa-credentials"
+              default: "openstack-devcloud-credentials"
             OPENSTACK_API_PROJECT:
               type: string
-              default: "mirantis_mk20_qa"
+              default: "mcp-mk"
             OPENSTACK_API_CLIENT:
               type: string
-              default: "liberty"
+              default: ""
             OPENSTACK_API_VERSION:
               type: string
-              default: "2"
+              default: "3"
             OPENSTACK_API_PROJECT_DOMAIN:
               type: string
               default: "default"
@@ -79,19 +79,19 @@
             # openstack api
             OPENSTACK_API_URL:
               type: string
-              default: "https://vpc.tcpisek.cz:5000"
+              default: "https://cloud-cz.bud.mirantis.net:5000"
             OPENSTACK_API_CREDENTIALS:
               type: string
-              default: "openstack-qa-credentials"
+              default: "openstack-devcloud-credentials"
             OPENSTACK_API_PROJECT:
               type: string
-              default: "mirantis_mk20_qa"
+              default: "mcp-mk"
             OPENSTACK_API_CLIENT:
               type: string
-              default: "liberty"
+              default: ""
             OPENSTACK_API_VERSION:
               type: string
-              default: "2"
+              default: "3"
             OPENSTACK_API_PROJECT_DOMAIN:
               type: string
               default: "default"
diff --git a/jenkins/client/job/deploy/lab/mk/cloud.yml b/jenkins/client/job/deploy/lab/mk/cloud.yml
index a79414b..4e4080b 100644
--- a/jenkins/client/job/deploy/lab/mk/cloud.yml
+++ b/jenkins/client/job/deploy/lab/mk/cloud.yml
@@ -2,13 +2,65 @@
   _param:
     jenkins_cloud_deploy_pipelines:
       - stack_name: k8s_calico
-        stack_type: heat
-        stack_install: core,k8s,calico
-        job_timer: ""
-      - stack_name: k8s_calico
         stack_type: aws
         stack_install: core,k8s,calico
         job_timer: "H H * * *"
+#      - stack_name: ceph_ha
+#        stack_type: heat
+#        stack_install: core
+#        job_timer: ""
+#      - stack_name: drivetrain_ha
+#        stack_type: heat
+#        stack_install: core
+#        job_timer: ""
+#      - stack_name: drivetrain_ha_clusters
+#        stack_type: heat
+#        stack_install: core
+#        job_timer: ""
+      - stack_name: k8s_aio_calico
+        stack_type: heat
+        stack_install: core,k8s,calico
+        job_timer: ""
+      - stack_name: k8s_aio_contrail
+        stack_type: heat
+        stack_install: core,k8s,contrail
+        job_timer: ""
+      - stack_name: k8s_ha_calico
+        stack_type: heat
+        stack_install: core,k8s,calico
+        job_timer: ""
+      - stack_name: k8s_ha_contrail
+        stack_type: heat
+        stack_install: core,k8s,contrail
+        job_timer: ""
+      - stack_name: os_aio_contrail
+        stack_type: heat
+        stack_install: core,openstack,contrail
+        job_timer: ""
+      - stack_name: os_aio_ovs
+        stack_type: heat
+        stack_install: core,openstack,ovs
+        job_timer: ""
+      - stack_name: os_ha_contrail
+        stack_type: heat
+        stack_install: core,openstack,contrail
+        job_timer: ""
+      - stack_name: os_ha_ovs
+        stack_type: heat
+        stack_install: core,openstack,ovs
+        job_timer: ""
+      - stack_name: stacklight_k8s_calico
+        stack_type: heat
+        stack_install: core,k8s,calico,sl-legacy
+        job_timer: ""
+      - stack_name: stacklight_os_contrail
+        stack_type: heat
+        stack_install: core,openstack,contrail,sl-legacy
+        job_timer: ""
+      - stack_name: stacklight_os_ovs
+        stack_type: heat
+        stack_install: core,openstack,ovs,sl-legacy
+        job_timer: ""
   jenkins:
     client:
       job_template:
@@ -83,6 +135,9 @@
               SALT_MASTER_URL:
                 type: string
                 default: ""
+              SALT_OVERRIDES:
+                type: text
+                default: ""
 
               # aws api
               AWS_STACK_REGION:
@@ -99,19 +154,19 @@
               # openstack api
               OPENSTACK_API_URL:
                 type: string
-                default: "https://vpc.tcpisek.cz:5000"
+                default: "https://cloud-cz.bud.mirantis.net:5000"
               OPENSTACK_API_CREDENTIALS:
                 type: string
-                default: "openstack-qa-credentials"
+                default: "openstack-devcloud-credentials"
               OPENSTACK_API_PROJECT:
                 type: string
-                default: "mirantis_mk20_qa"
+                default: "mcp-mk"
               OPENSTACK_API_CLIENT:
                 type: string
-                default: "liberty"
+                default: ""
               OPENSTACK_API_VERSION:
                 type: string
-                default: "2"
+                default: "3"
               OPENSTACK_API_PROJECT_DOMAIN:
                 type: string
                 default: "default"
@@ -128,13 +183,13 @@
               # heat
               HEAT_STACK_ENVIRONMENT:
                 type: string
-                default: "tcpisek"
+                default: "devcloud"
               HEAT_STACK_ZONE:
                 type: string
-                default: "workshop-sunnyvale"
+                default: "mcp-mk"
               HEAT_STACK_PUBLIC_NET:
                 type: string
-                default: "mirantis-private"
+                default: "public"
 
               # k8s setttings
               K8S_API_SERVER:
@@ -144,7 +199,7 @@
                 type: string
                 default: "docker-dev-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.5.1-3_1482332392819"
 
-              # Openstack settings
+              # openstack settings
               TEMPEST_IMAGE:
                 type: string
                 default: "sandbox-docker-prod-local.docker.mirantis.net/mirantis/rally_tempest:0.1"
diff --git a/jenkins/client/job/deploy/lab/mk/init.yml b/jenkins/client/job/deploy/lab/mk/init.yml
index 1ddd863..dde1fb0 100644
--- a/jenkins/client/job/deploy/lab/mk/init.yml
+++ b/jenkins/client/job/deploy/lab/mk/init.yml
@@ -62,13 +62,13 @@
               # heat
               HEAT_STACK_ENVIRONMENT:
                 type: string
-                default: "tcpisek"
+                default: "devcloud"
               HEAT_STACK_ZONE:
                 type: string
-                default: "mirantis-zone-qa"
+                default: "mcp-mk"
               HEAT_STACK_PUBLIC_NET:
                 type: string
-                default: "mirantis-private"
+                default: "public"
 
               # salt master
               SALT_MASTER_CREDENTIALS:
@@ -81,19 +81,19 @@
               # openstack api
               OPENSTACK_API_URL:
                 type: string
-                default: "https://vpc.tcpisek.cz:5000"
+                default: "https://cloud-cz.bud.mirantis.net:5000"
               OPENSTACK_API_CREDENTIALS:
                 type: string
-                default: "openstack-qa-credentials"
+                default: "openstack-devcloud-credentials"
               OPENSTACK_API_PROJECT:
                 type: string
-                default: "mirantis_mk20_qa"
+                default: "mcp-mk"
               OPENSTACK_API_CLIENT:
                 type: string
-                default: "liberty"
+                default: ""
               OPENSTACK_API_VERSION:
                 type: string
-                default: "2"
+                default: "3"
               OPENSTACK_API_PROJECT_DOMAIN:
                 type: string
                 default: "default"
diff --git a/jenkins/client/job/deploy/lab/mk/virtual.yml b/jenkins/client/job/deploy/lab/mk/virtual.yml
index e615408..4e1fd97 100644
--- a/jenkins/client/job/deploy/lab/mk/virtual.yml
+++ b/jenkins/client/job/deploy/lab/mk/virtual.yml
@@ -92,3 +92,15 @@
         test: k8s
         timer: "H H(0-6) * * *"
         extra_formulas: ""
+      - lab: virtual_mcp11_contrail_nfv
+        install: core,openstack,contrail
+        stack_type: heat
+        test: openstack
+        timer: "H H(0-6) * * *"
+        extra_formulas: ""
+      - lab: virtual_mcp11_ovs_dpdk
+        install: core,openstack,ovs
+        stack_type: heat
+        test: openstack
+        timer: "H H(0-6) * * *"
+        extra_formulas: ""
diff --git a/jenkins/client/job/deploy/update/init.yml b/jenkins/client/job/deploy/update/init.yml
index ba3383a..4eadda5 100644
--- a/jenkins/client/job/deploy/update/init.yml
+++ b/jenkins/client/job/deploy/update/init.yml
@@ -4,4 +4,6 @@
   - system.jenkins.client.job.deploy.update.saltenv
   - system.jenkins.client.job.deploy.update.upgrade
   - system.jenkins.client.job.deploy.update.upgrade_compute
-  - system.jenkins.client.job.deploy.update.restore_mysql
\ No newline at end of file
+  - system.jenkins.client.job.deploy.update.restore_mysql
+  - system.jenkins.client.job.deploy.update.restore_cassandra
+  - system.jenkins.client.job.deploy.update.restore_zookeeper
\ No newline at end of file
diff --git a/jenkins/client/job/deploy/update/restore_cassandra.yml b/jenkins/client/job/deploy/update/restore_cassandra.yml
new file mode 100644
index 0000000..7f53f80
--- /dev/null
+++ b/jenkins/client/job/deploy/update/restore_cassandra.yml
@@ -0,0 +1,25 @@
+#
+# Jobs to update packages on given Salt master environment
+#
+parameters:
+  _param:
+    jenkins_salt_api_url: "http://${_param:salt_master_host}:6969"
+  jenkins:
+    client:
+      job:
+        deploy-cassandra-db-restore:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Cassandra - restore db"
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: restore-cassandra.groovy
+          param:
+            SALT_MASTER_URL:
+              type: string
+              default: "${_param:jenkins_salt_api_url}"
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt"
diff --git a/jenkins/client/job/deploy/update/restore_zookeeper.yml b/jenkins/client/job/deploy/update/restore_zookeeper.yml
new file mode 100644
index 0000000..f33607a
--- /dev/null
+++ b/jenkins/client/job/deploy/update/restore_zookeeper.yml
@@ -0,0 +1,25 @@
+#
+# Jobs to update packages on given Salt master environment
+#
+parameters:
+  _param:
+    jenkins_salt_api_url: "http://${_param:salt_master_host}:6969"
+  jenkins:
+    client:
+      job:
+        deploy-zookeeper-restore:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Zookeeper - restore"
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: restore-zookeeper.groovy
+          param:
+            SALT_MASTER_URL:
+              type: string
+              default: "${_param:jenkins_salt_api_url}"
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt"
diff --git a/jenkins/client/job/docker/cis-collectors.yml b/jenkins/client/job/docker/cis-collectors.yml
new file mode 100644
index 0000000..11d8be9
--- /dev/null
+++ b/jenkins/client/job/docker/cis-collectors.yml
@@ -0,0 +1,61 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        docker-build-images-cis-openstack:
+          name: docker-build-images-cis-openstack
+          discard:
+            build:
+              keep_num: 25
+            artifact:
+              keep_num: 25
+          type: workflow-scm
+          concurrent: false
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/oss/jenkins/pipelines"
+            credentials: "gerrit"
+            script: docker-build-image-pipeline.groovy
+          trigger:
+            gerrit:
+              project:
+                "oss/cis-collectors":
+                  branches:
+                    - master
+              skip_vote:
+                - successful
+                - failed
+                - unstable
+                - not_built
+              event:
+                patchset:
+                  - created:
+                      excludeDrafts: false
+                      excludeNoCodeChange: false
+                change:
+                  - merged
+                comment:
+                  - addedContains:
+                      commentAddedCommentContains: 'rebuild'
+          param:
+            IMAGE_NAME:
+              type: string
+              default: "cis-openstack"
+            IMAGE_TAGS:
+              type: string
+              default: ""
+            CONTEXT_PATH:
+              type: string
+              default: "openstack"
+            CREDENTIALS_ID:
+              type: string
+              default: "gerrit"
+            DOCKERFILE_PATH:
+              type: string
+              default: ""
+            DOCKER_REGISTRY:
+              type: string
+              default: "docker-dev-virtual.docker.mirantis.net"
+            PROJECT_NAMESPACE:
+              type: string
+              default: "oss"
diff --git a/jenkins/client/job/docker/devops-portal.yml b/jenkins/client/job/docker/devops-portal.yml
index 399586f..3b831d8 100644
--- a/jenkins/client/job/docker/devops-portal.yml
+++ b/jenkins/client/job/docker/devops-portal.yml
@@ -13,9 +13,9 @@
           concurrent: false
           scm:
             type: git
-            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            url: "${_param:jenkins_gerrit_url}/oss/jenkins/pipelines"
             credentials: "gerrit"
-            script: docker-build-to-jfrog.groovy
+            script: docker-build-image-pipeline.groovy
           trigger:
             gerrit:
               project:
@@ -44,12 +44,15 @@
             IMAGE_TAGS:
               type: string
               default: ""
+            CONTEXT_PATH:
+              type: string
+              default: "."
             CREDENTIALS_ID:
               type: string
               default: "gerrit"
             DOCKERFILE_PATH:
               type: string
-              default: "docker/devops-portal"
+              default: "docker/devops-portal/Dockerfile"
             DOCKER_REGISTRY:
               type: string
               default: "docker-dev-virtual.docker.mirantis.net"
diff --git a/jenkins/client/job/docker/rundeck.yml b/jenkins/client/job/docker/rundeck.yml
index 63d206f..9b116fe 100644
--- a/jenkins/client/job/docker/rundeck.yml
+++ b/jenkins/client/job/docker/rundeck.yml
@@ -13,9 +13,9 @@
           concurrent: false
           scm:
             type: git
-            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            url: "${_param:jenkins_gerrit_url}/oss/jenkins/pipelines"
             credentials: "gerrit"
-            script: docker-build-to-jfrog.groovy
+            script: docker-build-image-pipeline.groovy
           trigger:
             gerrit:
               project:
@@ -44,12 +44,15 @@
             IMAGE_TAGS:
               type: string
               default: ""
+            CONTEXT_PATH:
+              type: string
+              default: "."
             CREDENTIALS_ID:
               type: string
               default: "gerrit"
             DOCKERFILE_PATH:
               type: string
-              default: "."
+              default: ""
             DOCKER_REGISTRY:
               type: string
               default: "docker-dev-virtual.docker.mirantis.net"
diff --git a/jenkins/client/job/docker/testing.yml b/jenkins/client/job/docker/testing.yml
new file mode 100644
index 0000000..bf65dbc
--- /dev/null
+++ b/jenkins/client/job/docker/testing.yml
@@ -0,0 +1,63 @@
+parameters:
+  _param:
+    jenkins_docker_registry_url: ""
+    jenkins_docker_registry_credentials: "dockerhub"
+  jenkins:
+    client:
+      job_template:
+        docker-build-image-testing:
+          name: docker-build-image-{{name}}-{{branch}}
+          jobs:
+            - name: python-flask-hello
+              branch: "master"
+              tags: "latest"
+              dockerfile: "Dockerfile"
+          template:
+            discard:
+              build:
+                keep_num: 5
+              artifact:
+                keep_num: 5
+            type: workflow-scm
+            concurrent: true
+            scm:
+              type: git
+              url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+              credentials: "gerrit"
+              script: docker-build-image-pipeline.groovy
+            trigger:
+              reverse:
+                projects:
+                  - build-debian-python-flask-hello-ubuntu-trusty
+                state: UNSTABLE
+            param:
+              IMAGE_NAME:
+                type: string
+                default: "tcpcloud/{{name}}"
+              IMAGE_GIT_URL:
+                type: string
+                default: "${_param:jenkins_gerrit_url}/mk/python-flask-hello"
+              IMAGE_BUILD_PARAMS:
+                type: string
+                default: "--build-arg apt_repository='deb [arch=amd64] ${_param:jenkins_aptly_url}/trusty/ nightly extra' --build-arg apt_key_url=${_param:jenkins_aptly_url}/public.gpg --no-cache"
+              IMAGE_BRANCH:
+                type: string
+                default: "{{branch}}"
+              IMAGE_CREDENTIALS_ID:
+                type: string
+                default: "gerrit"
+              IMAGE_TAGS:
+                type: string
+                default: "{{tags}}"
+              DOCKERFILE_PATH:
+                type: string
+                default: "{{dockerfile}}"
+              REGISTRY_URL:
+                type: string
+                default: "${_param:jenkins_docker_registry_url}"
+              REGISTRY_CREDENTIALS_ID:
+                type: string
+                default: "${_param:jenkins_docker_registry_credentials}"
+              DOCKER_GIT_TAG:
+                type: boolean
+                default: "true"
diff --git a/jenkins/client/job/gating.yml b/jenkins/client/job/gating.yml
index 6b6d620..d0f2149 100644
--- a/jenkins/client/job/gating.yml
+++ b/jenkins/client/job/gating.yml
@@ -48,7 +48,6 @@
                   - failed
                   - unstable
                   - not_built
-                silent_start_mode: "true"
                 event:
                   comment:
                     - added:
diff --git a/jenkins/client/job/git-mirrors/downstream/docker_images.yml b/jenkins/client/job/git-mirrors/downstream/docker_images.yml
index 2471280..ff1c649 100644
--- a/jenkins/client/job/git-mirrors/downstream/docker_images.yml
+++ b/jenkins/client/job/git-mirrors/downstream/docker_images.yml
@@ -6,4 +6,8 @@
       - name: docker-aptly
         downstream: mk/docker-aptly
         upstream: "https://github.com/tcpcloud/docker-aptly"
-        branches: master
\ No newline at end of file
+        branches: master
+      - name: python-flask-hello
+        downstream: mk/python-flask-hello
+        upstream: "https://github.com/tcpcloud/python-flask-hello"
+        branches: master
diff --git a/jenkins/client/job/git-mirrors/upstream/oss.yml b/jenkins/client/job/git-mirrors/upstream/oss.yml
new file mode 100644
index 0000000..af3f816
--- /dev/null
+++ b/jenkins/client/job/git-mirrors/upstream/oss.yml
@@ -0,0 +1,9 @@
+classes:
+  - system.jenkins.client.job.git-mirrors.upstream
+parameters:
+  _param:
+    jenkins_git_mirror_upstream_jobs:
+      - name: rundeck-cis-jobs
+        downstream: oss/rundeck-cis-jobs
+        upstream: "git@github.com:Mirantis/rundeck-cis-jobs"
+        branches: master
diff --git a/jenkins/client/job/image/centos.yml b/jenkins/client/job/image/centos.yml
index 6f3484b..2524163 100644
--- a/jenkins/client/job/image/centos.yml
+++ b/jenkins/client/job/image/centos.yml
@@ -56,13 +56,13 @@
               default: "qcow2"
             GLANCE_URL:
               type: string
-              default: "https://vpc.tcpisek.cz:5000"
+              default: "https://cloud-cz.bud.mirantis.net:5000"
             GLANCE_CREDENTIALS_ID:
               type: string
-              default: "openstack-qa-credentials"
+              default: "openstack-devcloud-credentials"
             GLANCE_PROJECT:
               type: string
-              default: "mirantis_mk20_qa"
+              default: "mcp-mk"
             GLANCE_ARGS:
               type: string
               default: ""
@@ -71,4 +71,4 @@
               default: "true"
             OPENSTACK_API_CLIENT:
               type: string
-              default: "liberty"
+              default: ""
diff --git a/jenkins/client/job/image/debian.yml b/jenkins/client/job/image/debian.yml
index 3efc6b5..2c92f80 100644
--- a/jenkins/client/job/image/debian.yml
+++ b/jenkins/client/job/image/debian.yml
@@ -56,13 +56,13 @@
               default: "qcow2"
             GLANCE_URL:
               type: string
-              default: "https://vpc.tcpisek.cz:5000"
+              default: "https://cloud-cz.bud.mirantis.net:5000"
             GLANCE_CREDENTIALS_ID:
               type: string
-              default: "openstack-qa-credentials"
+              default: "openstack-devcloud-credentials"
             GLANCE_PROJECT:
               type: string
-              default: "mirantis_mk20_qa"
+              default: "mcp-mk"
             GLANCE_ARGS:
               type: string
               default: ""
@@ -71,4 +71,4 @@
               default: "true"
             OPENSTACK_API_CLIENT:
               type: string
-              default: "liberty"
+              default: ""
diff --git a/jenkins/client/job/image/ubuntu.yml b/jenkins/client/job/image/ubuntu.yml
index 63195fe..350d2d7 100644
--- a/jenkins/client/job/image/ubuntu.yml
+++ b/jenkins/client/job/image/ubuntu.yml
@@ -63,13 +63,13 @@
               default: "qcow2"
             GLANCE_URL:
               type: string
-              default: "https://vpc.tcpisek.cz:5000"
+              default: "https://cloud-cz.bud.mirantis.net:5000"
             GLANCE_CREDENTIALS_ID:
               type: string
-              default: "openstack-qa-credentials"
+              default: "openstack-devcloud-credentials"
             GLANCE_PROJECT:
               type: string
-              default: "mirantis_mk20_qa"
+              default: "mcp-mk"
             GLANCE_ARGS:
               type: string
               default: ""
@@ -78,7 +78,7 @@
               default: "true"
             OPENSTACK_API_CLIENT:
               type: string
-              default: "liberty"
+              default: ""
         build-image-ubuntu-16-04:
           type: workflow-scm
           concurrent: false
@@ -129,13 +129,13 @@
               default: "qcow2"
             GLANCE_URL:
               type: string
-              default: "https://vpc.tcpisek.cz:5000"
+              default: "https://cloud-cz.bud.mirantis.net:5000"
             GLANCE_CREDENTIALS_ID:
               type: string
-              default: "openstack-qa-credentials"
+              default: "openstack-devcloud-credentials"
             GLANCE_PROJECT:
               type: string
-              default: "mirantis_mk20_qa"
+              default: "mcp-mk"
             GLANCE_ARGS:
               type: string
               default: ""
@@ -144,4 +144,4 @@
               default: "true"
             OPENSTACK_API_CLIENT:
               type: string
-              default: "liberty"
+              default: ""
diff --git a/jenkins/client/job/opencontrail/build/test.yml b/jenkins/client/job/opencontrail/build/test.yml
index 9b66e60..655b9f8 100644
--- a/jenkins/client/job/opencontrail/build/test.yml
+++ b/jenkins/client/job/opencontrail/build/test.yml
@@ -63,11 +63,8 @@
                       - "{{branch}}"
                 event:
                  comment:
-                    - added:
-                        verdictCategory: 'Code-Review'
-                        commentAddedTriggerApprovalValue: '+1'
                     - addedContains:
-                        commentAddedCommentContains: '(recheck|reverify)'
+                        commentAddedCommentContains: '^(?s:Patch Set \d+:.*(test|recheck|reverify)\s*)$'
             param:
               TEST_MODELS:
                 type: string
diff --git a/jenkins/client/job/opencontrail/init.yml b/jenkins/client/job/opencontrail/init.yml
index 85ca57b..dad3c3a 100644
--- a/jenkins/client/job/opencontrail/init.yml
+++ b/jenkins/client/job/opencontrail/init.yml
@@ -8,7 +8,7 @@
     contrail_dpdk_extra_branches: "mitaka,kilo,liberty-multiqueue,newton"
     contrail_ceilometer_plugin_branches: "master,R4.0"
     contrail_kubernetes_branches: "master,origin-1.1,origin-1.1.3,release-1.1,release-1.2"
-    contrail_dpdk_branches: "master,R3.0.2.x,R3.0.3.x,R3.1,R3.1.1.x,R3.2,R3.2.3.x,R4.0,contrail_dpdk_17_02,contrail_dpdk_1_7,contrail_dpdk_2_0,contrail_dpdk_2_1"
+    contrail_dpdk_branches: "master,R3.0.2.x,R3.0.3.x,R3.1,R3.1.1.x,R3.2,R3.2.3.x,R4.0,contrail_dpdk_17_02,contrail_dpdk_17_05,contrail_dpdk_1_7,contrail_dpdk_2_0,contrail_dpdk_2_1"
   jenkins:
     client:
       view:
diff --git a/jenkins/client/job/oss/test_security_monkey_openstack.yml b/jenkins/client/job/oss/test_security_monkey_openstack.yml
new file mode 100644
index 0000000..7e9343f
--- /dev/null
+++ b/jenkins/client/job/oss/test_security_monkey_openstack.yml
@@ -0,0 +1,43 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        test-oss-security-monkey-openstack:
+          name: test-oss-security-monkey-openstack
+          discard:
+            build:
+              keep_num: 15
+            artifact:
+              keep_num: 15
+          type: workflow-scm
+          concurrent: true
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/oss/jenkins/pipelines"
+            credentials: "gerrit"
+            script: test-security-monkey-openstack-pipeline.groovy
+          trigger:
+            gerrit:
+              project:
+                "oss/security-monkey-openstack":
+                  branches:
+                    - master
+              event:
+                patchset:
+                  - created:
+                      excludeDrafts: false
+                      excludeTrivialRebase: false
+                      excludeNoCodeChange: false
+                comment:
+                  - addedContains:
+                      commentAddedCommentContains: '(recheck|reverify)'
+          param:
+            CREDENTIALS_ID:
+              type: string
+              default: "gerrit"
+            DEFAULT_GIT_URL:
+              type: string
+              default: "${_param:jenkins_gerrit_url}/oss/security-monkey-openstack"
+            DEFAULT_GIT_REF:
+              type: string
+              default: master
diff --git a/jenkins/client/job/salt-formulas/git-mirrors/2way.yml b/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
index a170ba9..01c3baf 100644
--- a/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
+++ b/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
@@ -8,111 +8,219 @@
           name: git-mirror-2way-salt-formula-{{name}}
           jobs:
             - name: aodh
+              branches: ${_param:salt_formulas_branches}
             - name: apache
+              branches: ${_param:salt_formulas_branches}
             - name: aptcacher
+              branches: ${_param:salt_formulas_branches}
             - name: aptly
+              branches: ${_param:salt_formulas_branches}
             - name: artifactory
+              branches: ${_param:salt_formulas_branches}
             - name: backupninja
+              branches: ${_param:salt_formulas_branches}
             - name: avinetworks
+              branches: ${_param:salt_formulas_branches}
             - name: billometer
+              branches: ${_param:salt_formulas_branches}
             - name: bind
+              branches: ${_param:salt_formulas_branches}
             - name: bird
+              branches: ${_param:salt_formulas_branches}
             - name: cadf
+              branches: ${_param:salt_formulas_branches}
             - name: calico
+              branches: ${_param:salt_formulas_branches}
             - name: cassandra
+              branches: ${_param:salt_formulas_branches}
             - name: ccp
+              branches: ${_param:salt_formulas_branches}
             - name: ceilometer
+              branches: ${_param:salt_formulas_extra_branches}
             - name: ceph
+              branches: ${_param:salt_formulas_branches}
             - name: chrony
+              branches: ${_param:salt_formulas_branches}
             - name: cinder
+              branches: ${_param:salt_formulas_extra_branches}
             - name: collectd
+              branches: ${_param:salt_formulas_branches}
             - name: dekapod
+              branches: ${_param:salt_formulas_branches}
             - name: devops-portal
+              branches: ${_param:salt_formulas_branches}
             - name: docker
+              branches: ${_param:salt_formulas_branches}
             - name: dovecot
+              branches: ${_param:salt_formulas_branches}
             - name: elasticsearch
+              branches: ${_param:salt_formulas_branches}
             - name: etcd
+              branches: ${_param:salt_formulas_branches}
             - name: foreman
+              branches: ${_param:salt_formulas_branches}
             - name: freeipa
+              branches: ${_param:salt_formulas_branches}
             - name: galera
+              branches: ${_param:salt_formulas_branches}
             - name: gerrit
+              branches: ${_param:salt_formulas_branches}
             - name: git
+              branches: ${_param:salt_formulas_branches}
             - name: gitlab
+              branches: ${_param:salt_formulas_branches}
             - name: glance
+              branches: ${_param:salt_formulas_extra_branches}
             - name: glusterfs
+              branches: ${_param:salt_formulas_branches}
             - name: gnocchi
+              branches: ${_param:salt_formulas_branches}
             - name: grafana
+              branches: ${_param:salt_formulas_branches}
             - name: graphite
+              branches: ${_param:salt_formulas_branches}
             - name: haproxy
+              branches: ${_param:salt_formulas_branches}
             - name: heat
+              branches: ${_param:salt_formulas_extra_branches}
             - name: heka
+              branches: ${_param:salt_formulas_branches}
             - name: horizon
+              branches: ${_param:salt_formulas_extra_branches}
             - name: influxdb
+              branches: ${_param:salt_formulas_branches}
             - name: iptables
+              branches: ${_param:salt_formulas_branches}
             - name: ironic
+              branches: ${_param:salt_formulas_branches}
             - name: isc-dhcp
+              branches: ${_param:salt_formulas_branches}
             - name: java
+              branches: ${_param:salt_formulas_branches}
             - name: jenkins
+              branches: ${_param:salt_formulas_branches}
             - name: kedb
+              branches: ${_param:salt_formulas_branches}
             - name: keepalived
+              branches: ${_param:salt_formulas_branches}
             - name: keystone
+              branches: ${_param:salt_formulas_extra_branches}
             - name: kibana
+              branches: ${_param:salt_formulas_branches}
             - name: kubernetes
+              branches: ${_param:salt_formulas_extra_branches}
             - name: letsencrypt
+              branches: ${_param:salt_formulas_branches}
             - name: libvirt
+              branches: ${_param:salt_formulas_branches}
             - name: linux
+              branches: ${_param:salt_formulas_branches}
             - name: lldp
+              branches: ${_param:salt_formulas_branches}
             - name: logrotate
+              branches: ${_param:salt_formulas_branches}
             - name: maas
+              branches: ${_param:salt_formulas_branches}
             - name: magnum
+              branches: ${_param:salt_formulas_branches}
             - name: memcached
+              branches: ${_param:salt_formulas_branches}
             - name: midonet
+              branches: ${_param:salt_formulas_branches}
             - name: monasca
+              branches: ${_param:salt_formulas_branches}
             - name: mongodb
+              branches: ${_param:salt_formulas_branches}
             - name: murano
+              branches: ${_param:salt_formulas_branches}
             - name: mysql
+              branches: ${_param:salt_formulas_branches}
             - name: nagios
+              branches: ${_param:salt_formulas_branches}
             - name: network
+              branches: ${_param:salt_formulas_branches}
             - name: neutron
+              branches: ${_param:salt_formulas_extra_branches}
             - name: nfs
+              branches: ${_param:salt_formulas_branches}
             - name: nginx
+              branches: ${_param:salt_formulas_branches}
             - name: nodejs
+              branches: ${_param:salt_formulas_branches}
             - name: nova
+              branches: ${_param:salt_formulas_extra_branches}
             - name: ntp
+              branches: ${_param:salt_formulas_branches}
             - name: octavia
+              branches: ${_param:salt_formulas_branches}
             - name: opencontrail
+              branches: ${_param:salt_formulas_branches}
             - name: openldap
+              branches: ${_param:salt_formulas_branches}
             - name: openssh
+              branches: ${_param:salt_formulas_branches}
             - name: openvpn
+              branches: ${_param:salt_formulas_branches}
             - name: openvstorage
+              branches: ${_param:salt_formulas_branches}
             - name: owncloud
+              branches: ${_param:salt_formulas_branches}
             - name: panko
+              branches: ${_param:salt_formulas_branches}
             - name: postfix
+              branches: ${_param:salt_formulas_branches}
             - name: postgresql
+              branches: ${_param:salt_formulas_branches}
             - name: powerdns
+              branches: ${_param:salt_formulas_branches}
             - name: pritunl
+              branches: ${_param:salt_formulas_branches}
             - name: prometheus
+              branches: ${_param:salt_formulas_branches}
             - name: python
+              branches: ${_param:salt_formulas_branches}
             - name: rabbitmq
+              branches: ${_param:salt_formulas_branches}
             - name: reclass
+              branches: ${_param:salt_formulas_branches}
             - name: redis
+              branches: ${_param:salt_formulas_branches}
             - name: roundcube
+              branches: ${_param:salt_formulas_branches}
             - name: rsync
+              branches: ${_param:salt_formulas_branches}
             - name: rsyslog
+              branches: ${_param:salt_formulas_branches}
+            - name: rundeck
+              branches: ${_param:salt_formulas_branches}
             - name: sahara
+              branches: ${_param:salt_formulas_branches}
             - name: salt
+              branches: ${_param:salt_formulas_branches}
             - name: sensu
+              branches: ${_param:salt_formulas_branches}
             - name: sentry
+              branches: ${_param:salt_formulas_branches}
             - name: sphinx
+              branches: ${_param:salt_formulas_branches}
             - name: spinnaker
+              branches: ${_param:salt_formulas_branches}
             - name: statsd
+              branches: ${_param:salt_formulas_branches}
             - name: supervisor
+              branches: ${_param:salt_formulas_branches}
             - name: swift
+              branches: ${_param:salt_formulas_extra_branches}
             - name: taiga
+              branches: ${_param:salt_formulas_branches}
             - name: telegraf
+              branches: ${_param:salt_formulas_branches}
             - name: varnish
+              branches: ${_param:salt_formulas_branches}
             - name: xtrabackup
+              branches: ${_param:salt_formulas_branches}
             - name: zookeeper
+              branches: ${_param:salt_formulas_branches}
           template:
             discard:
               build:
@@ -144,4 +252,4 @@
                 default: "gerrit"
               BRANCHES:
                 type: string
-                default: ${_param:salt_formulas_branches}
+                default: "{{branches}}"
diff --git a/jenkins/client/job/salt-formulas/git-mirrors/init.yml b/jenkins/client/job/salt-formulas/git-mirrors/init.yml
index 9b1d77d..b46aebc 100644
--- a/jenkins/client/job/salt-formulas/git-mirrors/init.yml
+++ b/jenkins/client/job/salt-formulas/git-mirrors/init.yml
@@ -2,4 +2,5 @@
   - system.jenkins.client.job.salt-formulas.git-mirrors.2way
 parameters:
   _param:
-    salt_formulas_branches: master
+    salt_formulas_branches: "master"
+    salt_formulas_extra_branches: "master,debian/xenial,debian/trusty"
diff --git a/jenkins/client/job/salt-formulas/tests.yml b/jenkins/client/job/salt-formulas/tests.yml
index 60f4f3f..15eff13 100644
--- a/jenkins/client/job/salt-formulas/tests.yml
+++ b/jenkins/client/job/salt-formulas/tests.yml
@@ -45,6 +45,7 @@
             - name: haproxy
             - name: heat
             - name: heka
+            - name: helm
             - name: horizon
             - name: influxdb
             - name: iptables
@@ -135,11 +136,8 @@
                       - master
                 event:
                   comment:
-                    - added:
-                        verdictCategory: 'Code-Review'
-                        commentAddedTriggerApprovalValue: '+1'
                     - addedContains:
-                        commentAddedCommentContains: '(recheck|reverify)'
+                        commentAddedCommentContains: '^(?s:Patch Set \d+:.*(test|recheck|reverify)\s*)$'
             param:
               SALT_VERSION:
                 type: string
diff --git a/jenkins/client/job/salt-models/tests.yml b/jenkins/client/job/salt-models/tests.yml
index dadd255..e59ae6a 100644
--- a/jenkins/client/job/salt-models/tests.yml
+++ b/jenkins/client/job/salt-models/tests.yml
@@ -23,11 +23,8 @@
                         name: "{{branch}}"
                 event:
                   comment:
-                    - added:
-                        verdictCategory: 'Code-Review'
-                        commentAddedTriggerApprovalValue: '+1'
                     - addedContains:
-                        commentAddedCommentContains: '(recheck|reverify)'
+                        commentAddedCommentContains: '^(?s:Patch Set \d+:.*(test|recheck|reverify)\s*)$'
             param:
               SALT_OPTS:
                 type: string
@@ -49,6 +46,18 @@
               EXTRA_FORMULAS:
                 type: string
                 default: "{{extra_formulas}}"
+              FORMULAS_SOURCE:
+                type: string
+                default: "{{formulas_src}}"
+              FORMULAS_REVISION:
+                type: string
+                default: "{{formulas_revision}}"
+              SYSTEM_GIT_URL:
+                type: string
+                default: ""
+              SYSTEM_GIT_REF:
+                type: string
+                default: ""
         test_system_reclass:
           name: test-salt-model-{{name}}
           template:
@@ -102,11 +111,8 @@
                       - master
                 event:
                   comment:
-                    - added:
-                        verdictCategory: 'CodeReview'
-                        commentAddedTriggerApprovalValue: '+1'
                     - addedContains:
-                        commentAddedCommentContains: '(recheck|reverify)'
+                        commentAddedCommentContains: '^(?s:Patch Set \d+:.*(test|recheck|reverify)\s*)$'
             param:
               COOKIECUTTER_TEMPLATE_URL:
                 type: string
@@ -129,3 +135,46 @@
               EXTRA_FORMULAS:
                 type: string
                 default: "xtrabackup"
+      job:
+        test-salt-model-node:
+          name: test-salt-model-node
+          discard:
+            build:
+              keep_num: 500
+            artifact:
+              keep_num: 10
+          type: workflow-scm
+          concurrent: true
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: test-salt-model-node.groovy
+          param:
+            NODE_TARGET:
+              type: string
+              default: ""
+            DEFAULT_GIT_URL:
+              type: string
+              default: "${_param:jenkins_gerrit_url}/salt-models/{{name}}"
+            DEFAULT_GIT_REF:
+              type: string
+              default: master
+            CREDENTIALS_ID:
+              type: string
+              default: "gerrit"
+            EXTRA_FORMULAS:
+              type: string
+              default: ""
+            FORMULAS_SOURCE:
+              type: string
+              default: "pkg"
+            FORMULAS_REVISION:
+              type: string
+              default: "stable"
+            SYSTEM_GIT_URL:
+              type: string
+              default: ""
+            SYSTEM_GIT_REF:
+              type: string
+              default: ""
\ No newline at end of file
diff --git a/jenkins/client/job/test_devops_portal.yml b/jenkins/client/job/test_devops_portal.yml
index abe2a36..4007010 100644
--- a/jenkins/client/job/test_devops_portal.yml
+++ b/jenkins/client/job/test_devops_portal.yml
@@ -6,16 +6,16 @@
           name: test-oss-devops-portal
           discard:
             build:
-              keep_num: 10
+              keep_num: 15
             artifact:
-              keep_num: 10
+              keep_num: 15
           type: workflow-scm
           concurrent: true
           scm:
             type: git
-            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            url: "${_param:jenkins_gerrit_url}/oss/jenkins/pipelines"
             credentials: "gerrit"
-            script: test-nodejs-pipeline.groovy
+            script: test-devops-portal-pipeline.groovy
           trigger:
             gerrit:
               project:
@@ -32,21 +32,9 @@
                   - addedContains:
                       commentAddedCommentContains: '(recheck|reverify)'
           param:
-            COMPOSE_PATH:
-              type: string
-              default: "docker/stack/docker-compose.yml"
             CREDENTIALS_ID:
               type: string
               default: "gerrit"
-            JSON_CONFIG:
-              type: string
-              default: '{"services": {"elasticsearch": {"endpoint": "http://elasticsearch:9200"}}}'
-            COMMANDS:
-              type: text
-              default: |
-                npm run lint
-                npm run test:unit
-                npm run test:functional
             DEFAULT_GIT_URL:
                 type: string
                 default: "${_param:jenkins_gerrit_url}/oss/devops-portal"
diff --git a/jenkins/slave/docker.yml b/jenkins/slave/docker.yml
index ddf997b..ea3639b 100644
--- a/jenkins/slave/docker.yml
+++ b/jenkins/slave/docker.yml
@@ -15,13 +15,4 @@
             hosts:
             - ALL
             commands:
-            - /usr/bin/docker
-  docker:
-    client:
-      network:
-        docker_gwbridge:
-          subnet: 10.20.0.0/16
-          opt:
-            com.docker.network.bridge.name: docker_gwbridge
-            com.docker.network.bridge.enable_icc: false
-            com.docker.network.bridge.enable_ip_masquerade: true
\ No newline at end of file
+            - /usr/bin/docker
\ No newline at end of file
diff --git a/keystone/client/core.yml b/keystone/client/core.yml
index 0614f40..39d28de 100644
--- a/keystone/client/core.yml
+++ b/keystone/client/core.yml
@@ -29,4 +29,12 @@
                   is_admin: true
                   password: ${_param:keystone_admin_password}
                   email: ${_param:admin_email}
-
+        admin_identity:
+          admin:
+            user: admin
+            password: ${_param:keystone_admin_password}
+            project: admin
+            host: ${_param:keystone_service_host}
+            port: 5000
+            region_name: ${_param:openstack_region}
+            use_keystoneauth: true
diff --git a/keystone/client/image_manager.yml b/keystone/client/image_manager.yml
new file mode 100644
index 0000000..024b0c4
--- /dev/null
+++ b/keystone/client/image_manager.yml
@@ -0,0 +1,23 @@
+parameters:
+  _param:
+    keystone_image_manager_email: 'root@localhost'
+  keystone:
+    client:
+      enabled: true
+      server:
+        identity:
+          admin:
+            host: ${_param:keystone_service_host}
+            port: 35357
+            token: ${_param:keystone_service_token}
+          roles:
+          - image_manager
+          project:
+            admin:
+              user:
+                image_manager:
+                  is_admin: false
+                  password: ${_param:keystone_image_manager_password}
+                  email: ${_param:keystone_image_manager_email}
+                  roles:
+                  - image_manager
diff --git a/keystone/client/service/barbican.yml b/keystone/client/service/barbican.yml
new file mode 100644
index 0000000..f83e6ab
--- /dev/null
+++ b/keystone/client/service/barbican.yml
@@ -0,0 +1,30 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                barbican:
+                  is_admin: true
+                  password: ${_param:keystone_barbican_password}
+                  email: ${_param:admin_email}
+          service:
+            barbican:
+              type: key-manager
+              description: OpenStack Key-Manager Service
+              endpoints:
+              - region: ${_param:openstack_region}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
+                public_port: 9311
+                public_path: '/'
+                internal_address: ${_param:barbican_service_host}
+                internal_port: 9311
+                internal_path: '/'
+                admin_address: ${_param:barbican_service_host}
+                admin_port: 9311
+                admin_path: '/'
diff --git a/keystone/client/service/congress.yml b/keystone/client/service/congress.yml
new file mode 100644
index 0000000..529d3ee
--- /dev/null
+++ b/keystone/client/service/congress.yml
@@ -0,0 +1,30 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                congress:
+                  is_admin: true
+                  password: ${_param:keystone_congress_password}
+                  email: ${_param:admin_email}
+          service:
+            congress:
+              type: policy
+              description: Congress service
+              endpoints:
+              - region: ${_param:openstack_region}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
+                public_port: 1789
+                public_path: '/'
+                internal_address: ${_param:congress_service_host}
+                internal_port: 1789
+                internal_path: '/'
+                admin_address: ${_param:congress_service_host}
+                admin_port: 1789
+                admin_path: '/'
diff --git a/keystone/client/service/ironic.yml b/keystone/client/service/ironic.yml
index 7635e2c..1ab9872 100644
--- a/keystone/client/service/ironic.yml
+++ b/keystone/client/service/ironic.yml
@@ -28,3 +28,11 @@
                 admin_address: ${_param:ironic_service_host}
                 admin_port: 6385
                 admin_path: ''
+        admin_identity:
+          admin:
+            user: admin
+            password: ${_param:keystone_admin_password}
+            project: admin
+            host: ${_param:keystone_service_host}
+            port: 5000
+            region_name: ${_param:openstack_region}
diff --git a/keystone/client/service/keystone3.yml b/keystone/client/service/keystone3.yml
index cc385f2..bd0c63b 100644
--- a/keystone/client/service/keystone3.yml
+++ b/keystone/client/service/keystone3.yml
@@ -20,4 +20,4 @@
                 internal_path: '/v3'
                 admin_address: ${_param:keystone_service_host}
                 admin_port: 35357
-                admin_path: '/v3'
+                admin_path: '/v2.0'
diff --git a/keystone/client/service/octavia.yml b/keystone/client/service/octavia.yml
new file mode 100644
index 0000000..4e14217
--- /dev/null
+++ b/keystone/client/service/octavia.yml
@@ -0,0 +1,38 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                octavia:
+                  is_admin: true
+                  password: ${_param:keystone_octavia_password}
+                  email: ${_param:admin_email}
+          service:
+            octavia:
+              type: octavia
+              description: OpenStack Loadbalancing Service
+              endpoints:
+              - region: ${_param:openstack_region}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
+                public_port: 9876
+                public_path: '/'
+                internal_address: ${_param:octavia_service_host}
+                internal_port: 9876
+                internal_path: '/'
+                admin_address: ${_param:octavia_service_host}
+                admin_port: 9876
+                admin_path: '/'
+        octavia_identity:
+          admin:
+            user: octavia
+            password: ${_param:keystone_octavia_password}
+            project: service
+            host: ${_param:keystone_service_host}
+            port: 5000
+            region_name: ${_param:openstack_region}
diff --git a/keystone/client/single.yml b/keystone/client/single.yml
index 6d7a4c6..0c70390 100644
--- a/keystone/client/single.yml
+++ b/keystone/client/single.yml
@@ -38,3 +38,12 @@
                   is_admin: true
                   password: ${_param:keystone_admin_password}
                   email: ${_param:admin_email}
+        admin_identity:
+          admin:
+            user: admin
+            password: ${_param:keystone_admin_password}
+            project: admin
+            host: ${_param:keystone_service_host}
+            port: 5000
+            region_name: ${_param:openstack_region}
+            use_keystoneauth: true
diff --git a/kubernetes/control/flask_hello.yml b/kubernetes/control/flask_hello.yml
new file mode 100644
index 0000000..f7b41e5
--- /dev/null
+++ b/kubernetes/control/flask_hello.yml
@@ -0,0 +1,26 @@
+classes:
+  - system.kubernetes.control
+parameters:
+  kubernetes:
+    control:
+      service:
+        flask-hello:
+          enabled: true
+          service: flask-hello
+          namespace: default
+          cluster: flask-hello
+          role: server
+          type: LoadBalancer
+          replicas: 1
+          kind: Deployment
+          apiVersion: extensions/v1beta1
+          ports:
+            - port: 5000
+              name: flask-hello
+          container:
+            flask-hello:
+              image: ${_param:cicd_control_address}:5000/tcpcloud/python-flask-hello
+              image_pull_policy: Always
+              ports:
+              - port: 5000
+                name: flask-hello
diff --git a/kubernetes/control/init.yml b/kubernetes/control/init.yml
new file mode 100644
index 0000000..6e5fb40
--- /dev/null
+++ b/kubernetes/control/init.yml
@@ -0,0 +1,2 @@
+classes:
+  - service.kubernetes.control.cluster
diff --git a/kubernetes/master/cluster.yml b/kubernetes/master/cluster.yml
index ab283d0..f21f003 100644
--- a/kubernetes/master/cluster.yml
+++ b/kubernetes/master/cluster.yml
@@ -4,6 +4,9 @@
 - service.haproxy.proxy.single
 - system.haproxy.proxy.listen.kubernetes.apiserver
 parameters:
+  _param:
+    kubernetes_netchecker_agent_image: quay.io/l23network/k8s-netchecker-agent:v1.0
+    kubernetes_netchecker_server_image: quay.io/l23network/k8s-netchecker-server:v1.0
   kubernetes:
     master:
       container: false
diff --git a/kubernetes/master/single.yml b/kubernetes/master/single.yml
index 5f0dfdc..cc8d8ab 100644
--- a/kubernetes/master/single.yml
+++ b/kubernetes/master/single.yml
@@ -1,8 +1,11 @@
 classes:
 - service.kubernetes.master.single
 parameters:
+  _param:
+    kubernetes_netchecker_agent_image: quay.io/l23network/k8s-netchecker-agent:v1.0
+    kubernetes_netchecker_server_image: quay.io/l23network/k8s-netchecker-server:v1.0
   kubernetes:
     master:
       container: false
       network:
-        engine: calico
\ No newline at end of file
+        engine: calico
diff --git a/kubernetes/pool/cluster.yml b/kubernetes/pool/cluster.yml
index 8295d97..05aa1bc 100644
--- a/kubernetes/pool/cluster.yml
+++ b/kubernetes/pool/cluster.yml
@@ -2,6 +2,15 @@
 - service.kubernetes.pool.cluster
 - service.docker.host
 parameters:
+  _param:
+    # component docker images
+    kubernetes_calicoctl_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/ctl:latest
+    kubernetes_calico_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/node:latest
+    kubernetes_calico_cni_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/cni:latest
+    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.6.2-2
+    kubernetes_contrail_cni_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/contrail-integration/contrail-cni:v1.0.0
+    kubernetes_contrail_network_controller_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/contrail-integration/contrail-network-controller:v1.0.0
+
   kubernetes:
     pool:
       container: false
diff --git a/kubernetes/pool/single.yml b/kubernetes/pool/single.yml
index 68e3844..9be2164 100644
--- a/kubernetes/pool/single.yml
+++ b/kubernetes/pool/single.yml
@@ -2,8 +2,17 @@
 - service.kubernetes.pool.single
 - service.docker.host
 parameters:
+  _param:
+    # component docker images
+    kubernetes_calicoctl_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/ctl:latest
+    kubernetes_calico_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/node:latest
+    kubernetes_calico_cni_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/cni:latest
+    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.6.2-2
+    kubernetes_contrail_cni_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/contrail-integration/contrail-cni:v1.0.0
+    kubernetes_contrail_network_controller_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/contrail-integration/contrail-network-controller:v1.0.0
+
   kubernetes:
     pool:
       container: false
       network:
-        engine: calico
\ No newline at end of file
+        engine: calico
diff --git a/linux/system/repo/saltstack/rhel.yml b/linux/system/repo/saltstack/rhel.yml
new file mode 100644
index 0000000..b0f28f3
--- /dev/null
+++ b/linux/system/repo/saltstack/rhel.yml
@@ -0,0 +1,14 @@
+parameters:
+  _param:
+    salt_version: 2016.3
+    rhel_releasever: 7
+    rhel_basearch: x86_64
+  linux:
+    system:
+      repo:
+        salt:
+          humanname: "SaltStack repo for RHEL/CentOS ${rhel_repo_releasever}"
+          source: "https://repo.saltstack.com/yum/redhat/${_param:rhel_releasever}/${_param:rhel_basearch}/${_param:salt_version}"
+          gpgkey: "https://repo.saltstack.com/yum/redhat/${_param:rhel_releasever}/${_param:rhel_basearch}/${_param:salt_version}/SALTSTACK-GPG-KEY.pub"
+          gpgcheck: true
+          architectures: amd64
diff --git a/linux/system/repo/saltstack/rhel6.yml b/linux/system/repo/saltstack/rhel6.yml
new file mode 100644
index 0000000..098410c
--- /dev/null
+++ b/linux/system/repo/saltstack/rhel6.yml
@@ -0,0 +1,6 @@
+classes:
+- system.linux.system.repo.saltstack.rhel
+parameters:
+  _param:
+    salt_version: 2016.3
+    rhel_releasever: 6
diff --git a/linux/system/repo/saltstack/rhel7.yml b/linux/system/repo/saltstack/rhel7.yml
new file mode 100644
index 0000000..a216398
--- /dev/null
+++ b/linux/system/repo/saltstack/rhel7.yml
@@ -0,0 +1,6 @@
+classes:
+- system.linux.system.repo.saltstack.rhel
+parameters:
+  _param:
+    salt_version: 2016.3
+    rhel_releasever: 7
diff --git a/linux/system/repo_local/mcp/extra.yml b/linux/system/repo_local/mcp/extra.yml
index b7ae91a..c55ecfc 100644
--- a/linux/system/repo_local/mcp/extra.yml
+++ b/linux/system/repo_local/mcp/extra.yml
@@ -10,3 +10,8 @@
           source: "deb [arch=amd64] http://${_param:local_repo_url}/ubuntu-${_param:linux_system_codename}/ ${_param:linux_system_repo_mcp_extra_version} extra"
           architectures: amd64
           key_url: "http://${_param:local_repo_url}/public.gpg"
+          clean_file: true
+          pin:
+          - pin: 'release a=${_param:linux_system_repo_mcp_extra_version}'
+            priority: 1100
+            package: '*'
diff --git a/linux/system/repo_local/sensu.yml b/linux/system/repo_local/sensu.yml
index df418fd..67750cf 100644
--- a/linux/system/repo_local/sensu.yml
+++ b/linux/system/repo_local/sensu.yml
@@ -4,6 +4,6 @@
       repo:
         sensu:
           refresh_db: ${_param:linux_repo_refresh_db}
-          source: "deb [arch=amd64] http://${_param:local_repo_url}/ubuntu-${_param:linux_system_codename}/ nightly sensu"
+          source: "deb [arch=amd64] http://${_param:local_repo_url}/ubuntu-${_param:linux_system_codename}/ ${_param:apt_mk_version} sensu"
           architectures: amd64
           key_url: "http://${_param:local_repo_url}/public.gpg"
diff --git a/mysql/client/database/octavia.yml b/mysql/client/database/octavia.yml
new file mode 100644
index 0000000..6c31ece
--- /dev/null
+++ b/mysql/client/database/octavia.yml
@@ -0,0 +1,17 @@
+parameters:
+  mysql:
+    client:
+      server:
+        database:
+          database:
+            octavia:
+              encoding: utf8
+              users:
+              - name: octavia
+                password: ${_param:mysql_octavia_password}
+                host: '%'
+                rights: all
+              - name: octavia
+                password: ${_param:mysql_octavia_password}
+                host: ${_param:single_address}
+                rights: all
diff --git a/neutron/client/service/ironic.yml b/neutron/client/service/ironic.yml
index c400f96..3bc5be4 100644
--- a/neutron/client/service/ironic.yml
+++ b/neutron/client/service/ironic.yml
@@ -11,9 +11,12 @@
               shared: True
               admin_state_up: True
               provider_network_type: flat
-              provider_physical_network: physnet1
+              provider_physical_network: physnet3
               port_security_enabled: false
               subnet:
                 baremetal-subnet:
-                  cidr: 192.168.90.0/24
+                  cidr: ${_param:openstack_baremeta_neutron_subnet_cidr}
+                  allocation_pools:
+                    - start: ${_param:openstack_baremeta_neutron_subnet_allocation_start}
+                      end: ${_param:openstack_baremeta_neutron_subnet_allocation_end}
                   enable_dhcp: true
diff --git a/neutron/compute/cluster.yml b/neutron/compute/cluster.yml
index 9897006..d6674f0 100644
--- a/neutron/compute/cluster.yml
+++ b/neutron/compute/cluster.yml
@@ -1,9 +1,12 @@
 classes:
 - service.neutron.compute.single
 parameters:
+  _param:
+    neutron_enable_qos: False
   neutron:
     compute:
       dvr: ${_param:neutron_compute_dvr}
+      qos: ${_param:neutron_enable_qos}
       agent_mode: ${_param:neutron_compute_agent_mode}
       external_access: ${_param:neutron_compute_external_access}
       backend:
@@ -12,4 +15,4 @@
         members:
           - host: ${_param:openstack_message_queue_node01_address}
           - host: ${_param:openstack_message_queue_node02_address}
-          - host: ${_param:openstack_message_queue_node03_address}
\ No newline at end of file
+          - host: ${_param:openstack_message_queue_node03_address}
diff --git a/neutron/control/openvswitch/cluster.yml b/neutron/control/openvswitch/cluster.yml
index dc8e0c5..0587342 100644
--- a/neutron/control/openvswitch/cluster.yml
+++ b/neutron/control/openvswitch/cluster.yml
@@ -9,12 +9,14 @@
     neutron_global_physnet_mtu: 1500
     neutron_external_mtu: 1500
     neutron_tenant_network_types: "flat,vxlan"
+    neutron_enable_qos: False
   neutron:
     server:
       plugin: ml2
       global_physnet_mtu: ${_param:neutron_global_physnet_mtu}
       l3_ha: ${_param:neutron_l3_ha}
       dvr: ${_param:neutron_control_dvr}
+      qos: ${_param:neutron_enable_qos}
       backend:
         engine: ml2
         tenant_network_types: "${_param:neutron_tenant_network_types}"
diff --git a/neutron/control/openvswitch/octavia.yml b/neutron/control/openvswitch/octavia.yml
new file mode 100644
index 0000000..9f6345b
--- /dev/null
+++ b/neutron/control/openvswitch/octavia.yml
@@ -0,0 +1,12 @@
+parameters:
+  _param:
+    octavia_api_bind_address: ${_param:cluster_local_address}
+  neutron:
+    server:
+      lbaas:
+        enabled: true
+        providers:
+          octavia:
+            engine: octavia
+            driver_path: 'neutron_lbaas.drivers.octavia.driver.OctaviaDriver'
+            base_url: http://${_param:octavia_api_bind_address}:9876
diff --git a/neutron/control/openvswitch/single.yml b/neutron/control/openvswitch/single.yml
index 6601db1..91db484 100644
--- a/neutron/control/openvswitch/single.yml
+++ b/neutron/control/openvswitch/single.yml
@@ -7,12 +7,14 @@
     neutron_global_physnet_mtu: 1500
     neutron_external_mtu: 1500
     neutron_tenant_network_types: "flat,vxlan"
+    neutron_enable_qos: False
   neutron:
     server:
       plugin: ml2
       global_physnet_mtu: ${_param:neutron_global_physnet_mtu}
       l3_ha: ${_param:neutron_l3_ha}
       dvr: ${_param:neutron_control_dvr}
+      qos: ${_param:neutron_enable_qos}
       backend:
         engine: ml2
         tenant_network_types: "${_param:neutron_tenant_network_types}"
diff --git a/neutron/gateway/cluster.yml b/neutron/gateway/cluster.yml
index 99699f7..a4f37b1 100644
--- a/neutron/gateway/cluster.yml
+++ b/neutron/gateway/cluster.yml
@@ -1,9 +1,12 @@
 classes:
 - service.neutron.gateway.single
 parameters:
+  _param:
+    neutron_enable_qos: False
   neutron:
     gateway:
       dvr: ${_param:neutron_gateway_dvr}
+      qos: ${_param:neutron_enable_qos}
       agent_mode: ${_param:neutron_gateway_agent_mode}
       backend:
         tenant_network_types: ${_param:neutron_tenant_network_types}"
diff --git a/neutron/gateway/ironic.yml b/neutron/gateway/ironic.yml
new file mode 100644
index 0000000..c01dbce
--- /dev/null
+++ b/neutron/gateway/ironic.yml
@@ -0,0 +1,4 @@
+parameters:
+  neutron:
+    gateway:
+      ironic_enabled: true
diff --git a/nginx/server/proxy/openstack_api.yml b/nginx/server/proxy/openstack_api.yml
index 5c4a1fa..2b84993 100644
--- a/nginx/server/proxy/openstack_api.yml
+++ b/nginx/server/proxy/openstack_api.yml
@@ -85,12 +85,24 @@
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 9696
           ssl: ${_param:nginx_proxy_ssl}
-        nginx_proxy_openstack_api_heat_cfn:
+        nginx_proxy_openstack_api_heat_cloudwatch:
           enabled: true
           type: nginx_proxy
           name: openstack_api_heat_cfn
           proxy:
             host: ${_param:heat_service_host}
+            port: 8003
+            protocol: http
+          host:
+            name: ${_param:nginx_proxy_openstack_api_host}
+            port: 8003
+          ssl: ${_param:nginx_proxy_ssl}
+        nginx_proxy_openstack_api_heat_cfn:
+          enabled: true
+          type: nginx_proxy
+          name: openstack_api_heat_cloudwatch
+          proxy:
+            host: ${_param:heat_service_host}
             port: 8000
             protocol: http
           host:
diff --git a/nova/client/service/octavia.yml b/nova/client/service/octavia.yml
new file mode 100644
index 0000000..817297f
--- /dev/null
+++ b/nova/client/service/octavia.yml
@@ -0,0 +1,13 @@
+parameters:
+  nova:
+    client:
+      enabled: true
+      server:
+        octavia_identity:
+          endpoint_type: internalURL
+          flavor:
+            m1.amphora:
+              flavor_id: ${_param:amp_flavor_id}
+              ram: 1024
+              disk: 2
+              vcpus: 1
diff --git a/octavia/api/cluster.yml b/octavia/api/cluster.yml
new file mode 100644
index 0000000..75a4c19
--- /dev/null
+++ b/octavia/api/cluster.yml
@@ -0,0 +1,9 @@
+classes:
+- service.octavia.api.cluster
+- system.haproxy.proxy.listen.openstack.octavia
+parameters:
+  octavia:
+    api:
+      enabled: true
+      bind:
+        address: ${_param:cluster_local_address}
diff --git a/octavia/api/single.yml b/octavia/api/single.yml
new file mode 100644
index 0000000..685c4b4
--- /dev/null
+++ b/octavia/api/single.yml
@@ -0,0 +1,8 @@
+classes:
+- service.octavia.api.single
+parameters:
+  octavia:
+    api:
+      enabled: true
+      bind:
+        address: ${_param:single_address}
diff --git a/octavia/manager/single.yml b/octavia/manager/single.yml
new file mode 100644
index 0000000..a7bc7a9
--- /dev/null
+++ b/octavia/manager/single.yml
@@ -0,0 +1,7 @@
+classes:
+- service.octavia.manager.single
+parameters:
+  octavia:
+    manager:
+      enabled: true
+      version: ${_param:octavia_version}
diff --git a/opencontrail/client/resource/k8s_api.yml b/opencontrail/client/resource/k8s_api.yml
new file mode 100644
index 0000000..79d6f0d
--- /dev/null
+++ b/opencontrail/client/resource/k8s_api.yml
@@ -0,0 +1,9 @@
+parameters:
+  opencontrail:
+    client:
+      linklocal_service:
+        k8s_api:
+          lls_ip: ${_param:kubernetes_internal_api_address}
+          lls_port: 443
+          ipf_addresses: ${_param:kubernetes_control_address}
+          ipf_port: 443
diff --git a/opencontrail/compute/cluster.yml b/opencontrail/compute/cluster.yml
index d10b361..5e92709 100644
--- a/opencontrail/compute/cluster.yml
+++ b/opencontrail/compute/cluster.yml
@@ -1,3 +1,5 @@
+classes:
+  - service.opencontrail.compute.cluster
 applications:
 - opencontrail
 parameters:
diff --git a/opencontrail/compute/cluster4_0.yml b/opencontrail/compute/cluster4_0.yml
index b21eb52..68f8007 100644
--- a/opencontrail/compute/cluster4_0.yml
+++ b/opencontrail/compute/cluster4_0.yml
@@ -34,6 +34,11 @@
         - host: ${_param:opencontrail_analytics_node01_address}
         - host: ${_param:opencontrail_analytics_node02_address}
         - host: ${_param:opencontrail_analytics_node03_address}
+      control:
+        members:
+        - host: ${_param:opencontrail_control_node01_address}
+        - host: ${_param:opencontrail_control_node02_address}
+        - host: ${_param:opencontrail_control_node03_address}
       interface:
         address: ${_param:opencontrail_compute_address}
         dev: ${_param:opencontrail_compute_iface}
diff --git a/opencontrail/control/analytics4_0.yml b/opencontrail/control/analytics4_0.yml
index 1984ee5..a122830 100644
--- a/opencontrail/control/analytics4_0.yml
+++ b/opencontrail/control/analytics4_0.yml
@@ -7,6 +7,10 @@
   _param:
     opencontrail_version: 4.0
     linux_repo_contrail_component: oc40
+    opencontrail_message_queue_node01_address: ${_param:openstack_message_queue_node01_address}
+    opencontrail_message_queue_node02_address: ${_param:openstack_message_queue_node02_address}
+    opencontrail_message_queue_node03_address: ${_param:openstack_message_queue_node03_address}
+    opencontrail_message_queue_address: ${_param:openstack_message_queue_address}
 # Temprorary fix for MOS9 packages to pin old version of kafka
   linux:
     system:
@@ -40,11 +44,11 @@
         - host: ${_param:opencontrail_analytics_node02_address}
         - host: ${_param:opencontrail_analytics_node03_address}
       message_queue:
-        host: ${_param:openstack_control_address}
+        host: ${_param:opencontrail_message_queue_address}
         members:
-        - host: ${_param:openstack_control_node01_address}
-        - host: ${_param:openstack_control_node02_address}
-        - host: ${_param:openstack_control_node03_address}
+        - host: ${_param:opencontrail_message_queue_node01_address}
+        - host: ${_param:opencontrail_message_queue_node02_address}
+        - host: ${_param:opencontrail_message_queue_node03_address}
       config:
         members:
         - host: ${_param:opencontrail_control_node01_address}
diff --git a/opencontrail/control/cluster4_0.yml b/opencontrail/control/cluster4_0.yml
index 5324fac..cd12eef 100644
--- a/opencontrail/control/cluster4_0.yml
+++ b/opencontrail/control/cluster4_0.yml
@@ -8,6 +8,10 @@
   _param:
     opencontrail_version: 4.0
     linux_repo_contrail_component: oc40
+    opencontrail_message_queue_node01_address: ${_param:openstack_control_node01_address}
+    opencontrail_message_queue_node02_address: ${_param:openstack_control_node02_address}
+    opencontrail_message_queue_node03_address: ${_param:openstack_control_node03_address}
+    opencontrail_message_queue_address: ${_param:openstack_control_address}
 # Temprorary fix for MOS9 packages to pin old version of kafka
   linux:
     system:
@@ -39,11 +43,11 @@
         - host: ${_param:cluster_node02_address}
         - host: ${_param:cluster_node03_address}
       message_queue:
-        host: ${_param:openstack_control_address}
+        host: ${_param:opencontrail_message_queue_address}
         members:
-        - host: ${_param:openstack_control_node01_address}
-        - host: ${_param:openstack_control_node02_address}
-        - host: ${_param:openstack_control_node03_address}
+        - host: ${_param:opencontrail_message_queue_node01_address}
+        - host: ${_param:opencontrail_message_queue_node02_address}
+        - host: ${_param:opencontrail_message_queue_node03_address}
       config:
         members:
         - host: ${_param:cluster_node01_address}
@@ -64,6 +68,8 @@
         address: ${_param:cluster_local_address}
       discovery:
         host: None
+      api:
+        host: ${_param:opencontrail_control_address}
       analytics:
         members:
         - host: ${_param:cluster_node01_address}
@@ -71,9 +77,9 @@
         - host: ${_param:cluster_node03_address}
       message_queue:
         members:
-        - host: ${_param:openstack_message_queue_node01_address}
-        - host: ${_param:openstack_message_queue_node02_address}
-        - host: ${_param:openstack_message_queue_node03_address}
+        - host: ${_param:opencontrail_message_queue_node01_address}
+        - host: ${_param:opencontrail_message_queue_node02_address}
+        - host: ${_param:opencontrail_message_queue_node03_address}
       identity:
         region: ${_param:openstack_region}
         host: ${_param:openstack_control_address}
@@ -85,9 +91,9 @@
         - host: ${_param:cluster_node03_address}
       message_queue:
         members:
-        - host: ${_param:openstack_message_queue_node01_address}
-        - host: ${_param:openstack_message_queue_node02_address}
-        - host: ${_param:openstack_message_queue_node03_address}
+        - host: ${_param:opencontrail_message_queue_node01_address}
+        - host: ${_param:opencontrail_message_queue_node02_address}
+        - host: ${_param:opencontrail_message_queue_node03_address}
       database:
         members:
         - host: ${_param:cluster_node01_address}
diff --git a/opencontrail/control/control4_0.yml b/opencontrail/control/control4_0.yml
index ae03dea..32b51e5 100644
--- a/opencontrail/control/control4_0.yml
+++ b/opencontrail/control/control4_0.yml
@@ -6,6 +6,9 @@
   _param:
     opencontrail_version: 4.0
     linux_repo_contrail_component: oc40
+    opencontrail_message_queue_node01_address: ${_param:openstack_message_queue_node01_address}
+    opencontrail_message_queue_node02_address: ${_param:openstack_message_queue_node02_address}
+    opencontrail_message_queue_node03_address: ${_param:openstack_message_queue_node03_address}
   opencontrail:
     common:
       identity:
@@ -19,6 +22,8 @@
         address: ${_param:cluster_local_address}
       discovery:
         host: None
+      api:
+        host: ${_param:opencontrail_control_address}
       analytics:
         members:
         - host: ${_param:opencontrail_analytics_node01_address}
@@ -26,9 +31,9 @@
         - host: ${_param:opencontrail_analytics_node03_address}
       message_queue:
         members:
-        - host: ${_param:openstack_message_queue_node01_address}
-        - host: ${_param:openstack_message_queue_node02_address}
-        - host: ${_param:openstack_message_queue_node03_address}
+        - host: ${_param:opencontrail_message_queue_node01_address}
+        - host: ${_param:opencontrail_message_queue_node02_address}
+        - host: ${_param:opencontrail_message_queue_node03_address}
       identity:
         region: ${_param:openstack_region}
         host: ${_param:openstack_control_address}
@@ -40,9 +45,9 @@
         - host: ${_param:opencontrail_analytics_node03_address}
       message_queue:
         members:
-        - host: ${_param:openstack_message_queue_node01_address}
-        - host: ${_param:openstack_message_queue_node02_address}
-        - host: ${_param:openstack_message_queue_node03_address}
+        - host: ${_param:opencontrail_message_queue_node01_address}
+        - host: ${_param:opencontrail_message_queue_node02_address}
+        - host: ${_param:opencontrail_message_queue_node03_address}
       database:
         members:
         - host: ${_param:opencontrail_control_node01_address}
diff --git a/opencontrail/control/single4_0.yml b/opencontrail/control/single4_0.yml
index cbd6520..365ed20 100644
--- a/opencontrail/control/single4_0.yml
+++ b/opencontrail/control/single4_0.yml
@@ -84,6 +84,8 @@
         address: ${_param:single_address}
       discovery:
         host: None
+      api:
+        host: ${_param:single_address}
       analytics:
         members:
         - host: ${_param:single_address}
diff --git a/openssh/server/team/l1_support.yml b/openssh/server/team/l1_support.yml
index 266bd15..aab98c7 100644
--- a/openssh/server/team/l1_support.yml
+++ b/openssh/server/team/l1_support.yml
@@ -19,6 +19,7 @@
 - system.openssh.server.team.members.mikhailkraynov
 - system.openssh.server.team.members.nadezhdakabanova
 - system.openssh.server.team.members.renesoto
+- system.openssh.server.team.members.rsafonov
 - system.openssh.server.team.members.scottmachtmes
 - system.openssh.server.team.members.zahedkhurasani
 parameters:
diff --git a/openssh/server/team/mcp_ci.yml b/openssh/server/team/mcp_ci.yml
index cd931a6..4bf0a5c 100644
--- a/openssh/server/team/mcp_ci.yml
+++ b/openssh/server/team/mcp_ci.yml
@@ -23,6 +23,13 @@
           full_name: Dmytro Kaiharodtsev
           home: /home/dkaiharodsev
           email: dkaiharodsev@mirantis.com
+        sotpuschennikov:
+          enabled: true
+          name: sotpuschennikov
+          sudo: true
+          full_name: Sergey Otpuschennikov
+          home: /home/sotpuschennikov
+          email: sotpuschennikov@mirantis.com
   openssh:
     server:
       enabled: true
@@ -42,6 +49,11 @@
           public_keys:
           - ${public_keys:dkaiharodsev}
           user: ${linux:system:user:dkaiharodsev}
+        sotpuschennikov:
+          enabled: true
+          public_keys:
+          - ${public_keys:sotpuschennikov}
+          user: ${linux:system:user:sotpuschennikov}
   public_keys:
     rkamaldinov:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCzeIFxatNuXWuaTomcGDTMlpqiF6KlK47BSO5yIpfWHTL7o0OFsQArB4UeZ9AC7JHQg1bpxzscJxz8Xj3tA1f8yOCrepR8LbWh7L6a1hMhSCJPK9QLUHPCLV4PW0ghq46Um8ekxMbEqGM/rrKP+GeYxNFUxJMHCkKbZAsV+BV8amuJHQkYt29GP/hgYyZEoWKErqoQ/uGQ0qWEMVQsnus6M3p3c/v1J4JtbbrmRBjyrPx/Tjinw6K2sgocgBZT7vVb4PYwbONi1IAclkPJIyrSNEavZ4MbK93ZXNQCV7rkUbKmHT71Qle34/ks9zyERJ3RgB+pWgQqCjtmJeV51V1 rkamaldinov@mirantis.com
@@ -49,3 +61,5 @@
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPKldN0BL6C/pmjkKyaSUw9OTUQAumWLCgNPyLVGZIuYPyFs9GqvKgHVm0QChm1OLhnQuA1wxGW5piBtqaDCTyLbKb/ANR3nhO1rqX5LTwZS2W2I0ImP47HUpnxqsBl15/y9hY2JDHZ7qrd7zNqCD+uCkf9l9qA9BmN1aMSKm07fqaaUfhnl3AocxsPX4X4eHfzy7hPJdzrHEcHbGoLLEd8ahJLkHKieWF1lAI++fIhETPF41+ZbH7MBBG4qw/UhhYAgLP3YAEWwvm/J3DtRqGkpSvH2U21hmAlgJHwxtoCD9Q1jKpH5+BDTvqJIXu0K7Gcl00xbeNYyHrwTVsldFX dburmistrov@mirantis.com
     dkaiharodsev:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSz9eH08GDUOSEDReJAIdjDCoYaoTwg1SSzYNwPRO/evJBeqYwRvZmxzITKq+1qy4jXnpa3ZpuBdaUebqKri2VtvMGmBrWtP8Ojbg3kNPjKOfvrW4cCyJE0yrnW03TULnRgrnf4/WXLK0dnHxL39AmlVjQTVS4pbx73XjyPoVjJbk4PXq37F5cLyyLj4aeWmCcPWn7MLsEC4RUkDwHy3DsDNdgKOlUSHmmOfVy9GBwVbXwVyYbq732Qm0Qqf/2zlJi84LgXOH2irv5HRTMDQ2Wey5Amcl7VpK8OMvtN4R8Sb7c3mgsmM/b/h+gefl0Y/vQfsSSi8GCPhmBoNT4FBgZ dkaiharodsev@dkaiharodsev-pc
+    sotpuschennikov:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDO/nNs4MF5ZOCooLxF+zrxVmuJa9URzAqIQG5eZkhWvSAnrYREN15BN6dlcixA+Ro4YsHY6iSHzsaanr8onNu89yZdCkHIqLZ8+DcBefpoVXcsLZzeXwNNqr9sUjHEJCTesI5dJcEe/222LjwzAdTW1Xv/o3mgVAwt+4XsQ2IPAlxl3LfJOlCQdC/0sL5FMFX6LwMonLBss3B/J45atXgPL1Dx9WKTP0QrJHaX+vh+Xj2PK9yXcB2hJhFP0IULmUqGkYgDw/mh2DiHSiCQUPGZDo49MIw4WqEwqpQKcJGjD0Ihy2pjzwI9ZUzCNWe+bUcqDdl/9SH4YsNbfaK4Te6H pers@sotpuschennikov
diff --git a/openssh/server/team/members/rsafonov.yml b/openssh/server/team/members/rsafonov.yml
new file mode 100644
index 0000000..7e6f206
--- /dev/null
+++ b/openssh/server/team/members/rsafonov.yml
@@ -0,0 +1,25 @@
+parameters:
+  linux:
+    system:
+      user:
+        rsafonov:
+          enabled: true
+          name: rsafonov
+          sudo: false
+          full_name: Roman Safonov
+          home: /home/rsafonov
+          email: rsafonov@mirantis.com
+          groups:
+          - support
+  openssh:
+    server:
+      enabled: true
+      user:
+        rsafonov:
+          enabled: true
+          public_keys: ${public_keys:rsafonov}
+          user: ${linux:system:user:rsafonov}
+  public_keys:
+    rsafonov:
+      - key: ssh-rsa ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCaVDVMjNUXR+SP4xjH4vX9zfqzYHosQRO4MlVxE8uJPIIQdF1+iPWtggLrsRDZTSQ0JNzCYGXPv8fK6iKBQ/cX5KgMnVPQmFn4Q+Ip/oWotkbVZtR1F0ZVw01KNBYE0LMXrV9dxhX6qUFCO0IV9inbOZ+6zhYOLPddG2WVc8htz8XH7xdWqGbU1GBwyEoRFjITZ9GAYMRNrSjlzPsoBVkQwGKNtvh8uCFZasfAMr2mV1XVFcJlK52T6bNqIXOYPmRc9mSoQoD0UHRRYwlWAZHzW+2e8SABT+NRT1Cc/BoioRC2SBKj9tsZgy9nhq5O0EfuvWVL3ZCM6+RviNxkEL7Z
+
diff --git a/openssh/server/team/oss_team.yml b/openssh/server/team/oss_team.yml
index 9d6dce9..db4dbbd 100644
--- a/openssh/server/team/oss_team.yml
+++ b/openssh/server/team/oss_team.yml
@@ -23,6 +23,27 @@
           full_name: Michael Ivanov
           home: /home/mivanov
           email: mivanov@mirantis.com
+        vkramskikh:
+          enabled: true
+          name: vkramskikh
+          sudo: true
+          full_name: Vitaly Kramskikh
+          home: /home/vkramskikh
+          email: vkramskikh@mirantis.com
+        jkirnosova:
+          enabled: true
+          name: jkirnosova
+          sudo: true
+          full_name: Iuliia Aranovich
+          home: /home/jkirnosova
+          email: jkirnosova@mirantis.com
+        sskripnick:
+          enabled: true
+          name: sskripnick
+          sudo: true
+          full_name: Serhii Skrypnik
+          home: /home/sskripnick
+          email: sskripnick@mirantis.com
   openssh:
     server:
       enabled: true
@@ -42,6 +63,21 @@
           public_keys:
           - ${public_keys:mivanov}
           user: ${linux:system:user:mivanov}
+        vkramskikh:
+          enabled: true
+          public_keys:
+          - ${public_keys:vkramskikh}
+          user: ${linux:system:user:vkramskikh}
+        jkirnosova:
+          enabled: true
+          public_keys:
+          - ${public_keys:jkirnosova}
+          user: ${linux:system:user:jkirnosova}
+        sskripnick:
+          enabled: true
+          public_keys:
+          - ${public_keys:sskripnick}
+          user: ${linux:system:user:sskripnick}
   public_keys:
     ikharin:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0NNCF9Orei3Ls5wa7xNH/2nl4eAUYY/vuAers7as8lQXjUXkurLQUG1YTQhuRiqyLrqLZjokq87l3LcpXsiBaqNybwlg4OAcf7p59FwDwdpCcAfoHeP03vt/FOYgozeExIRxVNHMdZjQJ4o5j75vnwTfGIubSF1eUOwtRVeezAREK1OPA2TRvlSOXCsAinNSZHBFTlYVYIXQEk/zuH7PdwlU2rkN69mNivh1tAUDlhrwZHrR9rcudafp5s3C5MKFtI3W4MhYIqv9ZViEhLwfEhNb0WXiUv+sdGTf8jTcXaYOlw6z9A76Ab/9bfPyOTmI7tli8Pz15+YPj1ymdlIZlQ==
@@ -49,3 +85,9 @@
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDF13qwUbb+lva8KCNE6IppajmGfF3MJIFhIPD7HYwzeIyI3INlc6nMMOk+r4a6IO3okVxgqRi27boebvUpazw0Jw4T4e1oLQpWCxvhTZkukFsrd9DJiCj07VXluua2ofaCRLCSHVLdjAH4WocmZeCXpZF1ldDeNBeuX0iYJiFBslrG/pmOuCm3IEL7GmoIJjF0Idtwo3tkWcvCUXKvBaVqCHS34Q/KJLAvZc95MLESs/kdnhfxhxbpWrRRFcZn/zIxuuptuTBzWOPd7CnsOLo5PCnuxIfDznDYYzQUJq6OmwMZipepTtymXUvFQiqq7xc/HmNR51vowqwoftgHNxYvoaQgXkneWFnq4Cl9WZaLVs90wNgQewPaKmhL8ia1S2C3Cub0ILsbU/091L7adBeZI87pkfx72HhFQRUOcVprgPAEKKTbEvUQKAQ4rZ6GOIU5Tz/fKf1sXLhiTEAgpGpaTyyTP04vpgP5iY4kcXQHpRsPxg1BQ+93S3KqF2XAdXvrA4eZfAHmGhsAOePdnJQZVf8c4exsgkIGEyM9Wgi2ZWlq7oY0tFJLf+Kq7y23QuC6isIqBBIDN/TtmHRpiWNY4zwmGhzSxBdA6zMVy9PblrU71w1xVBS4KKwUqbWbP06pA7V04sp8kGKz5OmN9Z+rdTQJ2v41SSU71kT6XSFFOQ==
     mivanov:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLY+5Yc3MMOmxVGrBmvfMX9bwK98RdgW+9E/rj56rh1w5cuIy5qN0xsuU4634EcSLRUjGXBcutDXPEXV1s7BZfeZjXJri37RICLsKfvPZcyiEqtwTbGYkcDDOHH0nmZdfngi0r/qAc5o5k3KA7Eh4CJW+GgqPoShngCKo9YKqbWFUkrGpX7wIUMlqwyuVKsybxD6EU+CB3RAeASG4E0rRq7VYQaTj/+PQq8VrWGUs9QHW8wX+OakDDCI7Or4Ll5q/uPCopaU9r7yz+uEYA1L8P2wEJ4XG9V6dxUMvzrFLBE+wDrHHXcEZMWGbmrPHUy5Yt8UCFPgtYfOl2BvHHHUSp
+    vkramskikh:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9eVOmPT/jCS/q/+T5EmKIBol3wovE+qTb4SQI4y9ZUIT+tMGult1dheqXVKIMYdTe/cccPTf5A+b6QpkPEjzQQljn0qmyHM75ya+Gjd3uTWx+1VXSFL42p0+404oVkB+eOtax+Bf8CU14P6sJn+3ypO63VVCJz6V2cgkr14tqkMZb+4OBPJB6zrNAfXhNJlJ8fLV4d5c4guin74hoaor5VIER3hwMPIe0CtudzdjcdDDvVNqXYfoknwMTNR52h1Zfwvomsy5pdFcI5sQKaOxSqWyi3C22yu/ZK0Diq82INskZ1vjHiJHw8QguXLzevCK4BECnjDFr6Hu4J6eRK3YJ
+    jkirnosova:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDuW6hvLo7eRwm6WcjJEDW7TsLG2rZrtmffHQ58c4AzlLAxV0tkvvfQRS4f5Pb+Wj1flxt+RW2rq4dSkQCpwNnYdTHHRnQJFJQEAouqNF7cTVrprioXNeoBe8DGVHiUUI8IpeN8hJYQw17NB6hf8oZulZqdZZ9DA7uwnC0HFfQ1E4MuFnfhB0/XyzJMsxrxHyjte+cOdgE9F43ccHInBGowrzOJP8AUdWdC0I2WU0sjvQrGcvlHr7/EqPP1Zh7PblwESyf3muas7iFTCKtCbXM+pT3e687++ueCqrAftVZGCPpXe23U3sSGdiIti0L6CYxBI02VKlsQgfSqWd8z+W1T
+    sskripnick:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbDedH7Aw1g2LDHrCLpxfq5GsdTpqRglDXy9dDSEr08tVVl7gSzPJ5oMlIr9VsNVHsR9vf/THhxghFrV1rQZDny8c6yLqus3Upc7pJfOUztWD4+E29H7qJOafrnuNRHGFaEiaG6aZm3WyyvAdlR1lh/i5zQtdrPBmjYkq5LMJvNQBpj4XqmHYp7gLRNDI30Ne49xxAIGC1Qbx0Xvhmq9/h4gZhI5mB/QeOj4tPcd7g+kSTdc5/fXbBLeQDBZt/HlDr7/LFjYZ4OBumVDOTfClFO5UoIAvHyfysaiWI/qZ7UZI7uU4yAPeI8/s/INOQOIoiqaHyiVnL5BvFklHldMot
diff --git a/openssh/server/team/presales.yml b/openssh/server/team/presales.yml
new file mode 100644
index 0000000..7efc9da
--- /dev/null
+++ b/openssh/server/team/presales.yml
@@ -0,0 +1,51 @@
+parameters:
+  linux:
+    system:
+      user:
+        ivano:
+          enabled: true
+          name: ivano
+          sudo: true
+          full_name: Ivan Ostojic
+          home: /home/ivano
+          email: ivan@mirantis.com
+        asteer:
+          enabled: true
+          name: asteer
+          sudo: true
+          full_name: Adrian Steer
+          home: /home/asteer
+          email: asteer@mirantis.com
+        sbraun:
+          enabled: true
+          name: sbraun
+          sudo: true
+          full_name: Sebastien Braun
+          home: /home/sbraun
+          email: sbraun@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        ivano:
+          enabled: true
+          public_keys:
+          - ${public_keys:ivano}
+          user: ${linux:system:user:ivano}
+        asteer:
+          enabled: true
+          public_keys:
+          - ${public_keys:asteer}
+          user: ${linux:system:user:asteer}
+        sbraun:
+          enabled: true
+          public_keys:
+          - ${public_keys:sbraun}
+          user: ${linux:system:user:sbraun}
+  public_keys:
+    ivano:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD94JXgHYTjfPoyYfWe5HgCPUgyal89VlI7ZYLr7RezAl+YQaaeO5adCXnnMDN2BiNf2l1SfbFf/A4Vi6W5eSRLqtSplpdhass7iqmmq+rDoXcELv6BZYnbOFhbFq2vegwcgk35A2uz9x9i3x3wHMLBZI/+dNCjCnW2Uikb/f0nmFqTLT5T9SJ/nmhs5oPd5vGKgFtYdRPLZW/fPxl180psPzBXmOCh50xyydxKPzncyFme+mgb0o1GjyBiJe7cXL/rXShcrFb9btMS+sXZZVQaDveaBHYUE+q+29yqR0c5uUusEzD9BWZVSoKPrFUMy/9YohGwRqbRE7Jh8XVF7Fff ivano@unicorn
+    asteer:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBIXQqD5NH9glU5CBoodFtTuZMd5KgcjPDw0krOBaM0YkzbCGzEecLeqgd1oP2AbUO1nV80O9STatFhJ1NY1x1Xxv/k0n7kMIXpuxyAcVKbg6J/B5GzACsK9tKfnEypz8VvQcBB70h+4Y6G6AiOQxRpLJg4fHv/Q0fF3rl3diQyJZeTa6jjcYettikclZlYYyFh1eLQ7yzjbGL+KNX/ks/N55gl+N6BKYIGvhSUFI7Xex0p6qqpPM+XTsGJFVRBIrHnNiTtHc5SO+oN/J4u2PnO14tP8ZAeX33jF4XejbRvo8kA61KZ+i10wkSbGKFLQeYBrVnxJwo5FG+kOm8WnRF
+    sbraun:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCdvb2aPES+H5+McRueB3EYbpdG/685pIJCH6mbFmTsIHlQobcJSSYtqww7ji/m6/KuMGE/Wc5f06d5v+beslfHKLaaAKXwWBpDgO77zwO42PbFPreFXKg8sNLPmqB+WEyIX7yAaJNxz0bbQgo2Vl3Bhtv/79zZXpzo0DIXNtdi75vwzWpuiyRuhC7pNqz+VXFZAVtkA+EchogDnT7rLa8ullSwuSgk5iPC6/XsuwL5Z5/UGBx4OT9Y8+cjb3g2oE9N3hdJH8wp9ts6stvKgAZ/5EE+LuCVhtKCvQ0sbZY8DmH99HFIP7SQoNQoyD8ALKbyCxGdF4/kxsqSlnLM5bR sebbraun@gmail.com
diff --git a/openssh/server/team/stacklight.yml b/openssh/server/team/stacklight.yml
index 3fb5913..84a8255 100644
--- a/openssh/server/team/stacklight.yml
+++ b/openssh/server/team/stacklight.yml
@@ -86,6 +86,13 @@
           full_name: Illia Svyrydov
           home: /home/isviridov
           email: isviridov@mirantis.com
+        nzaporozhets:
+          enabled: true
+          name: nzaporozhets
+          sudo: true
+          full_name: Nikita Zaporozhets
+          home: /home/nzaporozhets
+          email: nzaporozhets@mirantis.com
   openssh:
     client:
       enabled: true
@@ -152,6 +159,11 @@
           public_keys:
           - ${public_keys:isviridov}
           user: ${linux:system:user:isviridov}
+        nzaporozhets:
+          enable: true
+          public_keys:
+          - ${public_keys:nzaporozhets}
+          user: ${linux:system:user:nzaporozhets}
   public_keys:
     newt:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3odU+3V2uDA2ptAFL9hrJRPNEEdAyztWOZFQ5Oyd9oerTGOU3p4xmrgWWjfKFKbYGhiiIUcYAol5PkTfKukGEkkjCHYA1t023soCaaAj85wCZCnw2zQNAziwxTYmAzTqgxiSvtZNMMrtJvFHRIRDzJ3M1lV0prWNWkMM1/3FAd4W49y6VT3fkMCo8uqG7CfGdgR2DgBCxf9KaNPfW5eDEPOgmE5lK8tVSEI6T+Cg7hbcTf4lFYnlFBnlQgp/0JstsM4Vbwb4B34LOpOsf2S8rrWk2xQMjwaMHXkc2s/E8iW3F5nVFuyEXYISFQIiAHw8dzC6CHgLcyHUVWwznKawZ newt@newt-dev1
@@ -177,3 +189,5 @@
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCiUm3Z3W3t4v7oe143rCNM/hbg9NU2bYUmQXek8DJPA4c3Xm6u0q+RL9kEXME+3zcj2HKqMxKsCBLXXdFIsgdUbOBV8AYiuySE220FTnEKRmdxsEnfSaBhXxFyIBNoew4gI7URSqAOclt5WuPJTqRM7K4VhbtzwEgeWVd/NUhxMCCtgkdJCYTSmycxmxs7R6V8vMr9Mb8DOqKkSpOu6f3JkR0lwnFN9zGGC4V/60FlJSDzvvI5Tn40ANPHITivs8xME0znsx7t0bF4vQUimvhYn1mumQCY1NwIaxJ/QqasD6Ag9Sn5dxSg9b3SeLn0JM6qKoIqZtfPYVuCp9gmlH0fyzJUdqu4lKKb2wBw/H5lK6icH4+owMawkav55rbvinHQOqmVCr/Bg/rTfc35ycVqjTXH/5J7OhzioKjU0yFkXFS2X/s8gpyxp3beJ+Ea4faoX+kcs0gyhMYzqC7/DOamrau7aVyEAjKYJNy60xRfjCQzjqiurbxVFh+3Fi64UUn7Bl1QV8VEiU3ztJ118psEI7zA+x2VROLZ1jrtaBYZTYB118JZicaFDycEVgg3+BHX3pFH/QSOjLsA4SK+HJjSz8CFKvWwaO6QJv1/3KHpcGEacMvmqKxwpQK0E4WpjWhglZRMPObQ0dBaGClOujgoOIHXtFGILEpWy2SdzDQkHw== kszukielojc@w541
     isviridov:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNZxzOm7OsZi/q6Qk71fnvjCfWk4BfxpZ5hDig6N1f9D0iAMaINyNmlF2PxstSLW0Mjdq2tXTUvVWlYpGrw+YLHQmVk8dckmLdUAxe2Z0oEvtWhiQC64927ibBTgQ2Tjfkao+PFYPbdjiO4FgRymS1/FpGKhvpdyPDCcOLrxsMSK9YpPi4kbkd4GmlGMercuaEzP3JOOzJioOOLtEw3LOLWG5mAIzXjGFxuCNdTI4gqxQm/iw/tOpb9PcsY10EapZsS4Pd8j58vuhJlwdoTxI3gzySJcTlWm0tcphex0g8X0tEUI+zVjemJcrYkZgUpb6x5/mUjNxC4nv+4A4yMTP
+    nzaporozhets:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC/UtqwBD6qkEoWSrmO0jXa9sUcwumySxmkX2XCTlAj+e8tzCNndNhaUueu01pbcNrGrB7xvCHyTa5cxgJEv0RAJRxZnObTjluegiuW+/KNSGwiSDy90bwPVb6zWalrDg12xGh8C0ybmv90uC+GrGO1UXFpm5N1qL3ZsUvSjWBRZ70xXjUI4self+fWxBYJhu7hGZ0RVCeA8TjRutzdOWcSZwN2Arn2Oq+fx9n5HP8iXlPcfM6aWj+QvkXphvKjUhDYiImQ07kJctYvxEwMei5pM1dAPZefQ6FRsUP1gKYKPVp1CiBHPIKLG3LMwxp0/LWQmHB4umZvA6HYplSUXZLMd+FhCRuocVFdxe308JWeIFWyw7og/qEBlpxqW4BUk0bR3c4deI9QDKWCuuunTDB4oEB8ZnkI7utknpx7sqO72Ev2UNS/CSi3yyqgOajojQ3l+McWn9bm08KSLzuuMaexETRYQ9dgjE79N7fH+DEt5Ryii+GA2a8Gl3iRtTZs9WA94mTb/KjZBrVxh+PixpQ6s3oGFelFCPMKSPWIEb+rwuAUi0Ulrqb2UZDzJYhT50QfbCzRN2MU+8bR7PJt/xpAADvQX0iMMrMUvAVngs2YrXKapJliyHhTZxOmVdDRIyCQ1YpK2ktBJf+E+RXl3R5XUmbJkT4jZ1R6cA1QJOEKVQ== nzaporozhets@mirantis.com
diff --git a/prometheus/alertmanager/container.yml b/prometheus/alertmanager/container.yml
new file mode 100644
index 0000000..e2fdcf7
--- /dev/null
+++ b/prometheus/alertmanager/container.yml
@@ -0,0 +1,3 @@
+classes:
+- service.prometheus.alertmanager.container
+- system.prometheus.alertmanager
diff --git a/prometheus/alertmanager/notification/pushkin.yml b/prometheus/alertmanager/notification/pushkin.yml
new file mode 100644
index 0000000..905a292
--- /dev/null
+++ b/prometheus/alertmanager/notification/pushkin.yml
@@ -0,0 +1,22 @@
+parameters:
+    _param:
+      alertmanager_notification_pushkin_host: ${_param:haproxy_pushkin_bind_host}
+      alertmanager_notification_pushkin_port: ${_param:haproxy_pushkin_bind_port}
+parameters:
+  prometheus:
+    alertmanager:
+      config:
+        route:
+          routes:
+            pushkin:
+              receiver: HTTP-pushkin
+              match_re:
+                - label: route
+                  value:  .+?
+        receiver:
+          HTTP-pushkin:
+            enabled: true
+            webhook_configs:
+              pushkin-vip:
+                url: "${_param:alertmanager_notification_pushkin_host}:${_param:alertmanager_notification_pushkin_port}/webhook?app=stacklight"
+                send_resolved: true
diff --git a/prometheus/exporters/jmx/init.yml b/prometheus/exporters/jmx/init.yml
new file mode 100644
index 0000000..4052201
--- /dev/null
+++ b/prometheus/exporters/jmx/init.yml
@@ -0,0 +1,2 @@
+classes:
+- service.prometheus.exporters.jmx
diff --git a/prometheus/exporters/libvirt/init.yml b/prometheus/exporters/libvirt/init.yml
new file mode 100644
index 0000000..5686f44
--- /dev/null
+++ b/prometheus/exporters/libvirt/init.yml
@@ -0,0 +1,2 @@
+classes:
+- service.prometheus.exporters.libvirt
diff --git a/prometheus/pushgateway/container.yml b/prometheus/pushgateway/container.yml
new file mode 100644
index 0000000..d0e986e
--- /dev/null
+++ b/prometheus/pushgateway/container.yml
@@ -0,0 +1,2 @@
+classes:
+- service.prometheus.pushgateway.container
diff --git a/prometheus/remote_storage_adapter/container.yml b/prometheus/remote_storage_adapter/container.yml
new file mode 100644
index 0000000..f2afbf7
--- /dev/null
+++ b/prometheus/remote_storage_adapter/container.yml
@@ -0,0 +1,2 @@
+classes:
+- service.prometheus.remote_storage_adapter.container
diff --git a/prometheus/server/alert/labels_add/route.yml b/prometheus/server/alert/labels_add/route.yml
new file mode 100644
index 0000000..47d9eea
--- /dev/null
+++ b/prometheus/server/alert/labels_add/route.yml
@@ -0,0 +1,9 @@
+parameters:
+  _param:
+    prometheus_server_alert_label_route: mail
+  prometheus:
+    server:
+      config:
+        alert:
+          labels_add:
+            route: ${_param:prometheus_server_alert_label_route}
diff --git a/prometheus/server/container.yml b/prometheus/server/container.yml
new file mode 100644
index 0000000..99873ad
--- /dev/null
+++ b/prometheus/server/container.yml
@@ -0,0 +1,3 @@
+classes:
+- service.prometheus.server.container
+- system.prometheus.server
diff --git a/reclass/storage/system/openstack_baremetal_single.yml b/reclass/storage/system/openstack_baremetal_single.yml
index d823157..3b279b0 100644
--- a/reclass/storage/system/openstack_baremetal_single.yml
+++ b/reclass/storage/system/openstack_baremetal_single.yml
@@ -12,5 +12,5 @@
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: ${_param:linux_system_codename}
-            single_address: ${_param:openstack_baremetal_address}
+            single_address: ${_param:openstack_baremetal_node01_address}
             baremetal_address: ${_param:openstack_baremetal_node01_baremetal_address}
diff --git a/reclass/storage/system/openstack_gateway_single_octavia.yml b/reclass/storage/system/openstack_gateway_single_octavia.yml
new file mode 100644
index 0000000..264b3f1
--- /dev/null
+++ b/reclass/storage/system/openstack_gateway_single_octavia.yml
@@ -0,0 +1,7 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        openstack_gateway_node01:
+          classes:
+          - system.octavia.manager.single
diff --git a/rundeck/client/project/cicd.yml b/rundeck/client/project/cicd.yml
index 1a4b228..cb427d8 100644
--- a/rundeck/client/project/cicd.yml
+++ b/rundeck/client/project/cicd.yml
@@ -8,6 +8,7 @@
     rundeck_cis_jobs_repository: https://gerrit.mcp.mirantis.net/oss/rundeck-cis-jobs
     rundeck_cis_jobs_revision: master
     rundeck_cis_elasticsearch_url: none
+    rundeck_cis_os_docker_image: docker-prod-local.artifactory.mirantis.com/mirantis/oss/cis-openstack:latest
   rundeck:
     client:
       project:
@@ -52,3 +53,6 @@
         cis/openstack/domain_id:
           type: password
           content: ${_param:rundeck_cis_os_domain_id}
+        cis/openstack/image:
+          type: password
+          content: ${_param:rundeck_cis_os_docker_image}
diff --git a/rundeck/client/runbook.yml b/rundeck/client/runbook.yml
index a41481a..773673b 100644
--- a/rundeck/client/runbook.yml
+++ b/rundeck/client/runbook.yml
@@ -13,6 +13,10 @@
             - docker
           full_name: Rundeck Remote
           home: /var/lib/runbook
+      group:
+        docker:
+          enabled: true
+          name: docker
   openssh:
     server:
       enabled: true
diff --git a/salt/control/cluster/openstack_baremetal_cluster.yml b/salt/control/cluster/openstack_baremetal_cluster.yml
index 69c3a2b..609be28 100644
--- a/salt/control/cluster/openstack_baremetal_cluster.yml
+++ b/salt/control/cluster/openstack_baremetal_cluster.yml
@@ -13,14 +13,14 @@
           engine: virt
           node:
             bmt01:
-              provider: kvm01.${_param:cluster_domain}
+              provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.baremetal
             bmt02:
-              provider: kvm02.${_param:cluster_domain}
+              provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.baremetal
             bmt03:
-              provider: kvm03.${_param:cluster_domain}
+              provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.baremetal
diff --git a/salt/control/cluster/openstack_gateway_cluster.yml b/salt/control/cluster/openstack_gateway_cluster.yml
index 84c44ac..efc7215 100644
--- a/salt/control/cluster/openstack_gateway_cluster.yml
+++ b/salt/control/cluster/openstack_gateway_cluster.yml
@@ -13,14 +13,14 @@
           engine: virt
           node:
             gtw01:
-              provider: kvm01.${_param:cluster_domain}
+              provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.gateway
             gtw02:
-              provider: kvm02.${_param:cluster_domain}
+              provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.gateway
             gtw03:
-              provider: kvm03.${_param:cluster_domain}
+              provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
               image: ${_param:salt_control_xenial_image}
               size: openstack.gateway
diff --git a/salt/master/formula/git/baremetal.yml b/salt/master/formula/git/baremetal.yml
new file mode 100644
index 0000000..80909e4
--- /dev/null
+++ b/salt/master/formula/git/baremetal.yml
@@ -0,0 +1,14 @@
+parameters:
+  salt:
+    master:
+      environment:
+        dev:
+          formula:
+            ironic:
+              source: git
+              address: '${_param:salt_master_environment_repository}/salt-formula-ironic.git'
+              revision: ${_param:salt_master_environment_revision}
+            tftpd_hpa:
+              source: git
+              address: '${_param:salt_master_environment_repository}/salt-formula-tftpd-hpa.git'
+              revision: ${_param:salt_master_environment_revision}
diff --git a/salt/master/formula/git/oss.yml b/salt/master/formula/git/oss.yml
index e927387..64f3e54 100644
--- a/salt/master/formula/git/oss.yml
+++ b/salt/master/formula/git/oss.yml
@@ -1,7 +1,4 @@
 parameters:
-  _param:
-    salt_master_oss_repository: https://gerrit.mcp.mirantis.net/salt-formulas
-    salt_master_oss_revision: master
   salt:
     master:
       environment:
@@ -12,8 +9,8 @@
                 devops_utils.py:
                   enabled: true
               source: git
-              address: '${_param:salt_master_oss_repository}/devops-portal.git'
-              revision: ${_param:salt_master_oss_revision}
+              address: '${_param:salt_master_environment_repository}/salt-formula-devops-portal.git'
+              revision: ${_param:salt_master_environment_revision}
             rundeck:
               module:
                 rundeck.py:
@@ -21,6 +18,12 @@
               state:
                 rundeck_project.py:
                   enabled: true
+              state:
+                rundeck_scm.py:
+                  enabled: true
+              state:
+                rundeck_secret.py:
+                  enabled: true
               source: git
-              address: '${_param:salt_master_oss_repository}/rundeck.git'
-              revision: ${_param:salt_master_oss_revision}
+              address: '${_param:salt_master_environment_repository}/salt-formula-rundeck.git'
+              revision: ${_param:salt_master_environment_revision}
diff --git a/salt/master/formula/git/saltstack.yml b/salt/master/formula/git/saltstack.yml
index 55251e1..ebcf96f 100644
--- a/salt/master/formula/git/saltstack.yml
+++ b/salt/master/formula/git/saltstack.yml
@@ -51,3 +51,11 @@
               source: git
               address: '${_param:salt_master_environment_repository}/salt-formula-xtrabackup.git'
               revision: ${_param:salt_master_environment_revision}
+            zookeeper:
+              source: git
+              address: '${_param:salt_master_environment_repository}/salt-formula-zookeeper.git'
+              revision: ${_param:salt_master_environment_revision}
+            cassandra:
+              source: git
+              address: '${_param:salt_master_environment_repository}/salt-formula-cassandra.git'
+              revision: ${_param:salt_master_environment_revision}
diff --git a/salt/master/formula/pkg/baremetal.yml b/salt/master/formula/pkg/baremetal.yml
new file mode 100644
index 0000000..3899fe7
--- /dev/null
+++ b/salt/master/formula/pkg/baremetal.yml
@@ -0,0 +1,12 @@
+parameters:
+  salt:
+    master:
+      environment:
+        prd:
+          formula:
+            ironic:
+              source: pkg
+              name: salt-formula-ironic
+            tftpd_hpa:
+              source: pkg
+              name: salt-formula-tftpd-hpa
diff --git a/salt/master/formula/pkg/saltstack.yml b/salt/master/formula/pkg/saltstack.yml
index e4a4c1c..a62a272 100644
--- a/salt/master/formula/pkg/saltstack.yml
+++ b/salt/master/formula/pkg/saltstack.yml
@@ -40,3 +40,9 @@
             xtrabackup:
               source: pkg
               name: salt-formula-xtrabackup
+            zookeeper:
+              source: pkg
+              name: salt-formula-zookeeper
+            cassandra:
+              source: pkg
+              name: salt-formula-cassandra
diff --git a/telegraf/agent/init.yml b/telegraf/agent/init.yml
index 0e836e8..ca7e2b0 100644
--- a/telegraf/agent/init.yml
+++ b/telegraf/agent/init.yml
@@ -1,5 +1,7 @@
 classes:
 - service.telegraf.agent
+- system.telegraf.agent.input.http_listener
+- system.telegraf.sudo
 parameters:
   telegraf:
     agent:
diff --git a/telegraf/agent/input/http_listener.yml b/telegraf/agent/input/http_listener.yml
new file mode 100644
index 0000000..6cdcf3c
--- /dev/null
+++ b/telegraf/agent/input/http_listener.yml
@@ -0,0 +1,2 @@
+classes:
+- service.telegraf.agent.input.http_listener
diff --git a/telegraf/agent/output/prometheus.yml b/telegraf/agent/output/prometheus.yml
new file mode 100644
index 0000000..952bc13
--- /dev/null
+++ b/telegraf/agent/output/prometheus.yml
@@ -0,0 +1,11 @@
+parameters:
+  _param:
+    telegraf_agent_prometheus_port: 9126
+  telegraf:
+    agent:
+      output:
+        prometheus_client:
+          bind:
+            address: 0.0.0.0
+            port: ${_param: telegraf_agent_prometheus_port}
+          engine: prometheus
diff --git a/telegraf/agent/remote.yml b/telegraf/agent/remote/init.yml
similarity index 100%
rename from telegraf/agent/remote.yml
rename to telegraf/agent/remote/init.yml
diff --git a/telegraf/agent/remote/input/http_listener.yml b/telegraf/agent/remote/input/http_listener.yml
new file mode 100644
index 0000000..d6788d2
--- /dev/null
+++ b/telegraf/agent/remote/input/http_listener.yml
@@ -0,0 +1,13 @@
+parameters:
+  _param:
+    telegraf_remote_agent_http_listener_port: 8186
+  telegraf:
+    remote_agent:
+      input:
+        http_listener:
+          bind:
+            address: 0.0.0.0
+            port: ${_param:telegraf_remote_agent_http_listener_port}
+          read_timeout: 10s
+          write_timeout: 10s
+          tagexclude: ['hostname']
diff --git a/telegraf/agent/remote/output/prometheus.yml b/telegraf/agent/remote/output/prometheus.yml
new file mode 100644
index 0000000..8aadd96
--- /dev/null
+++ b/telegraf/agent/remote/output/prometheus.yml
@@ -0,0 +1,11 @@
+parameters:
+  _param:
+    telegraf_remote_agent_prometheus_port: 9126
+  telegraf:
+    remote_agent:
+      output:
+        prometheus_client:
+          bind:
+            address: 0.0.0.0
+            port: ${_param:telegraf_remote_agent_prometheus_port}
+          engine: prometheus
diff --git a/telegraf/sudo.yml b/telegraf/sudo.yml
new file mode 100644
index 0000000..3fc76e1
--- /dev/null
+++ b/telegraf/sudo.yml
@@ -0,0 +1,11 @@
+parameters:
+  linux:
+    system:
+      sudo:
+        enabled: true
+        users:
+          telegraf:
+            hosts:
+            - ALL
+            commands:
+            - /usr/sbin/gluster
diff --git a/zookeeper/backup/client/single.yml b/zookeeper/backup/client/single.yml
new file mode 100644
index 0000000..0085b79
--- /dev/null
+++ b/zookeeper/backup/client/single.yml
@@ -0,0 +1,13 @@
+classes:
+- system.openssh.client.root
+parameters:
+  _param:
+    zookeeper_remote_backup_server: cfg01
+  zookeeper:
+    backup:
+      client:
+        enabled: true
+        full_backups_to_keep: 3
+        hours_before_full: 24
+        target:
+          host: ${_param:zookeeper_remote_backup_server}
diff --git a/zookeeper/backup/server/single.yml b/zookeeper/backup/server/single.yml
new file mode 100644
index 0000000..aaa877b
--- /dev/null
+++ b/zookeeper/backup/server/single.yml
@@ -0,0 +1,13 @@
+parameters:
+  _param:
+    zookeeper_backup_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzLUiHKAjfFXiZ3fsgx35uXF6VivfC5WFafu4QMalxmj6W+s277oCfdWA8Du5f1wtQXM73VQ5nHkXhM2UIfUMarsyhXK+BxKVrcgEBNHdKlDytaecUPyuOxTDdGWhN/DPv5/vL8NYWweEYBbNbLgU0Td7Rvm52TUXKThIDjeF7XDxX4ShXWipBSwU4boOUBtR8KWfga8fsqeBN+eacuAQFR3MrrOfVvAuWW6Bsf047cmd+V6Qv0raoW73Nu4M/ZAdTsaR5k62a0cHsSRoi3hCmNRqw+CZaQi8prQU6t26eWPEtznjp5EkPF+LLh8LxUoCfWqWT+Lxe8QQwT1nx/LCN
+  zookeeper:
+    backup:
+      server:
+        enabled: true
+        hours_before_full: 24
+        full_backups_to_keep: 5
+        key:
+          zookeeper_pub_key:
+            enabled: true
+            key: ${_param:zookeeper_backup_public_key}