Merge "Fix Heat ports in HAProxy/Nginx"
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..6c91a90
--- /dev/null
+++ b/cassandra/backup/client/single.yml
@@ -0,0 +1,13 @@
+classes:
+- system.openssh.client.root
+parameters:
+  cassandra:
+    backup:
+      client:
+        enabled: true
+        full_backups_to_keep: 3
+        hours_before_full: 24
+        target:
+          host: cfg01
+        restore_latest: 1
+        restore_from: local
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/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/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/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/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/jenkins/client/job/debian/packages/testing.yml b/jenkins/client/job/debian/packages/testing.yml
index 6218903..c7ecf98 100644
--- a/jenkins/client/job/debian/packages/testing.yml
+++ b/jenkins/client/job/debian/packages/testing.yml
@@ -19,9 +19,19 @@
               url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
               credentials: "gerrit"
               script: build-debian-packages-{{build}}.groovy
-            # trigger:
-            #   pollscm:
-            #     spec: ${_param:jenkins_pollscm_spec}
+            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
@@ -34,7 +44,7 @@
                 default: "gerrit"
               EXTRA_REPO_URL:
                 type: string
-                default: "deb ${_param:jenkins_aptly_url}/{{dist}}/ testing extra"
+                default: ""
               EXTRA_REPO_KEY_URL:
                 type: string
                 default: "${_param:jenkins_aptly_url}/public.gpg"
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/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/testing.yml b/jenkins/client/job/docker/testing.yml
index c1184b6..bf65dbc 100644
--- a/jenkins/client/job/docker/testing.yml
+++ b/jenkins/client/job/docker/testing.yml
@@ -1,4 +1,7 @@
 parameters:
+  _param:
+    jenkins_docker_registry_url: ""
+    jenkins_docker_registry_credentials: "dockerhub"
   jenkins:
     client:
       job_template:
@@ -34,6 +37,9 @@
               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}}"
@@ -48,10 +54,10 @@
                 default: "{{dockerfile}}"
               REGISTRY_URL:
                 type: string
-                default: ""
+                default: "${_param:jenkins_docker_registry_url}"
               REGISTRY_CREDENTIALS_ID:
                 type: string
-                default: "dockerhub"
+                default: "${_param:jenkins_docker_registry_credentials}"
               DOCKER_GIT_TAG:
                 type: boolean
                 default: "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/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/reclass/storage/system/openstack_gateway_cluster_octavia.yml b/reclass/storage/system/openstack_gateway_cluster_octavia.yml
deleted file mode 100644
index 8126ed1..0000000
--- a/reclass/storage/system/openstack_gateway_cluster_octavia.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-classes:
-- system.reclass.storage.system.openstack_gateway_cluster
-parameters:
-  reclass:
-    storage:
-      node:
-        openstack_gateway_node01:
-          classes:
-          - system.octavia.manager.single
diff --git a/reclass/storage/system/openstack_gateway_single_octavia.yml b/reclass/storage/system/openstack_gateway_single_octavia.yml
index f43e6a1..264b3f1 100644
--- a/reclass/storage/system/openstack_gateway_single_octavia.yml
+++ b/reclass/storage/system/openstack_gateway_single_octavia.yml
@@ -1,5 +1,3 @@
-classes:
-- system.reclass.storage.system.openstack_gateway_single
 parameters:
   reclass:
     storage:
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/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/telegraf/agent/init.yml b/telegraf/agent/init.yml
index 0e836e8..3f6133d 100644
--- a/telegraf/agent/init.yml
+++ b/telegraf/agent/init.yml
@@ -1,5 +1,6 @@
 classes:
 - service.telegraf.agent
+- system.telegraf.sudo
 parameters:
   telegraf:
     agent:
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..3b0d04b
--- /dev/null
+++ b/zookeeper/backup/client/single.yml
@@ -0,0 +1,13 @@
+classes:
+- system.openssh.client.root
+parameters:
+  zookeeper:
+    backup:
+      client:
+        enabled: true
+        full_backups_to_keep: 3
+        hours_before_full: 24
+        target:
+          host: cfg01
+        restore_latest: 1
+        restore_from: local
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}