Merge pull request #225 from Mirantis/pr_fix_glusterfs_repo

FIX, glusterfs component
diff --git a/README.rst b/README.rst
index 539b6d2..1f1c8f4 100644
--- a/README.rst
+++ b/README.rst
@@ -78,3 +78,19 @@
                 # Enabling 7 VFs on eth4 PF
                 echo 7 > /sys/class/net/eth4/device/sriov_numvfs; sleep 2; ip link set eth4 up
                 exit 0
+
+
+Nagios Monitoring
+=================
+
+Configure Hosts dynamically
+---------------------------
+
+The nagios formula looks up grains.items throught Salt mines to discover hosts.
+There are two different parameters that tell the nagios formula how to determine
+the hosts' IP address:
+
+- nagios_monitoring_network: IP subnet(s) in CIDR notation (can be a list)
+- nagios_monitoring_interface: interface name(s). Default ['eth0', 'ens3'].
+
+'nagios_monitoring_network' parameter takes precedence over 'nagios_monitoring_interface' list.
diff --git a/aodh/server/cluster.yml b/aodh/server/cluster.yml
index b3fb4fb..4743111 100644
--- a/aodh/server/cluster.yml
+++ b/aodh/server/cluster.yml
@@ -10,6 +10,7 @@
       ttl: 86400
       debug: false
       verbose: true
+      region: ${_param:openstack_region}
       database:
         engine: "mysql+pymysql"
         host: ${_param:openstack_database_address}
@@ -36,4 +37,4 @@
         members:
           - host: ${_param:openstack_message_queue_node01_address}
           - host: ${_param:openstack_message_queue_node02_address}
-          - host: ${_param:openstack_message_queue_node03_address}
\ No newline at end of file
+          - host: ${_param:openstack_message_queue_node03_address}
diff --git a/devops_portal/service/elasticsearch.yml b/devops_portal/service/elasticsearch.yml
new file mode 100644
index 0000000..b945af3
--- /dev/null
+++ b/devops_portal/service/elasticsearch.yml
@@ -0,0 +1,10 @@
+parameters:
+  devops_portal:
+    config:
+      service:
+        elasticsearch:
+          configure_proxy: true
+          endpoint:
+            address: ${_param:haproxy_elasticsearch_bind_host}
+            port: ${_param:haproxy_elasticsearch_bind_port}
+            https: ${_param:haproxy_elasticsearch_ssl:enabled}
diff --git a/devops_portal/service/pushkin.yml b/devops_portal/service/pushkin.yml
new file mode 100644
index 0000000..82a073c
--- /dev/null
+++ b/devops_portal/service/pushkin.yml
@@ -0,0 +1,10 @@
+parameters:
+  devops_portal:
+    config:
+      service:
+        pushkin:
+          configure_proxy: true
+          endpoint:
+            address: ${_param:haproxy_pushkin_bind_host}
+            port: ${_param:haproxy_pushkin_bind_port}
+            https: ${_param:haproxy_pushkin_ssl:enabled}
diff --git a/docker/swarm/network/monitoring.yml b/docker/swarm/network/monitoring.yml
deleted file mode 100644
index a049aac..0000000
--- a/docker/swarm/network/monitoring.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-parameters:
-  docker:
-    client:
-      network:
-        monitoring:
-          driver: overlay
-          opt:
-            encrypted: true
diff --git a/docker/swarm/service/elasticsearch.yml b/docker/swarm/service/elasticsearch.yml
new file mode 100644
index 0000000..4d49494
--- /dev/null
+++ b/docker/swarm/service/elasticsearch.yml
@@ -0,0 +1,19 @@
+parameters:
+  _param:
+    elasticsearch_replicas: 1
+    docker_image_oss_elasticsearch: docker-sandbox.sandbox.mirantis.net/vstoiko/oss/elasticsearch:latest
+  docker:
+    client:
+      service:
+        elasticsearch:
+          replicas: ${_param:elasticsearch_replicas}
+          image: ${_param:docker_image_oss_elasticsearch}
+          restart:
+            condition: any
+          ports:
+            - ${_param:haproxy_elasticsearch_exposed_port}:${_param:haproxy_elasticsearch_bind_port}
+          volume:
+            elasticsearch:
+              type: bind
+              source: /srv/volumes/elasticsearch
+              destination: /usr/share/elasticsearch/data
diff --git a/docker/swarm/service/pushkin.yml b/docker/swarm/service/pushkin.yml
new file mode 100644
index 0000000..d01842d
--- /dev/null
+++ b/docker/swarm/service/pushkin.yml
@@ -0,0 +1,28 @@
+parameters:
+  _param:
+    docker_pushkin_replicas: 1
+    docker_image_pushkin: docker-sandbox.sandbox.mirantis.net/vstoiko/oss/pushkin:latest
+    pushkin_db_password: pushkin
+    pushkin_db_user: pushkin
+    pushkin_db: pushkin
+  docker:
+    client:
+      service:
+        pushkin-backend:
+          environment:
+            POSTGRES_USER: ${_param:pushkin_db_user}
+            POSTGRES_PASSWORD: ${_param:pushkin_db_password}
+            POSTGRES_DB: ${_param:pushkin_db}
+            PUSHKINDBHOST: ${_param:haproxy_pushkin_db_bind_host}
+            PUSHKINELASTICHOST: ${_param:haproxy_elasticsearch_bind_host}
+          replicas: ${_param:docker_pushkin_replicas}
+          image: ${_param:docker_image_pushkin}
+          restart:
+            condition: any
+          ports:
+            - ${_param:haproxy_pushkin_exposed_port}:${_param:haproxy_pushkin_bind_port}
+          volume:
+            pushkin:
+              type: bind
+              source: /srv/volumes/pushkin/logs
+              destination: /var/log/pushkin
\ No newline at end of file
diff --git a/docker/swarm/service/pushkin_db.yml b/docker/swarm/service/pushkin_db.yml
new file mode 100644
index 0000000..9b81778
--- /dev/null
+++ b/docker/swarm/service/pushkin_db.yml
@@ -0,0 +1,27 @@
+parameters:
+  _param:
+    docker_pushkin_db_replicas: 1
+    docker_image_pushkin_db: docker-sandbox.sandbox.mirantis.net/vstoiko/oss/pushkindb:latest
+    pushkin_db_password: pushkin
+    pushkin_db_user: pushkin
+    pushkin_db: pushkin
+  docker:
+    client:
+      service:
+        pushkin-db:
+          environment:
+            POSTGRES_USER: ${_param:pushkin_db_user}
+            POSTGRES_PASSWORD: ${_param:pushkin_db_password}
+            POSTGRES_DB: ${_param:pushkin_db}
+          replicas: ${_param:docker_pushkin_db_replicas}
+          image: ${_param:docker_image_pushkin_db}
+          restart:
+            condition: any
+          ports:
+            - ${_param:haproxy_pushkin_db_exposed_port}:${_param:haproxy_pushkin_db_bind_port}
+          volume:
+            pushkin:
+              type: bind
+              source: /srv/volumes/pushkin/data
+              destination: /var/lib/postgresql/data
+
diff --git a/docker/swarm/stack/aptly.yml b/docker/swarm/stack/aptly.yml
new file mode 100644
index 0000000..5570c40
--- /dev/null
+++ b/docker/swarm/stack/aptly.yml
@@ -0,0 +1,31 @@
+parameters:
+  _param:
+    docker_image_aptly:
+      api: tcpcloud/aptly-api
+      public: tcpcloud/aptly-public
+  docker:
+    client:
+      stack:
+        aptly:
+          environment:
+            EMAIL_ADDRESS: ${_param:admin_email}
+          service:
+            api:
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_aptly:api}
+              ports:
+                - 18084:8080
+              volumes:
+                - /srv/volumes/aptly:/var/lib/aptly
+            public:
+              deploy:
+                replicas: 3
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_aptly:public}
+              ports:
+                - 18085:80
+              volumes:
+                - /srv/volumes/aptly/public:/var/www/html
diff --git a/docker/swarm/stack/artifactory.yml b/docker/swarm/stack/artifactory.yml
new file mode 100644
index 0000000..cda48fe
--- /dev/null
+++ b/docker/swarm/stack/artifactory.yml
@@ -0,0 +1,23 @@
+parameters:
+  docker:
+    client:
+      stack:
+        artifactory:
+          environment:
+            MYSQL_HOST: ${_param:cluster_vip_address}
+            MYSQL_USERNAME: artifactory
+            MYSQL_PASSWORD: ${_param:mysql_artifactory_password}
+            MYSQL_DATABASE: artifactory
+          service:
+            artifactory:
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_repository:cicd}/artifactory
+              ports:
+                - 18082:8081
+              volumes:
+                - /srv/volumes/artifactory/data:/var/opt/jfrog/artifactory/data
+                - /srv/volumes/artifactory/backup:/var/opt/jfrog/artifactory/backup
+                - /srv/volumes/artifactory/etc:/var/opt/jfrog/artifactory/etc
+                - /srv/volumes/artifactory/logs:/var/opt/jfrog/artifactory/logs
diff --git a/docker/swarm/stack/dashboard.yml b/docker/swarm/stack/dashboard.yml
new file mode 100644
index 0000000..5621d8a
--- /dev/null
+++ b/docker/swarm/stack/dashboard.yml
@@ -0,0 +1,16 @@
+parameters:
+  docker:
+    client:
+      stack:
+        dashboard:
+          service:
+            grafana:
+              deploy:
+                replicas: 1
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_grafana}
+              ports:
+                - 15013:3000
+              environment:
+                GF_SECURITY_ADMIN_PASSWORD: ${_param:grafana_admin_password}
diff --git a/docker/swarm/stack/devops_portal.yml b/docker/swarm/stack/devops_portal.yml
new file mode 100644
index 0000000..c894d33
--- /dev/null
+++ b/docker/swarm/stack/devops_portal.yml
@@ -0,0 +1,20 @@
+parameters:
+  _param:
+    docker_devops_portal_replicas: 1
+    docker_image_devops_portal: docker-sandbox.sandbox.mirantis.net/ikharin/oss/devops-portal:latest
+  docker:
+    client:
+      stack:
+        devops-portal:
+          service:
+            frontend:
+              image: ${_param:docker_image_devops_portal}
+              deploy:
+                replicas: ${_param:docker_devops_portal_replicas}
+                restart_policy:
+                  condition: any
+              ports:
+                - 18800:8000
+              volumes:
+                - /srv/volumes/devops_portal/nginx:/etc/nginx/config
+                - /srv/volumes/devops_portal/config:/opt/devops-portal/config
diff --git a/docker/swarm/stack/docker.yml b/docker/swarm/stack/docker.yml
new file mode 100644
index 0000000..a680d4c
--- /dev/null
+++ b/docker/swarm/stack/docker.yml
@@ -0,0 +1,33 @@
+parameters:
+  _param:
+    docker_image_registry: registry:2
+    docker_image_visualizer: manomarks/visualizer
+  docker:
+    client:
+      stack:
+        docker:
+          service:
+            registry:
+              environment:
+                REGISTRY_HTTP_SECRET: ${_param:docker_registry_http_secret}
+              deploy:
+                replicas: 3
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_registry}
+              ports:
+                - 15000:5000
+              volumes:
+                - /srv/volumes/registry:/var/lib/registry
+            visualizer:
+              deploy:
+                restart_policy:
+                  condition: any
+                placement:
+                  constraints:
+                    - "node.role == manager"
+              image: ${_param:docker_image_visualizer}
+              ports:
+                - 18090:8080
+              volumes:
+                - /var/run/docker.sock:/var/run/docker.sock
diff --git a/docker/swarm/stack/gerrit.yml b/docker/swarm/stack/gerrit.yml
new file mode 100644
index 0000000..26ffe7f
--- /dev/null
+++ b/docker/swarm/stack/gerrit.yml
@@ -0,0 +1,60 @@
+parameters:
+  _param:
+    docker_image_gerrit: tcpcloud/gerrit:2.13.6
+    docker_image_mysql: mysql:5.6
+    gerrit_ldap_server: ""
+    gerrit_ldap_bind_user: ""
+    gerrit_ldap_bind_password: ""
+    gerrit_ldap_account_base: ""
+    gerrit_ldap_group_base: ""
+
+  docker:
+    client:
+      stack:
+        gerrit:
+          service:
+            server:
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_gerrit}
+              ports:
+                - 18083:8080
+                - 29417:29418
+              volumes:
+                - /srv/volumes/gerrit:/var/gerrit/review_site
+              depends_on:
+                - db
+              environment:
+                #GERRIT_INIT_ARGS: ""
+                DATABASE_TYPE: "mysql"
+                DB_PORT_3306_TCP_ADDR: ${_param:cluster_vip_address}
+                DB_ENV_MYSQL_USER: gerrit
+                DB_ENV_MYSQL_PASSWORD: ${_param:mysql_gerrit_password}
+                DB_ENV_MYSQL_DB: gerrit
+                AUTH_TYPE: ${_param:gerrit_auth_type}
+                LDAP_SERVER: ${_param:gerrit_ldap_server}
+                LDAP_ACCOUNTPATTERN: 'uid={username}'
+                LDAP_ACCOUNTBASE: ${_param:gerrit_ldap_account_base}
+                LDAP_GROUPBASE: ${_param:gerrit_ldap_group_base}
+                LDAP_USERNAME: ${_param:gerrit_ldap_bind_user}
+                LDAP_PASSWORD: ${_param:gerrit_ldap_bind_password}
+                WEBURL: ${_param:gerrit_public_host}
+                GERRIT_ADMIN_SSH_PUBLIC: ${_param:gerrit_admin_public_key}
+                GERRIT_ADMIN_PWD: ${_param:gerrit_admin_password}
+                GERRIT_ADMIN_EMAIL: ${_param:gerrit_admin_email}
+                CANLOADINIFRAME: "true"
+            db:
+              environment:
+                MYSQL_USER: gerrit
+                MYSQL_PASSWORD: ${_param:mysql_gerrit_password}
+                MYSQL_DATABASE: gerrit
+                MYSQL_ROOT_PASSWORD: ${_param:mysql_admin_password}
+              deploy:
+                restart_policy:
+                  condition: any
+              image: "${_param:docker_image_mysql}"
+              ports:
+                - 13306:3306
+              volumes:
+                - /srv/volumes/mysql:/var/lib/mysql
diff --git a/docker/swarm/stack/jenkins.yml b/docker/swarm/stack/jenkins.yml
new file mode 100644
index 0000000..acea08b
--- /dev/null
+++ b/docker/swarm/stack/jenkins.yml
@@ -0,0 +1,22 @@
+parameters:
+  _param:
+    docker_image_jenkins: tcpcloud/jenkins:2.52
+  docker:
+    client:
+      stack:
+        jenkins:
+          environment:
+            JAVA_OPTS: "-Djenkins.install.runSetupWizard=false -Dhudson.DNSMultiCast.disabled=true -Dhudson.udp=-1 -Dhudson.footerURL=https://www.mirantis.com"
+            JENKINS_NUM_EXECUTORS: 4
+          service:
+            master:
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_jenkins}
+              ports:
+                - 18081:8080
+                - 50001:50000
+              volumes:
+                - /srv/volumes/jenkins:/var/jenkins_home
+                - /etc/ssl/certs/java/cacerts:/etc/ssl/certs/java/cacerts:ro
diff --git a/docker/swarm/stack/ldap.yml b/docker/swarm/stack/ldap.yml
new file mode 100644
index 0000000..6e94695
--- /dev/null
+++ b/docker/swarm/stack/ldap.yml
@@ -0,0 +1,46 @@
+parameters:
+  _param:
+    docker_image_openldap: osixia/openldap:1.1.8
+    docker_image_phpldapadmin: tcpcloud/phpldapadmin:0.6.12
+  docker:
+    client:
+      stack:
+        ldap:
+          service:
+            server:
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_openldap}
+              hostname: ldap01
+              domainname: ${_param:openldap_domain}
+              ports:
+                - 1389:389
+                - 1636:636
+              volumes:
+                - /srv/volumes/openldap/database:/var/lib/ldap
+                - /srv/volumes/openldap/config:/etc/ldap/slapd.d
+              environment:
+                HOSTNAME: ldap01.${_param:openldap_domain}
+                LDAP_ORGANISATION: "${_param:openldap_organisation}"
+                LDAP_DOMAIN: "${_param:openldap_domain}"
+                LDAP_ADMIN_PASSWORD: ${_param:openldap_admin_password}
+                LDAP_CONFIG_PASSWORD: ${_param:openldap_config_password}
+                LDAP_TLS: "false"
+            admin:
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_phpldapadmin}
+              depends_on:
+                - server
+              hostname: ldap
+              domainname: ${_param:openldap_domain}
+              environment:
+                PHPLDAPADMIN_LDAP_HOSTS: "#PYTHON2BASH:[{'ldap.${_param:openldap_domain}': [{'server': [{'tls': False}]},{'login': [{'bind_id': 'cn=admin,${_param:openldap_dn}'},{'bind_pass': '${_param:openldap_admin_password}'}]}]}]"
+                PHPLDAPADMIN_HTTPS: "false"
+                PHPLDAPADMIN_TRUST_PROXY_SSL: "true"
+                PHPLDAPADMIN_SERVER_ADMIN: ${_param:admin_email}
+                PHPLDAPADMIN_THEME: mirantis
+              ports:
+                - 18089:80
diff --git a/docker/swarm/stack/monitoring.yml b/docker/swarm/stack/monitoring.yml
new file mode 100644
index 0000000..46a2845
--- /dev/null
+++ b/docker/swarm/stack/monitoring.yml
@@ -0,0 +1,65 @@
+classes:
+- service.prometheus.server.container
+- service.prometheus.alertmanager.container
+- service.prometheus.pushgateway.container
+parameters:
+  docker:
+    client:
+      stack:
+        monitoring:
+          network:
+            monitoring:
+              driver: overlay
+              driver_opts:
+                encrypted: 1
+          service:
+            alertmanager:
+              networks:
+                - monitoring
+              deploy:
+                replicas: 2
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_alertmanager}
+              ports:
+                - 15011:${prometheus:alertmanager:bind:port}
+              volumes:
+                - /srv/volumes/prometheus:/opt/alertmanager/config
+              environment:
+                config_dir: /opt/alertmanager/config
+                bind_port: ${prometheus:alertmanager:bind:port}
+                bind_address: ${prometheus:alertmanager:bind:address}
+                discovery_domain: 'monitoring_alertmanager'
+            pushgateway:
+              networks:
+                - monitoring
+              deploy:
+                replicas: 2
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_pushgateway}
+              ports:
+                - 15012:9091
+            server:
+              networks:
+                - monitoring
+              deploy:
+                replicas: 1
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_prometheus}
+              ports:
+                - 15010:${prometheus:server:bind:port}
+              volumes:
+                - /srv/volumes/prometheus:/opt/prometheus/config
+              environment:
+                config_dir: /opt/prometheus/config
+                bind_port: ${prometheus:server:bind:port}
+                bind_address: ${prometheus:server:bind:address}
+                alertmanager_port: ${prometheus:alertmanager:bind:port}
+                storage_local_engine: ${prometheus:server:storage:local:engine}
+                storage_local_retention: ${prometheus:server:storage:local:retention}
+                storage_local_memory_chunks: ${prometheus:server:storage:local:memory_chunks}
+                storage_local_max_chunks_to_persist: ${prometheus:server:storage:local:max_chunks_to_persist}
+                storage_local_num_fingerprint_mutexes: ${prometheus:server:storage:local:num_fingerprint_mutexes}
+                discovery_domain: 'monitoring_alertmanager'
diff --git a/docker/swarm/stack/pushkin.yml b/docker/swarm/stack/pushkin.yml
new file mode 100644
index 0000000..b28b1e9
--- /dev/null
+++ b/docker/swarm/stack/pushkin.yml
@@ -0,0 +1,52 @@
+parameters:
+  _param:
+    docker_pushkin_db_replicas: 1
+    docker_image_pushkin_db: docker-sandbox.sandbox.mirantis.net/vstoiko/oss/pushkindb:latest
+    pushkin_db_password: pushkin
+    pushkin_db_user: pushkin
+    pushkin_db: pushkin
+    docker_pushkin_replicas: 1
+    docker_image_pushkin: docker-sandbox.sandbox.mirantis.net/vstoiko/oss/pushkin:latest
+    elasticsearch_replicas: 1
+    docker_image_oss_elasticsearch: docker-sandbox.sandbox.mirantis.net/vstoiko/oss/elasticsearch:latest
+  docker:
+    client:
+      stack:
+        pushkin:
+          environment:
+            POSTGRES_USER: ${_param:pushkin_db_user}
+            POSTGRES_PASSWORD: ${_param:pushkin_db_password}
+            POSTGRES_DB: ${_param:pushkin_db}
+            PUSHKINDBHOST: ${_param:haproxy_pushkin_db_bind_host}
+            PUSHKINELASTICHOST: ${_param:haproxy_elasticsearch_bind_host}
+          service:
+            db:
+              image: ${_param:docker_image_pushkin_db}
+              deploy:
+                replicas: ${_param:docker_pushkin_db_replicas}
+                restart_policy:
+                  condition: any
+              ports:
+                - ${_param:haproxy_pushkin_db_exposed_port}:${_param:haproxy_pushkin_db_bind_port}
+              volumes:
+                - /srv/volumes/pushkin/data:/var/lib/postgresql/data
+            backend:
+              image: ${_param:docker_image_pushkin}
+              deploy:
+                replicas: ${_param:docker_pushkin_replicas}
+                restart_policy:
+                  condition: any
+              ports:
+                - ${_param:haproxy_pushkin_exposed_port}:${_param:haproxy_pushkin_bind_port}
+              volumes:
+                - /srv/volumes/pushkin/logs:/var/log/pushkin
+            elasticsearch:
+              image: ${_param:docker_image_oss_elasticsearch}
+              deploy:
+                replicas: ${_param:elasticsearch_replicas}
+                restart_policy:
+                  condition: any
+              ports:
+                - ${_param:haproxy_elasticsearch_exposed_port}:${_param:haproxy_elasticsearch_bind_port}
+              volumes:
+                - /srv/volumes/elasticsearch:/usr/share/elasticsearch/data
diff --git a/docker/swarm/stack/rundeck.yml b/docker/swarm/stack/rundeck.yml
new file mode 100644
index 0000000..b0951a4
--- /dev/null
+++ b/docker/swarm/stack/rundeck.yml
@@ -0,0 +1,29 @@
+parameters:
+  _param:
+    docker_rundeck_replicas: 1
+    docker_image_rundeck: docker-sandbox.sandbox.mirantis.net/ikharin/oss/rundeck:latest
+    rundeck_admin_password: password
+  docker:
+    client:
+      stack:
+        rundeck:
+          environment:
+            SERVER_URL: "http://${_param:haproxy_rundeck_bind_host}:${_param:haproxy_rundeck_bind_port}"
+            RUNDECK_ADMIN_PASSWORD: ${_param:rundeck_admin_password}
+          service:
+            rundeck:
+              image: ${_param:docker_image_rundeck}
+              deploy:
+                replicas: ${_param:docker_rundeck_replicas}
+                restart_policy:
+                  condition: any
+              ports:
+                - 14440:4440
+              volumes:
+                - /srv/volumes/rundeck/etc:/etc/rundeck
+                - /srv/volumes/rundeck/rundeck:/var/rundeck
+                - /srv/volumes/rundeck/mysql:/var/lib/mysql
+                - /srv/volumes/rundeck/log:/var/log/rundeck
+                - /srv/volumes/rundeck/logs:/var/lib/rundeck/logs
+                - /srv/volumes/rundeck/plugins:/opt/rundeck-plugins
+                - /srv/volumes/rundeck/storage:/var/lib/rundeck/var/storage
diff --git a/galera/server/database/nova.yml b/galera/server/database/nova.yml
index 619c5df..86d4821 100644
--- a/galera/server/database/nova.yml
+++ b/galera/server/database/nova.yml
@@ -24,3 +24,14 @@
             password: ${_param:mysql_nova_password}
             host: ${_param:cluster_local_address}
             rights: all
+        nova_cell0:
+          encoding: utf8
+          users:
+          - name: nova
+            password: ${_param:mysql_nova_password}
+            host: '%'
+            rights: all
+          - name: nova
+            password: ${_param:mysql_nova_password}
+            host: ${_param:cluster_local_address}
+            rights: all
diff --git a/glance/control/storage/glusterfs.yml b/glance/control/storage/glusterfs.yml
deleted file mode 100644
index ae0e84d..0000000
--- a/glance/control/storage/glusterfs.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-classes:
-- service.glusterfs.server
-- service.glusterfs.client
-parameters:
-  glusterfs:
-    server:
-      peers:
-      - ${_param:cluster_node01_address}
-      - ${_param:cluster_node02_address}
-      - ${_param:cluster_node03_address}
-      volumes:
-        glance:
-          storage: /srv/glusterfs/glance
-          replica: 3
-          bricks:
-            - ${_param:cluster_node01_address}:/srv/glusterfs/glance
-            - ${_param:cluster_node02_address}:/srv/glusterfs/glance
-            - ${_param:cluster_node03_address}:/srv/glusterfs/glance
-          options:
-            cluster.readdir-optimize: On
-            nfs.disable: On
-            network.remote-dio: On
-            diagnostics.client-log-level: WARNING
-            diagnostics.brick-log-level: WARNING
-    client:
-      volumes:
-        glance:
-          path: /var/lib/glance/images
-          server: ${_param:glusterfs_service_host}
-          user: glance
-          group: glance
-  glance:
-    server:
-      storage:
-        engine: file
-      images: []
diff --git a/glusterfs/client/volume/devops_portal.yml b/glusterfs/client/volume/devops_portal.yml
index 9a3c291..5a0c07a 100644
--- a/glusterfs/client/volume/devops_portal.yml
+++ b/glusterfs/client/volume/devops_portal.yml
@@ -7,4 +7,4 @@
         devops_portal:
           path: /srv/volumes/devops_portal
           server: ${_param:devops_portal_glusterfs_service_host}
-          opts: 'defaults'
+          opts: "defaults,backup-volfile-servers=${_param:cluster_node01_address}:${_param:cluster_node02_address}:${_param:cluster_node03_address}"
diff --git a/glusterfs/client/volume/elasticsearch.yml b/glusterfs/client/volume/elasticsearch.yml
new file mode 100644
index 0000000..2fad4ba
--- /dev/null
+++ b/glusterfs/client/volume/elasticsearch.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    elasticsearch_glusterfs_service_host: ${_param:glusterfs_service_host}
+  glusterfs:
+    client:
+      volumes:
+        elasticsearch:
+          path: /srv/volumes/elasticsearch
+          server: ${_param:elasticsearch_glusterfs_service_host}
+          opts: "defaults,backup-volfile-servers=${_param:cluster_node01_address}:${_param:cluster_node02_address}:${_param:cluster_node03_address}"
diff --git a/glusterfs/client/volume/prometheus.yml b/glusterfs/client/volume/prometheus.yml
index 2b2b7db..49145d3 100644
--- a/glusterfs/client/volume/prometheus.yml
+++ b/glusterfs/client/volume/prometheus.yml
@@ -7,4 +7,4 @@
         prometheus:
           path: /srv/volumes/prometheus
           server: ${_param:prometheus_glusterfs_service_host}
-          opts: 'defaults'
+          opts: "defaults,backup-volfile-servers=${_param:cluster_node01_address}:${_param:cluster_node02_address}:${_param:cluster_node03_address}"
diff --git a/glusterfs/client/volume/pushkin.yml b/glusterfs/client/volume/pushkin.yml
new file mode 100644
index 0000000..af3ee44
--- /dev/null
+++ b/glusterfs/client/volume/pushkin.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    pushkin_glusterfs_service_host: ${_param:glusterfs_service_host}
+  glusterfs:
+    client:
+      volumes:
+        pushkin:
+          path: /srv/volumes/pushkin
+          server: ${_param:pushkin_glusterfs_service_host}
+          opts: "defaults,backup-volfile-servers=${_param:cluster_node01_address}:${_param:cluster_node02_address}:${_param:cluster_node03_address}"
diff --git a/glusterfs/client/volume/rundeck.yml b/glusterfs/client/volume/rundeck.yml
index b226aeb..05709ea 100644
--- a/glusterfs/client/volume/rundeck.yml
+++ b/glusterfs/client/volume/rundeck.yml
@@ -7,4 +7,4 @@
         rundeck:
           path: /srv/volumes/rundeck
           server: ${_param:rundeck_glusterfs_service_host}
-          opts: 'defaults'
+          opts: "defaults,backup-volfile-servers=${_param:cluster_node01_address}:${_param:cluster_node02_address}:${_param:cluster_node03_address}"
diff --git a/glusterfs/client/volume/salt_pki.yml b/glusterfs/client/volume/salt_pki.yml
new file mode 100644
index 0000000..822a086
--- /dev/null
+++ b/glusterfs/client/volume/salt_pki.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    salt_glusterfs_service_host: ${_param:glusterfs_service_host}
+  glusterfs:
+    client:
+      volumes:
+        salt_pki:
+          path: /srv/salt/pki
+          server: ${_param:salt_glusterfs_service_host}
+          opts: "defaults,backup-volfile-servers=${_param:cluster_node01_address}:${_param:cluster_node02_address}:${_param:cluster_node03_address}"
diff --git a/glusterfs/server/volume/elasticsearch.yml b/glusterfs/server/volume/elasticsearch.yml
new file mode 100644
index 0000000..73f35c1
--- /dev/null
+++ b/glusterfs/server/volume/elasticsearch.yml
@@ -0,0 +1,17 @@
+parameters:
+  glusterfs:
+    server:
+      volumes:
+        elasticsearch:
+          storage: /srv/glusterfs/elasticsearch
+          replica: 3
+          bricks:
+            - ${_param:cluster_node01_address}:/srv/glusterfs/elasticsearch
+            - ${_param:cluster_node02_address}:/srv/glusterfs/elasticsearch
+            - ${_param:cluster_node03_address}:/srv/glusterfs/elasticsearch
+          options:
+            cluster.readdir-optimize: On
+            nfs.disable: On
+            network.remote-dio: On
+            diagnostics.client-log-level: WARNING
+            diagnostics.brick-log-level: WARNING
diff --git a/glusterfs/server/volume/pushkin.yml b/glusterfs/server/volume/pushkin.yml
new file mode 100644
index 0000000..52d393e
--- /dev/null
+++ b/glusterfs/server/volume/pushkin.yml
@@ -0,0 +1,17 @@
+parameters:
+  glusterfs:
+    server:
+      volumes:
+        pushkin:
+          storage: /srv/glusterfs/pushkin
+          replica: 3
+          bricks:
+            - ${_param:cluster_node01_address}:/srv/glusterfs/pushkin
+            - ${_param:cluster_node02_address}:/srv/glusterfs/pushkin
+            - ${_param:cluster_node03_address}:/srv/glusterfs/pushkin
+          options:
+            cluster.readdir-optimize: On
+            nfs.disable: On
+            network.remote-dio: On
+            diagnostics.client-log-level: WARNING
+            diagnostics.brick-log-level: WARNING
diff --git a/glusterfs/server/volume/salt_pki.yml b/glusterfs/server/volume/salt_pki.yml
new file mode 100644
index 0000000..7af39da
--- /dev/null
+++ b/glusterfs/server/volume/salt_pki.yml
@@ -0,0 +1,17 @@
+parameters:
+  glusterfs:
+    server:
+      volumes:
+        salt_pki:
+          storage: /srv/glusterfs/salt_pki
+          replica: 3
+          bricks:
+            - ${_param:cluster_node01_address}:/srv/glusterfs/salt_pki
+            - ${_param:cluster_node02_address}:/srv/glusterfs/salt_pki
+            - ${_param:cluster_node03_address}:/srv/glusterfs/salt_pki
+          options:
+            cluster.readdir-optimize: On
+            nfs.disable: On
+            network.remote-dio: On
+            diagnostics.client-log-level: WARNING
+            diagnostics.brick-log-level: WARNING
diff --git a/haproxy/proxy/listen/openstack/glare.yml b/haproxy/proxy/listen/openstack/glare.yml
new file mode 100644
index 0000000..a984275
--- /dev/null
+++ b/haproxy/proxy/listen/openstack/glare.yml
@@ -0,0 +1,23 @@
+parameters:
+  haproxy:
+    proxy:
+      listen:
+        glare:
+          type: general-service
+          service_name: glare
+          binds:
+          - address: ${_param:cluster_vip_address}
+            port: 9494
+          servers:
+          - name: ctl01
+            host: ${_param:cluster_node01_address}
+            port: 9494
+            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
+          - name: ctl02
+            host: ${_param:cluster_node02_address}
+            port: 9494
+            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
+          - name: ctl03
+            host: ${_param:cluster_node03_address}
+            port: 9494
+            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
diff --git a/haproxy/proxy/listen/openstack/nova-placement.yml b/haproxy/proxy/listen/openstack/nova-placement.yml
new file mode 100644
index 0000000..e3b72b7
--- /dev/null
+++ b/haproxy/proxy/listen/openstack/nova-placement.yml
@@ -0,0 +1,29 @@
+parameters:
+  haproxy:
+    proxy:
+      listen:
+        nova_placement_api:
+          mode: http
+          binds:
+          - address: ${_param:cluster_vip_address}
+            port: 8778
+          options:
+          - httpclose
+          - httplog
+          health-check:
+            http:
+              options:
+              - expect status 401
+          servers:
+          - name: ctl01
+            host: ${_param:cluster_node01_address}
+            port: 8778
+            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
+          - name: ctl02
+            host: ${_param:cluster_node02_address}
+            port: 8778
+            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
+          - name: ctl03
+            host: ${_param:cluster_node03_address}
+            port: 8778
+            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
new file mode 100644
index 0000000..2f5d1ee
--- /dev/null
+++ b/haproxy/proxy/listen/oss/elasticsearch.yml
@@ -0,0 +1,38 @@
+parameters:
+  _param:
+    haproxy_elasticsearch_bind_host: ${_param:haproxy_bind_address}
+    haproxy_elasticsearch_bind_port: 9200
+    haproxy_elasticsearch_exposed_port: 19200
+    haproxy_elasticsearch_ssl:
+      enabled: false
+  haproxy:
+    proxy:
+      listen:
+        elasticsearch:
+          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_elasticsearch_bind_host}
+              port: ${_param:haproxy_elasticsearch_bind_port}
+              ssl: ${_param:haproxy_elasticsearch_ssl}
+          servers:
+            - name: ${_param:cluster_node01_name}
+              host: ${_param:cluster_node01_address}
+              port: ${_param:haproxy_elasticsearch_exposed_port}
+              params: check
+            - name: ${_param:cluster_node02_name}
+              host: ${_param:cluster_node02_address}
+              port: ${_param:haproxy_elasticsearch_exposed_port}
+              params: backup check
+            - name: ${_param:cluster_node03_name}
+              host: ${_param:cluster_node03_address}
+              port: ${_param:haproxy_elasticsearch_exposed_port}
+              params: backup check
diff --git a/haproxy/proxy/listen/oss/pushkin.yml b/haproxy/proxy/listen/oss/pushkin.yml
new file mode 100644
index 0000000..db33352
--- /dev/null
+++ b/haproxy/proxy/listen/oss/pushkin.yml
@@ -0,0 +1,37 @@
+parameters:
+  _param:
+    haproxy_pushkin_bind_host: ${_param:haproxy_bind_address}
+    haproxy_pushkin_bind_port: 8887
+    haproxy_pushkin_exposed_port: 18887
+    haproxy_pushkin_ssl:
+      enabled: false
+  haproxy:
+    proxy:
+      listen:
+        pushkin:
+          mode: http
+          options:
+          - httpchk GET /apps
+          balance: source
+          http_request:
+            - action: "add-header X-Forwarded-Proto https"
+              condition: "if { ssl_fc }"
+          sticks:
+          - http-check expect status 200
+          binds:
+            - address: ${_param:haproxy_pushkin_bind_host}
+              port: ${_param:haproxy_pushkin_bind_port}
+              ssl: ${_param:haproxy_pushkin_ssl}
+          servers:
+            - name: ${_param:cluster_node01_name}
+              host: ${_param:cluster_node01_address}
+              port: ${_param:haproxy_pushkin_exposed_port}
+              params: check
+            - name: ${_param:cluster_node02_name}
+              host: ${_param:cluster_node02_address}
+              port: ${_param:haproxy_pushkin_exposed_port}
+              params: backup check
+            - name: ${_param:cluster_node03_name}
+              host: ${_param:cluster_node03_address}
+              port: ${_param:haproxy_pushkin_exposed_port}
+              params: backup check
diff --git a/haproxy/proxy/listen/oss/pushkin_db.yml b/haproxy/proxy/listen/oss/pushkin_db.yml
new file mode 100644
index 0000000..c67c591
--- /dev/null
+++ b/haproxy/proxy/listen/oss/pushkin_db.yml
@@ -0,0 +1,32 @@
+parameters:
+  _param:
+    haproxy_pushkin_db_bind_host: ${_param:haproxy_bind_address}
+    haproxy_pushkin_db_bind_port: 5432
+    haproxy_pushkin_db_exposed_port: 15432
+    haproxy_pushkin_db_ssl:
+      enabled: false
+  haproxy:
+    proxy:
+      listen:
+        pushkin_db:
+          mode: tcp
+          balance: source
+          options:
+          - tcp-check
+          binds:
+            - address: ${_param:haproxy_pushkin_db_bind_host}
+              port: ${_param:haproxy_pushkin_db_bind_port}
+              ssl: ${_param:haproxy_pushkin_db_ssl}
+          servers:
+            - name: ${_param:cluster_node01_name}
+              host: ${_param:cluster_node01_address}
+              port: ${_param:haproxy_pushkin_db_exposed_port}
+              params: check port ${_param:haproxy_pushkin_db_exposed_port}
+            - name: ${_param:cluster_node02_name}
+              host: ${_param:cluster_node02_address}
+              port: ${_param:haproxy_pushkin_db_exposed_port}
+              params: backup check port ${_param:haproxy_pushkin_db_exposed_port}
+            - name: ${_param:cluster_node03_name}
+              host: ${_param:cluster_node03_address}
+              port: ${_param:haproxy_pushkin_db_exposed_port}
+              params: backup check port ${_param:haproxy_pushkin_db_exposed_port}
diff --git a/heat/server/cluster.yml b/heat/server/cluster.yml
index 474deb9..ee5df33 100644
--- a/heat/server/cluster.yml
+++ b/heat/server/cluster.yml
@@ -4,6 +4,8 @@
 - service.keepalived.cluster.single
 - system.haproxy.proxy.listen.openstack.heat
 parameters:
+  _param:
+    cluster_public_protocol: https
   heat:
     server:
       stack_domain_admin:
@@ -28,14 +30,17 @@
         user: heat
         password: ${_param:mysql_heat_password}
       metadata:
-        host: ${_param:cluster_vip_address}
+        host: ${_param:cluster_public_host}
         port: 8000
+        protocol: ${_param:cluster_public_protocol}
       waitcondition:
-        host: ${_param:cluster_vip_address}
+        host: ${_param:cluster_public_host}
         port: 8000
+        protocol: ${_param:cluster_public_protocol}
       watch:
-        host: ${_param:cluster_vip_address}
+        host: ${_param:cluster_public_host}
         port: 8003
+        protocol: ${_param:cluster_public_protocol}
       identity:
         engine: keystone
         host: ${_param:cluster_vip_address}
diff --git a/jenkins/client/approved_scripts.yml b/jenkins/client/approved_scripts.yml
index bf46803..d947687 100644
--- a/jenkins/client/approved_scripts.yml
+++ b/jenkins/client/approved_scripts.yml
@@ -92,3 +92,5 @@
         - method java.util.stream.Stream collect java.util.stream.Collector
         - staticMethod java.util.regex.Pattern compile java.lang.String
         - method java.util.regex.Matcher find
+        - method hudson.model.Run getId
+        - method java.util.regex.MatchResult groupCount
diff --git a/jenkins/client/init.yml b/jenkins/client/init.yml
index e7c56ec..ab057df 100644
--- a/jenkins/client/init.yml
+++ b/jenkins/client/init.yml
@@ -25,6 +25,7 @@
         discard-old-build: {}
         docker-workflow: {}
         extended-choice-parameter: {}
+        extensible-choice-parameter: {}
         gerrit-trigger: {}
         git: {}
         heavy-job: {}
@@ -46,3 +47,19 @@
           enabled: true
           url: ${_param:jenkins_gerrit_url}/mcp-ci/pipeline-library
           credential_id: gerrit
+      view:
+        Mirrors:
+          enabled: true
+          type: CategorizedJobsView
+          include_regex: "git-mirror-.*"
+          categories:
+            - group_regex: "git-mirror-2way-.*"
+              naming_rule: "2way"
+            - group_regex: "git-mirror-(?!upstream-|2way-).*"
+              naming_rule: "Downstream"
+            - group_regex: "git-mirror-upstream-.*"
+              naming_rule: "Upstream"
+        Tests:
+          enabled: true
+          type: ListView
+          include_regex: "test-.*"
diff --git a/jenkins/client/job/debian/packages/init.yml b/jenkins/client/job/debian/packages/init.yml
index 56f6f12..cb4c245 100644
--- a/jenkins/client/job/debian/packages/init.yml
+++ b/jenkins/client/job/debian/packages/init.yml
@@ -3,3 +3,15 @@
   - system.jenkins.client.job.debian.packages.salt
   - system.jenkins.client.job.debian.packages.salt-multi
   - system.jenkins.client.job.debian.packages.horizon
+parameters:
+  jenkins:
+    client:
+      view:
+        Xenial:
+          enabled: true
+          type: ListView
+          include_regex: "build-.*-ubuntu-xenial.*"
+        Trusty:
+          enabled: true
+          type: ListView
+          include_regex: "build-.*-ubuntu-trusty.*"
\ No newline at end of file
diff --git a/jenkins/client/job/debian/packages/salt.yml b/jenkins/client/job/debian/packages/salt.yml
index 68d361e..5e6665c 100644
--- a/jenkins/client/job/debian/packages/salt.yml
+++ b/jenkins/client/job/debian/packages/salt.yml
@@ -159,6 +159,8 @@
               dist: trusty
             - name: rsyslog
               dist: trusty
+            - name: rundeck
+              dist: trusty
             - name: sahara
               dist: trusty
             - name: salt
@@ -169,6 +171,8 @@
               dist: trusty
             - name: sphinx
               dist: trusty
+            - name: spinnaker
+              dist: trusty
             - name: statsd
               dist: trusty
             - name: supervisor
@@ -333,6 +337,8 @@
               dist: xenial
             - name: rsync
               dist: xenial
+            - name: rundeck
+              dist: xenial
             - name: rsyslog
               dist: xenial
             - name: sahara
@@ -345,6 +351,8 @@
               dist: xenial
             - name: sphinx
               dist: xenial
+            - name: spinnaker
+              dist: xenial
             - name: statsd
               dist: xenial
             - name: supervisor
diff --git a/jenkins/client/job/deploy/lab/init.yml b/jenkins/client/job/deploy/lab/init.yml
index 24cdcab..5fc4401 100644
--- a/jenkins/client/job/deploy/lab/init.yml
+++ b/jenkins/client/job/deploy/lab/init.yml
@@ -4,3 +4,12 @@
   - system.jenkins.client.job.deploy.lab.mk.cleanup
   - system.jenkins.client.job.deploy.lab.cicd
   - system.jenkins.client.job.deploy.lab.demo
+
+parameters:
+  jenkins:
+    client:
+      view:
+        Labs:
+          enabled: true
+          type: ListView
+          include_regex: "deploy-(physical|heat).*(mk|mcp).*"
diff --git a/jenkins/client/job/deploy/lab/mk/init.yml b/jenkins/client/job/deploy/lab/mk/init.yml
index 0bcfbc0..17dca28 100644
--- a/jenkins/client/job/deploy/lab/mk/init.yml
+++ b/jenkins/client/job/deploy/lab/mk/init.yml
@@ -19,6 +19,9 @@
               url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
               credentials: "gerrit"
               script: lab-pipeline.groovy
+            trigger:
+              timer:
+                spec: "{{timer}}"
             param:
               # deployments and test settings
               STACK_TYPE:
@@ -59,6 +62,7 @@
               HEAT_STACK_DELETE:
                 type: boolean
                 default: 'true'
+                description: "Don't enable it if you need to use the lab after"
               HEAT_STACK_REUSE:
                 type: boolean
                 default: 'false'
diff --git a/jenkins/client/job/deploy/lab/mk/virtual.yml b/jenkins/client/job/deploy/lab/mk/virtual.yml
index a97a22a..8e82f76 100644
--- a/jenkins/client/job/deploy/lab/mk/virtual.yml
+++ b/jenkins/client/job/deploy/lab/mk/virtual.yml
@@ -3,30 +3,7 @@
 parameters:
   _param:
     jenkins_deploy_lab_mk_jobs:
-      - lab: virtual_mcp05_dvr
-        install: core,openstack,dvr
-        stack_type: heat
-        test: openstack
-      - lab: virtual_mcp05_ovs
-        install: core,openstack,ovs
-        stack_type: heat
-        test: openstack
-      - lab: virtual_mcp10_contrail
-        install: core,openstack,contrail
-        stack_type: heat
-        test: openstack
-      - lab: virtual_mcp10_dvr
-        install: core,openstack,dvr
-        stack_type: heat
-        test: openstack
-      - lab: virtual_mcp10_ovs
-        install: core,openstack,ovs
-        stack_type: heat
-        test: openstack
-      - lab: virtual_mcp10_k8s
-        install: core,k8s
-        stack_type: heat
-        test: k8s
+      # mk20
       - lab: virtual_mk20_advanced
         install: core,openstack
         stack_type: heat
@@ -35,6 +12,7 @@
         install: core,openstack
         stack_type: heat
         test: openstack
+      # mk22
       - lab: virtual_mk22_advanced
         install: core,openstack
         stack_type: heat
@@ -43,3 +21,45 @@
         install: core,openstack
         stack_type: heat
         test: openstack
+      # mcp05
+      - lab: virtual_mcp05_dvr
+        install: core,openstack,dvr
+        stack_type: heat
+        test: openstack
+      - lab: virtual_mcp05_ovs
+        install: core,openstack,ovs
+        stack_type: heat
+        test: openstack
+      # mcp10
+      - lab: virtual_mcp10_contrail
+        install: core,openstack,contrail
+        stack_type: heat
+        test: openstack
+        timer: "H H(0-6) * * *"
+      - lab: virtual_mcp10_dvr
+        install: core,openstack,dvr
+        stack_type: heat
+        test: openstack
+        timer: "H H(0-6) * * *"
+      - lab: virtual_mcp10_ovs
+        install: core,openstack,ovs
+        stack_type: heat
+        test: openstack
+        timer: "H H(0-6) * * *"
+      # mcp11
+      - lab: virtual_mcp11_contrail
+        install: core,openstack,contrail
+        stack_type: heat
+        test: openstack
+      - lab: virtual_mcp11_dvr
+        install: core,openstack,dvr
+        stack_type: heat
+        test: openstack
+      - lab: virtual_mcp11_ovs
+        install: core,openstack,ovs
+        stack_type: heat
+        test: openstack
+      - lab: virtual_mcp11_k8s
+        install: core,k8s
+        stack_type: heat
+        test: k8s
diff --git a/jenkins/client/job/docker/aptly.yml b/jenkins/client/job/docker/aptly.yml
new file mode 100644
index 0000000..98ef8af
--- /dev/null
+++ b/jenkins/client/job/docker/aptly.yml
@@ -0,0 +1,48 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        docker-build-images-aptly:
+          name: docker-build-images-aptly
+          discard:
+            build:
+              keep_num: 25
+            artifact:
+              keep_num: 25
+          type: workflow-scm
+          concurrent: true
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/docker-aptly"
+            credentials: "gerrit"
+          trigger:
+            gerrit:
+              project:
+                "mk/docker-aptly":
+                  branches:
+                    - master
+              event:
+                ref:
+                  - updated: {}
+          param:
+            IMAGE_GIT_URL:
+              type: string
+              default: "${_param:jenkins_gerrit_url}/mk/docker-aptly"
+            IMAGE_BRANCH:
+              type: string
+              default: "master"
+            IMAGE_CREDENTIALS_ID:
+              type: string
+              default: "gerrit"
+            IMAGE_TAGS:
+              type: string
+              default: "latest"
+            REGISTRY_URL:
+              type: string
+              default: ""
+            REGISTRY_CREDENTIALS_ID:
+              type: string
+              default: "dockerhub"
+            DOCKER_GIT_TAG:
+              type: boolean
+              default: "true"
diff --git a/jenkins/client/job/docker/init.yml b/jenkins/client/job/docker/init.yml
new file mode 100644
index 0000000..2f1f49a
--- /dev/null
+++ b/jenkins/client/job/docker/init.yml
@@ -0,0 +1,86 @@
+parameters:
+  jenkins:
+    client:
+      view:
+        Docker:
+          enabled: true
+          type: ListView
+          include_regex: ".*-docker-.*"
+      job_template:
+        docker-build-image:
+          name: docker-build-image-{{name}}-{{branch}}
+          jobs:
+            - name: gerrit
+              branch: "2.12.7"
+              tags: "2.12.7"
+              dockerfile: "Dockerfile"
+            - name: gerrit
+              branch: "2.13.6"
+              tags: "2.13.6 latest"
+              dockerfile: "Dockerfile"
+            - name: jenkins
+              branch: "2.32.3"
+              tags: "2.32"
+              dockerfile: "Dockerfile"
+            - name: jenkins
+              branch: "2.52"
+              tags: "2.52 latest"
+              dockerfile: "Dockerfile"
+            - name: phpldapadmin
+              branch: "master"
+              tags: "latest"
+              dockerfile: "image/Dockerfile"
+            - name: openldap
+              branch: "master"
+              tags: "latest"
+              dockerfile: "image/Dockerfile"
+          template:
+            discard:
+              build:
+                keep_num: 5
+              artifact:
+                keep_num: 5
+            type: workflow-scm
+            concurrent: true
+            scm:
+              type: git
+              url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+              credentials: "gerrit"
+              script: docker-build-image-pipeline.groovy
+            trigger:
+              gerrit:
+                project:
+                  "mk/docker-{{name}}":
+                    branches:
+                      - "{{branch}}"
+                event:
+                  ref:
+                    - updated: {}
+            param:
+              IMAGE_NAME:
+                type: string
+                default: "tcpcloud/{{name}}"
+              IMAGE_GIT_URL:
+                type: string
+                default: "${_param:jenkins_gerrit_url}/mk/docker-{{name}}"
+              IMAGE_BRANCH:
+                type: string
+                default: "{{branch}}"
+              IMAGE_CREDENTIALS_ID:
+                type: string
+                default: "gerrit"
+              IMAGE_TAGS:
+                type: string
+                default: "{{tags}}"
+              DOCKERFILE_PATH:
+                type: string
+                default: "{{dockerfile}}"
+              REGISTRY_URL:
+                type: string
+                default: ""
+              REGISTRY_CREDENTIALS_ID:
+                type: string
+                default: "dockerhub"
+              DOCKER_GIT_TAG:
+                type: boolean
+                default: "true"
\ No newline at end of file
diff --git a/jenkins/client/job/gating.yml b/jenkins/client/job/gating.yml
index 387db35..6b6d620 100644
--- a/jenkins/client/job/gating.yml
+++ b/jenkins/client/job/gating.yml
@@ -1,15 +1,27 @@
 parameters:
   jenkins:
     client:
+      view:
+        Gating:
+          enabled: true
+          type: ListView
+          include_regex: "gate-.*"
       job_template:
         gate-gerrit-namespace:
           name: gate-gerrit-{{name}}
           jobs:
             - name: mk
+              regex: 'mk\/.*'
             - name: debian
+              regex: 'debian\/.*'
             - name: contrail
+              regex: 'contrail\/.*'
             - name: salt-models
+              regex: 'salt-models\/.*'
             - name: salt-formulas
+              regex: 'salt-formulas\/.*'
+            - name: oss
+              regex: 'oss\/devops-portal'
           template:
             discard:
               build:
@@ -23,10 +35,11 @@
               url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
               credentials: "gerrit"
               script: gating-pipeline.groovy
+            quiet_period: 60
             trigger:
               gerrit:
                 project:
-                  '{{name}}\/.*':
+                  '{{regex}}':
                     compare_type: REG_EXP
                     branches:
                       - master
@@ -50,4 +63,4 @@
                 default: false
               CREDENTIALS_ID:
                 type: string
-                default: "gerrit"
\ No newline at end of file
+                default: "gerrit"
diff --git a/jenkins/client/job/git-mirrors/downstream/docker_images.yml b/jenkins/client/job/git-mirrors/downstream/docker_images.yml
new file mode 100644
index 0000000..2471280
--- /dev/null
+++ b/jenkins/client/job/git-mirrors/downstream/docker_images.yml
@@ -0,0 +1,9 @@
+classes:
+  - system.jenkins.client.job.git-mirrors.downstream
+parameters:
+  _param:
+    jenkins_git_mirror_downstream_jobs:
+      - name: docker-aptly
+        downstream: mk/docker-aptly
+        upstream: "https://github.com/tcpcloud/docker-aptly"
+        branches: master
\ No newline at end of file
diff --git a/jenkins/client/job/git-mirrors/downstream/templates.yml b/jenkins/client/job/git-mirrors/downstream/templates.yml
new file mode 100644
index 0000000..ef504af
--- /dev/null
+++ b/jenkins/client/job/git-mirrors/downstream/templates.yml
@@ -0,0 +1,13 @@
+classes:
+  - system.jenkins.client.job.git-mirrors.downstream
+parameters:
+  _param:
+    jenkins_git_mirror_downstream_jobs:
+      - name: cookiecutter-templates
+        downstream: mk/cookiecutter-templates
+        upstream: "git@github.com:Mirantis/mk2x-cookiecutter-reclass-model"
+        branches: master
+      - name: heat-templates
+        downstream: mk/heat-templates
+        upstream: "git@github.com:Mirantis/mk-lab-heat-templates"
+        branches: master
diff --git a/jenkins/client/job/git-mirrors/upstream/docker_images.yml b/jenkins/client/job/git-mirrors/upstream/docker_images.yml
new file mode 100644
index 0000000..2dc60b3
--- /dev/null
+++ b/jenkins/client/job/git-mirrors/upstream/docker_images.yml
@@ -0,0 +1,25 @@
+classes:
+  - system.jenkins.client.job.git-mirrors.upstream
+parameters:
+  _param:
+    jenkins_git_mirror_upstream_jobs:
+      - name: docker-aptly
+        downstream: mk/docker-aptly
+        upstream: "git@github.com:tcpcloud/docker-aptly"
+        branches: master
+      - name: docker-gerrit
+        downstream: mk/docker-gerrit
+        upstream: "git@github.com:Mirantis/docker-gerrit"
+        branches: 2.12.3,2.12.6,2.12.7,2.13.6,admin,master
+      - name: docker-jenkins
+        downstream: mk/docker-jenkins
+        upstream: "git@github.com:Mirantis/docker-jenkins"
+        branches: 2.32.3,2.52,2.7.2,master
+      - name: docker-phpldapadmin
+        downstream: mk/docker-phpldapadmin
+        upstream: "git@github.com:Mirantis/docker-phpldapadmin"
+        branches: stable,master
+      - name: docker-openldap
+        downstream: mk/docker-openldap
+        upstream: "git@github.com:Mirantis/docker-openldap"
+        branches: stable,master
\ No newline at end of file
diff --git a/jenkins/client/job/git-mirrors/upstream/templates.yml b/jenkins/client/job/git-mirrors/upstream/templates.yml
new file mode 100644
index 0000000..12e4a9a
--- /dev/null
+++ b/jenkins/client/job/git-mirrors/upstream/templates.yml
@@ -0,0 +1,13 @@
+classes:
+  - system.jenkins.client.job.git-mirrors.upstream
+parameters:
+  _param:
+    jenkins_git_mirror_upstream_jobs:
+      - name: cookiecutter-templates
+        downstream: mk/cookiecutter-templates
+        upstream: "git@github.com:Mirantis/mk2x-cookiecutter-reclass-model"
+        branches: master
+      - name: heat-templates
+        downstream: mk/heat-templates
+        upstream: "git@github.com:Mirantis/mk-lab-heat-templates"
+        branches: master
\ No newline at end of file
diff --git a/jenkins/client/job/image/centos.yml b/jenkins/client/job/image/centos.yml
index 852f695..995bfd4 100644
--- a/jenkins/client/job/image/centos.yml
+++ b/jenkins/client/job/image/centos.yml
@@ -1,3 +1,5 @@
+classes:
+  - system.jenkins.client.job.image
 parameters:
   _param:
     jenkins_packer_pipeline: "${_param:jenkins_gerrit_url}/mk/packer-templates"
diff --git a/jenkins/client/job/image/debian.yml b/jenkins/client/job/image/debian.yml
index 7c996f3..924b34c 100644
--- a/jenkins/client/job/image/debian.yml
+++ b/jenkins/client/job/image/debian.yml
@@ -1,3 +1,5 @@
+classes:
+  - system.jenkins.client.job.image
 parameters:
   _param:
     jenkins_packer_pipeline: "${_param:jenkins_gerrit_url}/mk/packer-templates"
diff --git a/jenkins/client/job/image/init.yml b/jenkins/client/job/image/init.yml
new file mode 100644
index 0000000..ee7f743
--- /dev/null
+++ b/jenkins/client/job/image/init.yml
@@ -0,0 +1,8 @@
+parameters:
+  jenkins:
+    client:
+      view:
+        Images:
+          enabled: true
+          type: ListView
+          include_regex: "build-image-.*"
\ No newline at end of file
diff --git a/jenkins/client/job/image/ubuntu.yml b/jenkins/client/job/image/ubuntu.yml
index 504702c..a9f25e5 100644
--- a/jenkins/client/job/image/ubuntu.yml
+++ b/jenkins/client/job/image/ubuntu.yml
@@ -1,3 +1,5 @@
+classes:
+  - system.jenkins.client.job.image
 parameters:
   _param:
     jenkins_packer_pipeline: "${_param:jenkins_gerrit_url}/mk/packer-templates"
diff --git a/jenkins/client/job/opencontrail/build/dpdk-extra.yml b/jenkins/client/job/opencontrail/build/dpdk-extra.yml
index 0ac7b50..f250a8c 100644
--- a/jenkins/client/job/opencontrail/build/dpdk-extra.yml
+++ b/jenkins/client/job/opencontrail/build/dpdk-extra.yml
@@ -73,3 +73,7 @@
               ARCH:
                 type: string
                 default: "amd64"
+              BINARY_PACKAGES:
+                description: "binary packages to create"
+                type: string
+                default: "all"
diff --git a/jenkins/client/job/opencontrail/build/generic.yml b/jenkins/client/job/opencontrail/build/generic.yml
index 7516354..a26472b 100644
--- a/jenkins/client/job/opencontrail/build/generic.yml
+++ b/jenkins/client/job/opencontrail/build/generic.yml
@@ -49,6 +49,18 @@
               branch: R3.2
               ppa: mirantis-opencontrail/opencontrail-3.2
               upload_source_package: true
+            - buildname: oc666
+              os: ubuntu
+              dist: trusty
+              branch: master
+              ppa: mirantis-opencontrail/opencontrail-master
+              upload_source_package: false
+            - buildname: oc666
+              os: ubuntu
+              dist: xenial
+              branch: master
+              ppa: mirantis-opencontrail/opencontrail-master
+              upload_source_package: false
           template:
             discard:
              build:
@@ -56,7 +68,7 @@
              artifact:
                keep_num: 5
             type: workflow-scm
-            concurrent: false
+            concurrent: true
             quiet_period: 120
             scm:
               type: git
@@ -84,6 +96,10 @@
                 type: boolean
                 default: 'false'
                 description: "Don't cleanup on failure"
+              DEBUG_DPDK:
+                type: boolean
+                default: 'false'
+                description: "CONFIG_RTE_LIBRTE_ETHDEV_DEBUG enabled or disabled"
               OS:
                 type: string
                 default: "{{os}}"
@@ -99,3 +115,61 @@
               UPLOAD_SOURCE_PACKAGE:
                 type: boolean
                 default: '{{upload_source_package}}'
+            trigger:
+              gerrit:
+                project:
+                   contrail/contrail-pipeline:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-build:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-controller:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-vrouter:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-third-party:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-generateDS:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-sandesh:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-packages:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-nova-vif-driver:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-neutron-plugin:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-nova-extensions:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-heat:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-web-storage:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-web-server-manager:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-web-controller:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-web-core:
+                     branches:
+                       - "{{branch}}"
+                   contrail/contrail-webui-third-party:
+                     branches:
+                       - "{{branch}}"
+                event:
+                  comment:
+                    - addedContains:
+                        commentAddedCommentContains: '(buildpackage)'
diff --git a/jenkins/client/job/opencontrail/git-mirrors/downstream.yml b/jenkins/client/job/opencontrail/git-mirrors/downstream.yml
index 0cf3a33..b49a1a0 100644
--- a/jenkins/client/job/opencontrail/git-mirrors/downstream.yml
+++ b/jenkins/client/job/opencontrail/git-mirrors/downstream.yml
@@ -8,24 +8,43 @@
           name: git-mirror-{{name}}
           jobs:
             - name: contrail-build
+              branches: ${_param:contrail_branches}
             - name: contrail-controller
+              branches: ${_param:contrail_branches}
             - name: contrail-vrouter
+              branches: ${_param:contrail_branches}
             - name: contrail-third-party
+              branches: ${_param:contrail_branches}
             - name: contrail-generateDS
+              branches: ${_param:contrail_branches}
             - name: contrail-sandesh
+              branches: ${_param:contrail_branches}
             - name: contrail-packages
+              branches: ${_param:contrail_branches}
             - name: contrail-nova-vif-driver
+              branches: ${_param:contrail_branches}
             - name: contrail-neutron-plugin
+              branches: ${_param:contrail_branches}
             - name: contrail-nova-extensions
+              branches: ${_param:contrail_branches}
             - name: contrail-ceilometer-plugin
+              branches: ${_param:contrail_ceilometer_plugin_branches}
             - name: contrail-heat
+              branches: ${_param:contrail_branches}
             - name: contrail-web-storage
+              branches: ${_param:contrail_branches}
             - name: contrail-web-server-manager
+              branches: ${_param:contrail_branches}
             - name: contrail-web-controller
+              branches: ${_param:contrail_branches}
             - name: contrail-web-core
+              branches: ${_param:contrail_branches}
             - name: contrail-webui-third-party
+              branches: ${_param:contrail_branches}
             - name: contrail-dpdk-extra-packages
+              branches: ${_param:contrail_dpdk_extra_branches}
             - name: contrail-kubernetes
+              branches: ${_param:contrail_kubernetes_branches}
           template:
             discard:
               build:
@@ -57,7 +76,7 @@
                 default: "gerrit"
               BRANCHES:
                 type: string
-                default: ${_param:contrail_branches}
+                default: "{{branches}}"
       job:
         git-mirror-ifmap-python-client:
           discard:
diff --git a/jenkins/client/job/opencontrail/init.yml b/jenkins/client/job/opencontrail/init.yml
index b41a357..63e4215 100644
--- a/jenkins/client/job/opencontrail/init.yml
+++ b/jenkins/client/job/opencontrail/init.yml
@@ -7,6 +7,7 @@
     contrail_kubernetes_branches: "master,release-1.2"
     contrail_dpdk_extra_branches: "mitaka,kilo,liberty-multiqueue"
     contrail_ceilometer_plugin_branches: "master"
+    contrail_kubernetes_branches: "master,origin-1.1,origin-1.1.3,release-1.1,release-1.2"
   jenkins:
     client:
       view:
diff --git a/jenkins/client/job/salt-formulas/git-mirrors/2way.yml b/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
index e5771a2..73609c4 100644
--- a/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
+++ b/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
@@ -98,6 +98,7 @@
             - name: sensu
             - name: sentry
             - name: sphinx
+            - name: spinnaker
             - name: statsd
             - name: supervisor
             - name: swift
diff --git a/jenkins/client/job/salt-formulas/tests.yml b/jenkins/client/job/salt-formulas/tests.yml
index 0dd7102..1bb0363 100644
--- a/jenkins/client/job/salt-formulas/tests.yml
+++ b/jenkins/client/job/salt-formulas/tests.yml
@@ -96,6 +96,7 @@
             - name: sensu
             - name: sentry
             - name: sphinx
+            - name: spinnaker
             - name: statsd
             - name: supervisor
             - name: swift
diff --git a/jenkins/client/job/salt-models/generate.yml b/jenkins/client/job/salt-models/generate.yml
index 6f2c85c..967de8c 100644
--- a/jenkins/client/job/salt-models/generate.yml
+++ b/jenkins/client/job/salt-models/generate.yml
@@ -45,10 +45,9 @@
                 type: boolean
                 default: false
               COOKIECUTTER_TEMPLATE_CONTEXT:
-                type: string
+                type: text
               RECLASS_MODEL_URL:
                 type: string
-                default: "${_param:jenkins_gerrit_url}/salt-models/training.git"
               RECLASS_MODEL_CREDENTIALS:
                 type: string
                 default: gerrit
diff --git a/jenkins/client/job/salt-models/init.yml b/jenkins/client/job/salt-models/init.yml
index 15690ea..7e5039a 100644
--- a/jenkins/client/job/salt-models/init.yml
+++ b/jenkins/client/job/salt-models/init.yml
@@ -5,3 +5,10 @@
 parameters:
   _param:
     salt_formulas_branches: master
+  jenkins:
+    client:
+      view:
+        "Salt models":
+          enabled: true
+          type: ListView
+          include_regex: ".*-salt-model-.*"
diff --git a/jenkins/client/job/salt-models/tests.yml b/jenkins/client/job/salt-models/tests.yml
index c980d1d..1545eff 100644
--- a/jenkins/client/job/salt-models/tests.yml
+++ b/jenkins/client/job/salt-models/tests.yml
@@ -70,11 +70,6 @@
                     branches:
                       - master
                 event:
-                  patchset:
-                    - created:
-                        excludeDrafts: false
-                        excludeTrivialRebase: false
-                        excludeNoCodeChange: false
                   comment:
                     - addedContains:
                         commentAddedCommentContains: '(recheck|reverify)'
diff --git a/jenkins/client/job/test_devops_portal.yml b/jenkins/client/job/test_devops_portal.yml
index 0d9f2df..711f42a 100644
--- a/jenkins/client/job/test_devops_portal.yml
+++ b/jenkins/client/job/test_devops_portal.yml
@@ -2,8 +2,8 @@
   jenkins:
     client:
       job:
-        test-devops-portal-unittests:
-          name: test-devops-portal-unittests
+        test-oss-devops-portal:
+          name: test-oss-devops-portal
           discard:
             build:
               keep_num: 10
@@ -44,3 +44,9 @@
                 npm run lint
                 npm run test:unit
                 npm run test:functional
+            DEFAULT_GIT_URL:
+                type: string
+                default: "${_param:jenkins_gerrit_url}/oss/devops-portal"
+            DEFAULT_GIT_REF:
+                type: string
+                default: master
diff --git a/jenkins/master/single.yml b/jenkins/master/single.yml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/jenkins/master/single.yml
diff --git a/keepalived/cluster/instance/prometheus_server_vip.yml b/keepalived/cluster/instance/prometheus_server_vip.yml
new file mode 100644
index 0000000..7bde702
--- /dev/null
+++ b/keepalived/cluster/instance/prometheus_server_vip.yml
@@ -0,0 +1,18 @@
+applications:
+- keepalived
+classes:
+- service.keepalived.support
+parameters:
+  _param:
+    keepalived_vip_priority: 101
+  keepalived:
+    cluster:
+      enabled: true
+      instance:
+        prometheus_server_vip:
+          address: ${_param:keepalived_prometheus_vip_address}
+          password: ${_param:keepalived_prometheus_vip_password}
+          interface: ${_param:keepalived_prometheus_vip_interface}
+          virtual_router_id: 105
+          priority: ${_param:keepalived_vip_priority}
+
diff --git a/keystone/client/service/cinder3.yml b/keystone/client/service/cinder3.yml
new file mode 100644
index 0000000..caf24c2
--- /dev/null
+++ b/keystone/client/service/cinder3.yml
@@ -0,0 +1,31 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                cinder:
+                  is_admin: true
+                  password: ${_param:keystone_cinder_password}
+                  email: ${_param:admin_email}
+          service:
+            cinderv3:
+              type: volumev3
+              description: OpenStack Volume Service v3
+              endpoints:
+              - region: ${_param:openstack_region}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
+                public_port: 8776
+                public_path: '/v3/$(tenant_id)s'
+                internal_address: ${_param:cinder_service_host}
+                internal_port: 8776
+                internal_path: '/v3/$(tenant_id)s'
+                admin_address: ${_param:cinder_service_host}
+                admin_port: 8776
+                admin_path: '/v3/$(tenant_id)s'
+
diff --git a/keystone/client/service/glare.yml b/keystone/client/service/glare.yml
new file mode 100644
index 0000000..78c7d1f
--- /dev/null
+++ b/keystone/client/service/glare.yml
@@ -0,0 +1,31 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                glance:
+                  is_admin: true
+                  password: ${_param:keystone_glance_password}
+                  email: ${_param:admin_email}
+          service:
+            glare:
+              type: artifact
+              description: OpenStack Image Artifact Service
+              endpoints:
+              - region: ${_param:openstack_region}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
+                public_port: 9494
+                public_path: ''
+                internal_address: ${_param:glance_service_host}
+                internal_port: 9494
+                internal_path: ''
+                admin_address: ${_param:glance_service_host}
+                admin_port: 9494
+                admin_path: ''
+
diff --git a/keystone/client/service/nova-placement.yml b/keystone/client/service/nova-placement.yml
new file mode 100644
index 0000000..61b5455
--- /dev/null
+++ b/keystone/client/service/nova-placement.yml
@@ -0,0 +1,23 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+  keystone:
+    client:
+      server:
+        identity:
+          service:
+            placement:
+              type: placement
+              description: OpenStack Placement API
+              endpoints:
+              - region: ${_param:openstack_region}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
+                public_port: '8778'
+                public_path: ''
+                internal_address: ${_param:nova_service_host}
+                internal_port: '8778'
+                internal_path: ''
+                admin_address: ${_param:nova_service_host}
+                admin_port: '8778'
+                admin_path: ''
diff --git a/keystone/server/storage/glusterfs.yml b/keystone/server/storage/glusterfs.yml
deleted file mode 100644
index 54a4197..0000000
--- a/keystone/server/storage/glusterfs.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-classes:
-- service.glusterfs.server
-- service.glusterfs.client
-parameters:
-  glusterfs:
-    server:
-      peers:
-      - ${_param:cluster_node01_address}
-      - ${_param:cluster_node02_address}
-      - ${_param:cluster_node03_address}
-      volumes:
-        keystone-keys:
-          storage: /srv/glusterfs/keystone-keys
-          replica: 3
-          bricks:
-            - ${_param:cluster_node01_address}:/srv/glusterfs/keystone-keys
-            - ${_param:cluster_node02_address}:/srv/glusterfs/keystone-keys
-            - ${_param:cluster_node03_address}:/srv/glusterfs/keystone-keys
-          options:
-            cluster.readdir-optimize: On
-            nfs.disable: On
-            network.remote-dio: On
-            diagnostics.client-log-level: WARNING
-            diagnostics.brick-log-level: WARNING
-    client:
-      volumes:
-        keystone-keys:
-          path: /var/lib/keystone/fernet-keys
-          server: ${_param:glusterfs_service_host}
-          user: keystone
-          group: keystone
-  keystone:
-    server:
-      tokens:
-        location: /var/lib/keystone/fernet-keys
diff --git a/linux/system/repo/mcp/contrail.yml b/linux/system/repo/mcp/contrail.yml
index 9f65ee3..c0ecc92 100644
--- a/linux/system/repo/mcp/contrail.yml
+++ b/linux/system/repo/mcp/contrail.yml
@@ -9,3 +9,7 @@
           source: "deb [arch=amd64] http://apt-mk.mirantis.com/${_param:linux_system_codename}/ ${_param:apt_mk_version} ${_param:openstack_version} ${_param:linux_repo_contrail_component} extra"
           architectures: amd64
           key_url: "http://apt-mk.mirantis.com/public.gpg"
+          pin:
+          - pin: 'release a=${_param:apt_mk_version}'
+            priority: 1100
+            package: '*'
diff --git a/linux/system/repo/mcp/extra.yml b/linux/system/repo/mcp/extra.yml
index d8977f4..00de9ea 100644
--- a/linux/system/repo/mcp/extra.yml
+++ b/linux/system/repo/mcp/extra.yml
@@ -9,3 +9,7 @@
           architectures: amd64
           key_url: "http://apt-mk.mirantis.com/public.gpg"
           clean_file: true
+          pin:
+          - pin: 'release a=${_param:apt_mk_version}'
+            priority: 1100
+            package: '*'
diff --git a/linux/system/repo/mcp/openstack.yml b/linux/system/repo/mcp/openstack.yml
index 67c9cad..9f26821 100644
--- a/linux/system/repo/mcp/openstack.yml
+++ b/linux/system/repo/mcp/openstack.yml
@@ -1,32 +1,54 @@
 parameters:
   _param:
-    mcp_repo_version: 1.0
-    apt_mk_version: stable 
+    apt_mk_version: stable
   linux:
     system:
       repo:
         mirantis_openstack:
-          source: "deb http://mirror.fuel-infra.org/mcp-repos/${_param:mcp_repo_version}/${_param:linux_system_codename} ${_param:openstack_version} main"
+          source: "deb http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename} ${_param:openstack_version} main"
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/${_param:mcp_repo_version}/${_param:linux_system_codename}/archive-mcp${_param:mcp_repo_version}.key"
+          key_url: "http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}/archive-mcp${_param:openstack_version}.key"
+          pin:
+          - pin: 'release a=${_param:openstack_version}'
+            priority: 1100
+            package: '*'
         mirantis_openstack_hotfix:
-          source: "deb http://mirror.fuel-infra.org/mcp-repos/${_param:mcp_repo_version}/${_param:linux_system_codename} ${_param:openstack_version}-hotfix main"
+          source: "deb http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename} ${_param:openstack_version}-hotfix main"
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/${_param:mcp_repo_version}/${_param:linux_system_codename}/archive-mcp${_param:mcp_repo_version}.key"
+          key_url: "http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}/archive-mcp${_param:openstack_version}.key"
+          pin:
+          - pin: 'release a=${_param:openstack_version}-hotfix'
+            priority: 1100
+            package: '*'
         mirantis_openstack_security:
-          source: "deb http://mirror.fuel-infra.org/mcp-repos/${_param:mcp_repo_version}/${_param:linux_system_codename} ${_param:openstack_version}-security main"
+          source: "deb http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename} ${_param:openstack_version}-security main"
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/${_param:mcp_repo_version}/${_param:linux_system_codename}/archive-mcp${_param:mcp_repo_version}.key"
+          key_url: "http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}/archive-mcp${_param:openstack_version}.key"
+          pin:
+          - pin: 'release a=${_param:openstack_version}-security'
+            priority: 1100
+            package: '*'
         mirantis_openstack_updates:
-          source: "deb http://mirror.fuel-infra.org/mcp-repos/${_param:mcp_repo_version}/${_param:linux_system_codename} ${_param:openstack_version}-updates main"
+          source: "deb http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename} ${_param:openstack_version}-updates main"
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/${_param:mcp_repo_version}/${_param:linux_system_codename}/archive-mcp${_param:mcp_repo_version}.key"
+          key_url: "http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}/archive-mcp${_param:openstack_version}.key"
+          pin:
+          - pin: 'release a=${_param:openstack_version}-uptades'
+            priority: 1100
+            package: '*'
         mirantis_openstack_holdback:
-          source: "deb http://mirror.fuel-infra.org/mcp-repos/${_param:mcp_repo_version}/${_param:linux_system_codename} ${_param:openstack_version}-holdback main"
+          source: "deb http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename} ${_param:openstack_version}-holdback main"
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/${_param:mcp_repo_version}/${_param:linux_system_codename}/archive-mcp${_param:mcp_repo_version}.key"
+          key_url: "http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}/archive-mcp${_param:openstack_version}.key"
+          pin:
+          - pin: 'release a=${_param:openstack_version}-holdback'
+            priority: 1100
+            package: '*'
         mk_openstack:
           source: "deb [arch=amd64] http://apt-mk.mirantis.com/${_param:linux_system_codename}/ ${_param:apt_mk_version} ${_param:openstack_version}"
           architectures: amd64
           key_url: "http://apt-mk.mirantis.com/public.gpg"
-
+          pin:
+          - pin: 'release a=${_param:apt_mk_version}'
+            priority: 1100
+            package: '*'
diff --git a/linux/system/repo/mcp/salt.yml b/linux/system/repo/mcp/salt.yml
index 1941fe8..d40cc5f 100644
--- a/linux/system/repo/mcp/salt.yml
+++ b/linux/system/repo/mcp/salt.yml
@@ -9,3 +9,7 @@
           architectures: amd64
           key_url: "http://apt-mk.mirantis.com/public.gpg"
           clean_file: true
+          pin:
+          - pin: 'release a=${_param:apt_mk_version}'
+            priority: 1100
+            package: '*'
diff --git a/linux/system/repo/mos10.yml b/linux/system/repo/mos10.yml
new file mode 100644
index 0000000..63f6a9d
--- /dev/null
+++ b/linux/system/repo/mos10.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      repo:
+        mirantis_openstack:
+          source: "deb http://mirror.fuel-infra.org/mos-repos/ubuntu/10.0/ mos10.0 main restricted"
+          architectures: amd64
+          key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/10.0/archive-mos10.0.key"
+        mirantis_openstack_hotfix:
+          source: "deb http://mirror.fuel-infra.org/mos-repos/ubuntu/10.0/ mos10.0-hotfix main restricted"
+          architectures: amd64
+          key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/10.0/archive-mos10.0.key"
+        mirantis_openstack_security:
+          source: "deb http://mirror.fuel-infra.org/mos-repos/ubuntu/10.0/ mos10.0-security main restricted"
+          architectures: amd64
+          key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/10.0/archive-mos10.0.key"
+        mirantis_openstack_updates:
+          source: "deb http://mirror.fuel-infra.org/mos-repos/ubuntu/10.0/ mos10.0-updates main restricted"
+          architectures: amd64
+          key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/10.0/archive-mos10.0.key"
\ No newline at end of file
diff --git a/linux/system/repo/saltstack/trusty.yml b/linux/system/repo/saltstack/trusty.yml
index c20d4dc..68ce215 100644
--- a/linux/system/repo/saltstack/trusty.yml
+++ b/linux/system/repo/saltstack/trusty.yml
@@ -6,4 +6,5 @@
       repo:
         salt:
           source: "deb http://repo.saltstack.com/apt/ubuntu/14.04/amd64/${_param:salt_version} trusty main"
+          architectures: amd64
           key_url: "http://repo.saltstack.com/apt/ubuntu/14.04/amd64/${_param:salt_version}/SALTSTACK-GPG-KEY.pub"
\ No newline at end of file
diff --git a/linux/system/repo/saltstack/xenial.yml b/linux/system/repo/saltstack/xenial.yml
index 0c933b8..aca462a 100644
--- a/linux/system/repo/saltstack/xenial.yml
+++ b/linux/system/repo/saltstack/xenial.yml
@@ -6,4 +6,5 @@
       repo:
         salt:
           source: "deb http://repo.saltstack.com/apt/ubuntu/16.04/amd64/${_param:salt_version} xenial main"
+          architectures: amd64
           key_url: "http://repo.saltstack.com/apt/ubuntu/16.04/amd64/${_param:salt_version}/SALTSTACK-GPG-KEY.pub"
\ No newline at end of file
diff --git a/linux/system/repo/sensu.yml b/linux/system/repo/sensu.yml
new file mode 100644
index 0000000..1ea3687
--- /dev/null
+++ b/linux/system/repo/sensu.yml
@@ -0,0 +1,8 @@
+parameters:
+  linux:
+    system:
+      repo:
+        sensu:
+          source: "deb https://sensu.global.ssl.fastly.net/apt ${_param:linux_system_codename} main"
+          architectures: amd64
+          key_url: "https://sensu.global.ssl.fastly.net/apt/pubkey.gpg"
\ No newline at end of file
diff --git a/linux/system/repo/ubuntu.yml b/linux/system/repo/ubuntu.yml
index b4137bd..d36bcc1 100644
--- a/linux/system/repo/ubuntu.yml
+++ b/linux/system/repo/ubuntu.yml
@@ -3,19 +3,19 @@
     system:
       repo:
         ubuntu:
-          source: "deb http://archive.ubuntu.com/ubuntu/ ${_param:linux_system_codename} main restricted universe"
+          source: "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${_param:linux_system_codename} main restricted universe"
           architectures: amd64
           default: true
           key_id: 437D05B5
           key_server: keyserver.ubuntu.com
         ubuntu_updates:
-          source: "deb http://archive.ubuntu.com/ubuntu/ ${_param:linux_system_codename}-updates main restricted universe"
+          source: "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${_param:linux_system_codename}-updates main restricted universe"
           architectures: amd64
           default: true
           key_id: 437D05B5
           key_server: keyserver.ubuntu.com
         ubuntu_security:
-          source: "deb http://archive.ubuntu.com/ubuntu/ ${_param:linux_system_codename}-security main restricted universe"
+          source: "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${_param:linux_system_codename}-security main restricted universe"
           architectures: amd64
           default: true
           key_id: 437D05B5
diff --git a/linux/system/repo_local/mcp/contrail.yml b/linux/system/repo_local/mcp/contrail.yml
index 158fda5..89a7236 100644
--- a/linux/system/repo_local/mcp/contrail.yml
+++ b/linux/system/repo_local/mcp/contrail.yml
@@ -6,7 +6,7 @@
   linux:
     system:
       repo:
-        mcp_opencontrail_${_param:linux_repo_contrail_component}:
+        mcp_opencontrail:
           refresh_db: ${_param:linux_repo_refresh_db}
           source: "deb [arch=amd64] http://${_param:local_repo_url}/ubuntu-${_param:linux_system_codename}/ ${_param:apt_mk_version} ${_param:linux_repo_contrail_component}"
           architectures: amd64
diff --git a/linux/system/repo_local/mcp/extra.yml b/linux/system/repo_local/mcp/extra.yml
index 67d85a5..a0c54d6 100644
--- a/linux/system/repo_local/mcp/extra.yml
+++ b/linux/system/repo_local/mcp/extra.yml
@@ -5,8 +5,7 @@
     system:
       repo:
         mcp_extra:
-          default: true
           refresh_db: ${_param:linux_repo_refresh_db}
           source: "deb [arch=amd64] http://${_param:local_repo_url}/ubuntu-${_param:linux_system_codename}/ ${_param:apt_mk_version} extra"
           architectures: amd64
-          key_url: "http://${_param:local_repo_url}/public.gpg"
\ No newline at end of file
+          key_url: "http://${_param:local_repo_url}/public.gpg"
diff --git a/mysql/client/database/nova_api.yml b/mysql/client/database/nova_api.yml
index 9380445..a8fbd59 100644
--- a/mysql/client/database/nova_api.yml
+++ b/mysql/client/database/nova_api.yml
@@ -15,3 +15,14 @@
                 password: ${_param:mysql_nova_password}
                 host: ${_param:single_address}
                 rights: all
+            nova_cell0:
+              encoding: utf8
+              users:
+              - name: nova
+                password: ${_param:mysql_nova_password}
+                host: '%'
+                rights: all
+              - name: nova
+                password: ${_param:mysql_nova_password}
+                host: ${_param:single_address}
+                rights: all
diff --git a/nagios/server/init.yml b/nagios/server/init.yml
index e495915..3a027a2 100644
--- a/nagios/server/init.yml
+++ b/nagios/server/init.yml
@@ -3,6 +3,10 @@
     nagios_notification_email: root@localhost
     nagios_host_dimension_key: nagios_host
     nagios_default_host_alarm_clusters: 00-clusters
+    nagios_monitoring_network: []
+    nagios_monitoring_interface:
+    - eth0
+    - ens3
   nagios :
     server:
       enabled: true
@@ -45,9 +49,9 @@
         grain_hostname: 'host'
         hostname_suffix: ${_param:stacklight_environment}
         hostgroups:
-          - target: '*'
+          - target: 'G@services:openssh'
             name: All
-            expr_from: glob
+            expr_from: compound
           - target: 'G@roles:nova.controller'
             expr_from: compound # the default
             name: Nova Controller
@@ -63,10 +67,8 @@
           - target: 'G@services:openssh'
             contact_groups: Operator
             use: generic_host_tpl
-            interface:
-            - eth0
-            - ens3
-            - p4p1.602
+            interface: ${_param:nagios_monitoring_interface}
+            network: ${_param:nagios_monitoring_network}
         services:
           - target: 'G@roles:openssh.server'
             name: SSH
diff --git a/neutron/control/opencontrail/cluster.yml b/neutron/control/opencontrail/cluster.yml
index 5baa97e..caaaf6d 100644
--- a/neutron/control/opencontrail/cluster.yml
+++ b/neutron/control/opencontrail/cluster.yml
@@ -20,33 +20,13 @@
             rights: all
   neutron:
     server:
-      enabled: true
       dns_domain: ${_param:cluster_domain}
-      version: ${_param:neutron_version}
-      bind:
-        address: ${_param:cluster_local_address}
-        port: 9696
       database:
-        engine: mysql
         host: ${_param:openstack_database_address}
-        port: 3306
-        name: neutron
-        user: neutron
-        password: ${_param:mysql_neutron_password}
       identity:
-        engine: keystone
         region: ${_param:openstack_region}
         host: ${_param:openstack_control_address}
-        port: 35357
-        user: neutron
-        password: ${_param:keystone_neutron_password}
-        tenant: service
       message_queue:
-        engine: rabbitmq
-        port: 5672
-        user: openstack
-        password: ${_param:rabbitmq_openstack_password}
-        virtual_host: '/openstack'
         members:
           - host: ${_param:openstack_message_queue_node01_address}
           - host: ${_param:openstack_message_queue_node02_address}
@@ -54,13 +34,11 @@
       compute:
         host: ${_param:openstack_control_address}
         region: ${_param:openstack_region}
-        user: nova
-        password: ${_param:keystone_nova_password}
-        tenant: service
-      plugin: contrail
-      tunnel_type: vxlan
-      public_networks: []
-      contrail:
-        version: ${_param:opencontrail_version}
-
-
+      backend:
+        engine: contrail
+        host: ${_param:opencontrail_control_address}
+        port: 8082
+        user: admin
+        password: ${_param:keystone_admin_password}
+        tenant: admin
+        token: ${_param:keystone_service_token}
\ No newline at end of file
diff --git a/nginx/server/proxy/monitoring/prometheus_alertmanager.yml b/nginx/server/proxy/monitoring/prometheus_alertmanager.yml
new file mode 100644
index 0000000..2430104
--- /dev/null
+++ b/nginx/server/proxy/monitoring/prometheus_alertmanager.yml
@@ -0,0 +1,16 @@
+parameters:
+  nginx:
+    server:
+      enabled: true
+      site:
+        nginx_proxy_prometheus_alertmanager:
+          enabled: true
+          type: nginx_proxy
+          name: prometheus_alertmanager
+          proxy:
+            host: ${_param:prometheus_control_address}
+            port: 15011
+            protocol: http
+          host:
+            name: ${_param:cluster_public_host}
+            port: 15011
diff --git a/nginx/server/proxy/monitoring/prometheus_server.yml b/nginx/server/proxy/monitoring/prometheus_server.yml
new file mode 100644
index 0000000..76ff56a
--- /dev/null
+++ b/nginx/server/proxy/monitoring/prometheus_server.yml
@@ -0,0 +1,16 @@
+parameters:
+  nginx:
+    server:
+      enabled: true
+      site:
+        nginx_proxy_prometheus_server:
+          enabled: true
+          type: nginx_proxy
+          name: prometheus_server
+          proxy:
+            host: ${_param:prometheus_control_address}
+            port: 15010
+            protocol: http
+          host:
+            name: ${_param:cluster_public_host}
+            port: 15010
diff --git a/nova/control/cluster.yml b/nova/control/cluster.yml
index 545a432..1bcc8b9 100644
--- a/nova/control/cluster.yml
+++ b/nova/control/cluster.yml
@@ -71,4 +71,4 @@
         mtu: 1500
         tenant: service
       metadata:
-        password: metadataPass
+        password: ${_param:metadata_password}
diff --git a/opencontrail/control/analytics.yml b/opencontrail/control/analytics.yml
index 9e3d78d..8cbd166 100644
--- a/opencontrail/control/analytics.yml
+++ b/opencontrail/control/analytics.yml
@@ -16,42 +16,13 @@
           hold: true
   opencontrail:
     common:
-      version: ${_param:opencontrail_version}
       identity:
-        engine: keystone
         host: ${_param:openstack_control_address}
-        port: 35357
-        token: '${_param:keystone_service_token}'
-        password: '${_param:keystone_admin_password}'
       network:
-        engine: neutron
         host: ${_param:opencontrail_control_address}
-        port: 9696
     collector:
-      version: ${_param:opencontrail_version}
-      enabled: true
-      bind:
-        address: ${_param:cluster_local_address}
-        port: 9081
-      master:
-        host: ${_param:cluster_local_address}
       discovery:
         host: ${_param:opencontrail_control_address}
-      data_ttl: 1
     database:
-      version: ${_param:opencontrail_version}
-      cassandra:
-        version: 2
-      enabled: true
-      name: 'Contrail'
-      minimum_disk: 10
-      original_token: 0
-      data_dirs:
-      - /var/lib/cassandra
-      id: ${_param:opencontrail_database_id}
       discovery:
         host: ${_param:opencontrail_control_address}
-      bind:
-        host: ${_param:cluster_local_address}
-        port: 9042
-        rpc_port: 9160
\ No newline at end of file
diff --git a/opencontrail/control/control.yml b/opencontrail/control/control.yml
index a3fefc3..794682d 100644
--- a/opencontrail/control/control.yml
+++ b/opencontrail/control/control.yml
@@ -7,98 +7,31 @@
     multi_tenancy: false  
   opencontrail:
     common:
-      version: ${_param:opencontrail_version}
       identity:
-        engine: keystone
         host: ${_param:openstack_control_address}
-        port: 35357
-        token: '${_param:keystone_service_token}'
-        password: '${_param:keystone_admin_password}'
       network:
-        engine: neutron
         host: ${_param:cluster_vip_address}
-        port: 9696
     config:
-      version: ${_param:opencontrail_version}
-      enabled: true
       multi_tenancy: ${_param:multi_tenancy}
       network:
-        engine: neutron
-        host: ${_param:cluster_vip_address}
-        port: 9696
-      discovery:
         host: ${_param:cluster_vip_address}
       analytics:
         host: ${_param:opencontrail_analytics_address}
       bind:
         address: ${_param:cluster_local_address}
-        api_port: 9100
-        discovery_port: 9110
       message_queue:
-        engine: rabbitmq
         host: ${_param:openstack_message_queue_address}
-        port: 5672
       identity:
-        engine: keystone
-        version: '2.0'
         region: ${_param:openstack_region}
         host: ${_param:openstack_control_address}
-        port: 35357
-        user: admin
-        password: '${_param:keystone_admin_password}'
-        token: '${_param:keystone_service_token}'
-        tenant: admin
-    control:
-      version: ${_param:opencontrail_version}
-      enabled: true
-      id: ${_param:opencontrail_database_id}
-      bind:
-        address: ${_param:cluster_local_address}
-      discovery:
-        host: ${_param:cluster_vip_address}
-      master:
-        host: ${_param:cluster_local_address}
-    database:
-      version: ${_param:opencontrail_version}
-      cassandra:
-        version: 2
-      enabled: true
-      name: 'Contrail'
-      minimum_disk: 10
-      original_token: 0
-      data_dirs:
-      - /var/lib/cassandra
-      id: ${_param:opencontrail_database_id}
-      discovery:
-        host: ${_param:cluster_vip_address}
-      bind:
-        host: ${_param:cluster_local_address}
-        port: 9042
-        rpc_port: 9160
     web:
-      version: ${_param:opencontrail_version}
-      enabled: True
-      bind:
-        address: ${_param:cluster_local_address}
       analytics:
         host: ${_param:opencontrail_analytics_address}
-      master:
-        host: ${_param:cluster_vip_address}
       cache:
-        engine: redis
         host: 127.0.0.1
-        port: 6379
       identity:
-        engine: keystone
-        version: '2.0'
         host: ${_param:openstack_control_address}
-        port: 35357
-        user: admin
-        password: '${_param:keystone_admin_password}'
-        token: '${_param:keystone_service_token}'
-        tenant: admin
       database:
         port: 9042
       network:
-        engine: neutron
         host: ${_param:cluster_vip_address}
diff --git a/openssh/server/team/mcp_qa.yml b/openssh/server/team/mcp_qa.yml
index 766044d..5fc30d4 100644
--- a/openssh/server/team/mcp_qa.yml
+++ b/openssh/server/team/mcp_qa.yml
@@ -119,6 +119,27 @@
           full_name: Vitaly Gusev
           home: /home/vgusev
           email: vgusev@mirantis.com
+        rkhozinov:
+          enabled: true
+          name: rkhozinov
+          sudo: true
+          full_name: Ruslan Khozinov
+          home: /home/rkhozinov
+          email: rkhozinov@mirantis.com
+        vnaumov:
+          enabled: true
+          name: vnaumov
+          sudo: true
+          full_name: Vlad Naumov
+          home: /home/vnaumov
+          email: vnaumov@mirantis.com
+        ekhomyakova:
+          enabled: true
+          name: ekhomyakova
+          sudo: true
+          full_name: Ekaterina Khomyakova
+          home: /home/ekhomyakova
+          email: ekhomyakova@mirantis.com
       group:
         libvirtd:
           enabled: true
@@ -222,6 +243,21 @@
           public_keys:
           - ${public_keys:vgusev}
           user: ${linux:system:user:vgusev}
+        rkhozinov:
+          enable: true
+          public_keys:
+          - ${public_keys:rkhozinov}
+          user: ${linux:system:user:rkhozinov}
+        vnaumov:
+          enable: true
+          public_keys:
+          - ${public_keys:vnaumov}
+          user: ${linux:system:user:vnaumov}
+        ekhomyakova:
+          enable: true
+          public_keys:
+          - ${public_keys:ekhomyakova}
+          user: ${linux:system:user:ekhomyakova}
   public_keys:
     ddmitriev:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDuD4wJ8hzkchQ0pfgdwWukQyps1xYRfHOsjosmDu/mmgaXVud5mnpwb2q35E2YYTox2mx+ulJqyS+099gz6MPg4P8D5qdMuRbAsJqbceLaaIGQhdT8qgSo7ESrl5pwvYnfWzKLKF0z5s7nrW0nvArC40zhV9o9XpvzzzSFByepWfkwA8ReldGUYVvTKp8YXaCrqEdMZrU42adPM2nl+fYBbGF+h4/Ka247aVjPeER0blV3znFXbv2Kf38G+i/TEGaktgpBdtGGDi1tX2loMypmTJeqZRJnM0Eoly0BnynB7CSxn11eoIXBUe1mVYNqmQd1hw6uh59iymhK5j939v9J ddmitriev@dis_xcom
@@ -261,3 +297,9 @@
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC3dCFNCYVxHQQD+/X1JJ9auAzpj15AkEl6yO4lJ1XL43ljxJbzWXXl3RN9vAjiBE1tvxEfuPEIxF7kO2sc1xPKtkw40RIwXrDIGfjlVCaBLtnxCPnCQX349UMSJl/AXpkHqKGVeAW+AO4zbeI8XnS9aDNMuX6ncgrLRMxWCxETL3J/IIE1LZ5v0QvyQBHuJc5jbyODVb4onff296SbjzYm96elJZcRFo4FzFaIcKtis+Sm4+6OAGCNDIXxfB9e5TK579x+L+ci/W1k83Fcz6NpQU/OM1R1CZVMap/Xet424aRMFPmA8sTF4hdYvWd6adBihco2isaW51b1Gkc+K9N9wELiEBMpdKQtqkPOvm98UhoRk7Wp+8+zSamj1uEs/7m6VCGFebq8V3xqTexWH2dCUznxZ5+KS6WLBh+3f4P6wG8VuWfgFjIUf7jjYKjidBXfSXFDxRkhf/LV8V0jLv+Ma1mjKBUX+rk7IFxm0X/PkjqNhVFlg3rH4Wre0+9WdsTCyzWS0HEaTxIKdPtwwULLEiwClO1LLebdlVjx9yhen0czXxMAHONbZeTvxN8ULfei+b7c07oYm16T8T9JAdiWn5nGxiT8TAUrCPBJMpbE4xQJLztYhAbMpfhFSdkKfTotFxTK9AKpTg4TZFY0NYOktFtV2R9ZnzP7hHZDSIg2Bw== rpromyshlennikov@mirantis.com
     vgusev:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrCyaZjs8hiwx38LfpeQ2z9n9ptwQ7gFrhq2z5sK9q/LQMCubbnp5xhyF0SMY1jmQUewBOKXhnq3QSX+DmtNsnhitnZBw2BE5PBXllCBWMMiWULfAYvB0of728Q3EEjrtyfHkt7o2E+CvreVJcVI4kBwjKh5WpVBZ8mmkW/sexLGMuYu0bUWjCddu6ZlhUa+y14VZKOKp44auemza1VL/UzqOVZkBAfR2gPV2pBG3Im+SlnOlDRxKPEXQbsn3u/sNeZq0wSY++khY86AU7jAKfL2NiNsoA7CyB0jTEKwYO3vOWOhECifZuHwY/TNWyRFWM2ImW3mT9aO7nE4w4jXXJ vgusev@vgusev
+    rkhozinov:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCti9e5kyNEtX3MEns+eehUCzaxZmI8FWkWrLeRQY3jLUGzI3+N12tA7gKffczGIDP/ttnDg1hl98Yw28mkrIfYYMwRMqsBkGmYZyu6EXccyde6/5U/dgKVFGYLjWmbAAcaIaO2YoxqUJKvIanfLNHTRI29KwgxpaMCtjB7+jHiw/V0MF2xKi8yJgajZgh8iXPiv50BGjICx1BuqgqZb5jjxouV0FpU28mBOobqtaphOHeFPHk1Uool9MBt+2ocAjLbFhozmx0xryBVG4FGreovK60Zz4PuGCUL98rSTt8fbebfVokqkCG+sjykTcEQ8h5/0BUR4sPXw5mxATHD/AOv rkhozinov@rkhw
+    vnaumov:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDno7VX9jiveRCF7d1C/FK24WLZwCArdrBBOQ1uHqpkUfUYtG6vrYgt/K2n2FXoX55lbeoJAwuNC9HviaY+vQAekCI4W2s02iD+j/GRUwitpv+lJZXSmt/q2PgLz3OFUIsJV0EwyNl+bexM4+2jYTmHeDMrXAsHL4I2GUv5sFycA11UhxZ/Qm2QMKlRZhje/IJieX9u2BhgYuPYffASVl4AhwtDagYdqquwUXrfu/dQRt/U9w0Di9alApcyPqiW9LbXUgwha1G9+ScQnxmp8WvmaV8YR+nf2OFxQHvOZPYjCzniRnYpaQUMeUAkJKxDwqR1dAKYnaQY5TfXtFwfzsjN vnaumov@vnaumov
+    ekhomyakova:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEaWwPVtsj39s0A2efRQ1ejL5B7ZetFPmXJDi/8W/gTWIIII3xP750H8QWZfvbjiJ+KBCxOndDL8aL3SHC/iRCvmzrVkgXBgf5J9vTu8uas7BNGf7oiDBuB75fryDtkg57Pam/A47IlgxJTCwYz+ofUGHb6WrWwQ+MUTEWAk9PB+RPyxjwNC4XxEwtULkKQMgFmg52kauESpx0R0ni8/LLKUJucdse7NCcUTvEcafppnXsxdZ640G0K82ADS1neg1CDwdtCPKLG57GZYs4iL3sPcOhQxnVUoONXsRpBD8kQTKOMl5R6hTDJHBd3oimUPEXlPqeb/XeGKatVraRA6nJ ekhomyakova@ekhomyakova
diff --git a/openssh/server/team/networking.yml b/openssh/server/team/networking.yml
new file mode 100644
index 0000000..df85109
--- /dev/null
+++ b/openssh/server/team/networking.yml
@@ -0,0 +1,93 @@
+parameters:
+  linux:
+    system:
+      user:
+        aignatov:
+          enabled: true
+          name: aignatov
+          sudo: true
+          full_name: Alexander Ignatov
+          home: /home/aignatov
+          email: aignatov@mirantis.com
+        ataraday:
+          enabled: true
+          name: ataraday
+          sudo: true
+          full_name: Anna Taraday
+          home: /home/ataraday
+          email: ataraday@mirantis.com
+        eezhova:
+          enabled: true
+          name: eezhova
+          sudo: true
+          full_name: Elena Ezhova
+          home: /home/eezhova
+          email: eezhova@mirantis.com
+        ichukhnakov:
+          enabled: true
+          name: ichukhnakov
+          sudo: true
+          full_name: Ilya Chukhnakov
+          home: /home/ichukhnakov
+          email: ichukhnakov@mirantis.com
+        ivasilevskaya:
+          enabled: true
+          name: ivasilevskaya
+          sudo: true
+          full_name: Inessa Vasilevskaya
+          home: /home/ivasilevskaya
+          email: ivasilevskaya@mirantis.com
+        obondarev:
+          enabled: true
+          name: obondarev
+          sudo: true
+          full_name: Oleg Bondarev
+          home: /home/obondarev
+          email: obondarev@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        aignatov:
+          enabled: true
+          public_keys:
+          - ${public_keys:aignatov}
+          user: ${linux:system:user:aignatov}
+        ataraday:
+          enabled: true
+          public_keys:
+          - ${public_keys:ataraday}
+          user: ${linux:system:user:ataraday}
+        eezhova:
+          enabled: true
+          public_keys:
+          - ${public_keys:eezhova}
+          user: ${linux:system:user:eezhova}
+        ichukhnakov:
+          enabled: true
+          public_keys:
+          - ${public_keys:ichukhnakov}
+          user: ${linux:system:user:ichukhnakov}
+        ivasilevskaya:
+          enabled: true
+          public_keys:
+          - ${public_keys:ivasilevskaya}
+          user: ${linux:system:user:ivasilevskaya}
+        obondarev:
+          enabled: true
+          public_keys:
+          - ${public_keys:obondarev}
+          user: ${linux:system:user:obondarev}
+  public_keys:
+    aignatov:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJFYznIFlCdxu5UXzThjYZlZfvXKCcDN0QxDEn7U7dNkK17SyzIJswQcxF7pTlvcuZ7XEskEqyXC8E6P5XyvBJO2xLGrFDJ4U3vf7MKsfwSFEj3NPUzV5bGTrKeKIHTL94L7lwMm1INE7lZzciiwvTxcKv//A+FgG8o1MDhefK56cBH4a9TSjEd+5ImcnCc5sf8B+csyWFPnksnv1zwu//T9aYXRITocdVzrfRHmEiZDpL3mNwpGT3O3XUTiMwdVpN2ImAqSF6XlQl0HlUkBT2idCIoXUR9lcGUx2Q+LSd62JgcVmQHCOmbUENj7NIDgWixgSJYLzsi//YNqJ9jccR aignatov@mirantis.com
+    ataraday:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9Tl4w3FVLfzTrm+P0ziWlSn74sbwycPUXY2eKdBtzLvvd8Vs7Gh8sEL9q8aeg9hY613LWjPvqgnaoosGJ52ckDnArYfpe3AG1Zamr9/Ncq7qC6U+W8lKwiuiS1QQIILm72+me7jzTanOfbpNl64+tIIcJXgPLtQK4dcpHWMXZQw8Fjp5PP7+k0P35yYNRtoHazxlE/lt/6XsQ+NnldRYB2TCtK3uU1ATHg5Sc7Qr1o+obfxDwWglasxfSd7fGqAZjszrm9q4pmKXTpKNlSqGCs7Hp4Hstr//GKLaXucyTtsb/uU40at6X3INGUU/u9txZkLwAGx8kb4XB6F5MwRH/ akamyshnikova@akamyshnikova
+    eezhova:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9WND1z5CWjYrcUmEoao3sR29iqgw+i/osdFeYetGZYCaKSLWHXgvVLf19oYnFSNrsjAhpL6krcMc9luN4Uj1/qoigGQcLnV5KQo8AnkvdCDvBBVg/Y3fbgYmcEx6yPC3bbVB9gsfr8yvgrz3vE3gWApvf9uR2dDljL+TsdrVlWzIFVjKi6PEFErKxExYlQa+BeTmiHVjyKr1l+zNOOZN56nH33G3YYa/vxDO5ejio84LcG0Akul+MI+jZohNsvD/Y9EPm9CB6mmWeqpptVkXP+2HlfjyTG9s+KHvM/wcsW71vT+FR5N0OJAhcjYHsXSKDucD3+VzFTyFjpptRKGTJ eezhova@tiresh.local
+    ichukhnakov:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIc4N1/KTRWKoWoM83hqRaSvk+tIX7mt8fWG4HKngB08PxXGBJElGuMvzEa3mYyKptwSYO/5wgRI/+cD+Sgbr2BGs9HJy23eYPRPwcKdcskandBjVNWrDd4op2s3wGOrwGg/P88JaGqhL8mwM/5UUK4P4gP7uoZdEK9ptHzy/OvBB0Jd6/qkzWv29k8x5ExgNehvfL8PZzcFWwajdv2y53nj1lO4Bw1i3gKVOl9DEe0JkLB8ryiJ4hIKmq7zgBcduPF8xOWUt2F7TA6/o9rXR9+NU6EnSYmOszqTHQ6P5itGogp57SGqoG1PZzXapQnZPwzDX4jMkxmdu1Ji+TJhXd
+    ivasilevskaya:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJk2ip+Rn73D4vt47pe/Hv42ylKJv6JIzeF0k3OflH+RyliVelvo05KMcozfsmmvOKhwgDokBj3KjQ10ewDwD7Fz5H3tosa8JFOs36cuHx9aHrsEmj1oIcIyThrIBwSZGFApqJqj27sLtReVLQJPlYR59RJGw61TogkA/QooOABi+KHzuwPFjAcA1SMfFT8LwiaNPkyUdRb5EQeKCOHniRAEPGNIwskA0sxz25qbB1EU2XBFjkxRE1b5GHfUYL+c2YhAwRWTJbD2JbbcHI6HpsmJutzkS6YIkEn1CK4JuA40OQTYFSEutCk2uPPR0G+77Fec2+vD/8H+ncPxPeDqNR ina@ina-ThinkPad-X240
+    obondarev:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDca1gqXe14l9uho3t4mZT52lXmSuUxKVOCcSO9Dy+BAmtaVK39+t7la081S5c0H+oTPIXFb32/kO37+qpEgwyOv1zimWIqcR56xrr42gW/QzVLyY64qVnQ9QFiXlvXXBW4YgBuT//SE8upOshLYnznKHOi4IkoKrAE37K34Cz/DGQzFV6sKQSmP6fjJzli0Nzu+YPdBSZW9VH1m7IKxliGoZcjdIkJ+L92+h/mPuN95Bitfe+aoexBQq3u4WjYVVsCE/9TrwLoGlr3zd7VAyVdADJf6phfIMHGDxn8W8125r9UWp4X/36yAIudVC7kHLyr0AHTfYqCVH10nEJvUwRz obondarev@Olegs-MacBook-Pro.local
diff --git a/openssh/server/team/stacklight.yml b/openssh/server/team/stacklight.yml
index 90799da..3eafce1 100644
--- a/openssh/server/team/stacklight.yml
+++ b/openssh/server/team/stacklight.yml
@@ -9,13 +9,6 @@
           full_name: Ales Komarek
           home: /home/newt
           email: mail@newt.cz
-        gthouvenin:
-          enabled: true
-          name: gthouvenin
-          sudo: true
-          full_name: Guillaume Thouvenin
-          home: /home/gthouvenin
-          email: gthouvenin@mirantis.com
         spasquier:
           enabled: true
           name: spasquier
@@ -76,11 +69,6 @@
           public_keys:
           - ${public_keys:newt}
           user: ${linux:system:user:newt}
-        gthouvenin:
-          enabled: true
-          public_keys:
-          - ${public_keys:gthouvenin}
-          user: ${linux:system:user:gthouvenin}
         spasquier:
           enabled: true
           public_keys:
@@ -119,8 +107,6 @@
   public_keys:
     newt:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3odU+3V2uDA2ptAFL9hrJRPNEEdAyztWOZFQ5Oyd9oerTGOU3p4xmrgWWjfKFKbYGhiiIUcYAol5PkTfKukGEkkjCHYA1t023soCaaAj85wCZCnw2zQNAziwxTYmAzTqgxiSvtZNMMrtJvFHRIRDzJ3M1lV0prWNWkMM1/3FAd4W49y6VT3fkMCo8uqG7CfGdgR2DgBCxf9KaNPfW5eDEPOgmE5lK8tVSEI6T+Cg7hbcTf4lFYnlFBnlQgp/0JstsM4Vbwb4B34LOpOsf2S8rrWk2xQMjwaMHXkc2s/E8iW3F5nVFuyEXYISFQIiAHw8dzC6CHgLcyHUVWwznKawZ newt@newt-dev1
-    gthouvenin:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/5rr0LPVsChG0hzpa39JNwX1JdDH/WJL1sFjAG05Y9XDRAri5CYRGWwDdxyN2MA2+ULVojzV5QeV541fnIU6gSpc6Yytm6Ug8DjQ3TwNUY+92GQv5tZj9i/yB8aGpujleVXMDPT5yPDwOnc/q4f/fQWgrXipatkj+lNqL5Z7Ifai0BgmZS1/31LGkGmC1rne6UwszPz6dkswfu6urfKNuQXilcXvYqORlV3U0XD2nLDjNivGVbIArkYGVsgLCGM57cCCF1g1q7QZCNFPzxr+uxMvY2fGgS9ysMkRTr29LtwKMOl8H3cof5alLCIWukpv5qs50NlVEkGu1zKsa9jUj guillaume@Lenovo-PC
     spasquier:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXBHKQaGUNB92DsnyvflmCbmuXnkiuNahZiue3hnyXqLA2q8jmQmzBbxReAJzexnVfJhrUCTw8IPJUpMUP27u3igvGdkhfctdUuxVf9yGJErtGNgHK/aGbeLCvUOmhw6X/xbf3IbyFL1gwxOJ2cmmjlSptYU9E1W2xFY+IMFWBhzO3vso5EABgPVli/UUMfeXUUd++lIZpoyYe2Hkri1QGNhzfbZcFjEO78+vNiLZrvjJEtkXWu7iZTYK6eE365CiFJzqFL7N6Ichb28qakcmVqR/foreuz3cOMqMGssKoOQk1213x8w4fE0yLwf9Ft8L7GMf+vXQvuNt0ZKBPWqn7 spasquier@mirantis.com
     scroiset:
diff --git a/prometheus/server/target/dns.yml b/prometheus/server/target/dns.yml
index b51f732..5919a91 100644
--- a/prometheus/server/target/dns.yml
+++ b/prometheus/server/target/dns.yml
@@ -5,11 +5,11 @@
         dns:
           - name: 'pushgateway'
             domain:
-            - 'tasks.prometheus_pushgateway'
+            - 'tasks.monitoring_pushgateway'
             type: A
             port: 9091
           - name: 'prometheus'
             domain:
-            - 'tasks.prometheus_server'
+            - 'tasks.monitoring_server'
             type: A
             port: 9090
diff --git a/prometheus/server/target/etcd.yml b/prometheus/server/target/etcd.yml
index ae75c64..3db134e 100644
--- a/prometheus/server/target/etcd.yml
+++ b/prometheus/server/target/etcd.yml
@@ -2,15 +2,11 @@
   prometheus:
     server:
       target:
-        etcd:
-          scheme: https
-          ssl_dir: /opt/prometheus/config
-          cert_name: prometheus-server.crt
-          key_name: prometheus-server.key
-          member:
-          - host: ${_param:cluster_node01_address}
-            port: ${_param:cluster_node01_port}
-          - host: ${_param:cluster_node02_address}
-            port: ${_param:cluster_node02_port}
-          - host: ${_param:cluster_node03_address}
-            port: ${_param:cluster_node03_port}
+        static:
+          etcd:
+            scheme: https
+            tls_config:
+              skip_verify: true
+              ssl_dir: /opt/prometheus/config
+              cert_name: prometheus-server.crt
+              key_name: prometheus-server.key
diff --git a/reclass/storage/system/openstack_benchmark_single.yml b/reclass/storage/system/openstack_benchmark_single.yml
index 4c85d29..a676cc3 100644
--- a/reclass/storage/system/openstack_benchmark_single.yml
+++ b/reclass/storage/system/openstack_benchmark_single.yml
@@ -4,7 +4,7 @@
   reclass:
     storage:
       node:
-        opencontrail_benchmark_node01:
+        openstack_benchmark_node01:
           name: ${_param:openstack_benchmark_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
diff --git a/reclass/storage/system/rsyslog_single.yml b/reclass/storage/system/rsyslog_single.yml
new file mode 100644
index 0000000..a3eefac
--- /dev/null
+++ b/reclass/storage/system/rsyslog_single.yml
@@ -0,0 +1,15 @@
+parameters:
+  _param:
+    rsyslog_node01_hostname: rsl01
+  reclass:
+    storage:
+      node:
+        rsyslog_node01:
+          name: ${_param:rsyslog_node01_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.infra.rsyslog
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:rsyslog_node01_address}
diff --git a/salt/control/cluster/rsyslog_single.yml b/salt/control/cluster/rsyslog_single.yml
new file mode 100644
index 0000000..4e53747
--- /dev/null
+++ b/salt/control/cluster/rsyslog_single.yml
@@ -0,0 +1,18 @@
+parameters:
+  salt:
+    control:
+      size:
+        infra.rsyslog:
+          cpu: 8
+          ram: 8192
+          disk_profile: xxlarge
+          net_profile: default
+      cluster:
+        internal:
+          domain: ${_param:cluster_domain}
+          engine: virt
+          node:
+            rsl01:
+              provider: kvm02.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              size: infra.rsyslog
diff --git a/salt/master/formula/git/foundation.yml b/salt/master/formula/git/foundation.yml
index 92cb6f6..eaaeea9 100644
--- a/salt/master/formula/git/foundation.yml
+++ b/salt/master/formula/git/foundation.yml
@@ -31,10 +31,22 @@
                   enabled: true
                 jenkins_job.py:
                   enabled: true
+                jenkins_lib.py:
+                  enabled: true
                 jenkins_node.py:
                   enabled: true
+                jenkins_plugin.py:
+                  enabled: true
+                jenkins_security.py:
+                  enabled: true
+                jenkins_slack.py:
+                  enabled: true
+                jenkins_smtp.py:
+                  enabled: true
                 jenkins_user.py:
                   enabled: true
+                jenkins_view.py:
+                  enabled: true
               source: git
               address: '${_param:salt_master_environment_repository}/salt-formula-jenkins.git'
               revision: ${_param:salt_master_environment_revision}
diff --git a/salt/master/formula/git/oss.yml b/salt/master/formula/git/oss.yml
index 3c555ee..5c9577a 100644
--- a/salt/master/formula/git/oss.yml
+++ b/salt/master/formula/git/oss.yml
@@ -1,6 +1,6 @@
 parameters:
   _param:
-    salt_master_oss_repository: https://gerrit.mcp.mirantis.net/oss
+    salt_master_oss_repository: https://gerrit.mcp.mirantis.net/salt-formulas
     salt_master_oss_revision: master
   salt:
     master:
@@ -12,5 +12,5 @@
                 devops_utils.py:
                   enabled: true
               source: git
-              address: '${_param:salt_master_oss_repository}/salt-formula-devops-portal.git'
+              address: '${_param:salt_master_oss_repository}/devops-portal.git'
               revision: ${_param:salt_master_oss_revision}
diff --git a/salt/minion/cert/k8s_server.yml b/salt/minion/cert/k8s_server.yml
index e340b52..603d369 100644
--- a/salt/minion/cert/k8s_server.yml
+++ b/salt/minion/cert/k8s_server.yml
@@ -10,4 +10,4 @@
           cert_file: /srv/salt/env/${_param:salt_master_base_environment}/_certs/kubernetes/kubernetes-server.crt
           all_file: /srv/salt/env/${_param:salt_master_base_environment}/_certs/kubernetes/kubernetes-server.pem
           signing_policy: cert_server
-          alternative_names: IP:${_param:cluster_vip_address},IP:${_param:cluster_node01_address},IP:${_param:cluster_node02_address},IP:${_param:cluster_node03_address},IP:${_param:kubernetes_internal_api_address},DNS:kubernetes.default
+          alternative_names: IP:${_param:cluster_vip_address},IP:${_param:cluster_node01_address},IP:${_param:cluster_node02_address},IP:${_param:cluster_node03_address},IP:${_param:kubernetes_internal_api_address},DNS:kubernetes.default,DNS:kubernetes.default.svc
diff --git a/telegraf/agent/init.yml b/telegraf/agent/init.yml
index 57a1f61..1faea32 100644
--- a/telegraf/agent/init.yml
+++ b/telegraf/agent/init.yml
@@ -1,8 +1,6 @@
 paramaters:
   telegraf:
     agent:
-      input:
-        diskio:
       output:
         prometheus_client:
           bind: