Merge "Add slaves configurations for vnf-onboarding jobs"
diff --git a/debmirror/mirror_mirantis_com/ubuntu/xenial.yml b/debmirror/mirror_mirantis_com/ubuntu/xenial.yml
index 20cf1e0..4a199bf 100644
--- a/debmirror/mirror_mirantis_com/ubuntu/xenial.yml
+++ b/debmirror/mirror_mirantis_com/ubuntu/xenial.yml
@@ -6,6 +6,7 @@
     client:
       enabled: true
       mirrors:
+        # This mirror is used to build unmodified(no meta changes) but reduced offline ubuntu-mirror.
         mirror_mirantis_com_ubuntu_xenial:
           force: ${_param:mirror_mirantis_com_ubuntu_xenial_force}
           lock_target: True
@@ -19,22 +20,71 @@
           dist: [ xenial , xenial-security, xenial-updates ]
           section: [ main , multiverse, restricted, universe ]
           # Don't exclude main/x11 - its required for many pkgs.
-          exclude_deb_section: [games, gnome, Xfce, sound, electronics, graphics, hamradio,
-            doc, localization, kde, video, translations, news, multiverse/games, multiverse/gnome,
-            multiverse/Xfce, multiverse/sound, multiverse/electronics, multiverse/graphics,
-            multiverse/hamradio, multiverse/doc, multiverse/localization, multiverse/kde, multiverse/video,
-            multiverse/translations, multiverse/news, multiverse/x11, universe/games, universe/gnome,
-            universe/Xfce, universe/sound, universe/electronics, universe/hamradio, universe/doc,
-            universe/localization, universe/kde, universe/video, universe/translations, universe/news,
-            universe/x11, universe/graphics, restricted/games, restricted/gnome, restricted/Xfce,
-            restricted/sound, restricted/electronics, restricted/graphics, restricted/hamradio,
-            restricted/doc, restricted/localization, restricted/kde, restricted/video, restricted/translations,
-            restricted/news, restricted/x11]
+          exclude_deb_section:
+          - games
+          - gnome
+          - Xfce
+          - sound
+          - electronics
+          - graphics
+          - hamradio
+          - doc
+          - localization
+          - kde
+          - video
+          - translations
+          - news
+          - multiverse/games
+          - multiverse/gnome
+          - multiverse/Xfce
+          - multiverse/sound
+          - multiverse/electronics
+          - multiverse/graphics
+          - multiverse/hamradio
+          - multiverse/doc
+          - multiverse/localization
+          - multiverse/kde
+          - multiverse/video
+          - multiverse/translations
+          - multiverse/news
+          - multiverse/x11
+          - universe/games
+          - universe/gnome
+          - universe/Xfce
+          - universe/sound
+          - universe/electronics
+          - universe/hamradio
+          - universe/doc
+          - universe/localization
+          - universe/kde
+          - universe/video
+          - universe/translations
+          - universe/news
+          - universe/x11
+          - universe/graphics
+          - restricted/games
+          - restricted/gnome
+          - restricted/Xfce
+          - restricted/sound
+          - restricted/electronics
+          - restricted/graphics
+          - restricted/hamradio
+          - restricted/doc
+          - restricted/localization
+          - restricted/kde
+          - restricted/video
+          - restricted/translations
+          - restricted/news
+          - restricted/x11
+          - main/debug
+          - multiverse/debug
+          - restricted/debug
+          - universe/debug
+          # Updating filter, please always start from section, aka main|universe|multiverse
           filter:
             1: "--exclude='android*'"
-            2: "--exclude='/firefox*'"
+            2: "--exclude='/(main|universe)/f/firefox'"
             3: "--exclude='/chromium-browser*'"
-            4: "--exclude='/ceph*'"
             5: "--exclude='/*-wallpapers*'"
             6: "--exclude='/language-pack-(?!en)'"
             7: "--exclude='thunderbird*'"
@@ -59,35 +109,68 @@
             27: "--exclude='/*(.xorg)*joystick'"
             28: "--exclude='/xserver-xorg-video(.*vivid|.*wily|.*utopic)'"
             30: "--exclude='/*universe.*bluez.*'"
-            31: "--exclude='/main/m/maas/'" # ppa should be always used
             32: "--exclude='/main/a/a11y-profile-manager/'"
             33: "--exclude='/universe/.*(alsa|ubuntuone|telepathy|debian-multimedia|kodi|mediaplayer|nagios|getfem|gammaray|geotranz)'"
             34: "--exclude='/universe/.*(pyqt|usb-creator|gcc-mingw-w64|gcc-snapshot)'"
             35: "--exclude='/universe/q/qt'"
-            36: "--exclude='/universe/g/glusterfs/'" # ppa should be always used
-            37: "--exclude='/universe/d/docker.io/'" # ppa should be always used
-            38: "--exclude='/universe/a/aptly'" # ppa should be always used
-            39: "--exclude='/universe/e/elasticsearch'" # ppa should be always used
-            40: "--exclude='/universe/g/grafana/'" # ppa should be always used
-            41: "--exclude='/universe/i/influxdb(?!.*python)'" # ppa should be always used
-            42: "--exclude='/universe/s/salt'" # ppa should be always used
-            43: "--exclude='/universe/z/zabbix'" # ppa should be always used
-            44: "--exclude='/universe/.*(brasero|mediascanner2|mediatomb|mediawiki|qtmultimedia|pidgin|skype|eclipse|esys-particle|fusion)'"
+            36: "--exclude='/universe/.*(brasero|mediascanner2|mediatomb|mediawiki|qtmultimedia|pidgin|skype|eclipse|esys-particle|fusion|0/0ad|e/emboss|e/empathy|g/globus)'"
+            84: "--exclude='/multiverse/(v/virtualbox|w/wine|playonlinux)'"
+            86: "--exclude='/main/(m/mozc/|n/nut/|o/oxide-qt/|o/orbit2/|q/(qtbase-opensource-src|qtdeclarative-opensource-src)/|t/telepathy-glib|w/webkit2gtk|w/webrtc-audio-processing)'"
+            87: "--exclude='universe/(s/syncevolution|r/r-bioc-)'"
+            88: "--exclude='universe/t/texlive-lang/texlive-lang-(?!.*english)'"
             89: "--exclude='/universe/k/(kde)'"
             90: "--exclude='/universe/p/(psi-plus|puppet-module|plasma|pcl/)'"
             91: "--exclude='golang-github-*'"
             92: "--exclude='/(llvm-toolchain|address-book|amule|openclipart|rhythmbox|gimp|sonic-visualiser|games|bsdgame|gazebo|arduino|webkitgtk|widelands|wxwidget|warzone|wings3d).*'"
             93: "--exclude='/(asterisk|abiword|webbrowser-app|imagemagick|.*clamav|wireshar|vlc|.*transmission|tryton-modules|trilinos|tomboy|wine1|wine-dev|compiz|mythtv|ubuntustudio).*'"
-            94: "--exclude='/(ceilometer|nova|openstack-debian-images).*'"
+            94: "--exclude='/universe/o/(openstack-debian-images).*'"
             95: "--exclude='/gcc-.*-cross.*'"
             96: "--exclude='/(nvidia).*'"
-            97: "--exclude='linux-*-(.*azure|.*aws|gke|.*azure-edge|.*linux-oem)'"
-            98: "--exclude='/.*(arm64|powerpc|s390x|armel|armhf|sparc64|mips64|ppc64el|mipsn32)(?!.*amd64)'"
-            99: "--exclude='/*universe.*(-armel-|-arm-)(?!.*amd64)'"
+            # List of unused linux kernels and unsupported arch
+            300: "--exclude='/.*(arm64|powerpc|s390x|armel|armhf|sparc64|mips64|ppc64el|mipsn32)(?!.*amd64)'"
+            301: "--exclude='(main|universe)/l/linux-*-(.*azure|.*aws|gke|.*azure-edge|.*oem/|.*euclid/)'"
+            302: "--exclude='/*universe.*(-armel-|-arm-)(?!.*amd64)'"
+            303: "--exclude='/main/l/linux(.*)/linux-source-*'"
+            # List of packages, that should be fetched from fresh ppa or other mirror
+            # So,removing them from upstream mirror.
+            500: "--exclude='/main/m/maas/'"
+            501: "--exclude='/universe/g/glusterfs/'"
+            502: "--exclude='/universe/d/(docker-|docker.io)/'"
+            503: "--exclude='/(main|universe)/c/ceph'"
+            504: "--exclude='/universe/a/aptly'"
+            505: "--exclude='/universe/e/elasticsearch'"
+            506: "--exclude='/universe/g/grafana/'"
+            507: "--exclude='/universe/i/influxdb(?!.*python)'"
+            508: "--exclude='/universe/s/salt'"
+            509: "--exclude='/universe/z/zabbix'"
+            510: "--exclude='(universe|main)/(o|d|n)/(openvswitch|dpdk|networking-ovs-dpdk)'"
+            511: "--exclude='/main/libv/.*(libvirt)'"
+            512: "--exclude='/main/s/.*(seabios)'"
+            513: "--exclude='/universe/.*libvirt'"
+            514: "--exclude='/(universe|main)/c/(cinder|ceilometer)'"
+            515: "--exclude='/(universe|main)/p/python-(cinder|ceilometer)client'"
+            516: "--exclude='/(universe|main)/n/(nova|neutron)'"
+            517: "--exclude='/(universe|main)/p/python-(nova|neutron)client'"
+            518: "--exclude='/(universe|main)/g/(glance)'"
+            519: "--exclude='/(universe|main)/p/python-(glance)client'"
+            520: "--exclude='/(universe|main)/b/(barbican)'"
+            521: "--exclude='/(universe|main)/k/(keystone)'"
+            522: "--exclude='/(universe|main)/d/(designate)'"
+            523: "--exclude='/(universe|main)/p/python-(barbican|keystone|designate)client'"
+            524: "--exclude='/(universe|main)/h/(horizon|heat)'"
+            525: "--exclude='/(universe|main)/p/python-(horizon|heat)client'"
+            526: "--exclude='/(universe|main)/m/(murano|mistral|manila)'"
+            527: "--exclude='/(universe|main)/p/python-(murano|mistral|manila)client'"
+            528: "--exclude='/(universe|main)/i/(ironic)'"
+            529: "--exclude='/(universe|main)/a/(aodh)'"
+            530: "--exclude='/(universe|main)/p/python-(ironic|aodh)client'"
             # List of extra includes, founded after tests.
-            100: "--include='/main(.*)manpages'"
-            101: "--include='/main(.*)python-(.*)doc'"
-            102: "--include='/main(.*)python-(.*)network'"
-            103: "--include='/main(.*)unittest2'" # openstack* pkgs
-            104: "--include='/main(.*)libbluetooth3'" # python-guestfs
+            800: "--include='/main(.*)manpages'"
+            801: "--include='/main(.*)python-(.*)doc'"
+            802: "--include='/main(.*)python-(.*)network'"
+            803: "--include='/main(.*)unittest2'" # openstack* pkgs
+            804: "--include='/main(.*)libbluetooth3'" # python-guestfs
+            805: "--include='/main(.*)llvm-toolchain-5.0'" # pki-ca: < 389-ds-base < dogtag
+
+
 
diff --git a/docker/client/compose/service/gerrit.yml b/docker/client/compose/service/gerrit.yml
index eeb126e..50d933b 100644
--- a/docker/client/compose/service/gerrit.yml
+++ b/docker/client/compose/service/gerrit.yml
@@ -2,8 +2,8 @@
   - system.docker.client.compose
 parameters:
   _param:
-    docker_image_gerrit: tcpcloud/gerrit:2.13.6
-    docker_image_mysql: tcpcloud/mysql:5.6
+    docker_image_gerrit: mirantis/gerrit:2.13.6
+    docker_image_mysql: mirantis/mysql:5.6
     gerrit_ldap_server: ""
     gerrit_ldap_bind_user: ""
     gerrit_ldap_bind_password: ""
diff --git a/docker/client/compose/service/jenkins.yml b/docker/client/compose/service/jenkins.yml
index 7db9da5..5054909 100644
--- a/docker/client/compose/service/jenkins.yml
+++ b/docker/client/compose/service/jenkins.yml
@@ -2,7 +2,7 @@
   - system.docker.client.compose
 parameters:
   _param:
-    docker_image_jenkins: tcpcloud/jenkins:2.100
+    docker_image_jenkins: mirantis/jenkins:2.100
     jenkins_master_extra_opts: ""
     jenkins_master_executors_num: 4
     jenkins_master_max_concurent_requests: 40
diff --git a/docker/swarm/stack/aptly.yml b/docker/swarm/stack/aptly.yml
index 89ec5ec..a7928f7 100644
--- a/docker/swarm/stack/aptly.yml
+++ b/docker/swarm/stack/aptly.yml
@@ -4,8 +4,11 @@
   _param:
     docker_stack_aptly_public_replicas: 3
     docker_image_aptly:
-      api: tcpcloud/aptly-api
-      public: tcpcloud/aptly-public
+      # This image is temporary replacement for mirantis/aptly-api because of acquire_by_hash bug
+      # https://github.com/smira/aptly/pull/697. We waiting for new release of aptly
+      api: breton/aptly-api
+      #api: mirantis/aptly-api
+      public: mirantis/aptly-public
   docker:
     client:
       stack:
diff --git a/docker/swarm/stack/gerrit.yml b/docker/swarm/stack/gerrit.yml
index 49d0a11..ad3ea6d 100644
--- a/docker/swarm/stack/gerrit.yml
+++ b/docker/swarm/stack/gerrit.yml
@@ -2,8 +2,8 @@
 - system.docker
 parameters:
   _param:
-    docker_image_gerrit: tcpcloud/gerrit:2.13.6
-    docker_image_mysql: tcpcloud/mysql:5.6
+    docker_image_gerrit: mirantis/gerrit:2.13.6
+    docker_image_mysql: mirantis/mysql:5.6
     gerrit_ldap_server: ""
     gerrit_ldap_bind_user: ""
     gerrit_ldap_bind_password: ""
diff --git a/docker/swarm/stack/jenkins/master.yml b/docker/swarm/stack/jenkins/master.yml
index d08bf71..890f8da 100644
--- a/docker/swarm/stack/jenkins/master.yml
+++ b/docker/swarm/stack/jenkins/master.yml
@@ -2,7 +2,7 @@
 - system.docker
 parameters:
   _param:
-    docker_image_jenkins: tcpcloud/jenkins:2.100
+    docker_image_jenkins: mirantis/jenkins:2.100
     jenkins_master_extra_opts: ""
     jenkins_master_executors_num: 4
     jenkins_master_max_concurent_requests: 40
diff --git a/docker/swarm/stack/jenkins/slave.yml b/docker/swarm/stack/jenkins/slave.yml
index 12a14d4..42a0031 100644
--- a/docker/swarm/stack/jenkins/slave.yml
+++ b/docker/swarm/stack/jenkins/slave.yml
@@ -2,7 +2,7 @@
 - system.docker
 parameters:
   _param:
-    docker_image_jenkins_slave: tcpcloud/jnlp-slave
+    docker_image_jenkins_slave: mirantis/jnlp-slave
     jenkins_master_host: ${_param:control_vip_address}
     jenkins_master_port: 8081
     jenkins_secret: "7c40abc1a7df2d26dd6b2e4421af17218df75a16fcbd5e3aa6017d9f47eaeabe"
diff --git a/docker/swarm/stack/ldap.yml b/docker/swarm/stack/ldap.yml
index a5fe135..f4866f1 100644
--- a/docker/swarm/stack/ldap.yml
+++ b/docker/swarm/stack/ldap.yml
@@ -1,7 +1,7 @@
 parameters:
   _param:
     docker_image_openldap: osixia/openldap:1.1.8
-    docker_image_phpldapadmin: tcpcloud/phpldapadmin:0.6.12
+    docker_image_phpldapadmin: mirantis/phpldapadmin:0.6.12
   docker:
     client:
       stack:
diff --git a/haproxy/proxy/listen/radosgw.yml b/haproxy/proxy/listen/radosgw.yml
index 434555d..350abbf 100644
--- a/haproxy/proxy/listen/radosgw.yml
+++ b/haproxy/proxy/listen/radosgw.yml
@@ -2,12 +2,12 @@
   _param:
     haproxy_radosgw_bind_port: 8080
     haproxy_radosgw_source_port: 8080
-    ceph_rgw_node01_hostname: ${_param:cluster_node01_hostname}
-    ceph_rgw_node02_hostname: ${_param:cluster_node02_hostname}
-    ceph_rgw_node03_hostname: ${_param:cluster_node03_hostname}
-    ceph_rgw_node01_address: ${_param:cluster_node01_address}
-    ceph_rgw_node02_address: ${_param:cluster_node02_address}
-    ceph_rgw_node03_address: ${_param:cluster_node03_address}
+    haproxy_ceph_rgw_node01_hostname: ${_param:cluster_node01_hostname}
+    haproxy_ceph_rgw_node02_hostname: ${_param:cluster_node02_hostname}
+    haproxy_ceph_rgw_node03_hostname: ${_param:cluster_node03_hostname}
+    haproxy_ceph_rgw_node01_address: ${_param:cluster_node01_address}
+    haproxy_ceph_rgw_node02_address: ${_param:cluster_node02_address}
+    haproxy_ceph_rgw_node03_address: ${_param:cluster_node03_address}
   haproxy:
     proxy:
       listen:
@@ -18,15 +18,15 @@
             - address: ${_param:cluster_vip_address}
               port: ${_param:haproxy_radosgw_bind_port}
           servers:
-            - name: ${_param:ceph_rgw_node01_hostname}
-              host: ${_param:ceph_rgw_node01_address}
+            - name: ${_param:haproxy_ceph_rgw_node01_hostname}
+              host: ${_param:haproxy_ceph_rgw_node01_address}
               port: ${_param:haproxy_radosgw_source_port}
               params: check
-            - name: ${_param:ceph_rgw_node02_hostname}
-              host: ${_param:ceph_rgw_node02_address}
+            - name: ${_param:haproxy_ceph_rgw_node02_hostname}
+              host: ${_param:haproxy_ceph_rgw_node02_address}
               port: ${_param:haproxy_radosgw_source_port}
               params: check
-            - name: ${_param:ceph_rgw_node03_hostname}
-              host: ${_param:ceph_rgw_node03_address}
+            - name: ${_param:haproxy_ceph_rgw_node03_hostname}
+              host: ${_param:haproxy_ceph_rgw_node03_address}
               port: ${_param:haproxy_radosgw_source_port}
               params: check
diff --git a/jenkins/client/approved_scripts.yml b/jenkins/client/approved_scripts.yml
index 634aa0e..190d9cb 100644
--- a/jenkins/client/approved_scripts.yml
+++ b/jenkins/client/approved_scripts.yml
@@ -57,6 +57,8 @@
         - method java.util.LinkedHashMap$LinkedHashIterator hasNext
         - method java.util.List add int java.lang.Object
         - method java.util.List subList int int
+        - method java.util.Map containsValue java.lang.Object
+        - method java.util.Map get java.lang.Object
         - method java.util.Map remove java.lang.Object
         - method java.util.Map size
         - method java.util.Map isEmpty
diff --git a/jenkins/client/job/deploy/lab/deploy.yml b/jenkins/client/job/deploy/lab/deploy.yml
index 6e716f9..5b63d94 100644
--- a/jenkins/client/job/deploy/lab/deploy.yml
+++ b/jenkins/client/job/deploy/lab/deploy.yml
@@ -1,6 +1,12 @@
 parameters:
   _param:
     jenkins_deploy_jobs: []
+    heat_stack_zone_job_param:
+      type: string
+      default: "mcp-mk"
+    openstack_api_projects_job_param:
+      type: string
+      default: "mcp-mk"
   jenkins:
     client:
       job_template:
@@ -125,9 +131,7 @@
               HEAT_STACK_ENVIRONMENT:
                 type: string
                 default: "{{stack_env}}"
-              HEAT_STACK_ZONE:
-                type: string
-                default: "mcp-mk"
+              HEAT_STACK_ZONE: ${_param:heat_stack_zone_job_param}
               HEAT_STACK_PUBLIC_NET:
                 type: string
                 default: "public"
@@ -139,9 +143,7 @@
               OPENSTACK_API_CREDENTIALS:
                 type: string
                 default: "openstack-devcloud-credentials"
-              OPENSTACK_API_PROJECT:
-                type: string
-                default: "mcp-mk"
+              OPENSTACK_API_PROJECT: ${_param:openstack_api_projects_job_param}
               OPENSTACK_API_PROJECT_DOMAIN:
                 type: string
                 default: "default"
diff --git a/jenkins/client/job/deploy/lab/release/mcp05.yml b/jenkins/client/job/deploy/lab/release/mcp05.yml
index 61d5399..a80820f 100644
--- a/jenkins/client/job/deploy/lab/release/mcp05.yml
+++ b/jenkins/client/job/deploy/lab/release/mcp05.yml
@@ -5,7 +5,7 @@
     jenkins_deploy_jobs:
       - stack_name: virtual_mcp05_ovs_dvr
         stack_env: devcloud_virtual_mcp05_dvr
-        stack_install: core,openstack,dvr
+        stack_install: core,openstack,ovs
         stack_type: heat
         stack_test: ""
         job_timer: ""
diff --git a/jenkins/client/job/deploy/lab/release/mcp10.yml b/jenkins/client/job/deploy/lab/release/mcp10.yml
index 66f08af..bf02797 100644
--- a/jenkins/client/job/deploy/lab/release/mcp10.yml
+++ b/jenkins/client/job/deploy/lab/release/mcp10.yml
@@ -18,7 +18,7 @@
         job_timer: ""
       - stack_name: mcp10_dvr
         stack_env: devcloud
-        stack_install: core,kvm,openstack,dvr
+        stack_install: core,kvm,openstack,ovs
         stack_type: physical
         stack_test: openstack
         job_timer: ""
@@ -38,7 +38,7 @@
         job_timer: "H H(0-6) * * *"
       - stack_name: virtual_mcp10_ovs_dvr
         stack_env: devcloud
-        stack_install: core,openstack,dvr
+        stack_install: core,openstack,ovs
         stack_type: heat
         stack_test: ""
         job_timer: "H H(0-6) * * *"
diff --git a/jenkins/client/job/deploy/lab/release/mcp11.yml b/jenkins/client/job/deploy/lab/release/mcp11.yml
index 7f12594..9670ef4 100644
--- a/jenkins/client/job/deploy/lab/release/mcp11.yml
+++ b/jenkins/client/job/deploy/lab/release/mcp11.yml
@@ -11,7 +11,7 @@
         job_timer: ""
       - stack_name: virtual_mcp11_dvr
         stack_env: devcloud
-        stack_install: core,openstack,dvr
+        stack_install: core,openstack,ovs
         stack_type: heat
         stack_test: ""
         job_timer: ""
@@ -83,7 +83,7 @@
         job_timer: ""
       - stack_name: virtual_mcp_mitaka_dvr
         stack_env: devcloud
-        stack_install: core,openstack,dvr
+        stack_install: core,openstack,ovs
         stack_type: heat
         stack_test: ""
         job_timer: ""
@@ -95,19 +95,19 @@
         job_timer: ""
       - stack_name: virtual_mcp_newton_dvr
         stack_env: devcloud
-        stack_install: core,openstack,dvr
+        stack_install: core,openstack,ovs
         stack_type: heat
         stack_test: ""
         job_timer: ""
       - stack_name: virtual_mcp_pike_dvr
         stack_env: devcloud
-        stack_install: core,openstack,dvr
+        stack_install: core,openstack,ovs
         stack_type: heat
         stack_test: ""
         job_timer: ""
       - stack_name: virtual_mcp_pike_dvr_ssl
         stack_env: devcloud
-        stack_install: core,openstack,dvr
+        stack_install: core,openstack,ovs
         stack_type: heat
         stack_test: ""
         job_timer: ""
diff --git a/jenkins/client/job/image/centos.yml b/jenkins/client/job/image/centos.yml
index d478ccc..d5856e4 100644
--- a/jenkins/client/job/image/centos.yml
+++ b/jenkins/client/job/image/centos.yml
@@ -72,3 +72,9 @@
             OPENSTACK_API_CLIENT:
               type: string
               default: ""
+            IMAGE_NAME:
+              type: string
+              default: centos-7-x64
+            EXTRA_VARIABLES:
+              type: text
+              default: ""
\ No newline at end of file
diff --git a/jenkins/client/job/image/debian.yml b/jenkins/client/job/image/debian.yml
index 31c46b3..ab17c06 100644
--- a/jenkins/client/job/image/debian.yml
+++ b/jenkins/client/job/image/debian.yml
@@ -72,3 +72,9 @@
             OPENSTACK_API_CLIENT:
               type: string
               default: ""
+            IMAGE_NAME:
+              type: string
+              default: debian-8-x64
+            EXTRA_VARIABLES:
+              type: text
+              default: ""
diff --git a/jenkins/client/job/image/ubuntu.yml b/jenkins/client/job/image/ubuntu.yml
index fa84813..8d7e1de 100644
--- a/jenkins/client/job/image/ubuntu.yml
+++ b/jenkins/client/job/image/ubuntu.yml
@@ -79,6 +79,12 @@
             OPENSTACK_API_CLIENT:
               type: string
               default: ""
+            IMAGE_NAME:
+              type: string
+              default: ubuntu-14-04-x64
+            EXTRA_VARIABLES:
+              type: text
+              default: ""
         build-image-ubuntu-16-04:
           type: workflow-scm
           concurrent: false
@@ -145,3 +151,9 @@
             OPENSTACK_API_CLIENT:
               type: string
               default: ""
+            IMAGE_NAME:
+              type: string
+              default: ubuntu-16-04-x64
+            EXTRA_VARIABLES:
+              type: text
+              default: ""
\ No newline at end of file
diff --git a/jenkins/client/job/oscore/tests.yml b/jenkins/client/job/oscore/tests.yml
index 56ecfe2..d06160e 100644
--- a/jenkins/client/job/oscore/tests.yml
+++ b/jenkins/client/job/oscore/tests.yml
@@ -574,10 +574,6 @@
               STACK_RECLASS_ADDRESS:
                 type: string
                 default: "{{stack_reclass_address}}"
-              OPENSTACK_RELEASES:
-                type: string
-                default: "{{openstack_releases}}"
-                description: "OpenStack releases with comma delimeter which have to be testes. For example: pike,ocata"
               SOURCE_REPO_NAME:
                 type: string
                 description: "Name of the repo where packages are stored"
@@ -598,14 +594,10 @@
                 type: boolean
                 default: "{{auto_promote}}"
                 description: Enable to autopromote repo
-              TEST_MULTINODE:
-                type: boolean
-                default: "{{test_multinode}}"
-                description: Whether to test nightly snapshot against multi-node virtual models
-              STACK_CLUSTER_NAMES:
+              TEST_SCHEMAS:
                 type: string
-                default: "{{stack_cluster_names}}"
-                description: "Cluster name to use from reclass to deploy multi-node"
+                default: "{{test_schemas}}"
+                description: "Defines structure to pass aio:cluster-name1:branch1,branch2|multinode:cluster-name2:branch1,branch2"
         build-salt-formula-refspec-template:
           name: "{{job_prefix}}-build-salt-formula-refspec"
           template:
diff --git a/keepalived/cluster/instance/openstack_web_public_vip.yml b/keepalived/cluster/instance/openstack_web_public_vip.yml
index 1080e62..144ddf2 100644
--- a/keepalived/cluster/instance/openstack_web_public_vip.yml
+++ b/keepalived/cluster/instance/openstack_web_public_vip.yml
@@ -11,7 +11,7 @@
     cluster:
       vrrp_scripts:
         check_pidof:
-          args: "haproxy"
+          args: "nginx"
           interval: 10
           rise: 1
           fall: 1
@@ -23,4 +23,4 @@
           interface: ${_param:keepalived_openstack_web_public_vip_interface}
           virtual_router_id: 132
           priority: ${_param:keepalived_vip_priority}
-          track_script: check_pidof
+          track_script: check_pidof
\ No newline at end of file
diff --git a/keystone/client/os_client_config/admin_identity.yml b/keystone/client/os_client_config/admin_identity.yml
new file mode 100644
index 0000000..35cdf19
--- /dev/null
+++ b/keystone/client/os_client_config/admin_identity.yml
@@ -0,0 +1,19 @@
+parameters:
+  keystone:
+    client:
+      os_client_config:
+        enabled: true
+        cfgs:
+          root:
+            content:
+              clouds:
+                admin_identity:
+                  region_name: ${_param:openstack_region}
+                  identity_api_version: '3'
+                  auth:
+                    username: 'admin'
+                    password: ${_param:keystone_admin_password}
+                    user_domain_name: 'Default'
+                    project_name: 'admin'
+                    project_domain_name: 'Default'
+                    auth_url: ${_param:keystone_service_protocol}://${_param:keystone_service_host}:5000
diff --git a/keystone/client/single.yml b/keystone/client/single.yml
index a79ed7e..ad2d55a 100644
--- a/keystone/client/single.yml
+++ b/keystone/client/single.yml
@@ -1,4 +1,5 @@
 classes:
+- system.keystone.client.os_client_config.admin_identity
 - system.keystone.client.service.cinder
 - system.keystone.client.service.cinder2
 - system.keystone.client.service.glance
diff --git a/manila/client/init.yml b/manila/client/init.yml
new file mode 100644
index 0000000..2fdadfd
--- /dev/null
+++ b/manila/client/init.yml
@@ -0,0 +1,4 @@
+classes:
+- service.manila.client
+- system.keystone.client.os_client_config.admin_identity
+- system.manila.client.share_type
diff --git a/manila/client/share_type/default.yml b/manila/client/share_type/default.yml
new file mode 100644
index 0000000..bafd387
--- /dev/null
+++ b/manila/client/share_type/default.yml
@@ -0,0 +1,17 @@
+parameters:
+  _param:
+    manila_share_type_default_extra_specs:
+      driver_handles_share_servers: False
+      snapshot_support: True
+  manila:
+    client:
+      enabled: true
+      server:
+        admin_identity:
+          share_type:
+            default:
+              name: 'default'
+              # Extra quotes are required to make sure automatic conversion to float
+              # not happening.
+              microversion: '"2.40"'
+              extra_specs: ${_param:manila_share_type_default_extra_specs}
diff --git a/manila/client/share_type/init.yml b/manila/client/share_type/init.yml
new file mode 100644
index 0000000..ca69e74
--- /dev/null
+++ b/manila/client/share_type/init.yml
@@ -0,0 +1,2 @@
+classes:
+- system.manila.client.share_type.default
diff --git a/openssh/server/team/l1_support.yml b/openssh/server/team/l1_support.yml
index 8f1d5c1..79db71d 100644
--- a/openssh/server/team/l1_support.yml
+++ b/openssh/server/team/l1_support.yml
@@ -24,6 +24,7 @@
 - system.openssh.server.team.members.nkabanova
 - system.openssh.server.team.members.renesoto
 - system.openssh.server.team.members.rsafonov
+- system.openssh.server.team.members.mmazepa
 - system.openssh.server.team.members.scottmachtmes
 - system.openssh.server.team.members.zahedkhurasani
 parameters:
diff --git a/openssh/server/team/mcp_qa.yml b/openssh/server/team/mcp_qa.yml
index e80d339..b898218 100644
--- a/openssh/server/team/mcp_qa.yml
+++ b/openssh/server/team/mcp_qa.yml
@@ -296,7 +296,7 @@
     ssokolov:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHuIo/dLh5qt+8jV4UUPqDo6ktJc12HVFg10S3hinjJUlAOxq8554l0LMvxmiZSrIjxGE/qUr8PlRgjLi4x4zQDggBdNGC/S4zcYNEiTQ7HaOFOjEJ0si6ODZfssQsr/A/bXdNOZE/nIZTUhTddJG+3nKUvuPnTeOQLqEOp4IFJwwvwnD2Wo4I1nc6+yDSJLuG8ANLtLlStzpMKr8wHvPWCUcB9B1oeeOVtw9+vEKxuUBkheXnXMh7shiyt4vmaFVbcgcHGPg8DjP8alKeAbIk0AYhiuNHV/rFzL+/kfImS94gU93A8vt0U2vCj8golqt2huxJblKDr4Abq1lDXLwn ssm@n104309
     mshalamov:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDISS6h3QAYC7u5njMks8Wsb6dHd/+HnU4nCEkqn7At5V7IdhD8K7m/9woyEdsDEPEHfqIkS7VAtjZbWlpUdNDFFos6yDFusOqLOoEOVdhuVZISUQZpsZExQ7poUN+w2Z9wmxSZ5sAL5iaamMDKhxR/ANL+olnXRxl4qmWSm4RYgQ5z4+Md1gorsy1Lnz1rEalhbUFPtfwiQgWZzNiTat0oMuRVOTASHjvE7+Tu8yt3nZ63OzGGzCBIq94PITh9wjRqoRn71PM8Q4U/UWhMApQSh/GWB0Y5VaCfIHdvnI0V+OIVGecd6sMgqVIy3DH+P4afZ6xIJ5jjeAi27HhuM/Tqr0yHn5TRa95WoH/zp8GVIdNxiBGZdhxEwzUctKzXN9LKmWRd37xywmrnLWdFtDWgE4I4xxadAU1qQqENeGoNnHofalrMPF95VZApkA7kDMNedrPha0bwbErX8gjtVs0K8QCLSc2n94obOCSQKTBx/NEq2Nq28mr9FKcmtFmu5sQYab4AbUmh7e+CHZYUCg0TIWcSEfPjSjur3AwvTq+4rJ0vUCqhthQspgLhkomzaWG1bhSeNs3Tq2Pq9l1kBsaMao2zu0uYu4Na2YzptsqAue7MybHLQW8O7TyMycfGNGv23i1g/EZWUhVyGQswEThkvafymZi5EUm5AbYf7ud0FQ== mshalamov@mirantis.com
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzGhXA8t3nWeeM8+L3drG+4ACt9pOS1CVAAsW634Q6EtbxSzpsdp3NEJ3X8jKmfiwGZmqUiJ0G0lzS+vHdQ4vJ58M9f7YpXYYah8/557YLvIgg+F/3cltS7PHSE3jqNZgQBHG0f4SRwiBq4zhWhDOCXtzHmsT4EUj+9K6EOlPk7SjrOQAZA0XcPl//lw8g5zHAAC6phNa+WzHLzQSyWAZZhIKyvbXTHpSAUAww5rIlquucxVMbnbqlSOD4FTikSOLQa9iq4Nx10c3ZZTD3xTMuissSj5XJU5LaO7qlraOBsKTlkO0T+VS1aMnfJ943QSI2wu6epKWWHAFXV7Z2nsTL mshalamov@mirantis.com
     schipiga:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDamKTbqCQCGW1JLo+4PgntC1TkRrwbDOELyRVHxAlc56CcJE9QjrNnCOTqvgRoAmIC+P86nzUQxwSREMd0qgVCefAxKQVFVQ38oym9G90TF0nx4fFT3hUhEQwjMBjHhR2Vo+uUwbT2Hg51U1gBPx/WFa0U5Cf7V6+XNJ3r22W4XG8OrbuAoapwl4WN1346HEj3d0U6Z8Unsqjx9pRpZ1eYCeng4emLZ1UOhvLBfw22vSTkujjjRdfY6g52Gv4hRsgsS+JWulO+z/qd1GFcUp9j+yIvur+eeTWHelAbXq4kRNQfQjAs6nMM8Hp8gPa5jLYqMz2GgD96p8wOQCdK2nyL schipiga@mirantis.com
     obutenko:
diff --git a/openssh/server/team/members/mmazepa.yml b/openssh/server/team/members/mmazepa.yml
new file mode 100644
index 0000000..a8aa3ba
--- /dev/null
+++ b/openssh/server/team/members/mmazepa.yml
@@ -0,0 +1,22 @@
+parameters:
+  linux:
+    system:
+      user:
+        mmazepa:
+          enabled: true
+          name: mmazepa
+          sudo: ${_param:linux_system_user_sudo}
+          full_name: Margarita Mazepa
+          home: /home/mmazepa
+          email: mmazepa@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        mmazepa:
+          enabled: true
+          public_keys: ${public_keys:mmazepa}
+          user: ${linux:system:user:mmazepa}
+  public_keys:
+    mmazepa:
+      - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcMaBZDgLdCaOtoSd76IMIS+eJvOZSkidAIeBw/XuKz1jXfftdjUwWUNV+51Q+trvGE/Z/Puv4KCzTxnBhqo2n2HsO+LWGUn1Kg9SIQv6leSnfl62nLaTi2iiE7G+JEk3It9/cqonJkTWsXiid0Ve27GooxlInlgpwfk0VE6zSeYBdBIwtdi/l/lenkkdcSSu+lOe58kDxUziZvvheZ08LwczPWYxYd3pmDmFi5WHOhVPoxR+9LICSNc012N9VU3E/h99nz7Bx2wmdBq+OE4ManHhUP90ntJmLkak7CoSsPOpNOtpkLfTbW/m2XVaWoUKT39s4aU8ItQ3tdWMzuWr/ margarita@wargyrl
diff --git a/openssh/server/team/support.yml b/openssh/server/team/support.yml
index 1c59bb8..046aa9b 100644
--- a/openssh/server/team/support.yml
+++ b/openssh/server/team/support.yml
@@ -21,6 +21,7 @@
 - system.openssh.server.team.members.mikhailkraynov
 - system.openssh.server.team.members.renesoto
 - system.openssh.server.team.members.rsafonov
+- system.openssh.server.team.members.mmazepa
 - system.openssh.server.team.members.scottmachtmes
 - system.openssh.server.team.members.zahedkhurasani
 # L2OPS
diff --git a/salt/master/formula/git/foundation.yml b/salt/master/formula/git/foundation.yml
index dbc7d19..01affb5 100644
--- a/salt/master/formula/git/foundation.yml
+++ b/salt/master/formula/git/foundation.yml
@@ -12,6 +12,10 @@
               source: git
               address: '${_param:salt_master_environment_repository}/salt-formula-bind.git'
               revision: ${_param:salt_master_environment_revision}
+            debmirror:
+              source: git
+              address: '${_param:salt_master_environment_repository}/salt-formula-debmirror.git'
+              revision: ${_param:salt_master_environment_revision}
             gerrit:
               module:
                 gerrit.py:
diff --git a/salt/master/formula/git/watchdog.yml b/salt/master/formula/git/watchdog.yml
new file mode 100644
index 0000000..0daab5c
--- /dev/null
+++ b/salt/master/formula/git/watchdog.yml
@@ -0,0 +1,10 @@
+parameters:
+  salt:
+    master:
+      environment:
+        dev:
+          formula:
+            watchdog:
+              source: git
+              address: '${_param:salt_master_environment_repository}/salt-formula-watchdog.git'
+              revision: ${_param:salt_master_environment_revision}
\ No newline at end of file
diff --git a/salt/master/formula/pkg/foundation.yml b/salt/master/formula/pkg/foundation.yml
index 5d530d4..c34f6a0 100644
--- a/salt/master/formula/pkg/foundation.yml
+++ b/salt/master/formula/pkg/foundation.yml
@@ -13,6 +13,9 @@
             bind:
               source: pkg
               name: salt-formula-bind
+            debmirror:
+              source: pkg
+              name: salt-formula-debmirror
             gerrit:
               source: pkg
               name: salt-formula-gerrit
diff --git a/salt/master/formula/pkg/watchdog.yml b/salt/master/formula/pkg/watchdog.yml
new file mode 100644
index 0000000..9a77953
--- /dev/null
+++ b/salt/master/formula/pkg/watchdog.yml
@@ -0,0 +1,9 @@
+parameters:
+  salt:
+    master:
+      environment:
+        prd:
+          formula:
+            watchdog:
+              source: pkg
+              name: salt-formula-watchdog