Merge "Fix param name for docker elasticseach image"
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/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/devops_portal/service/elasticsearch.yml b/devops_portal/service/elasticsearch.yml
index b945af3..647c4ef 100644
--- a/devops_portal/service/elasticsearch.yml
+++ b/devops_portal/service/elasticsearch.yml
@@ -6,5 +6,5 @@
           configure_proxy: true
           endpoint:
             address: ${_param:haproxy_elasticsearch_bind_host}
-            port: ${_param:haproxy_elasticsearch_bind_port}
+            port: ${_param:haproxy_elasticsearch_http_bind_port}
             https: ${_param:haproxy_elasticsearch_ssl:enabled}
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/stack/elasticsearch.yml b/docker/swarm/stack/elasticsearch.yml
index a5fdd29..5ee295c 100644
--- a/docker/swarm/stack/elasticsearch.yml
+++ b/docker/swarm/stack/elasticsearch.yml
@@ -23,6 +23,7 @@
                 restart_policy:
                   condition: any
               ports:
-                - ${_param:haproxy_elasticsearch_exposed_port}:${_param:haproxy_elasticsearch_bind_port}
+                - ${_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/elasticsearch/client/pushkin/init.yml b/elasticsearch/client/pushkin/init.yml
index 217f1c8..9f37847 100644
--- a/elasticsearch/client/pushkin/init.yml
+++ b/elasticsearch/client/pushkin/init.yml
@@ -1,7 +1,7 @@
 parameters:
   _param:
     pushkin_elasticsearch_host: ${_param:haproxy_elasticsearch_bind_host}
-    pushkin_elasticsearch_port: ${_param:haproxy_elasticsearch_bind_port}
+    pushkin_elasticsearch_port: ${_param:haproxy_elasticsearch_http_bind_port}
   elasticsearch:
     client:
       enabled: true
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/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/elasticsearch.yml b/haproxy/proxy/listen/oss/elasticsearch.yml
index 2f5d1ee..3a4c98e 100644
--- a/haproxy/proxy/listen/oss/elasticsearch.yml
+++ b/haproxy/proxy/listen/oss/elasticsearch.yml
@@ -1,14 +1,16 @@
 parameters:
   _param:
     haproxy_elasticsearch_bind_host: ${_param:haproxy_bind_address}
-    haproxy_elasticsearch_bind_port: 9200
-    haproxy_elasticsearch_exposed_port: 19200
+    haproxy_elasticsearch_http_bind_port: 9200
+    haproxy_elasticsearch_http_exposed_port: 19200
+    haproxy_elasticsearch_binary_bind_port: 9300
+    haproxy_elasticsearch_binary_exposed_port: 19300
     haproxy_elasticsearch_ssl:
       enabled: false
   haproxy:
     proxy:
       listen:
-        elasticsearch:
+        elasticsearch_http:
           mode: http
           options:
             - forwardfor
@@ -21,18 +23,41 @@
               condition: "if { ssl_fc }"
           binds:
             - address: ${_param:haproxy_elasticsearch_bind_host}
-              port: ${_param:haproxy_elasticsearch_bind_port}
+              port: ${_param:haproxy_elasticsearch_http_bind_port}
               ssl: ${_param:haproxy_elasticsearch_ssl}
           servers:
             - name: ${_param:cluster_node01_name}
               host: ${_param:cluster_node01_address}
-              port: ${_param:haproxy_elasticsearch_exposed_port}
+              port: ${_param:haproxy_elasticsearch_http_exposed_port}
               params: check
             - name: ${_param:cluster_node02_name}
               host: ${_param:cluster_node02_address}
-              port: ${_param:haproxy_elasticsearch_exposed_port}
+              port: ${_param:haproxy_elasticsearch_http_exposed_port}
               params: backup check
             - name: ${_param:cluster_node03_name}
               host: ${_param:cluster_node03_address}
-              port: ${_param:haproxy_elasticsearch_exposed_port}
+              port: ${_param:haproxy_elasticsearch_http_exposed_port}
               params: backup check
+        elasticsearch_binary:
+          mode: tcp
+          options:
+            - tcpka
+            - tcplog
+          balance: source
+          binds:
+            - address: ${_param:haproxy_elasticsearch_bind_host}
+              port: ${_param:haproxy_elasticsearch_binary_bind_port}
+              ssl: ${_param:haproxy_elasticsearch_ssl}
+          servers:
+            - name: ${_param:cluster_node01_name}
+              host: ${_param:cluster_node01_address}
+              port: ${_param:haproxy_elasticsearch_binary_exposed_port}
+              params: check
+            - name: ${_param:cluster_node02_name}
+              host: ${_param:cluster_node02_address}
+              port: ${_param:haproxy_elasticsearch_binary_exposed_port}
+              params: backup check
+            - name: ${_param:cluster_node03_name}
+              host: ${_param:cluster_node03_address}
+              port: ${_param:haproxy_elasticsearch_binary_exposed_port}
+              params: backup check
\ No newline at end of file
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..94171cb
--- /dev/null
+++ b/heka/log_collector/output/telegraf.yml
@@ -0,0 +1,8 @@
+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
diff --git a/heka/remote_collector/output/telegraf.yml b/heka/remote_collector/output/telegraf.yml
new file mode 100644
index 0000000..7f7a5c0
--- /dev/null
+++ b/heka/remote_collector/output/telegraf.yml
@@ -0,0 +1,8 @@
+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
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..c779cfe 100644
--- a/jenkins/client/job/debian/packages/extra.yml
+++ b/jenkins/client/job/debian/packages/extra.yml
@@ -153,6 +153,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/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..7461acf 100644
--- a/jenkins/client/job/deploy/lab/mk/cloud.yml
+++ b/jenkins/client/job/deploy/lab/mk/cloud.yml
@@ -99,16 +99,16 @@
               # 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"
@@ -128,13 +128,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:
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/docker/cis-collectors.yml b/jenkins/client/job/docker/cis-collectors.yml
new file mode 100644
index 0000000..c7d580b
--- /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}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: docker-build-to-jfrog.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..c4db406 100644
--- a/jenkins/client/job/docker/devops-portal.yml
+++ b/jenkins/client/job/docker/devops-portal.yml
@@ -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..cb1eadb 100644
--- a/jenkins/client/job/docker/rundeck.yml
+++ b/jenkins/client/job/docker/rundeck.yml
@@ -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/opencontrail/build/test.yml b/jenkins/client/job/opencontrail/build/test.yml
index 9b66e60..0d1f7bf 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: "^(test|recheck|reverify)$"
             param:
               TEST_MODELS:
                 type: string
diff --git a/jenkins/client/job/salt-formulas/tests.yml b/jenkins/client/job/salt-formulas/tests.yml
index 60f4f3f..a1147e7 100644
--- a/jenkins/client/job/salt-formulas/tests.yml
+++ b/jenkins/client/job/salt-formulas/tests.yml
@@ -135,11 +135,8 @@
                       - master
                 event:
                   comment:
-                    - added:
-                        verdictCategory: 'Code-Review'
-                        commentAddedTriggerApprovalValue: '+1'
                     - addedContains:
-                        commentAddedCommentContains: '(recheck|reverify)'
+                        commentAddedCommentContains: "^(test|recheck|reverify)$"
             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..70b85b0 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: "^(test|recheck|reverify)$"
             param:
               SALT_OPTS:
                 type: string
@@ -49,6 +46,12 @@
               EXTRA_FORMULAS:
                 type: string
                 default: "{{extra_formulas}}"
+              SYSTEM_GIT_URL:
+                type: string
+                default: ""
+              SYSTEM_GIT_REF:
+                type: string
+                default: ""
         test_system_reclass:
           name: test-salt-model-{{name}}
           template:
@@ -102,11 +105,8 @@
                       - master
                 event:
                   comment:
-                    - added:
-                        verdictCategory: 'CodeReview'
-                        commentAddedTriggerApprovalValue: '+1'
                     - addedContains:
-                        commentAddedCommentContains: '(recheck|reverify)'
+                        commentAddedCommentContains: "^(test|recheck|reverify)$"
             param:
               COOKIECUTTER_TEMPLATE_URL:
                 type: string
@@ -129,3 +129,40 @@
               EXTRA_FORMULAS:
                 type: string
                 default: "xtrabackup"
+      job:
+        test-salt-model-node:
+          name: test-salt-model-node
+          discard:
+            build:
+              keep_num: 10
+            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: ""
+            SYSTEM_GIT_URL:
+              type: string
+              default: ""
+            SYSTEM_GIT_REF:
+              type: string
+              default: ""
\ No newline at end of file
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/service/ironic.yml b/keystone/client/service/ironic.yml
index 7635e2c..beb99a1 100644
--- a/keystone/client/service/ironic.yml
+++ b/keystone/client/service/ironic.yml
@@ -12,6 +12,14 @@
                   is_admin: true
                   password: ${_param:keystone_ironic_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}
           service:
             ironic:
               type: baremetal
diff --git a/keystone/client/service/octavia.yml b/keystone/client/service/octavia.yml
new file mode 100644
index 0000000..819cd79
--- /dev/null
+++ b/keystone/client/service/octavia.yml
@@ -0,0 +1,30 @@
+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: '/'
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..7adb119 100644
--- a/kubernetes/pool/cluster.yml
+++ b/kubernetes/pool/cluster.yml
@@ -2,6 +2,13 @@
 - 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:
     pool:
       container: false
diff --git a/kubernetes/pool/single.yml b/kubernetes/pool/single.yml
index 68e3844..4caaa50 100644
--- a/kubernetes/pool/single.yml
+++ b/kubernetes/pool/single.yml
@@ -2,8 +2,15 @@
 - 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:
     pool:
       container: false
       network:
-        engine: calico
\ No newline at end of file
+        engine: calico
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..64ba477 100644
--- a/neutron/compute/cluster.yml
+++ b/neutron/compute/cluster.yml
@@ -2,8 +2,11 @@
 - service.neutron.compute.single
 parameters:
   neutron:
+    _param:
+      neutron_enable_qos: False
     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:
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..52462dd 100644
--- a/neutron/gateway/cluster.yml
+++ b/neutron/gateway/cluster.yml
@@ -2,8 +2,11 @@
 - service.neutron.gateway.single
 parameters:
   neutron:
+    _param:
+      neutron_enable_qos: False
     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/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/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/reclass/storage/system/openstack_gateway_cluster_octavia.yml b/reclass/storage/system/openstack_gateway_cluster_octavia.yml
new file mode 100644
index 0000000..8126ed1
--- /dev/null
+++ b/reclass/storage/system/openstack_gateway_cluster_octavia.yml
@@ -0,0 +1,9 @@
+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
new file mode 100644
index 0000000..f43e6a1
--- /dev/null
+++ b/reclass/storage/system/openstack_gateway_single_octavia.yml
@@ -0,0 +1,9 @@
+classes:
+- system.reclass.storage.system.openstack_gateway_single
+parameters:
+  reclass:
+    storage:
+      node:
+        openstack_gateway_node01:
+          classes:
+          - system.octavia.manager.single