Merge "Remove hardcoded iptables rules form aptly.server.single."
diff --git a/.releasenotes/notes/prometheus-2.0-2a7b3bc4ad76e118.yaml b/.releasenotes/notes/prometheus-2.0-2a7b3bc4ad76e118.yaml
index af017f5..bb62760 100644
--- a/.releasenotes/notes/prometheus-2.0-2a7b3bc4ad76e118.yaml
+++ b/.releasenotes/notes/prometheus-2.0-2a7b3bc4ad76e118.yaml
@@ -25,10 +25,10 @@
     .. code-block:: yaml
 
        _param:
-         docker_image_alertmanager: docker-prod-virtual.docker.mirantis.net/openstack-docker/alertmanager:20171222124606
-         docker_image_pushgateway: docker-prod-virtual.docker.mirantis.net/openstack-docker/pushgateway:20171222124606
-         docker_image_prometheus: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus:20171222124606
-         docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:20171222124606
+         docker_image_alertmanager: docker-prod-local.artifactory.mirantis.com/openstack-docker/alertmanager:20171222124606
+         docker_image_pushgateway: docker-prod-local.artifactory.mirantis.com/openstack-docker/pushgateway:20171222124606
+         docker_image_prometheus: docker-prod-local.artifactory.mirantis.com/openstack-docker/prometheus:20171222124606
+         docker_image_remote_storage_adapter: docker-prod-local.artifactory.mirantis.com/openstack-docker/remote_storage_adapter:20171222124606
        docker:
          client:
            stack:
diff --git a/aodh/server/cluster.yml b/aodh/server/cluster.yml
index 2ff4ea9..91ebe12 100644
--- a/aodh/server/cluster.yml
+++ b/aodh/server/cluster.yml
@@ -33,6 +33,7 @@
         tenant: service
         user: aodh
         password: ${_param:keystone_aodh_password}
+        region: ${_param:openstack_region}
       message_queue:
         engine: rabbitmq
         port: 5672
diff --git a/aodh/server/single.yml b/aodh/server/single.yml
index df4be81..6eec70e 100644
--- a/aodh/server/single.yml
+++ b/aodh/server/single.yml
@@ -5,4 +5,7 @@
     openstack_event_alarm_topic: alarm.all
   aodh:
     server:
+      region: ${_param:openstack_region}
       event_alarm_topic: ${_param:openstack_event_alarm_topic}
+      identity:
+        region: ${_param:openstack_region}
diff --git a/auditd/server/ciscat.yml b/auditd/server/ciscat.yml
new file mode 100644
index 0000000..dc4baa7
--- /dev/null
+++ b/auditd/server/ciscat.yml
@@ -0,0 +1,3 @@
+classes:
+- service.auditd.server
+- service.auditd.rules.ciscat
diff --git a/ceilometer/agent/cluster.yml b/ceilometer/agent/cluster.yml
index 135dbe8..820249b 100644
--- a/ceilometer/agent/cluster.yml
+++ b/ceilometer/agent/cluster.yml
@@ -14,6 +14,7 @@
         tenant: service
         user: ceilometer
         password: ${_param:keystone_ceilometer_password}
+        region: ${_param:openstack_region}
       message_queue:
         engine: rabbitmq
         members:
diff --git a/ceilometer/server/backend/gnocchi.yml b/ceilometer/server/backend/gnocchi.yml
new file mode 100644
index 0000000..e93eeaa
--- /dev/null
+++ b/ceilometer/server/backend/gnocchi.yml
@@ -0,0 +1,23 @@
+classes:
+- service.ceilometer.server.publisher.panko
+parameters:
+  _param:
+    openstack_event_alarm_topic: alarm.all
+    ceilometer_create_gnocchi_resources: false
+    ceilometer_gnocchi_filter_project: service
+  # gnocchi and panko are default backends for Ceilometer since Pike
+  # they are incompatible with any legacy database publisher backends
+  ceilometer:
+    server:
+      publisher:
+        gnocchi:
+          enabled: true
+          url: "gnocchi://?filter_project=${_param:ceilometer_gnocchi_filter_project}"
+          publish_metric: true
+          # filter_project is deprecated since queens
+          filter_project: ${_param:ceilometer_gnocchi_filter_project}
+          create_resources: ${_param:ceilometer_create_gnocchi_resources}
+        event_alarm_notifier:
+          enabled: true
+          url: "notifier://?topic=${_param:openstack_event_alarm_topic}"
+          publish_event: true
diff --git a/ceilometer/server/cluster.yml b/ceilometer/server/cluster.yml
index 6f8d3f8..d9d78e6 100644
--- a/ceilometer/server/cluster.yml
+++ b/ceilometer/server/cluster.yml
@@ -24,6 +24,7 @@
         tenant: service
         user: ceilometer
         password: ${_param:keystone_ceilometer_password}
+        region: ${_param:openstack_region}
       message_queue:
         engine: rabbitmq
         members:
diff --git a/cinder/control/single.yml b/cinder/control/single.yml
index 66aea6d..d442693 100644
--- a/cinder/control/single.yml
+++ b/cinder/control/single.yml
@@ -19,4 +19,5 @@
         host: ${_param:single_address}
       identity:
         protocol: ${_param:internal_protocol}
+        region: ${_param:openstack_region}
 
diff --git a/cinder/volume/local.yml b/cinder/volume/local.yml
index 794a33e..d03d6f7 100644
--- a/cinder/volume/local.yml
+++ b/cinder/volume/local.yml
@@ -12,3 +12,4 @@
         host: ${_param:single_address}
       identity:
         host: ${_param:single_address}
+        region: ${_param:openstack_region}
diff --git a/cinder/volume/single.yml b/cinder/volume/single.yml
index b959d32..f66a190 100644
--- a/cinder/volume/single.yml
+++ b/cinder/volume/single.yml
@@ -25,3 +25,4 @@
       identity:
         host: ${_param:openstack_control_address}
         protocol: ${_param:cluster_internal_protocol}
+        region: ${_param:openstack_region}
diff --git a/debmirror/mirror_mirantis_com/saltstack/salt_2016_3.yml b/debmirror/mirror_mirantis_com/saltstack/salt_2016_3.yml
new file mode 100644
index 0000000..cec7c95
--- /dev/null
+++ b/debmirror/mirror_mirantis_com/saltstack/salt_2016_3.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    apt_mk_version: 'stable'
+    mirror_mirantis_com_saltstack_2016_3_xenial_force: False
+    debmirror_mirrors_base_target_dir: "/srv/volumes/aptly/public/${_param:apt_mk_version}/"
+  debmirror:
+    client:
+      enabled: true
+      mirrors:
+        mirror_mirantis_com_saltstack_2016_3_xenial:
+          force: ${_param:mirror_mirantis_com_saltstack_2016_3_xenial_force}
+          lock_target: True
+          extra_flags: [ '--verbose', '--progress', '--nosource', '--no-check-gpg', '--rsync-extra=none' ]
+          method: "rsync"
+          arch: [ 'amd64' ]
+          mirror_host: "mirror.mirantis.com"
+          mirror_root: ":mirror/${_param:apt_mk_version}/saltstack-2016.3/xenial/"
+          target_dir: "${_param:debmirror_mirrors_base_target_dir}/saltstack-2016.3/xenial/"
+          log_file: "/var/log/debmirror/mirror_mirantis_com_saltstack_2016_3_xenial.log"
+          dist: [ xenial ]
+          section: [ main ]
diff --git a/docker/swarm/stack/monitoring/gainsight.yml b/docker/swarm/stack/monitoring/gainsight.yml
index 4254636..11344b7 100644
--- a/docker/swarm/stack/monitoring/gainsight.yml
+++ b/docker/swarm/stack/monitoring/gainsight.yml
@@ -2,6 +2,7 @@
 - system.prometheus.gainsight.container
 parameters:
   _param:
+    gainsight_enabled: 'true'
     gainsight_csv_upload_url: 'http://localhost:9999'
     gainsight_account_id: 'default'
     gainsight_environment_id: 'default'
@@ -11,6 +12,7 @@
     gainsight_login: 'default'
     gainsight_prometheus_url: "http://${_param:stacklight_monitor_address}:15010"
     gainsight_config_directory: '/srv/gainsight'
+    gainsight_crontab_directory: '/etc/cron.d'
     gainsight_config_path: "${_param:gainsight_config_directory}/config.ini"
     docker_image_prometheus_gainsight: 'docker-prod-local.artifactory.mirantis.com/openstack-docker/gainsight:nightly'
   docker:
@@ -37,6 +39,7 @@
               image: ${_param:docker_image_prometheus_gainsight}
               volumes:
                 - ${prometheus:gainsight:dir:config}:${_param:gainsight_config_directory}
+                - ${prometheus:gainsight:dir:crontab}:${_param:gainsight_crontab_directory}
               environment:
                 CSV_UPLOAD_URL: "${_param:gainsight_csv_upload_url}"
                 ACCOUNT_ID: "${_param:gainsight_account_id}"
@@ -47,3 +50,4 @@
                 LOGIN: "${_param:gainsight_login}"
                 PROMETHEUS_URL: "${_param:gainsight_prometheus_url}"
                 CONFIG_PATH: "${_param:gainsight_config_path}"
+                ENABLED: "${_param:gainsight_enabled}"
diff --git a/docker/swarm/stack/monitoring/pushgateway.yml b/docker/swarm/stack/monitoring/pushgateway.yml
index af108a6..461eb0b 100644
--- a/docker/swarm/stack/monitoring/pushgateway.yml
+++ b/docker/swarm/stack/monitoring/pushgateway.yml
@@ -23,8 +23,11 @@
               environment:
                 PUSHGATEWAY_BIND_PORT: ${prometheus:pushgateway:bind:port}
                 PUSHGATEWAY_BIND_ADDRESS: ${prometheus:pushgateway:bind:address}
+                PUSHGATEWAY_DATA_DIR: ${_param:prometheus_pushgateway_data_directory}
               labels:
                 com.mirantis.monitoring: "pushgateway"
               image: ${_param:docker_image_pushgateway}
               ports:
                 - 15012:${prometheus:pushgateway:bind:port}
+              volumes:
+                - ${prometheus:pushgateway:dir:data}:${_param:prometheus_pushgateway_data_directory}
diff --git a/glance/control/single.yml b/glance/control/single.yml
index b285d38..5580b66 100644
--- a/glance/control/single.yml
+++ b/glance/control/single.yml
@@ -11,4 +11,6 @@
     server:
       database:
         host: ${_param:single_address}
+      identity:
+        region: ${_param:openstack_region}
       show_multiple_locations: True
diff --git a/gnocchi/client/init.yml b/gnocchi/client/init.yml
new file mode 100644
index 0000000..2fcea87
--- /dev/null
+++ b/gnocchi/client/init.yml
@@ -0,0 +1,2 @@
+classes:
+- service.gnocchi.client
diff --git a/gnocchi/client/v1/archive_policy/default.yml b/gnocchi/client/v1/archive_policy/default.yml
new file mode 100644
index 0000000..82de812
--- /dev/null
+++ b/gnocchi/client/v1/archive_policy/default.yml
@@ -0,0 +1,27 @@
+parameters:
+  _param:
+    gnocchi_default_policy_granularity_1: '0:01:00'
+    gnocchi_default_policy_points_1: 10080
+    gnocchi_default_policy_timespan_1: '7 days'
+    gnocchi_default_policy_granularity_2: '1:00:00'
+    gnocchi_default_policy_points_2: 8760
+    gnocchi_default_policy_timespan_2: '365 days'
+    gnocchi_default_policy_rule_metric_pattern: '"*"'
+  gnocchi:
+    client:
+      resources:
+        v1:
+          enabled: true
+          cloud_name: 'admin_identity'
+          archive_policies:
+            default:
+              definition:
+                - granularity: "${_param:gnocchi_default_policy_granularity_1}"
+                  points: "${_param:gnocchi_default_policy_points_1}"
+                  timespan: "${_param:gnocchi_default_policy_timespan_1}"
+                - granularity: "${_param:gnocchi_default_policy_granularity_2}"
+                  points: "${_param:gnocchi_default_policy_points_2}"
+                  timespan: "${_param:gnocchi_default_policy_timespan_2}"
+              rules:
+                default:
+                  metric_pattern: "${_param:gnocchi_default_policy_rule_metric_pattern}"
diff --git a/gnocchi/server/cluster.yml b/gnocchi/server/cluster.yml
index 062b60e..1d6e2c2 100644
--- a/gnocchi/server/cluster.yml
+++ b/gnocchi/server/cluster.yml
@@ -14,6 +14,7 @@
       enable_proxy_headers_parsing: true
       identity:
         host: ${_param:openstack_control_address}
+        region: ${_param:openstack_region}
       cache:
         engine: memcached
         members:
diff --git a/gnocchi/server/single.yml b/gnocchi/server/single.yml
index 035491e..32555cb 100644
--- a/gnocchi/server/single.yml
+++ b/gnocchi/server/single.yml
@@ -1,2 +1,7 @@
 classes:
 - service.gnocchi.server.single
+parameters:
+  gnocchi:
+    server:
+      identity:
+        region: ${_param:openstack_region}
\ No newline at end of file
diff --git a/grafana/client/datasource/prometheus.yml b/grafana/client/datasource/prometheus.yml
index 681b9df..22d5728 100644
--- a/grafana/client/datasource/prometheus.yml
+++ b/grafana/client/datasource/prometheus.yml
@@ -12,4 +12,3 @@
           host: ${_param:grafana_prometheus_address}
           port: ${_param:grafana_prometheus_port}
           is_default: ${_param:grafana_prometheus_is_default}
-
diff --git a/haproxy/proxy/listen/opencontrail/analytics.yml b/haproxy/proxy/listen/opencontrail/analytics.yml
index fd20277..14890ca 100644
--- a/haproxy/proxy/listen/opencontrail/analytics.yml
+++ b/haproxy/proxy/listen/opencontrail/analytics.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    opencontrail_stats_password: password
   haproxy:
     proxy:
       listen:
diff --git a/haproxy/proxy/listen/opencontrail/control.yml b/haproxy/proxy/listen/opencontrail/control.yml
index c389682..490d100 100644
--- a/haproxy/proxy/listen/opencontrail/control.yml
+++ b/haproxy/proxy/listen/opencontrail/control.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    opencontrail_stats_password: password
   haproxy:
     proxy:
       listen:
diff --git a/heat/server/single.yml b/heat/server/single.yml
index cd548bf..0c83206 100644
--- a/heat/server/single.yml
+++ b/heat/server/single.yml
@@ -9,6 +9,7 @@
           version: latest
   heat:
     server:
+      region: ${_param:openstack_region}
       stack_domain_admin:
         name: heat_domain_admin
         password: ${_param:heat_domain_admin_password}
diff --git a/jenkins/client/approved_scripts.yml b/jenkins/client/approved_scripts.yml
index 2b2c6a7..65db576 100644
--- a/jenkins/client/approved_scripts.yml
+++ b/jenkins/client/approved_scripts.yml
@@ -155,4 +155,5 @@
         - method hudson.model.Job getProperty java.lang.Class
         - method hudson.model.ParametersDefinitionProperty getParameterDefinitions
         - method hudson.model.ParameterDefinition getName
-        - hudson.model.StringParameterDefinition getDefaultValue
+        - method hudson.model.StringParameterDefinition getDefaultValue
+        - method java.util.Collection toArray
diff --git a/jenkins/client/init.yml b/jenkins/client/init.yml
index 80724b1..633288c 100644
--- a/jenkins/client/init.yml
+++ b/jenkins/client/init.yml
@@ -51,6 +51,7 @@
         performance: {}
         permissive-script-security: {}
         pipeline-utility-steps: {}
+        plot: {}
         prometheus: {}
         rebuild: {}
         simple-theme-plugin: {}
diff --git a/jenkins/client/job/deploy/lab/deploy.yml b/jenkins/client/job/deploy/lab/deploy.yml
index 879d7c9..a1df125 100644
--- a/jenkins/client/job/deploy/lab/deploy.yml
+++ b/jenkins/client/job/deploy/lab/deploy.yml
@@ -90,6 +90,10 @@
                 default: ""
 
               # salt
+              EXTRA_TARGET:
+                type: string
+                default: ""
+                description: "Salt extra target for edge clouds deployment"
               SALT_MASTER_CREDENTIALS:
                 type: string
                 default: "salt-qa-credentials"
@@ -100,6 +104,10 @@
                 type: text
                 default: ""
                 description: "YAML with overrides for Salt deployment"
+              SALT_VERSION:
+                type: text
+                default: ""
+                description: "Version of Salt which is going to be installed i.e. 'stable 2016.3' or 'stable 2017.7' etc."
               BOOTSTRAP_EXTRA_REPO_PARAMS:
                 type: string
                 default: ""
diff --git a/jenkins/client/job/deploy/lab/mom_deploy.yml b/jenkins/client/job/deploy/lab/mom_deploy.yml
new file mode 100644
index 0000000..8ae8f53
--- /dev/null
+++ b/jenkins/client/job/deploy/lab/mom_deploy.yml
@@ -0,0 +1,126 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        deploy-virtual-edge-mom:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Deploy - edge MoM"
+          discard:
+            build:
+              keep_num: 50
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            branch: "${_param:jenkins_pipelines_branch}"
+            credentials: "gerrit"
+            script: deploy-virtual-edge-mom.groovy
+          param:
+            # general parameters
+            ASK_ON_ERROR:
+              type: boolean
+              default: 'false'
+            FORMULA_PKG_REVISION:
+              type: string
+              default: ""
+              description: "Formulas revision to install on Salt Master bootstrap stage"
+            # heat parameters
+            HEAT_STACK_ENVIRONMENT:
+              type: string
+              default: "devcloud"
+            HEAT_STACK_PUBLIC_NET:
+              type: string
+              default: "public"
+            HEAT_STACK_ZONE:
+              type: string
+              default: "mcp-oscore"
+            OPENSTACK_API_CLIENT:
+              type: string
+              default: ""
+            OPENSTACK_API_CREDENTIALS:
+              type: string
+              default: "openstack-devcloud-credentials"
+            OPENSTACK_API_PROJECT:
+              type: string
+              default: "mcp-oscore"
+            OPENSTACK_API_PROJECT_DOMAIN:
+              type: string
+              default: "default"
+            OPENSTACK_API_PROJECT_ID:
+              type: string
+              default: ""
+            OPENSTACK_API_URL:
+              type: string
+              default: "https://cloud-cz.bud.mirantis.net:5000"
+            OPENSTACK_API_USER_DOMAIN:
+              type: string
+              default: "default"
+            OPENSTACK_API_VERSION:
+              type: string
+              default: "3"
+            OPENSTACK_USER_DOMAIN:
+              type: string
+              default: "default"
+            # salt
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt-qa-credentials"
+            SALT_MASTER_URL:
+              type: string
+              default: ""
+            SALT_OVERRIDES:
+              type: text
+              default: ""
+            STACK_CLEANUP_JOB:
+              type: string
+              default: "deploy-stack-cleanup"
+            STACK_DELETE:
+              type: boolean
+              default: 'false'
+              description: "Don't enable it if you need to use the lab after"
+            STACK_INSTALL:
+              type: string
+              default: "core"
+            # deployments
+            STACK_CLUSTER_NAME:
+              type: string
+              default: "virtual-mcp11-aio"
+              description: "Cluster name to use from reclass"
+            STACK_RECLASS_ADDRESS:
+              type: string
+              default: "https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-aio"
+            STACK_RECLASS_BRANCH:
+              type: string
+              default: "stable/pike"
+            STACK_TEMPLATE:
+              type: string
+              default: "virtual_edge_mom"
+            STACK_TEMPLATE_BRANCH:
+              type: string
+              default: "master"
+            STACK_TEMPLATE_CREDENTIALS:
+              type: string
+              default: "gerrit"
+            STACK_TEMPLATE_URL:
+              type: string
+              default: "${_param:jenkins_gerrit_url}/mk/heat-templates"
+            STACK_TEST:
+              type: string
+              default: ""
+            STACK_TYPE:
+              type: string
+              default: "physical"
+            STATIC_MGMT_NETWORK:
+              type: boolean
+              default: 'false'
+              description: "Check if model contains static IP address definitions for all nodes"
+            TEST_DOCKER_INSTALL:
+              type: boolean
+              description: "Install docker on the target if true"
+              default: "false"
+             # edge deploy
+            EDGE_DEPLOY_SCHEMAS:
+              type: string
+              description: "JSON schemas of edge cloud environments"
+              default: ""
+
diff --git a/jenkins/client/job/deploy/update/cloud_update.yml b/jenkins/client/job/deploy/update/cloud_update.yml
index 3034ea5..d434850 100644
--- a/jenkins/client/job/deploy/update/cloud_update.yml
+++ b/jenkins/client/job/deploy/update/cloud_update.yml
@@ -156,3 +156,7 @@
               type: boolean
               default: 'false'
               description: "Restore Cassandra and Zookeeper DBs for OpenContrail"
+            RUN_CVP_TESTS:
+              type: boolean
+              default: 'false'
+              description: "Run cloud validation pipelines before and after update"
diff --git a/jenkins/client/job/deploy/update/init.yml b/jenkins/client/job/deploy/update/init.yml
index fb1f5cf..35a2912 100644
--- a/jenkins/client/job/deploy/update/init.yml
+++ b/jenkins/client/job/deploy/update/init.yml
@@ -15,3 +15,4 @@
   - system.jenkins.client.job.deploy.update.restore_zookeeper
   - system.jenkins.client.job.deploy.update.virt_snapshot
   - system.jenkins.client.job.deploy.update.cloud_update
+  - system.jenkins.client.job.deploy.update.kubernetes_update
diff --git a/jenkins/client/job/deploy/update/kubernetes_update.yml b/jenkins/client/job/deploy/update/kubernetes_update.yml
new file mode 100644
index 0000000..9fb23f9
--- /dev/null
+++ b/jenkins/client/job/deploy/update/kubernetes_update.yml
@@ -0,0 +1,51 @@
+#
+# Jobs to update cloud packages on given Salt master environment
+#
+parameters:
+  _param:
+    jenkins_salt_api_url: "http://${_param:salt_master_host}:6969"
+    kubernetes_hyperkube_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes
+  jenkins:
+    client:
+      job:
+        deploy-k8s-upgrade:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Deploy - update kubernetes cluster"
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            branch: "${_param:jenkins_pipelines_branch}"
+            credentials: "gerrit"
+            script: k8s-upgrade-pipeline.groovy
+          param:
+            KUBERNETES_HYPERKUBE_IMAGE:
+              type: string
+              default: "${_param:kubernetes_hyperkube_repo}/hyperkube-amd64:v1.10.4-4"
+              description: "Versioned image to update control plane from. Should be null if update rolling via reclass-system level"
+            KUBERNETES_PAUSE_IMAGE:
+              type: string
+              default: "${_param:kubernetes_hyperkube_repo}/pause-amd64:v1.10.4-4"
+              description: "Versioned pause image to use in deployments. Should be null if update rolling via reclass-system level"
+            SALT_MASTER_URL:
+              type: string
+              default: "${_param:jenkins_salt_api_url}"
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt-qa-credentials"
+            PER_NODE:
+              type: boolean
+              default: 'true'
+              description: "Target nodes will be managed one by one"
+            TARGET_UPDATES:
+              type: string
+              default: "ctl,cmp"
+              description: "Comma separated list of nodes to update (Valid values are ctl,cmp)"
+            CTL_TARGET:
+              type: string
+              default: "I@kubernetes:master"
+              description: "Salt targeted kubernetes CTL nodes (ex. I@kubernetes:master). Kubernetes control plane"
+            CMP_TARGET:
+              type: string
+              default: "cmp* and I@kubernetes:pool"
+              description: "Salt targeted compute nodes (ex. 'cmp* and I@kubernetes:pool') Kubernetes computes"
diff --git a/jenkins/client/job/deploy/update/upgrade.yml b/jenkins/client/job/deploy/update/upgrade.yml
index 7e94c10..6ffc9c1 100644
--- a/jenkins/client/job/deploy/update/upgrade.yml
+++ b/jenkins/client/job/deploy/update/upgrade.yml
@@ -44,3 +44,7 @@
               type: boolean
               default: 'false'
               description: "Set to true if vms should not be recreated"
+            INTERACTIVE:
+              type: boolean
+              default: 'true'
+              description: "Ask interactive questions during pipeline run (bool)"
diff --git a/jenkins/client/job/deploy/update/upgrade_compute.yml b/jenkins/client/job/deploy/update/upgrade_compute.yml
index 90bfc76..3986997 100644
--- a/jenkins/client/job/deploy/update/upgrade_compute.yml
+++ b/jenkins/client/job/deploy/update/upgrade_compute.yml
@@ -35,3 +35,7 @@
               type: string
               default: '1'
               description: Number of selected nodes to live apply upgrade.
+            INTERACTIVE:
+              type: boolean
+              default: 'true'
+              description: "Ask interactive questions during pipeline run (bool)"
diff --git a/jenkins/client/job/deploy/update/upgrade_mcp_release.yml b/jenkins/client/job/deploy/update/upgrade_mcp_release.yml
index 9f18006..c9b846f 100644
--- a/jenkins/client/job/deploy/update/upgrade_mcp_release.yml
+++ b/jenkins/client/job/deploy/update/upgrade_mcp_release.yml
@@ -29,11 +29,15 @@
               default: ""
             UPDATE_CLUSTER_MODEL:
               type: boolean
-              default: 'false'
+              default: 'true'
               description: "Replace `apt_mk_version` parameter in cluster level Reclass model."
+            UPGRADE_SALTSTACK:
+              type: boolean
+              default: 'true'
+              description: "Upgrade SaltStack packages."
             UPDATE_PIPELINES:
               type: boolean
-              default: 'false'
+              default: 'true'
               description: "Mirror pipelines from upstream/local mirror to Gerrit."
             UPDATE_LOCAL_REPOS:
               type: boolean
diff --git a/jenkins/client/job/deploy/update/upgrade_ovs_gateway.yml b/jenkins/client/job/deploy/update/upgrade_ovs_gateway.yml
index 335492d..e7cdb12 100644
--- a/jenkins/client/job/deploy/update/upgrade_ovs_gateway.yml
+++ b/jenkins/client/job/deploy/update/upgrade_ovs_gateway.yml
@@ -35,3 +35,7 @@
               type: string
               default: '1'
               description: Number of selected nodes to live apply upgrade.
+            INTERACTIVE:
+              type: boolean
+              default: 'true'
+              description: "Ask interactive questions during pipeline run (bool)"
diff --git a/jenkins/client/job/opencontrail/git-mirrors/downstream.yml b/jenkins/client/job/opencontrail/git-mirrors/downstream.yml
index 306866b..891c244 100644
--- a/jenkins/client/job/opencontrail/git-mirrors/downstream.yml
+++ b/jenkins/client/job/opencontrail/git-mirrors/downstream.yml
@@ -47,6 +47,12 @@
               branches: ${_param:contrail_kubernetes_branches}
             - name: contrail-dpdk
               branches: ${_param:contrail_dpdk_branches}
+            - name: contrail-common
+              branches: ${_param:oc5_branches}
+            - name: contrail-analytics
+              branches: ${_param:oc5_branches}
+            - name: contrail-api-client
+              branches: ${_param:oc5_branches}
           template:
             discard:
               build:
diff --git a/jenkins/client/job/opencontrail/git-mirrors/upstream.yml b/jenkins/client/job/opencontrail/git-mirrors/upstream.yml
index 0f60c76..d36d725 100644
--- a/jenkins/client/job/opencontrail/git-mirrors/upstream.yml
+++ b/jenkins/client/job/opencontrail/git-mirrors/upstream.yml
@@ -48,6 +48,12 @@
               branches: ${_param:contrail_dpdk_branches}
             - name: contrail-third-party-cache-fixup
               branches: ${_param:contrail_third_party_cache_fixup_branches}
+            - name: contrail-common
+              branches: ${_param:oc5_branches}
+            - name: contrail-analytics
+              branches: ${_param:oc5_branches}
+            - name: contrail-api-client
+              branches: ${_param:oc5_branches}
           template:
             discard:
               build:
diff --git a/jenkins/client/job/opencontrail/init.yml b/jenkins/client/job/opencontrail/init.yml
index 997d885..2072808 100644
--- a/jenkins/client/job/opencontrail/init.yml
+++ b/jenkins/client/job/opencontrail/init.yml
@@ -4,6 +4,8 @@
 parameters:
   _param:
     contrail_branches: "R3.0.2.x,R3.0.3.x,R3.1,R3.1.1.x,R3.2,R3.2.3.x,R4.0,R4.1,R5.0,master"
+    # from OC50 there are new repos without older branches
+    oc5_branches: "R5.0,master"
     # generateDS does not have 5.0 branch
     contrail_branches_generateDS: "R3.0.2.x,R3.0.3.x,R3.1,R3.1.1.x,R3.2,R3.2.3.x,R4.0,R4.1,master"
     contrail_kubernetes_branches: "master,release-1.2"
diff --git a/jenkins/client/job/oscore/qa.yml b/jenkins/client/job/oscore/qa.yml
index 6d54082..13d0e76 100644
--- a/jenkins/client/job/oscore/qa.yml
+++ b/jenkins/client/job/oscore/qa.yml
@@ -25,6 +25,7 @@
                   mcp/{{oscore-qa-project}}:
                     branches:
                       - master
+                      - pike
                 event:
                   change:
                     - merged
@@ -43,7 +44,7 @@
                 default: "mirantis/oscore/{{oscore-qa-project}}"
               IMAGE_TAG:
                 type: string
-                default: "latest"
+                default: ""
               DOCKER_REGISTRY:
                 type: string
                 default: "docker-prod-local.docker.mirantis.net"
diff --git a/jenkins/client/job/oscore/test_upgrades.yml b/jenkins/client/job/oscore/test_upgrades.yml
index c5c89f1..27619e3 100644
--- a/jenkins/client/job/oscore/test_upgrades.yml
+++ b/jenkins/client/job/oscore/test_upgrades.yml
@@ -36,7 +36,7 @@
               TEST_SCHEME:
                 type: string
                 description: "Yaml based scheme to be applied in testing"
-                default: '{"old": {"context_file_name": "openstack-ovs-core-{{openstack_version_old}}","extra_context": {"default_context": {"openstack_version": "{{openstack_version_old}}"}}, "new": {"extra_context": {"default_context": {"openstack_version": "{{openstack_version_new}}"}}}}}'
+                default: '{"old": {"context_file_name": "openstack-ovs-core-{{openstack_version_old}}","extra_context": {"default_context": {"openstack_version": "{{openstack_version_old}}"}}}, "new": {"extra_context": {"default_context": {"openstack_version": "{{openstack_version_new}}"}}}}'
       job:
         oscore-test-adjust-cluster-model:
           display_name: oscore-test-adjust-cluster-model
@@ -59,7 +59,7 @@
             SALT_MASTER_CREDENTIALS:
               type: string
               description: "ID of salt API credentials."
-              default: "salt"
+              default: "salt-qa-credentials"
             SALT_MASTER_URL:
               type: string
               description: 'Url for salt API.'
diff --git a/jenkins/client/job/oscore/tests.yml b/jenkins/client/job/oscore/tests.yml
index 6e4b65f..af33cc1 100644
--- a/jenkins/client/job/oscore/tests.yml
+++ b/jenkins/client/job/oscore/tests.yml
@@ -708,7 +708,7 @@
             trigger:
               gerrit:
                 project:
-                  "^salt-formulas/(nova|cinder|glance|keystone|horizon|neutron|designate|heat|ironic|barbican|aodh|ceilometer|gnocchi|panko|manila|salt|linux|reclass|galera|memcached|rabbitmq|bind|apache|runtest|oslo-templates)$":
+                  "^salt-formulas/(nova|cinder|glance|keystone|horizon|neutron|designate|heat|ironic|barbican|aodh|ceilometer|gnocchi|panko|manila|salt|linux|reclass|galera|memcached|rabbitmq|bind|apache|runtest|oslo-templates|auditd)$":
                     compare_type: 'REG_EXP'
                     branches:
                       - master
diff --git a/jenkins/client/job/salt-formulas/git-mirrors/2way.yml b/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
index a2b000a..d8e9f22 100644
--- a/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
+++ b/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
@@ -26,6 +26,9 @@
             - name: avinetworks
               branches: ${_param:salt_formulas_branches}
               notification_recipients: ${_param:salt_formulas_notification_recipients}
+            - name: auditd
+              branches: ${_param:salt_formulas_branches}
+              notification_recipients: ${_param:salt_formulas_notification_recipients}
             - name: backupninja
               branches: ${_param:salt_formulas_branches}
               notification_recipients: ${_param:salt_formulas_notification_recipients}
diff --git a/jenkins/client/job/test_pipelines.yml b/jenkins/client/job/test_pipelines.yml
index c9a2442..2b0fabe 100644
--- a/jenkins/client/job/test_pipelines.yml
+++ b/jenkins/client/job/test_pipelines.yml
@@ -46,7 +46,7 @@
                 default: "gerrit"
               GRADLE_IMAGE:
                 type: string
-                default: "niaquinto/gradle"
+                default: "docker-dev-local.docker.mirantis.net/mirantis/cicd/niaquinto_gradle"
               GRADLE_CMD:
                 type: string
                 default: "check --info"
diff --git a/jenkins/client/job/validate.yml b/jenkins/client/job/validate.yml
index c97c0ad..32b0c0f 100644
--- a/jenkins/client/job/validate.yml
+++ b/jenkins/client/job/validate.yml
@@ -1,6 +1,7 @@
 parameters:
   _param:
     jenkins_salt_api_url: "http://${_param:salt_master_host}:6969"
+    cvp_sanity_default_repo: "https://github.com/Mirantis/cvp-sanity-checks"
   jenkins:
     client:
       view:
@@ -162,7 +163,7 @@
             url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
             branch: "${_param:jenkins_pipelines_branch}"
             credentials: "gerrit"
-            script: cvp-sanity.groovy
+            script: cvp-runner.groovy
           param:
             SALT_MASTER_URL:
               type: string
@@ -171,17 +172,17 @@
             SALT_MASTER_CREDENTIALS:
               type: string
               default: "salt"
-            SANITY_TESTS_REPO:
+            TESTS_REPO:
               type: string
-              default: "https://github.com/Mirantis/cvp-sanity-checks"
+              default: "${_param:cvp_sanity_default_repo}"
               description: Url for cvp-sanity-checks
-            SANITY_TESTS_SETTINGS:
+            TESTS_SETTINGS:
               type: string
               default: ""
               description: e.g. skipped_nodes=nal01.local.com,ntw01.local.com
-            SANITY_TESTS_SET:
+            TESTS_SET:
               type: string
-              default: ""
+              default: "cvp-sanity-check/cvp_checks/tests/"
               description: Leave empty for full run or choose a file, e.g. test_mtu.py
             PROXY:
               type: string
@@ -404,3 +405,43 @@
               type: string
               default: ""
               description: Proxy address to clone repo and install python requirements
+        cvp-spt:
+          type: workflow-scm
+          name: cvp-spt
+          display_name: "CVP - Simplified Performance Tests (SPT)"
+          discard:
+            build:
+              keep_num: 20
+            artifact:
+              keep_num: 20
+          concurrent: false
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            branch: "${_param:jenkins_pipelines_branch}"
+            credentials: "gerrit"
+            script: cvp-spt.groovy
+          param:
+            SALT_MASTER_URL:
+              type: string
+              default: "${_param:jenkins_salt_api_url}"
+              description: Full Salt API address [e.g. https://10.10.10.2:6969]
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt"
+            TESTS_REPO:
+              type: string
+              default: "https://github.com/Mirantis/cvp-spt"
+              description: Url for cvp-spt repository
+            TESTS_SETTINGS:
+              type: string
+              default: ""
+              description: "Additional environment variables to export"
+            TESTS_SET:
+              type: string
+              default: "cvp-spt/cvp_spt/tests/"
+              description: "Leave empty for full run or choose a file, e.g. test_glance.py"
+            PROXY:
+              type: string
+              default: ""
+              description: Proxy address to clone repo and install python requirements
diff --git a/jenkins/client/job/vnf-onboarding/deploy_cloudify.yml b/jenkins/client/job/vnf-onboarding/deploy_cloudify.yml
index 79d53aa..b63aa34 100644
--- a/jenkins/client/job/vnf-onboarding/deploy_cloudify.yml
+++ b/jenkins/client/job/vnf-onboarding/deploy_cloudify.yml
@@ -2,10 +2,10 @@
   jenkins:
     client:
       job:
-        deploy_cloudify:
+        deploy_cloudify_enterprise:
           type: workflow-scm
-          name: deploy-cloudify
-          display_name: "Deploy Cloudify"
+          name: deploy-cloudify-enterprise
+          display_name: "Deploy Cloudify Enterprise"
           discard:
             build:
               keep_num: 20
@@ -36,7 +36,7 @@
               default: "${_param:vnf_gerrit_credentials}"
             CFM_IMAGE:
               type: string
-              default: "cloudify-enterprise"
+              default: "cloudify-manager-4.3.1ga"
             CFM_FLAVOR:
               type: string
               default: "cfy.mngr"
@@ -69,4 +69,4 @@
               default: "latest"
             VNF_DOCKER_CLI_PLATFORM:
               type: string
-              default: "ubuntu"
\ No newline at end of file
+              default: "ubuntu"
diff --git a/jenkins/client/job/vnf-onboarding/test_avi_loadbalancer.yml b/jenkins/client/job/vnf-onboarding/test_avi_loadbalancer.yml
index 43586f7..3912d3f 100644
--- a/jenkins/client/job/vnf-onboarding/test_avi_loadbalancer.yml
+++ b/jenkins/client/job/vnf-onboarding/test_avi_loadbalancer.yml
@@ -1,133 +1,9 @@
+classes:
+  - system.jenkins.client.job.vnf-onboarding.test_avi_loadbalancer
 parameters:
-  jenkins:
-    client:
-      plugin:
-        gerrit-trigger: {}
-      job:
-        test_avi_loadbalancer:
-          type: workflow-scm
-          name: test-avi-loadbalancer
-          display_name: "Onboarding tests for the AVI Loadbalancer VNF"
-          discard:
-            build:
-              keep_num: 20
-          scm:
-            type: git
-            url: "${_param:jenkins_gerrit_url}/vnf-onboarding/pipelines"
-            credentials: "${_param:vnf_gerrit_credentials}"
-            script: test_vnf_onboarding.groovy
-          trigger:
-            gerrit:
-              project:
-                "vnf-onboarding/avi-loadbalancer":
-                  branches:
-                    - compare_type: "ANT"
-                      name: "**"
-              event:
-                patchset:
-                  - created:
-                      excludeDrafts: false
-                      excludeTrivialRebase: false
-                      excludeNoCodeChange: false
-                change:
-                 - merged
-                comment:
-                  - addedContains:
-                      commentAddedCommentContains: '(retest|recheck|reverify)'
-              message:
-                build_successful: "Build successful"
-                build_unstable: "Build unstable"
-                build_failure: "Build failed"
-          param:
-            DEFAULT_GIT_URL:
-              type: string
-              default: "${_param:jenkins_gerrit_url}/vnf-onboarding/avi-loadbalancer"
-            DEFAULT_GIT_REF:
-              type: string
-              default: master
-            OPENSTACK_API_URL:
-              type: string
-              default: "${_param:vnf_openstack_api_url}"
-            OPENSTACK_API_CREDENTIALS:
-              type: string
-              default: "${_param:vnf_openstack_api_credentials}"
-            OPENSTACK_API_TENANT:
-              type: string
-              default: "test-avi"
-            GERRIT_CREDENTIALS:
-              type: string
-              default: "${_param:vnf_gerrit_credentials}"
-            ELASTIC_URL:
-              type: string
-              default: "${_param:vnf_elastic_url}"
-            DEBUG_OPTIONS:
-              type: string
-              description: "Example: skip_all=1 skip_deploy=1 skip_inspection=1"
-            NFV_PLATFORM_REPO:
-              type: string
-              description: "Take Cloudify blueprints, Dockerfile and CI scripts from this repo"
-              default: "${_param:jenkins_gerrit_url}/vnf-onboarding/nfv-platform"
-            NFV_PLATFORM_REPO_BRANCH:
-              type: string
-              default: "master"
-            NFV_PLATFORM_REPO_CREDENTIALS:
-              type: string
-              default: "${_param:vnf_gerrit_credentials}"
-            CONTRAIL_ENABLED:
-              type: boolean
-              default: false
-            CONTRAIL_API_URL:
-              type: string
-              default: "${_param:contrail_api_url}"
-            SETUP_OWN_CLOUDIFY:
-              type: boolean
-              description: "Use temporary private Cloudify instance"
-              default: false
-            CLOUDIFY_MANAGER_IP:
-              type: string
-              description: "IP address of extrenal Cloudify. \"auto\" refers to address of deploy_cloudify job Cloudify instance"
-              default: "auto"
-            CLOUDIFY_MANAGER_OPTIONS:
-              type: string
-              description: "Parameters for cloudify manager VM. Can be skipped if cloudify predeployed."
-              default: "CFM_IMAGE=cloudify-manager-4.3.1ga CFM_FLAVOR=cfy.mngr CFM_DISK_SIZE=80 CFM_SUBNET_CIDR=10.10.1.1/24 CFM_SUBNET_DNS=172.19.0.6 EXTERNAL_NET=public "
-            CFM_SSH_KEY_ID:
-              type: string
-              description: "Credentials ID of ssh key for connection to Cloudify"
-              default: "${_param:vnf_openstack_ssh_key_credentials}"
-            CLOUDIFY_AGENT_OPTIONS:
-              type: string
-              description: "Parameters for cloudify agent VMs."
-              default: "CFY_AGENT_NET=cfm-net-shared CFY_AGENT_FLAVOR=cfy.agent CFY_AGENT_BACKEND_FLAVOR=backend.avi CFY_AGENT_IMAGE=agent_vm CFY_AGENT_BASE_IMAGE=base_agent_vm CFY_AGENT_BACKEND_IMAGE=base_backend_vm"
-            VNF_ARTIFACTORY_URL:
-              type: string
-              default: "${_param:vnf_artifactory_url}"
-            VNF_ARTIFACTORY_PLUGINS_DIR:
-              type: string
-              default: "${_param:vnf_artifactory_url}/cloudify/plugins/"
-            VNF_DOCKER_REGISTRY_PATH:
-              type: string
-              default: "${_param:vnf_docker_registry_path}"
-            VNF_DOCKER_CLI_TAG:
-              type: string
-              default: "latest"
-            VNF_DOCKER_SCRUN_TAG:
-              type: string
-              default: "latest"
-            VNF_DOCKER_AVICFG_TAG:
-              type: string
-              default: "latest"
-            VNF_PLUGINS:
-              type: string
-              description: "Plugins to fetch from artifactory and install during build package step"
-              default: "vnf_onboarding_tools-0.1-py27-none-linux_x86_64_Ubuntu_xenial"
-            VNF_OPTIONS:
-              type: string
-              default: "AVI_VERSION=17.2.3 AVI_USERNAME=admin AVI_PASSWORD=Swordfish1234 AVI_IMAGE_PASSWORD=58NFaGDJm(PJH0G AVI_OS_FLAVOR=avi_ctrl.small AVI_OS_IMAGE=avi-control-17.2.3"
-            VNF_DOCKER_CLI_PLATFORM:
-              type: string
-              default: "ubuntu"
-            CLOUDIFY_DEPLOYMENT_TIMEOUT:
-              type: string
-              description: "Set up timeout for cloudify deployment (depends on each VNF specific and network throughput)."
-              default: 1800
+  _param:
+    vnf_onboarding_avi_jobs:
+      - edition: enterprise
+        cfy_image: cloudify-manager-4.3.1ga
+      - edition: community
+        cfy_image: cloudify-manager-community-18.2.28
\ No newline at end of file
diff --git a/jenkins/client/job/vnf-onboarding/test_avi_loadbalancer_template.yml b/jenkins/client/job/vnf-onboarding/test_avi_loadbalancer_template.yml
new file mode 100644
index 0000000..54d82fc
--- /dev/null
+++ b/jenkins/client/job/vnf-onboarding/test_avi_loadbalancer_template.yml
@@ -0,0 +1,143 @@
+parameters:
+  _param:
+    vnf_onboarding_avi_jobs: []
+  jenkins:
+    client:
+      plugin:
+        gerrit-trigger: {}
+      job-template:
+        test_avi_loadbalancer:
+          name: "test-avi-loadbalancer-{{edition}}"
+          template:
+            type: workflow-scm
+            display_name: "Onboarding tests for the AVI Loadbalancer VNF against CFY {{edition}} edition"
+            discard:
+              build:
+                keep_num: 20
+            scm:
+              type: git
+              url: "${_param:jenkins_gerrit_url}/vnf-onboarding/pipelines"
+              credentials: "${_param:vnf_gerrit_credentials}"
+              script: test_vnf_onboarding.groovy
+            trigger:
+              gerrit:
+                project:
+                  "vnf-onboarding/avi-loadbalancer":
+                    branches:
+                      - compare_type: "ANT"
+                        name: "**"
+                event:
+                  patchset:
+                    - created:
+                        excludeDrafts: false
+                        excludeTrivialRebase: false
+                        excludeNoCodeChange: false
+                  change:
+                   - merged
+                  comment:
+                    - addedContains:
+                        commentAddedCommentContains: '(retest|recheck|reverify)'
+                message:
+                  build_successful: "Build successful"
+                  build_unstable: "Build unstable"
+                  build_failure: "Build failed"
+            param:
+              DEFAULT_GIT_URL:
+                type: string
+                default: "${_param:jenkins_gerrit_url}/vnf-onboarding/avi-loadbalancer"
+              DEFAULT_GIT_REF:
+                type: string
+                default: master
+              OPENSTACK_API_URL:
+                type: string
+                default: "${_param:vnf_openstack_api_url}"
+              OPENSTACK_API_CREDENTIALS:
+                type: string
+                default: "${_param:vnf_openstack_api_credentials}"
+              OPENSTACK_API_TENANT:
+                type: string
+                default: "test-avi"
+              GERRIT_CREDENTIALS:
+                type: string
+                default: "${_param:vnf_gerrit_credentials}"
+              ELASTIC_URL:
+                type: string
+                default: "${_param:vnf_elastic_url}"
+              DEBUG_OPTIONS:
+                type: string
+                description: "Example: skip_all=1 skip_deploy=1 skip_inspection=1"
+              NFV_PLATFORM_REPO:
+                type: string
+                description: "Take Cloudify blueprints, Dockerfile and CI scripts from this repo"
+                default: "${_param:jenkins_gerrit_url}/vnf-onboarding/nfv-platform"
+              NFV_PLATFORM_REPO_BRANCH:
+                type: string
+                default: "master"
+              NFV_PLATFORM_REPO_CREDENTIALS:
+                type: string
+                default: "${_param:vnf_gerrit_credentials}"
+              CONTRAIL_ENABLED:
+                type: boolean
+                default: false
+              CONTRAIL_API_URL:
+                type: string
+                default: "${_param:contrail_api_url}"
+              SETUP_OWN_CLOUDIFY:
+                type: boolean
+                description: "Use temporary private Cloudify instance"
+                default: false
+              CLOUDIFY_MANAGER_IP:
+                type: string
+                description: "IP address of extrenal Cloudify. \"auto\" refers to address of deploy_cloudify_enterprise job Cloudify instance"
+                default: "auto"
+              CLOUDIFY_MANAGER_OPTIONS:
+                type: string
+                description: "Parameters for cloudify manager VM. Can be skipped if cloudify predeployed."
+                default: "CFM_IMAGE={{cfy_image}} CFM_FLAVOR=cfy.mngr CFM_DISK_SIZE=80 CFM_SUBNET_CIDR=10.10.1.1/24 CFM_SUBNET_DNS=172.19.0.6 EXTERNAL_NET=public "
+              CFM_SSH_KEY_ID:
+                type: string
+                description: "Credentials ID of ssh key for connection to Cloudify"
+                default: "${_param:vnf_openstack_ssh_key_credentials}"
+              CLOUDIFY_AGENT_OPTIONS:
+                type: string
+                description: "Parameters for cloudify agent VMs."
+                default: "CFY_AGENT_NET=cfm-net-shared CFY_AGENT_FLAVOR=cfy.agent CFY_AGENT_BACKEND_FLAVOR=backend.avi CFY_AGENT_IMAGE=agent_vm CFY_AGENT_BASE_IMAGE=base_agent_vm CFY_AGENT_BACKEND_IMAGE=base_backend_vm"
+              CLOUDIFY_MANAGER_VERSION:
+                type: choice
+                choices:
+                 - enterprise
+                 - community
+                default: "{{edition}}"
+                description: "CFY edition version, make sure that it is consistent with CFY Manager image"
+              VNF_ARTIFACTORY_URL:
+                type: string
+                default: "${_param:vnf_artifactory_url}"
+              VNF_ARTIFACTORY_PLUGINS_DIR:
+                type: string
+                default: "${_param:vnf_artifactory_url}/cloudify/plugins/"
+              VNF_DOCKER_REGISTRY_PATH:
+                type: string
+                default: "${_param:vnf_docker_registry_path}"
+              VNF_DOCKER_CLI_TAG:
+                type: string
+                default: "latest"
+              VNF_DOCKER_SCRUN_TAG:
+                type: string
+                default: "latest"
+              VNF_DOCKER_AVICFG_TAG:
+                type: string
+                default: "latest"
+              VNF_PLUGINS:
+                type: string
+                description: "Plugins to fetch from artifactory and install during build package step"
+                default: "vnf_onboarding_tools-0.2-py27-none-linux_x86_64_CentOS_Core"
+              VNF_OPTIONS:
+                type: string
+                default: "AVI_VERSION=17.2.3 AVI_USERNAME=admin AVI_PASSWORD=Swordfish1234 AVI_IMAGE_PASSWORD=58NFaGDJm(PJH0G AVI_OS_FLAVOR=avi_ctrl.small AVI_OS_IMAGE=avi-control-17.2.3"
+              VNF_DOCKER_CLI_PLATFORM:
+                type: string
+                default: "ubuntu"
+              VNF_DEPLOYMENT_TIMEOUT:
+                type: string
+                description: "Set up timeout for cloudify deployment (depends on each VNF specific and network throughput)."
+                default: 1800
diff --git a/jenkins/client/job/vnf-onboarding/test_nginx_vnf.yml b/jenkins/client/job/vnf-onboarding/test_nginx_vnf.yml
index cdb073a..1997c67 100644
--- a/jenkins/client/job/vnf-onboarding/test_nginx_vnf.yml
+++ b/jenkins/client/job/vnf-onboarding/test_nginx_vnf.yml
@@ -1,131 +1,9 @@
+classes:
+  - system.jenkins.client.job.vnf-onboarding.test_nginx_vnf
 parameters:
-  jenkins:
-    client:
-      plugin:
-        gerrit-trigger: {}
-      job:
-        test_nginx_vnf:
-          type: workflow-scm
-          name: test-nginx-vnf
-          display_name: "Onboarding tests for the NGINX VNF"
-          discard:
-            build:
-              keep_num: 20
-          scm:
-            type: git
-            url: "${_param:jenkins_gerrit_url}/vnf-onboarding/pipelines"
-            credentials: "${_param:vnf_gerrit_credentials}"
-            script: test_vnf_onboarding.groovy
-          trigger:
-            gerrit:
-              project:
-                "vnf-onboarding/nginx-vnf":
-                  branches:
-                    - compare_type: "ANT"
-                      name: "**"
-              event:
-                patchset:
-                  - created:
-                      excludeDrafts: false
-                      excludeTrivialRebase: false
-                      excludeNoCodeChange: false
-                change:
-                 - merged
-                comment:
-                  - addedContains:
-                      commentAddedCommentContains: '(retest|recheck|reverify)'
-              message:
-                build_successful: "Build successful"
-                build_unstable: "Build unstable"
-                build_failure: "Build failed"
-          param:
-            DEFAULT_GIT_URL:
-              type: string
-              default: "${_param:jenkins_gerrit_url}/vnf-onboarding/nginx-vnf"
-            DEFAULT_GIT_REF:
-              type: string
-              default: master
-            OPENSTACK_API_URL:
-              type: string
-              default: "${_param:vnf_openstack_api_url}"
-            OPENSTACK_API_CREDENTIALS:
-              type: string
-              default: "${_param:vnf_openstack_api_credentials}"
-            OPENSTACK_API_TENANT:
-              type: string
-              default: "test-nginx"
-            GERRIT_CREDENTIALS:
-              type: string
-              default: "${_param:vnf_gerrit_credentials}"
-            ELASTIC_URL:
-              type: string
-              default: "${_param:vnf_elastic_url}"
-            DEBUG_OPTIONS:
-              type: string
-              default: "skip_inspection=1"
-              description: "Example: skip_all=1 skip_deploy=1 skip_inspection=1"
-            NFV_PLATFORM_REPO:
-              type: string
-              description: "Take Cloudify blueprints, Dockerfile and CI scripts from this repo"
-              default: "${_param:jenkins_gerrit_url}/vnf-onboarding/nfv-platform"
-            NFV_PLATFORM_REPO_BRANCH:
-              type: string
-              default: "master"
-            NFV_PLATFORM_REPO_CREDENTIALS:
-              type: string
-              default: "${_param:vnf_gerrit_credentials}"
-            CONTRAIL_ENABLED:
-              type: boolean
-              default: false
-            CONTRAIL_API_URL:
-              type: string
-              default: "${_param:contrail_api_url}"
-            SETUP_OWN_CLOUDIFY:
-              type: boolean
-              description: "Use temporary private Cloudify instance"
-              default: false
-            CLOUDIFY_MANAGER_IP:
-              type: string
-              description: "IP address of extrenal Cloudify. \"auto\" refers to address of deploy_cloudify job Cloudify instance"
-              default: "auto"
-            CLOUDIFY_MANAGER_OPTIONS:
-              type: string
-              description: "Parameters for cloudify manager VM. Can be skipped if cloudify predeployed."
-              default: "CFM_IMAGE=cloudify-manager-4.3.1ga CFM_FLAVOR=cfy.mngr CFM_DISK_SIZE=80 CFM_SUBNET_CIDR=10.10.1.1/24 CFM_SUBNET_DNS=172.19.0.6 EXTERNAL_NET=public "
-            CFM_SSH_KEY_ID:
-              type: string
-              description: "Credentials ID of ssh key for connection to Cloudify"
-              default: "${_param:vnf_openstack_ssh_key_credentials}"
-            CLOUDIFY_AGENT_OPTIONS:
-              type: string
-              description: "Parameters for cloudify agent VMs."
-              default: "CFY_AGENT_NET=cfm-net-shared CFY_AGENT_FLAVOR=cfy.agent CFY_AGENT_BACKEND_FLAVOR=backend.nginx CFY_AGENT_IMAGE=agent_vm CFY_AGENT_BASE_IMAGE=base_agent_vm CFY_AGENT_BACKEND_IMAGE=base_backend_vm"
-            VNF_ARTIFACTORY_URL:
-              type: string
-              default: "${_param:vnf_artifactory_url}"
-            VNF_ARTIFACTORY_PLUGINS_DIR:
-              type: string
-              default: "${_param:vnf_artifactory_url}/cloudify/plugins/"
-            VNF_DOCKER_REGISTRY_PATH:
-              type: string
-              default: "${_param:vnf_docker_registry_path}"
-            VNF_DOCKER_CLI_TAG:
-              type: string
-              default: "latest"
-            VNF_DOCKER_SCRUN_TAG:
-              type: string
-              default: "latest"
-            VNF_PLUGINS:
-              type: string
-              description: "Plugins to fetch from artifactory and install during build package step"
-              default: "vnf_onboarding_tools-0.1-py27-none-linux_x86_64_Ubuntu_xenial"
-            VNF_OPTIONS:
-              type: string
-              default: ""
-            VNF_DOCKER_CLI_PLATFORM:
-              type: string
-              default: "ubuntu"
-            CLOUDIFY_DEPLOYMENT_TIMEOUT:
-              type: string
-              description: "Set up timeout for cloudify deployment (depends on each VNF specific and network throughput)."
-              default: 900
+  _param:
+    vnf_onboarding_nginx_jobs:
+      - edition: enterprise
+        cfy_image: cloudify-manager-4.3.1ga
+      - edition: community
+        cfy_image: cloudify-manager-community-18.2.28
\ No newline at end of file
diff --git a/jenkins/client/job/vnf-onboarding/test_nginx_vnf_template.yml b/jenkins/client/job/vnf-onboarding/test_nginx_vnf_template.yml
new file mode 100644
index 0000000..e2f4cbd
--- /dev/null
+++ b/jenkins/client/job/vnf-onboarding/test_nginx_vnf_template.yml
@@ -0,0 +1,142 @@
+parameters:
+  _param:
+    vnf_onboarding_nginx_jobs: []
+  jenkins:
+    client:
+      plugin:
+        gerrit-trigger: {}
+      job_template:
+        test_nginx_vnf:
+          name: "test-nginx-vnf-{{edition}}"
+          template:
+            type: workflow-scm
+
+            display_name: "Onboarding tests for the NGINX VNF against CFY {{edition}} edition"
+            discard:
+              build:
+                keep_num: 20
+            scm:
+              type: git
+              url: "${_param:jenkins_gerrit_url}/vnf-onboarding/pipelines"
+              credentials: "${_param:vnf_gerrit_credentials}"
+              script: test_vnf_onboarding.groovy
+            trigger:
+              gerrit:
+                project:
+                  "vnf-onboarding/nginx-vnf":
+                    branches:
+                      - compare_type: "ANT"
+                        name: "**"
+                event:
+                  patchset:
+                    - created:
+                        excludeDrafts: false
+                        excludeTrivialRebase: false
+                        excludeNoCodeChange: false
+                  change:
+                   - merged
+                  comment:
+                    - addedContains:
+                        commentAddedCommentContains: '(retest|recheck|reverify)'
+                message:
+                  build_successful: "Build successful"
+                  build_unstable: "Build unstable"
+                  build_failure: "Build failed"
+            param:
+              DEFAULT_GIT_URL:
+                type: string
+                default: "${_param:jenkins_gerrit_url}/vnf-onboarding/nginx-vnf"
+              DEFAULT_GIT_REF:
+                type: string
+                default: master
+              OPENSTACK_API_URL:
+                type: string
+                default: "${_param:vnf_openstack_api_url}"
+              OPENSTACK_API_CREDENTIALS:
+                type: string
+                default: "${_param:vnf_openstack_api_credentials}"
+              OPENSTACK_API_TENANT:
+                type: string
+                default: "test-nginx"
+              GERRIT_CREDENTIALS:
+                type: string
+                default: "${_param:vnf_gerrit_credentials}"
+              ELASTIC_URL:
+                type: string
+                default: "${_param:vnf_elastic_url}"
+              DEBUG_OPTIONS:
+                type: string
+                default: "skip_inspection=1"
+                description: "Example: skip_all=1 skip_deploy=1 skip_inspection=1"
+              NFV_PLATFORM_REPO:
+                type: string
+                description: "Take Cloudify blueprints, Dockerfile and CI scripts from this repo"
+                default: "${_param:jenkins_gerrit_url}/vnf-onboarding/nfv-platform"
+              NFV_PLATFORM_REPO_BRANCH:
+                type: string
+                default: "master"
+              NFV_PLATFORM_REPO_CREDENTIALS:
+                type: string
+                default: "${_param:vnf_gerrit_credentials}"
+              CONTRAIL_ENABLED:
+                type: boolean
+                default: false
+              CONTRAIL_API_URL:
+                type: string
+                default: "${_param:contrail_api_url}"
+              SETUP_OWN_CLOUDIFY:
+                type: boolean
+                description: "Use temporary private Cloudify instance"
+                default: false
+              CLOUDIFY_MANAGER_IP:
+                type: string
+                description: "IP address of extrenal Cloudify. \"auto\" refers to address of deploy_cloudify_enterprise job Cloudify instance"
+                default: "auto"
+              CLOUDIFY_MANAGER_OPTIONS:
+                type: string
+                description: "Parameters for cloudify manager VM. Can be skipped if cloudify predeployed."
+                default: "CFM_IMAGE={{cfy_image}} CFM_FLAVOR=cfy.mngr CFM_DISK_SIZE=80 CFM_SUBNET_CIDR=10.10.1.1/24 CFM_SUBNET_DNS=172.19.0.6 EXTERNAL_NET=public "
+              CFM_SSH_KEY_ID:
+                type: string
+                description: "Credentials ID of ssh key for connection to Cloudify"
+                default: "${_param:vnf_openstack_ssh_key_credentials}"
+              CLOUDIFY_AGENT_OPTIONS:
+                type: string
+                description: "Parameters for cloudify agent VMs."
+                default: "CFY_AGENT_NET=cfm-net-shared CFY_AGENT_FLAVOR=cfy.agent CFY_AGENT_BACKEND_FLAVOR=backend.nginx CFY_AGENT_IMAGE=agent_vm CFY_AGENT_BASE_IMAGE=base_agent_vm CFY_AGENT_BACKEND_IMAGE=base_backend_vm"
+              CLOUDIFY_MANAGER_VERSION:
+                type: choice
+                choices:
+                 - enterprise
+                 - community
+                default: "{{edition}}"
+                description: "CFY edition version, make sure that it is consistent with CFY Manager image"
+              VNF_ARTIFACTORY_URL:
+                type: string
+                default: "${_param:vnf_artifactory_url}"
+              VNF_ARTIFACTORY_PLUGINS_DIR:
+                type: string
+                default: "${_param:vnf_artifactory_url}/cloudify/plugins/"
+              VNF_DOCKER_REGISTRY_PATH:
+                type: string
+                default: "${_param:vnf_docker_registry_path}"
+              VNF_DOCKER_CLI_TAG:
+                type: string
+                default: "latest"
+              VNF_DOCKER_SCRUN_TAG:
+                type: string
+                default: "latest"
+              VNF_PLUGINS:
+                type: string
+                description: "Plugins to fetch from artifactory and install during build package step"
+                default: "vnf_onboarding_tools-0.2-py27-none-linux_x86_64_CentOS_Core"
+              VNF_OPTIONS:
+                type: string
+                default: ""
+              VNF_DOCKER_CLI_PLATFORM:
+                type: string
+                default: "ubuntu"
+              VNF_DEPLOYMENT_TIMEOUT:
+                type: string
+                description: "Set up timeout for cloudify deployment (depends on each VNF specific and network throughput)."
+                default: 900
diff --git a/keystone/client/vnf_onboarding/avi_loadbalancer.yml b/keystone/client/vnf_onboarding/avi_loadbalancer.yml
index d14576d..1acddad 100644
--- a/keystone/client/vnf_onboarding/avi_loadbalancer.yml
+++ b/keystone/client/vnf_onboarding/avi_loadbalancer.yml
@@ -20,3 +20,7 @@
                   is_admin: false
                   password: ${_param:vnf_openstack_test_user_password}
                   email: ${_param:vnf_openstack_test_user_email}
+                admin-test:
+                  is_admin: true
+                  password: ${_param:vnf_openstack_admin_user_password}
+                  email: ${_param:vnf_openstack_admin_user_email}
diff --git a/keystone/client/vnf_onboarding/metaswitch_vsbc.yml b/keystone/client/vnf_onboarding/metaswitch_vsbc.yml
index 42ed04f..0ec1be6 100644
--- a/keystone/client/vnf_onboarding/metaswitch_vsbc.yml
+++ b/keystone/client/vnf_onboarding/metaswitch_vsbc.yml
@@ -20,3 +20,7 @@
                   is_admin: false
                   password: ${_param:vnf_openstack_test_user_password}
                   email: ${_param:vnf_openstack_test_user_email}
+                admin-test:
+                  is_admin: true
+                  password: ${_param:vnf_openstack_admin_user_password}
+                  email: ${_param:vnf_openstack_admin_user_email}
diff --git a/keystone/client/vnf_onboarding/nginx_vnf.yml b/keystone/client/vnf_onboarding/nginx_vnf.yml
index be67940..283bb99 100644
--- a/keystone/client/vnf_onboarding/nginx_vnf.yml
+++ b/keystone/client/vnf_onboarding/nginx_vnf.yml
@@ -20,3 +20,7 @@
                   is_admin: false
                   password: ${_param:vnf_openstack_test_user_password}
                   email: ${_param:vnf_openstack_test_user_email}
+                admin-test:
+                  is_admin: true
+                  password: ${_param:vnf_openstack_admin_user_password}
+                  email: ${_param:vnf_openstack_admin_user_email}
diff --git a/kubernetes/common.yml b/kubernetes/common.yml
new file mode 100644
index 0000000..82107a3
--- /dev/null
+++ b/kubernetes/common.yml
@@ -0,0 +1,151 @@
+parameters:
+  _param:
+    kubernetes_calico_calicoctl_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
+    kubernetes_calico_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
+    kubernetes_calico_cni_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
+    kubernetes_hyperkube_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes
+    kubernetes_contrail_cni_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes
+    kubernetes_contrail_network_controller_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/contrail-integration
+    kubernetes_netchecker_agent_repo: mirantis
+    kubernetes_netchecker_server_repo: mirantis
+    kubernetes_virtlet_repo: mirantis
+    kubernetes_kubedns_repo: gcr.io/google_containers
+    kubernetes_externaldns_repo: mirantis
+    kubernetes_genie_repo: https://artifactory.mcp.mirantis.net/artifactory/binary-prod-local/mirantis/kubernetes/cni-genie
+    kubernetes_flannel_repo: quay.io/coreos
+    kubernetes_metallb_repo: metallb
+    kubernetes_sriov_repo: https://artifactory.mcp.mirantis.net/artifactory/binary-prod-local/mirantis/kubernetes/sriov-cni
+    kubernetes_cniplugins_repo: https://artifactory.mcp.mirantis.net/artifactory/binary-prod-local/mirantis/kubernetes/containernetworking-plugins
+
+    # component docker images
+    kubernetes_docker_package: docker-engine=1.13.1-0~ubuntu-xenial
+    kubernetes_calico_calicoctl_image: ${_param:kubernetes_calico_calicoctl_repo}/ctl:v1.6.4
+    kubernetes_calico_image: ${_param:kubernetes_calico_repo}/node:v2.6.9
+    kubernetes_calico_cni_image: ${_param:kubernetes_calico_cni_repo}/cni:v1.11.5
+    kubernetes_hyperkube_image: ${_param:kubernetes_hyperkube_repo}/hyperkube-amd64:v1.10.4-4
+    kubernetes_pause_image: ${_param:kubernetes_hyperkube_repo}/pause-amd64:v1.10.4-4
+    kubernetes_contrail_cni_image: ${_param:kubernetes_contrail_cni_repo}/contrail-cni:v1.2.0
+    kubernetes_contrail_network_controller_image: ${_param:kubernetes_contrail_network_controller_repo}/contrail-network-controller:v1.2.0
+    kubernetes_virtlet_image: ${_param:kubernetes_virtlet_repo}/virtlet:v1.1.1
+    kubernetes_criproxy_version: v0.11.1
+    kubernetes_criproxy_checksum: md5=a3f1f08bdc7a8d6eb73b7c8fa5bae200
+    kubernetes_netchecker_agent_image: ${_param:kubernetes_netchecker_agent_repo}/k8s-netchecker-agent:v1.2.2
+    kubernetes_netchecker_server_image: ${_param:kubernetes_netchecker_server_repo}/k8s-netchecker-server:v1.2.2
+    kubernetes_kubedns_image: ${_param:kubernetes_kubedns_repo}/k8s-dns-kube-dns-amd64:1.14.5
+    kubernetes_dnsmasq_image: ${_param:kubernetes_kubedns_repo}/k8s-dns-dnsmasq-amd64:1.14.5
+    kubernetes_sidecar_image: ${_param:kubernetes_kubedns_repo}/k8s-dns-sidecar-amd64:1.14.5
+    kubernetes_dns_autoscaler_image: ${_param:kubernetes_kubedns_repo}/cluster-proportional-autoscaler-amd64:1.0.0
+    kubernetes_externaldns_image: ${_param:kubernetes_externaldns_repo}/external-dns:v0.5.3
+    kubernetes_genie_source: ${_param:kubernetes_genie_repo}/genie_v1.0-138-gbf5dbaa
+    kubernetes_genie_source_hash: md5=b024052ed4ecb1d5354e0cc8f51afaca
+    kubernetes_flannel_image: ${_param:kubernetes_flannel_repo}/flannel:v0.10.0-amd64
+    kubernetes_metallb_controller_image: ${_param:kubernetes_metallb_repo}/controller:v0.6.2
+    kubernetes_metallb_speaker_image: ${_param:kubernetes_metallb_repo}/speaker:v0.6.2
+    kubernetes_sriov_source: ${_param:kubernetes_sriov_repo}/sriov_v0.3-8-g8b7ed98
+    kubernetes_sriov_source_hash: md5=c0cc33202afd02e4cc44b977a8faf6e7
+    kubernetes_cniplugins_source: ${_param:kubernetes_cniplugins_repo}/cni-plugins_v0.7.1-48-g696b1f9.tar.gz
+    kubernetes_cniplugins_source_hash: md5=5ec1cf5e989097c6127ea5365e277b02
+
+    kubelet_fail_on_swap: true
+    kubernetes_kubedns_enabled: true
+    kubernetes_externaldns_enabled: false
+    kubernetes_coredns_enabled: false
+    kubernetes_externaldns_provider: coredns
+    kubernetes_virtlet_enabled: false
+    kubernetes_flannel_enabled: false
+    kubernetes_genie_enabled: false
+    kubernetes_calico_enabled: false
+    kubernetes_opencontrail_enabled: false
+    kubernetes_contrail_network_controller_enabled: false
+    kubernetes_metallb_enabled: false
+    kubernetes_sriov_enabled: false
+
+  docker:
+    host:
+      pkgs:
+        - ${_param:kubernetes_docker_package}
+        - python-docker
+      options:
+        bip: 172.31.255.1/24
+        storage-driver: overlay2
+
+  kubernetes:
+    common:
+      hyperkube:
+        image: ${_param:kubernetes_hyperkube_image}
+        pause_image: ${_param:kubernetes_pause_image}
+      cni:
+        plugins:
+          source: ${_param:kubernetes_cniplugins_source}
+          hash: ${_param:kubernetes_cniplugins_source_hash}
+      addons:
+        dns:
+          enabled: ${_param:kubernetes_kubedns_enabled}
+          kubedns_image: ${_param:kubernetes_kubedns_image}
+          dnsmasq_image: ${_param:kubernetes_dnsmasq_image}
+          sidecar_image: ${_param:kubernetes_sidecar_image}
+          autoscaler:
+            image: ${_param:kubernetes_dns_autoscaler_image}
+        externaldns:
+          enabled: ${_param:kubernetes_externaldns_enabled}
+          namespace: kube-system
+          image: ${_param:kubernetes_externaldns_image}
+          provider: ${_param:kubernetes_externaldns_provider}
+        coredns:
+          enabled: ${_param:kubernetes_coredns_enabled}
+        contrail_network_controller:
+          enabled: ${_param:kubernetes_contrail_network_controller_enabled}
+          image: ${_param:kubernetes_contrail_network_controller_image}
+        flannel:
+          enabled: ${_param:kubernetes_flannel_enabled}
+          image: ${_param:kubernetes_flannel_image}
+        virtlet:
+          enabled: ${_param:kubernetes_virtlet_enabled}
+          namespace: kube-system
+          image: ${_param:kubernetes_virtlet_image}
+          criproxy_version: ${_param:kubernetes_criproxy_version}
+          criproxy_source: ${_param:kubernetes_criproxy_checksum}
+        metallb:
+          enabled: ${_param:kubernetes_metallb_enabled}
+    master:
+      kubelet:
+        fail_on_swap: ${_param:kubelet_fail_on_swap}
+      container: false
+      network:
+        genie:
+          enabled: ${_param:kubernetes_genie_enabled}
+          source: ${_param:kubernetes_genie_source}
+          source_hash: ${_param:kubernetes_genie_source_hash}
+        calico:
+          enabled: ${_param:kubernetes_calico_enabled}
+          image: ${_param:kubernetes_calico_image}
+          calicoctl_image: ${_param:kubernetes_calico_calicoctl_image}
+          cni_image: ${_param:kubernetes_calico_cni_image}
+        opencontrail:
+          enabled: ${_param:kubernetes_opencontrail_enabled}
+          cni_image: ${_param:kubernetes_contrail_cni_image}
+        sriov:
+          enabled: ${_param:kubernetes_sriov_enabled}
+          source: ${_param:kubernetes_sriov_source}
+          source_hash: ${_param:kubernetes_sriov_source_hash}
+    pool:
+      kubelet:
+        fail_on_swap: ${_param:kubelet_fail_on_swap}
+      container: false
+      network:
+        genie:
+          enabled: ${_param:kubernetes_genie_enabled}
+          source: ${_param:kubernetes_genie_source}
+          source_hash: ${_param:kubernetes_genie_source_hash}
+        calico:
+          enabled: ${_param:kubernetes_calico_enabled}
+          image: ${_param:kubernetes_calico_image}
+          calicoctl_image: ${_param:kubernetes_calico_calicoctl_image}
+          cni_image: ${_param:kubernetes_calico_cni_image}
+        opencontrail:
+          enabled: ${_param:kubernetes_opencontrail_enabled}
+          cni_image: ${_param:kubernetes_contrail_cni_image}
+        sriov:
+          enabled: ${_param:kubernetes_sriov_enabled}
+          source: ${_param:kubernetes_sriov_source}
+          source_hash: ${_param:kubernetes_sriov_source_hash}
diff --git a/kubernetes/master/cluster.yml b/kubernetes/master/cluster.yml
index 6d6b404..199537f 100644
--- a/kubernetes/master/cluster.yml
+++ b/kubernetes/master/cluster.yml
@@ -3,20 +3,10 @@
 - service.haproxy.proxy.single
 - system.haproxy.proxy.listen.kubernetes.apiserver
 - system.keepalived.cluster.instance.kube_api_server_vip
+- system.kubernetes.common
 parameters:
-  _param:
-    kubernetes_netchecker_agent_repo: mirantis
-    kubernetes_netchecker_server_repo: mirantis
-    kubernetes_netchecker_agent_image: ${_param:kubernetes_netchecker_agent_repo}/k8s-netchecker-agent:v1.2.2
-    kubernetes_netchecker_server_image: ${_param:kubernetes_netchecker_server_repo}/k8s-netchecker-server:v1.2.2
-
-    kubelet_fail_on_swap: true
-
   kubernetes:
     master:
-      kubelet:
-        fail_on_swap: ${_param:kubelet_fail_on_swap}
-      container: false
       network:
         calico:
           prometheus:
diff --git a/kubernetes/master/single.yml b/kubernetes/master/single.yml
index b4f20b0..8d75ca2 100644
--- a/kubernetes/master/single.yml
+++ b/kubernetes/master/single.yml
@@ -1,16 +1,3 @@
 classes:
 - service.kubernetes.master.single
-parameters:
-  _param:
-    kubernetes_netchecker_agent_repo: mirantis
-    kubernetes_netchecker_server_repo: mirantis
-    kubernetes_netchecker_agent_image: ${_param:kubernetes_netchecker_agent_repo}/k8s-netchecker-agent:v1.2.2
-    kubernetes_netchecker_server_image: ${_param:kubernetes_netchecker_server_repo}/k8s-netchecker-server:v1.2.2
-
-    kubelet_fail_on_swap: true
-
-  kubernetes:
-    master:
-      kubelet:
-        fail_on_swap: ${_param:kubelet_fail_on_swap}
-      container: false
+- system.kubernetes.common
diff --git a/kubernetes/pool/cluster.yml b/kubernetes/pool/cluster.yml
index 81b2d99..fca14e7 100644
--- a/kubernetes/pool/cluster.yml
+++ b/kubernetes/pool/cluster.yml
@@ -1,38 +1,10 @@
 classes:
 - service.kubernetes.pool.cluster
 - service.docker.host
+- system.kubernetes.common
 parameters:
-  _param:
-    kubernetes_calico_calicoctl_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
-    kubernetes_calico_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
-    kubernetes_calico_cni_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
-    kubernetes_hyperkube_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes
-    kubernetes_contrail_cni_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes
-    kubernetes_contrail_network_controller_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/contrail-integration
-
-    # component docker images
-    kubernetes_calico_calicoctl_image: ${_param:kubernetes_calico_calicoctl_repo}/ctl:v1.6.4
-    kubernetes_calico_image: ${_param:kubernetes_calico_repo}/node:v2.6.9
-    kubernetes_calico_cni_image: ${_param:kubernetes_calico_cni_repo}/cni:v1.11.5
-    kubernetes_hyperkube_image: ${_param:kubernetes_hyperkube_repo}/hyperkube-amd64:v1.10.4-4
-    kubernetes_pause_image: ${_param:kubernetes_hyperkube_repo}/pause-amd64:v1.10.4-4
-    kubernetes_contrail_cni_image: ${_param:kubernetes_contrail_cni_repo}/contrail-cni:v1.2.0
-    kubernetes_contrail_network_controller_image: ${_param:kubernetes_contrail_network_controller_repo}/contrail-network-controller:v1.2.0
-    kubernetes_virtlet_image: mirantis/virtlet:v1.1.0
-    kubernetes_criproxy_version: v0.11.0
-    kubernetes_criproxy_checksum: md5=115bbb0c27518db6b0b3bc8cdc5fc897
-
-    kubelet_fail_on_swap: true
-
   kubernetes:
-    common:
-      hyperkube:
-        image: ${_param:kubernetes_hyperkube_image}
-        pause_image: ${_param:kubernetes_pause_image}
     pool:
-      kubelet:
-        fail_on_swap: ${_param:kubelet_fail_on_swap}
-      container: false
       network:
         calico:
           prometheus:
diff --git a/kubernetes/pool/single.yml b/kubernetes/pool/single.yml
index a442a6b..4e8c8ab 100644
--- a/kubernetes/pool/single.yml
+++ b/kubernetes/pool/single.yml
@@ -1,38 +1,8 @@
 classes:
 - service.kubernetes.pool.single
 - service.docker.host
+- system.kubernetes.common
 parameters:
-  _param:
-    kubernetes_calico_calicoctl_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
-    kubernetes_calico_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
-    kubernetes_calico_cni_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
-    kubernetes_hyperkube_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes
-    kubernetes_contrail_cni_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes
-    kubernetes_contrail_network_controller_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/contrail-integration
-
-    # component docker images
-    kubernetes_calico_calicoctl_image: ${_param:kubernetes_calico_calicoctl_repo}/ctl:v1.6.4
-    kubernetes_calico_image: ${_param:kubernetes_calico_repo}/node:v2.6.9
-    kubernetes_calico_cni_image: ${_param:kubernetes_calico_cni_repo}/cni:v1.11.5
-    kubernetes_hyperkube_image: ${_param:kubernetes_hyperkube_repo}/hyperkube-amd64:v1.10.4-4
-    kubernetes_pause_image: ${_param:kubernetes_hyperkube_repo}/pause-amd64:v1.10.4-4
-    kubernetes_contrail_cni_image: ${_param:kubernetes_contrail_cni_repo}/contrail-cni:v1.2.0
-    kubernetes_contrail_network_controller_image: ${_param:kubernetes_contrail_network_controller_repo}/contrail-network-controller:v1.2.0
-    kubernetes_virtlet_image: mirantis/virtlet:v1.1.0
-    kubernetes_criproxy_version: v0.11.0
-    kubernetes_criproxy_checksum: md5=115bbb0c27518db6b0b3bc8cdc5fc897
-
-    kubelet_fail_on_swap: true
-
-  kubernetes:
-    common:
-      hyperkube:
-        image: ${_param:kubernetes_hyperkube_image}
-        pause_image: ${_param:kubernetes_pause_image}
-    pool:
-      kubelet:
-        fail_on_swap: ${_param:kubelet_fail_on_swap}
-      container: false
   docker:
     host:
       options:
diff --git a/linux/system/repo/glusterfs.yml b/linux/system/repo/glusterfs.yml
index fb331f0..71d3cb9 100644
--- a/linux/system/repo/glusterfs.yml
+++ b/linux/system/repo/glusterfs.yml
@@ -1,11 +1,5 @@
+classes:
+- system.linux.system.repo.mcp.apt_mirantis.glusterfs
 parameters:
   _param:
-    glusterfs_version: 3.8
-  linux:
-    system:
-      repo:
-        glusterfs-ppa:
-          source: "deb http://ppa.launchpad.net/gluster/glusterfs-${_param:glusterfs_version}/ubuntu ${_param:linux_system_codename} main"
-          architectures: amd64
-          key_id: 3FE869A9
-          key_server: keyserver.ubuntu.com
+    linux_system_repo_mcp_glusterfs_version_number: "3.8"
diff --git a/linux/system/repo/keystorage/glusterfs.yml b/linux/system/repo/keystorage/glusterfs.yml
new file mode 100644
index 0000000..0c9f046
--- /dev/null
+++ b/linux/system/repo/keystorage/glusterfs.yml
@@ -0,0 +1,37 @@
+parameters:
+  linux:
+    system:
+      repo:
+        mcp_glusterfs:
+          # Launchpad PPA for Gluster
+          # pub   4096R/3FE869A9 2014-08-15
+          key: |
+            -----BEGIN PGP PUBLIC KEY BLOCK-----
+            Version: GnuPG v1
+
+            mQINBFPtYFcBEADcQMZ9aSR1ptbaEeq/8Bzu7kipaxVGh3Wcma4Lz+QPe0ofxRf+
+            oYR22UVGmJcPnVcGFbXJ50t8BAxwtQ/TSmGdQ93bl6LORAQBZ/ud1LTr2HKpaa0F
+            1bwpi/TAgBWqP64Hu0LBGISc0G5m3/hn/bi6XxIIOzJ/L/vqLh1deVaDrYYWy5Cm
+            e8AuPtqOARKsefvVgwlpnbCtk+QaE65vgl8MXiYCaOenT07GDCq1xb7hkoVlJS4b
+            f6F3UMJVMVy4oEyYkRw4SP7ULeT1s4yrBeDzbxhFaZRJFvGpvMW3AZxfrhX/5OpZ
+            SkQiFn5/2j4eJli4/MmptAAHpGr4tLA+s6mHmA9E9c7wMfyFZe+wMhvangSDp09g
+            SSZs00bqKSnYIJ/oGRjaxCllkw4SMfTOqv8l/GOxRs12yIcZD08SSmRpoyLffrl1
+            zElyaixtAJRenphTZyq7eRLPyQl6qEDA1XtLs3ThK5/4fghMbe7MOHiMB8MwL1Rz
+            LQkl/PU08vxfum9ki/m/LP5xpJopNHZs2L47RlX2+tq6FJWbDvQwOGoFTTnxmdDf
+            4EkMhlB4N+ujZw64pSMt3c08NShxty2UWpbSbc8/e7Ps4B7Lx6eq6AmqrcUChg8c
+            9+PI2LUqj6mDbc8jxpUslvjsLU05xnq6OLv4U//pUTUz6eI8FgFadVZcoQARAQAB
+            tBlMYXVuY2hwYWQgUFBBIGZvciBHbHVzdGVyiQI4BBMBAgAiBQJT7WBXAhsDBgsJ
+            CAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAT4Bt7P+hpqZ3LEACYYC4UjxwSHouV
+            295Cxfwt9P32GcWJbFmLYtLHWVTt2vdN/M9Xb02YgVLJm/nVy2vJhqcMowSW2jO5
+            03mLq672g5mHitnIq1lh4zXcHEvP79aDRQuvkgsLEHjlk2NzYqdAsdRk3TgOLcK0
+            SRM7Cwgwd/b/gVUtPYrX1hvQKrjGJM9VZFcCMX2RmGAS0ft3QHzEAPZCgyamk0qB
+            2eo8tLZYm42iMvq+ZSxGulhzi7gJkpv/wNdaP4E6o8o7KY3JIWMmxBn8QZUKYMob
+            ze4PSBg4G4iG2ue9IrGCb8M1o+46aOSyEIc99bznF8Jrw7a8sBufVRjSZIE9A/oM
+            EtB1pTRDn9lwx/DyYbCV16DOsk6d5x4P8cqvgdaGzl7VNLvkwmMaCH0gRFIBr937
+            rEUbeSJHTqrVG0zXzSaUHEwXPZE0Lt2C9dEmMnT6nxC7FbJB1ATPDNx8kL7MvB4j
+            l5HkjrD1W9Xu2y0dzwAKlg5jvzwP46MJgvm+AYK808XhOhMZjWzzt5POeDcDhGhp
+            RSfQtAhSnRkOtKS1drMCt27hLZDEZfCp//aj7jvVL8FjamGEMfm91FLQa5LY7OoJ
+            aYoZlYUtthrXV6w5KHFjFYAKgA8tJzebTvc1Q9avCo2G5qWNZq6TSLxHEMo/g4gu
+            2aGRPRrKu9w2Ibosg4OqZ/YbXC8SjA==
+            =+Qna
+            -----END PGP PUBLIC KEY BLOCK-----
diff --git a/linux/system/repo/keystorage/saltstack_2016_3.yml b/linux/system/repo/keystorage/saltstack.yml
similarity index 100%
rename from linux/system/repo/keystorage/saltstack_2016_3.yml
rename to linux/system/repo/keystorage/saltstack.yml
diff --git a/linux/system/repo/mcp/apt_mirantis/glusterfs.yml b/linux/system/repo/mcp/apt_mirantis/glusterfs.yml
index 02f2fd9..3b2bd6d 100644
--- a/linux/system/repo/mcp/apt_mirantis/glusterfs.yml
+++ b/linux/system/repo/mcp/apt_mirantis/glusterfs.yml
@@ -1,14 +1,19 @@
+classes:
+- system.linux.system.repo.keystorage.glusterfs
 parameters:
   _param:
     apt_mk_version: stable
-    linux_system_repo_mcp_glusterfs_version: ${_param:apt_mk_version}
     linux_system_repo_mcp_glusterfs_version_number: "3.8"
+    linux_system_repo_url: http://mirror.mirantis.com/${_param:apt_mk_version}/
+    linux_system_repo_mcp_glusterfs_url: ${_param:linux_system_repo_url}/glusterfs-${_param:linux_system_repo_mcp_glusterfs_version_number}/
   linux:
     system:
       repo:
         mcp_glusterfs:
-          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_glusterfs_version}/glusterfs-${_param:linux_system_repo_mcp_glusterfs_version_number}/${_param:linux_system_codename}/ ${_param:linux_system_codename} main"
+          source: "deb ${_param:linux_system_repo_mcp_glusterfs_url}/${_param:linux_system_codename}/ ${_param:linux_system_codename} main"
           architectures: amd64
-          key_id: 3FE869A9
-          key_server: keyserver.ubuntu.com
           clean_file: true
+          pin:
+          - pin: "release o=LP-PPA-gluster-glusterfs-${_param:linux_system_repo_mcp_glusterfs_version_number}"
+            priority: 1100
+            package: '*'
diff --git a/linux/system/repo/mcp/apt_mirantis/saltstack.yml b/linux/system/repo/mcp/apt_mirantis/saltstack.yml
index 6fcd5a1..22b3bb8 100644
--- a/linux/system/repo/mcp/apt_mirantis/saltstack.yml
+++ b/linux/system/repo/mcp/apt_mirantis/saltstack.yml
@@ -1,14 +1,19 @@
+classes:
+- system.linux.system.repo.keystorage.saltstack
 parameters:
   _param:
     apt_mk_version: stable
-    salt_version: 2016.3
-    linux_system_repo_mcp_saltstack_version: ${_param:apt_mk_version}
+    salt_version: 2017.7
+    linux_system_repo_url: http://mirror.mirantis.com/${_param:apt_mk_version}/
+    linux_system_repo_mcp_saltstack_url: ${_param:linux_system_repo_url}/saltstack-${_param:salt_version}/
   linux:
     system:
       repo:
         mcp_saltstack:
-          source: "deb [arch=amd64] http://mirror.mirantis.com/${_param:linux_system_repo_mcp_saltstack_version}/saltstack-${_param:salt_version}/${_param:linux_system_codename}/ ${_param:linux_system_codename} main"
+          source: "deb [arch=amd64] ${_param:linux_system_repo_mcp_saltstack_url}/${_param:linux_system_codename}/ ${_param:linux_system_codename} main"
           architectures: amd64
-          key_id: 0E08A149DE57BFBE
-          key_server: keyserver.ubuntu.com
           clean_file: true
+          pin:
+          - pin: 'release o=SaltStack'
+            priority: 1100
+            package: '*'
diff --git a/linux/system/repo/mcp/apt_mirantis/saltstack_2016_3.yml b/linux/system/repo/mcp/apt_mirantis/saltstack_2016_3.yml
index 5d5e494..26f1a02 100644
--- a/linux/system/repo/mcp/apt_mirantis/saltstack_2016_3.yml
+++ b/linux/system/repo/mcp/apt_mirantis/saltstack_2016_3.yml
@@ -1,14 +1,6 @@
 classes:
-- system.linux.system.repo.keystorage.saltstack_2016_3
+- system.linux.system.repo.keystorage.saltstack
+- system.linux.system.repo.mcp.apt_mirantis.saltstack
 parameters:
   _param:
-    apt_mk_version: stable
-    linux_system_repo_url: http://mirror.mirantis.com/${_param:apt_mk_version}/
-    linux_system_repo_mcp_saltstack_url: ${_param:linux_system_repo_url}/saltstack-2016.3/
-  linux:
-    system:
-      repo:
-        mcp_saltstack:
-          source: "deb [arch=amd64] ${_param:linux_system_repo_mcp_saltstack_url}/${_param:linux_system_codename}/ ${_param:linux_system_codename} main"
-          architectures: amd64
-          clean_file: true
+    salt_version: 2016.3
diff --git a/linux/system/repo_local/mcp/apt_mirantis/saltstack.yml b/linux/system/repo_local/mcp/apt_mirantis/saltstack.yml
index 5b2a904..f9c8c50 100644
--- a/linux/system/repo_local/mcp/apt_mirantis/saltstack.yml
+++ b/linux/system/repo_local/mcp/apt_mirantis/saltstack.yml
@@ -1,7 +1,7 @@
 parameters:
   _param:
     apt_mk_version: stable
-    salt_version: 2016.3
+    salt_version: 2017.7
     linux_system_repo_mcp_saltstack_version: ${_param:apt_mk_version}
   linux:
     system:
@@ -14,4 +14,4 @@
           pin:
           - pin: 'release a=${_param:linux_system_repo_mcp_saltstack_version}'
             priority: 1100
-            package: '*'
\ No newline at end of file
+            package: '*'
diff --git a/maas/region/single.yml b/maas/region/single.yml
index 3fdc105..7c57d9e 100644
--- a/maas/region/single.yml
+++ b/maas/region/single.yml
@@ -4,6 +4,7 @@
 parameters:
   _param:
     maas_admin_username: mirantis
+    maas_region_main_archive: http://mirror.mirantis.com/${_param:apt_mk_version}/ubuntu/
   maas:
     cluster:
       enabled: true
@@ -28,6 +29,7 @@
         password: ${_param:maas_db_password}
         username: maas
       maas_config:
+        main_archive: ${_param:maas_region_main_archive}
         commissioning_distro_series: xenial
         default_distro_series: xenial
         default_osystem: 'ubuntu'
diff --git a/manila/common/cluster.yml b/manila/common/cluster.yml
index 8763903..d71364e 100644
--- a/manila/common/cluster.yml
+++ b/manila/common/cluster.yml
@@ -22,7 +22,7 @@
         password: ${_param:mysql_manila_password}
       identity:
         engine: keystone
-        region: RegionOne
+        region: ${_param:openstack_region}
         host: ${_param:cluster_vip_address}
         port: 35357
         user: manila
diff --git a/manila/common/single.yml b/manila/common/single.yml
index 362338f..1b139c2 100644
--- a/manila/common/single.yml
+++ b/manila/common/single.yml
@@ -20,7 +20,7 @@
         password: ${_param:mysql_manila_password}
       identity:
         engine: keystone
-        region: RegionOne
+        region: ${_param:openstack_region}
         host: ${_param:single_address}
         port: 35357
         user: manila
diff --git a/nova/compute/single.yml b/nova/compute/single.yml
index 786e792..67c329d 100644
--- a/nova/compute/single.yml
+++ b/nova/compute/single.yml
@@ -68,6 +68,7 @@
         password: ${_param:keystone_nova_password}
         tenant: service
         protocol: ${_param:cluster_internal_protocol}
+        region: ${_param:openstack_region}
       message_queue:
         engine: rabbitmq
         host: ${_param:control_address}
@@ -85,6 +86,7 @@
         host: ${_param:control_address}
         port: 9696
         protocol: ${_param:cluster_internal_protocol}
+        region: ${_param:openstack_region}
       cache:
         engine: memcached
         members:
diff --git a/nova/control/single.yml b/nova/control/single.yml
index ca21d05..07a3b01 100644
--- a/nova/control/single.yml
+++ b/nova/control/single.yml
@@ -15,7 +15,9 @@
         host: ${_param:single_address}
       identity:
         protocol: ${_param:cluster_internal_protocol}
+        region: ${_param:openstack_region}
       network:
         protocol: ${_param:cluster_internal_protocol}
+        region: ${_param:openstack_region}
       glance:
         protocol: ${_param:cluster_internal_protocol}
diff --git a/opencontrail/control/analytics4_0.yml b/opencontrail/control/analytics4_0.yml
index ee8462a..88abb7f 100644
--- a/opencontrail/control/analytics4_0.yml
+++ b/opencontrail/control/analytics4_0.yml
@@ -10,12 +10,13 @@
     opencontrail_kafka_log_cleanup_dir: '/usr/share/kafka/logs/'
     opencontrail_version: 4.0
     linux_repo_contrail_component: oc40
+    opencontrail_image_tag: latest
     opencontrail_message_queue_node01_address: ${_param:openstack_message_queue_node01_address}
     opencontrail_message_queue_node02_address: ${_param:openstack_message_queue_node02_address}
     opencontrail_message_queue_node03_address: ${_param:openstack_message_queue_node03_address}
     opencontrail_message_queue_address: ${_param:openstack_message_queue_address}
-    opencontrail_analytics_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analytics
-    opencontrail_analyticsdb_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analyticsdb
+    opencontrail_analytics_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analytics:${_param:opencontrail_image_tag}
+    opencontrail_analyticsdb_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analyticsdb:${_param:opencontrail_image_tag}
     opencontrail_analytics_container_name: opencontrail_analytics_1
     opencontrail_analyticsdb_container_name: opencontrail_analyticsdb_1
 # Temprorary fix for MOS9 packages to pin old version of kafka
@@ -84,6 +85,10 @@
               volumes:
                 - /etc/contrail:/etc/contrail
                 - /etc/redis/redis.conf:/etc/redis/redis.conf
+                - /var/log/contrail:/var/log/contrail
+                - /var/log/journal/contrail-analytics:/var/log/journal
+              env_file:
+                - contrail.env
             analyticsdb:
               image: ${_param:opencontrail_analyticsdb_image}
               container_name: ${_param:opencontrail_analyticsdb_container_name}
@@ -101,6 +106,10 @@
                 - /usr/share/kafka/logs:/usr/share/kafka/logs
                 - /etc/zookeeper/conf/zoo_analytics.cfg:/etc/zookeeper/conf/zoo.cfg
                 - /etc/zookeeper/conf/log4j.properties:/etc/zookeeper/conf/log4j.properties
+                - /var/log/contrail:/var/log/contrail
+                - /var/log/journal/contrail-analyticsdb:/var/log/journal
               network_mode: "host"
               privileged: true
               restart: always
+              env_file:
+                - contrail.env
\ No newline at end of file
diff --git a/opencontrail/control/cluster4_0.yml b/opencontrail/control/cluster4_0.yml
index 60749b3..05cf7d6 100644
--- a/opencontrail/control/cluster4_0.yml
+++ b/opencontrail/control/cluster4_0.yml
@@ -10,13 +10,14 @@
     opencontrail_kafka_log_cleanup_dir: '/usr/share/kafka/logs/'
     opencontrail_version: 4.0
     linux_repo_contrail_component: oc40
+    opencontrail_image_tag: latest
     opencontrail_message_queue_node01_address: ${_param:openstack_control_node01_address}
     opencontrail_message_queue_node02_address: ${_param:openstack_control_node02_address}
     opencontrail_message_queue_node03_address: ${_param:openstack_control_node03_address}
     opencontrail_message_queue_address: ${_param:openstack_control_address}
-    opencontrail_analytics_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analytics
-    opencontrail_analyticsdb_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analyticsdb
-    opencontrail_controller_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-controller
+    opencontrail_analytics_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analytics:${_param:opencontrail_image_tag}
+    opencontrail_analyticsdb_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analyticsdb:${_param:opencontrail_image_tag}
+    opencontrail_controller_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-controller:${_param:opencontrail_image_tag}
     opencontrail_controller_container_name: opencontrail_controller_1
     opencontrail_analytics_container_name: opencontrail_analytics_1
     opencontrail_analyticsdb_container_name: opencontrail_analyticsdb_1
@@ -145,9 +146,13 @@
                 - /etc/cassandra/logback.xml:/etc/cassandra/logback.xml
                 - /etc/zookeeper/conf/zoo.cfg:/etc/zookeeper/conf/zoo.cfg
                 - /etc/zookeeper/conf/log4j.properties:/etc/zookeeper/conf/log4j.properties
+                - /var/log/contrail:/var/log/contrail
+                - /var/log/journal/contrail-controller:/var/log/journal
               network_mode: "host"
               privileged: true
               restart: always
+              env_file:
+                - contrail.env
             analytics:
               image: ${_param:opencontrail_analytics_image}
               container_name: ${_param:opencontrail_analytics_container_name}
@@ -157,6 +162,10 @@
               volumes:
                 - /etc/contrail:/etc/contrail
                 - /etc/redis/redis.conf:/etc/redis/redis.conf
+                - /var/log/contrail:/var/log/contrail
+                - /var/log/journal/contrail-analytics:/var/log/journal
+              env_file:
+                - contrail.env
             analyticsdb:
               image: ${_param:opencontrail_analyticsdb_image}
               container_name: ${_param:opencontrail_analyticsdb_container_name}
@@ -174,6 +183,10 @@
                 - /usr/share/kafka/logs:/usr/share/kafka/logs
                 - /etc/zookeeper/conf/zoo_analytics.cfg:/etc/zookeeper/conf/zoo.cfg
                 - /etc/zookeeper/conf/log4j.properties:/etc/zookeeper/conf/log4j.properties
+                - /var/log/contrail:/var/log/contrail
+                - /var/log/journal/contrail-analyticsdb:/var/log/journal
               network_mode: "host"
               privileged: true
               restart: always
+              env_file:
+                - contrail.env
diff --git a/opencontrail/control/control4_0.yml b/opencontrail/control/control4_0.yml
index 10c72ee..932a789 100644
--- a/opencontrail/control/control4_0.yml
+++ b/opencontrail/control/control4_0.yml
@@ -7,10 +7,11 @@
   _param:
     opencontrail_version: 4.0
     linux_repo_contrail_component: oc40
+    opencontrail_image_tag: latest
     opencontrail_message_queue_node01_address: ${_param:openstack_message_queue_node01_address}
     opencontrail_message_queue_node02_address: ${_param:openstack_message_queue_node02_address}
     opencontrail_message_queue_node03_address: ${_param:openstack_message_queue_node03_address}
-    opencontrail_controller_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-controller
+    opencontrail_controller_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-controller:${_param:opencontrail_image_tag}
     opencontrail_controller_container_name: opencontrail_controller_1
     analytics_vip_address: ${_param:opencontrail_analytics_address}
   opencontrail:
@@ -106,6 +107,10 @@
                 - /etc/cassandra/logback.xml:/etc/cassandra/logback.xml
                 - /etc/zookeeper/conf/zoo.cfg:/etc/zookeeper/conf/zoo.cfg
                 - /etc/zookeeper/conf/log4j.properties:/etc/zookeeper/conf/log4j.properties
+                - /var/log/contrail:/var/log/contrail
+                - /var/log/journal/contrail-controller:/var/log/journal
               network_mode: "host"
               privileged: true
               restart: always
+              env_file:
+                - contrail.env
diff --git a/opencontrail/control/single4_0.yml b/opencontrail/control/single4_0.yml
index df551ef..4570e69 100644
--- a/opencontrail/control/single4_0.yml
+++ b/opencontrail/control/single4_0.yml
@@ -8,9 +8,10 @@
     opencontrail_kafka_log_cleanup_dir: '/usr/share/kafka/logs/'
     opencontrail_version: 4.0
     linux_repo_contrail_component: oc40
-    opencontrail_analytics_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analytics
-    opencontrail_analyticsdb_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analyticsdb
-    opencontrail_controller_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-controller
+    opencontrail_image_tag: latest
+    opencontrail_analytics_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analytics:${_param:opencontrail_image_tag}
+    opencontrail_analyticsdb_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analyticsdb:${_param:opencontrail_image_tag}
+    opencontrail_controller_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-controller:${_param:opencontrail_image_tag}
     opencontrail_controller_container_name: opencontrail_controller_1
     opencontrail_analytics_container_name: opencontrail_analytics_1
     opencontrail_analyticsdb_container_name: opencontrail_analyticsdb_1
@@ -177,9 +178,13 @@
                 - /etc/cassandra/logback.xml:/etc/cassandra/logback.xml
                 - /etc/zookeeper/conf/zoo.cfg:/etc/zookeeper/conf/zoo.cfg
                 - /etc/zookeeper/conf/log4j.properties:/etc/zookeeper/conf/log4j.properties
+                - /var/log/contrail:/var/log/contrail
+                - /var/log/journal/contrail-controller:/var/log/journal
               network_mode: "host"
               privileged: true
               restart: always
+              env_file:
+                - contrail.env
             analytics:
               image: ${_param:opencontrail_analytics_image}
               container_name: ${_param:opencontrail_analytics_container_name}
@@ -189,6 +194,10 @@
               volumes:
                 - /etc/contrail:/etc/contrail
                 - /etc/redis/redis.conf:/etc/redis/redis.conf
+                - /var/log/contrail:/var/log/contrail
+                - /var/log/journal/contrail-analytics:/var/log/journal
+              env_file:
+                - contrail.env
             analyticsdb:
               image: ${_param:opencontrail_analyticsdb_image}
               container_name: ${_param:opencontrail_analyticsdb_container_name}
@@ -206,6 +215,10 @@
                 - /usr/share/kafka/logs:/usr/share/kafka/logs
                 - /etc/zookeeper/conf/zoo_analytics.cfg:/etc/zookeeper/conf/zoo.cfg
                 - /etc/zookeeper/conf/log4j.properties:/etc/zookeeper/conf/log4j.properties
+                - /var/log/contrail:/var/log/contrail
+                - /var/log/journal/contrail-analyticsdb:/var/log/journal
               network_mode: "host"
               privileged: true
               restart: always
+              env_file:
+                - contrail.env
diff --git a/openssh/server/team/members/oshyshko.yml b/openssh/server/team/members/oshyshko.yml
new file mode 100644
index 0000000..8d9fea0
--- /dev/null
+++ b/openssh/server/team/members/oshyshko.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        oshyshko:
+          enabled: true
+          name: oshyshko
+          sudo: ${_param:linux_system_user_sudo}
+          full_name: Oleksandr Shyshko
+          home: /home/oshyshko
+          email: oshyshko@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        oshyshko:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDHWGXkftochjnkEYF/2SqPp69zmy7pLICG9+DQjgGd6D8uX3lSqftKePqlIJLGn5ZfTpgVI5lIKO36Men95e6hixrlMeEdL2WCNx1yRGr3m1U+dZn3VGg35tqX1sV9eq+6+P8zkOoliCtc4GFbUB9Z683oJyiwtym/40t8qOAZwm4tvaQJ8fMhhnFk/agCN+V5B4hP0blgWpbodnStluiWr1Y6wT1IjCjwImYqTI5MyVlMTQKGewIj2u7eI8Qwtk0j44exjIa8HvN6RL430TTlzav8QrId+xRUBRnAZUpCd7s8Q75WjctCLAn2xGMkupqf4ANml6KP84hEVea9d/V oshyshko@oshyshko-pc
+          user: ${linux:system:user:oshyshko}
diff --git a/openssh/server/team/members/sgarbuz.yml b/openssh/server/team/members/sgarbuz.yml
new file mode 100644
index 0000000..324d5b3
--- /dev/null
+++ b/openssh/server/team/members/sgarbuz.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        sgarbuz:
+          enabled: true
+          name: sgarbuz
+          sudo: ${_param:linux_system_user_sudo}
+          full_name: Serhii Garbuz
+          home: /home/sgarbuz
+          email: sgarbuz@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        sgarbuz:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKDwmQ8Zf6X4Ztu7MDaggm6Y2/hpf8Y7gQFcfqX0q84a9OZLw5jLgqTXewKW+0LPAsF7Gx0K7G9mFtcvXb5B74cbLg8SnETMET6t6fipOOVVu17/2N5RFGJ0Alwia0WQCDmGv6yYRB63NgFcavvcD8AEQ2LTlGIU8zPclq1j2kOJNLzH0xVsOiUTdEeUk8mOMBqSHQxVCZeyBBpkLHeECiM7AzsVtCWo1R+Sdo82BHs4+Ig9SOhIjLstBXS9DSjS6gzTOQLvCoGjB2P8spllSX0QtPXXNZndKfrj1YWht5O456ILTCocT8F/OGehy+7QL4+iq7JWBXn7ZamO+l8ceH sgarbuz@sgarbuz-pc
+          user: ${linux:system:user:sgarbuz}
diff --git a/openssh/server/team/oscore_devops.yml b/openssh/server/team/oscore_devops.yml
index 2404c31..f629d9e 100644
--- a/openssh/server/team/oscore_devops.yml
+++ b/openssh/server/team/oscore_devops.yml
@@ -9,6 +9,8 @@
 - system.openssh.server.team.members.ohryhorov
 - system.openssh.server.team.members.ogrudev
 - system.openssh.server.team.members.kkushaev
+- system.openssh.server.team.members.sgarbuz
+- system.openssh.server.team.members.oshyshko
 parameters:
   _param:
     linux_system_user_sudo: true
diff --git a/prometheus/gainsight/query/openstack.yml b/prometheus/gainsight/query/openstack.yml
new file mode 100644
index 0000000..9215d2e
--- /dev/null
+++ b/prometheus/gainsight/query/openstack.yml
@@ -0,0 +1,19 @@
+parameters:
+  prometheus:
+    gainsight:
+      queries:
+        vcpu_used: "'vCPU Used','sum(avg_over_time(openstack_nova_used_vcpus[24h]))'"
+        vcpu_free: "'vCPU Free','sum(avg_over_time(openstack_nova_free_vcpus[24h]))'"
+        vstorge_used: "'vStorage Used','sum(avg_over_time(openstack_nova_used_disk[24h]))'"
+        vstorage_free: "'vStorage Free','sum(avg_over_time(openstack_nova_free_disk[24h]))'"
+        vram_used: "'vRAM Used','sum(avg_over_time(openstack_nova_used_ram[24h]))'"
+        vram_free: "'vRAM Free','sum(avg_over_time(openstack_nova_free_ram[24h]))'"
+        instances: "'Instances','sum(avg_over_time(openstack_nova_instances[24h]))'"
+        compute_nodes: "'Compute Nodes','sum(openstack_nova_services{service=~\"nova.compute\"})'"
+        tenants: "'Tenants','sum(avg_over_time(openstack_keystone_tenants_total[24h]))'"
+        cinder_api: "'Cinder API','avg(avg_over_time(openstack_api_check_status{service=\"cinderv2\"}[24h]))'"
+        nova_api: "'Nova API','avg(avg_over_time(openstack_api_check_status{service=\"nova\"}[24h]))'"
+        keystone_api: "'Keystone API','avg(avg_over_time(openstack_api_check_status{service=\"keystone\"}[24h]))'"
+        glance_api: "'Glance API','avg(avg_over_time(openstack_api_check_status{service=\"glance\"}[24h]))'"
+        keystone_api: "'Keystone API','avg(avg_over_time(openstack_api_check_status{service=\"keystone\"}[24h]))'"
+        neutron_api: "'Neutron API','avg(avg_over_time(openstack_api_check_status{service=\"neutron\"}[24h]))'"
diff --git a/prometheus/pushgateway/container.yml b/prometheus/pushgateway/container.yml
index d0e986e..e4e9cd7 100644
--- a/prometheus/pushgateway/container.yml
+++ b/prometheus/pushgateway/container.yml
@@ -1,2 +1,3 @@
 classes:
 - service.prometheus.pushgateway.container
+- system.prometheus.pushgateway
diff --git a/prometheus/pushgateway/init.yml b/prometheus/pushgateway/init.yml
new file mode 100644
index 0000000..a906807
--- /dev/null
+++ b/prometheus/pushgateway/init.yml
@@ -0,0 +1,7 @@
+parameters:
+  _param:
+    prometheus_pushgateway_data_directory: /opt/pushgateway/data
+  prometheus:
+    pushgateway:
+      dir:
+        data: /srv/volumes/local/pushgateway/data
diff --git a/rabbitmq/server/vhost/openstack/ha_for_all_queues.yml b/rabbitmq/server/vhost/openstack/ha_for_all_queues.yml
new file mode 100644
index 0000000..040a8ed
--- /dev/null
+++ b/rabbitmq/server/vhost/openstack/ha_for_all_queues.yml
@@ -0,0 +1,10 @@
+parameters:
+  rabbitmq:
+    server:
+      host:
+        '/openstack':
+          policies:
+          - name: ha-all
+            pattern: '.'
+            definition: '{"ha-mode":"all", "ha-sync-mode":"automatic"}'
+            priority: 0
diff --git a/rabbitmq/server/vhost/openstack/ha_for_all_queues_except_telemetry.yml b/rabbitmq/server/vhost/openstack/ha_for_all_queues_except_telemetry.yml
new file mode 100644
index 0000000..a2eef5b
--- /dev/null
+++ b/rabbitmq/server/vhost/openstack/ha_for_all_queues_except_telemetry.yml
@@ -0,0 +1,10 @@
+parameters:
+  rabbitmq:
+    server:
+      host:
+        '/openstack':
+          policies:
+          - name: ha-all-except-notif
+            pattern: '^((?!(alarm|alarming|event|metering|notifications)\.).)*$'
+            definition: '{"ha-mode":"all", "ha-sync-mode":"automatic"}'
+            priority: 0
diff --git a/rabbitmq/server/vhost/openstack/ha_for_telemetry_queues.yml b/rabbitmq/server/vhost/openstack/ha_for_telemetry_queues.yml
new file mode 100644
index 0000000..d456072
--- /dev/null
+++ b/rabbitmq/server/vhost/openstack/ha_for_telemetry_queues.yml
@@ -0,0 +1,10 @@
+parameters:
+  rabbitmq:
+    server:
+      host:
+        '/openstack':
+          policies:
+          - name: ha-notif
+            pattern: '^(alarm|alarming|event|metering|notifications)\.'
+            definition: '{"ha-mode":"all", "ha-sync-mode":"automatic"}'
+            priority: 0
diff --git a/rabbitmq/server/vhost/openstack/rpc_ha.yml b/rabbitmq/server/vhost/openstack/rpc_ha.yml
new file mode 100644
index 0000000..a3c461d
--- /dev/null
+++ b/rabbitmq/server/vhost/openstack/rpc_ha.yml
@@ -0,0 +1,22 @@
+parameters:
+  rabbitmq:
+    server:
+      host:
+        '/openstack':
+          policies:
+          - name: heat_engine_rpc_expire
+            pattern: '^heat-engine-listener\.'
+            definition: '{"expires":3600000, "ha-mode":"all", "ha-sync-mode":"automatic"}'
+            priority: 1
+          - name: heat_worker_rpc_expire
+            pattern: '^engine_worker\.'
+            definition: '{"expires":3600000, "ha-mode":"all", "ha-sync-mode":"automatic"}'
+            priority: 1
+          - name: results_expire
+            pattern: '^results\.'
+            definition: '{"expires":3600000, "ha-mode":"all", "ha-sync-mode":"automatic"}'
+            priority: 1
+          - name: tasks_expire
+            pattern: '^tasks\.'
+            definition: '{"expires":3600000, "ha-mode":"all", "ha-sync-mode":"automatic"}'
+            priority: 1
diff --git a/rabbitmq/server/vhost/openstack/without_rpc_ha.yml b/rabbitmq/server/vhost/openstack/without_rpc_ha.yml
new file mode 100644
index 0000000..4b35c32
--- /dev/null
+++ b/rabbitmq/server/vhost/openstack/without_rpc_ha.yml
@@ -0,0 +1,22 @@
+parameters:
+  rabbitmq:
+    server:
+      host:
+        '/openstack':
+          policies:
+          - name: heat_engine_rpc_expire
+            pattern: '^heat-engine-listener\.'
+            definition: '{"expires":3600000}'
+            priority: 1
+          - name: heat_worker_rpc_expire
+            pattern: '^engine_worker\.'
+            definition: '{"expires":3600000}'
+            priority: 1
+          - name: results_expire
+            pattern: '^results\.'
+            definition: '{"expires":3600000}'
+            priority: 1
+          - name: tasks_expire
+            pattern: '^tasks\.'
+            definition: '{"expires":3600000}'
+            priority: 1
diff --git a/salt/control/sizes/cicd/compact.yml b/salt/control/sizes/cicd/compact.yml
new file mode 100644
index 0000000..65ad7b7
--- /dev/null
+++ b/salt/control/sizes/cicd/compact.yml
@@ -0,0 +1,6 @@
+parameters:
+  _param:
+    salt_control_size_cpu_cicd_control: 8
+    salt_control_size_ram_cicd_control: 12288
+    salt_control_size_disk_profile_cicd_control: large
+    salt_control_size_net_profile_cicd_control: default
\ No newline at end of file
diff --git a/salt/control/sizes/cicd/large.yml b/salt/control/sizes/cicd/large.yml
new file mode 100644
index 0000000..deb3722
--- /dev/null
+++ b/salt/control/sizes/cicd/large.yml
@@ -0,0 +1,6 @@
+parameters:
+  _param:
+    salt_control_size_cpu_cicd_control: 8
+    salt_control_size_ram_cicd_control: 32768
+    salt_control_size_disk_profile_cicd_control: xxxlarge
+    salt_control_size_net_profile_cicd_control: default
\ No newline at end of file
diff --git a/salt/control/sizes/cicd/medium.yml b/salt/control/sizes/cicd/medium.yml
new file mode 100644
index 0000000..2ef4866
--- /dev/null
+++ b/salt/control/sizes/cicd/medium.yml
@@ -0,0 +1,6 @@
+parameters:
+  _param:
+    salt_control_size_cpu_cicd_control: 8
+    salt_control_size_ram_cicd_control: 32768
+    salt_control_size_disk_profile_cicd_control: xxlarge
+    salt_control_size_net_profile_cicd_control: default
\ No newline at end of file
diff --git a/salt/control/sizes/cicd/minimal.yml b/salt/control/sizes/cicd/minimal.yml
new file mode 100644
index 0000000..876578b
--- /dev/null
+++ b/salt/control/sizes/cicd/minimal.yml
@@ -0,0 +1,6 @@
+parameters:
+  _param:
+    salt_control_size_cpu_cicd_control: 8
+    salt_control_size_ram_cicd_control: 8192
+    salt_control_size_disk_profile_cicd_control: small
+    salt_control_size_net_profile_cicd_control: default
\ No newline at end of file
diff --git a/salt/control/sizes/cicd/small.yml b/salt/control/sizes/cicd/small.yml
new file mode 100644
index 0000000..2ef4866
--- /dev/null
+++ b/salt/control/sizes/cicd/small.yml
@@ -0,0 +1,6 @@
+parameters:
+  _param:
+    salt_control_size_cpu_cicd_control: 8
+    salt_control_size_ram_cicd_control: 32768
+    salt_control_size_disk_profile_cicd_control: xxlarge
+    salt_control_size_net_profile_cicd_control: default
\ No newline at end of file
diff --git a/salt/control/sizes/opencontrail/compact.yml b/salt/control/sizes/opencontrail/compact.yml
new file mode 100644
index 0000000..5e70d89
--- /dev/null
+++ b/salt/control/sizes/opencontrail/compact.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    salt_control_size_cpu_opencontrail_control: 8
+    salt_control_size_ram_opencontrail_control: 32768
+    salt_control_size_disk_profile_opencontrail_control: small
+    salt_control_size_net_profile_opencontrail_control: default
+    salt_control_size_cpu_opencontrail_analytics: 8
+    salt_control_size_ram_opencontrail_analytics: 32768
+    salt_control_size_disk_profile_opencontrail_analytics: large
+    salt_control_size_net_profile_opencontrail_analytics: default
\ No newline at end of file
diff --git a/salt/control/sizes/opencontrail/large.yml b/salt/control/sizes/opencontrail/large.yml
new file mode 100644
index 0000000..3af75d7
--- /dev/null
+++ b/salt/control/sizes/opencontrail/large.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    salt_control_size_cpu_opencontrail_control: 16
+    salt_control_size_ram_opencontrail_control: 65536
+    salt_control_size_disk_profile_opencontrail_control: large
+    salt_control_size_net_profile_opencontrail_control: default
+    salt_control_size_cpu_opencontrail_analytics: 24
+    salt_control_size_ram_opencontrail_analytics: 131072
+    salt_control_size_disk_profile_opencontrail_analytics: xxhuge
+    salt_control_size_net_profile_opencontrail_analytics: default
\ No newline at end of file
diff --git a/salt/control/sizes/opencontrail/medium.yml b/salt/control/sizes/opencontrail/medium.yml
new file mode 100644
index 0000000..410092c
--- /dev/null
+++ b/salt/control/sizes/opencontrail/medium.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    salt_control_size_cpu_opencontrail_control: 8
+    salt_control_size_ram_opencontrail_control: 65536
+    salt_control_size_disk_profile_opencontrail_control: large
+    salt_control_size_net_profile_opencontrail_control: default
+    salt_control_size_cpu_opencontrail_analytics: 16
+    salt_control_size_ram_opencontrail_analytics: 98304
+    salt_control_size_disk_profile_opencontrail_analytics: xhuge
+    salt_control_size_net_profile_opencontrail_analytics: default
\ No newline at end of file
diff --git a/salt/control/sizes/opencontrail/minimal.yml b/salt/control/sizes/opencontrail/minimal.yml
new file mode 100644
index 0000000..ad80ca9
--- /dev/null
+++ b/salt/control/sizes/opencontrail/minimal.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    salt_control_size_cpu_opencontrail_control: 8
+    salt_control_size_ram_opencontrail_control: 12288
+    salt_control_size_disk_profile_opencontrail_control: small
+    salt_control_size_net_profile_opencontrail_control: default
+    salt_control_size_cpu_opencontrail_analytics: 12
+    salt_control_size_ram_opencontrail_analytics: 8192
+    salt_control_size_disk_profile_opencontrail_analytics: medium
+    salt_control_size_net_profile_opencontrail_analytics: default
\ No newline at end of file
diff --git a/salt/control/sizes/opencontrail/small.yml b/salt/control/sizes/opencontrail/small.yml
new file mode 100644
index 0000000..5e70d89
--- /dev/null
+++ b/salt/control/sizes/opencontrail/small.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    salt_control_size_cpu_opencontrail_control: 8
+    salt_control_size_ram_opencontrail_control: 32768
+    salt_control_size_disk_profile_opencontrail_control: small
+    salt_control_size_net_profile_opencontrail_control: default
+    salt_control_size_cpu_opencontrail_analytics: 8
+    salt_control_size_ram_opencontrail_analytics: 32768
+    salt_control_size_disk_profile_opencontrail_analytics: large
+    salt_control_size_net_profile_opencontrail_analytics: default
\ No newline at end of file
diff --git a/salt/control/sizes/openstack/compact.yml b/salt/control/sizes/openstack/compact.yml
new file mode 100644
index 0000000..16e5dba
--- /dev/null
+++ b/salt/control/sizes/openstack/compact.yml
@@ -0,0 +1,22 @@
+parameters:
+  _param:
+    salt_control_size_cpu_openstack_control: 8
+    salt_control_size_ram_openstack_control: 32768
+    salt_control_size_disk_profile_openstack_control: small
+    salt_control_size_net_profile_openstack_control: default
+    salt_control_size_cpu_openstack_database: 8
+    salt_control_size_ram_openstack_database: 16384
+    salt_control_size_disk_profile_openstack_database: large
+    salt_control_size_net_profile_openstack_database: default
+    salt_control_size_cpu_openstack_message_queue: 8
+    salt_control_size_ram_openstack_message_queue: 32768
+    salt_control_size_disk_profile_openstack_message_queue: small
+    salt_control_size_net_profile_openstack_message_queue: default
+    salt_control_size_cpu_openstack_proxy: 4
+    salt_control_size_ram_openstack_proxy: 8192
+    salt_control_size_disk_profile_openstack_proxy: small
+    salt_control_size_net_profile_openstack_proxy: default
+    salt_control_size_cpu_openstack_upgrade: 8
+    salt_control_size_ram_openstack_upgrade: 16384
+    salt_control_size_disk_profile_openstack_upgrade: medium
+    salt_control_size_net_profile_openstack_upgrade: default
\ No newline at end of file
diff --git a/salt/control/sizes/openstack/large.yml b/salt/control/sizes/openstack/large.yml
new file mode 100644
index 0000000..04aa0c4
--- /dev/null
+++ b/salt/control/sizes/openstack/large.yml
@@ -0,0 +1,22 @@
+parameters:
+  _param:
+    salt_control_size_cpu_openstack_control: 24
+    salt_control_size_ram_openstack_control: 131072
+    salt_control_size_disk_profile_openstack_control: large
+    salt_control_size_net_profile_openstack_control: default
+    salt_control_size_cpu_openstack_database: 24
+    salt_control_size_ram_openstack_database: 65536
+    salt_control_size_disk_profile_openstack_database: huge
+    salt_control_size_net_profile_openstack_database: default
+    salt_control_size_cpu_openstack_message_queue: 32
+    salt_control_size_ram_openstack_message_queue: 200704
+    salt_control_size_disk_profile_openstack_message_queue: large
+    salt_control_size_net_profile_openstack_message_queue: default
+    salt_control_size_cpu_openstack_proxy: 8
+    salt_control_size_ram_openstack_proxy: 32768
+    salt_control_size_disk_profile_openstack_proxy: large
+    salt_control_size_net_profile_openstack_proxy: default
+    salt_control_size_cpu_openstack_upgrade: 8
+    salt_control_size_ram_openstack_upgrade: 16384
+    salt_control_size_disk_profile_openstack_upgrade: medium
+    salt_control_size_net_profile_openstack_upgrade: default
\ No newline at end of file
diff --git a/salt/control/sizes/openstack/medium.yml b/salt/control/sizes/openstack/medium.yml
new file mode 100644
index 0000000..7fa5d24
--- /dev/null
+++ b/salt/control/sizes/openstack/medium.yml
@@ -0,0 +1,22 @@
+parameters:
+  _param:
+    salt_control_size_cpu_openstack_control: 16
+    salt_control_size_ram_openstack_control: 65536
+    salt_control_size_disk_profile_openstack_control: large
+    salt_control_size_net_profile_openstack_control: default
+    salt_control_size_cpu_openstack_database: 8
+    salt_control_size_ram_openstack_database: 32786
+    salt_control_size_disk_profile_openstack_database: large
+    salt_control_size_net_profile_openstack_database: default
+    salt_control_size_cpu_openstack_message_queue: 16
+    salt_control_size_ram_openstack_message_queue: 66553
+    salt_control_size_disk_profile_openstack_message_queue: large
+    salt_control_size_net_profile_openstack_message_queue: default
+    salt_control_size_cpu_openstack_proxy: 4
+    salt_control_size_ram_openstack_proxy: 16384
+    salt_control_size_disk_profile_openstack_proxy: small
+    salt_control_size_net_profile_openstack_proxy: default
+    salt_control_size_cpu_openstack_upgrade: 8
+    salt_control_size_ram_openstack_upgrade: 16384
+    salt_control_size_disk_profile_openstack_upgrade: medium
+    salt_control_size_net_profile_openstack_upgrade: default
\ No newline at end of file
diff --git a/salt/control/sizes/openstack/minimal.yml b/salt/control/sizes/openstack/minimal.yml
new file mode 100644
index 0000000..bee7c71
--- /dev/null
+++ b/salt/control/sizes/openstack/minimal.yml
@@ -0,0 +1,22 @@
+parameters:
+  _param:
+    salt_control_size_cpu_openstack_control: 8
+    salt_control_size_ram_openstack_control: 12288
+    salt_control_size_disk_profile_openstack_control: small
+    salt_control_size_net_profile_openstack_control: default
+    salt_control_size_cpu_openstack_database: 6
+    salt_control_size_ram_openstack_database: 8192
+    salt_control_size_disk_profile_openstack_database: medium
+    salt_control_size_net_profile_openstack_database: default
+    salt_control_size_cpu_openstack_message_queue: 6
+    salt_control_size_ram_openstack_message_queue: 8192
+    salt_control_size_disk_profile_openstack_message_queue: small
+    salt_control_size_net_profile_openstack_message_queue: default
+    salt_control_size_cpu_openstack_proxy: 4
+    salt_control_size_ram_openstack_proxy: 6144
+    salt_control_size_disk_profile_openstack_proxy: small
+    salt_control_size_net_profile_openstack_proxy: default
+    salt_control_size_cpu_openstack_upgrade: 8
+    salt_control_size_ram_openstack_upgrade: 16384
+    salt_control_size_disk_profile_openstack_upgrade: medium
+    salt_control_size_net_profile_openstack_upgrade: default
\ No newline at end of file
diff --git a/salt/control/sizes/openstack/small.yml b/salt/control/sizes/openstack/small.yml
new file mode 100644
index 0000000..9f820d6
--- /dev/null
+++ b/salt/control/sizes/openstack/small.yml
@@ -0,0 +1,22 @@
+parameters:
+  _param:
+    salt_control_size_cpu_openstack_control: 8
+    salt_control_size_ram_openstack_control: 32768
+    salt_control_size_disk_profile_openstack_control: large
+    salt_control_size_net_profile_openstack_control: default
+    salt_control_size_cpu_openstack_database: 8
+    salt_control_size_ram_openstack_database: 16384
+    salt_control_size_disk_profile_openstack_database: large
+    salt_control_size_net_profile_openstack_database: default
+    salt_control_size_cpu_openstack_message_queue: 8
+    salt_control_size_ram_openstack_message_queue: 65536
+    salt_control_size_disk_profile_openstack_message_queue: xxlarge
+    salt_control_size_net_profile_openstack_message_queue: default
+    salt_control_size_cpu_openstack_proxy: 4
+    salt_control_size_ram_openstack_proxy: 8192
+    salt_control_size_disk_profile_openstack_proxy: small
+    salt_control_size_net_profile_openstack_proxy: default
+    salt_control_size_cpu_openstack_upgrade: 8
+    salt_control_size_ram_openstack_upgrade: 16384
+    salt_control_size_disk_profile_openstack_upgrade: medium
+    salt_control_size_net_profile_openstack_upgrade: default
\ No newline at end of file
diff --git a/salt/control/sizes/stacklight/compact.yml b/salt/control/sizes/stacklight/compact.yml
new file mode 100644
index 0000000..8d67466
--- /dev/null
+++ b/salt/control/sizes/stacklight/compact.yml
@@ -0,0 +1,14 @@
+parameters:
+  _param:
+    salt_control_size_cpu_stacklight_log: 4
+    salt_control_size_ram_stacklight_log: 8192
+    salt_control_size_disk_profile_stacklight_log: xxxlarge
+    salt_control_size_net_profile_stacklight_log: default
+    salt_control_size_cpu_stacklight_server: 4
+    salt_control_size_ram_stacklight_server: 8192
+    salt_control_size_disk_profile_stacklight_server: xxlarge
+    salt_control_size_net_profile_stacklight_server: default
+    salt_control_size_cpu_stacklight_telemetry: 4
+    salt_control_size_ram_stacklight_telemetry: 8192
+    salt_control_size_disk_profile_stacklight_telemetry: xxlarge
+    salt_control_size_net_profile_stacklight_telemetry: default
\ No newline at end of file
diff --git a/salt/control/sizes/stacklight/large.yml b/salt/control/sizes/stacklight/large.yml
new file mode 100644
index 0000000..6e2463f
--- /dev/null
+++ b/salt/control/sizes/stacklight/large.yml
@@ -0,0 +1,14 @@
+parameters:
+  _param:
+    salt_control_size_cpu_stacklight_log: 16
+    salt_control_size_ram_stacklight_log: 49152
+    salt_control_size_disk_profile_stacklight_log: xxxxhuge
+    salt_control_size_net_profile_stacklight_log: default
+    salt_control_size_cpu_stacklight_server: 24
+    salt_control_size_ram_stacklight_server: 262144
+    salt_control_size_disk_profile_stacklight_server: huge
+    salt_control_size_net_profile_stacklight_server: default
+    salt_control_size_cpu_stacklight_telemetry: 16
+    salt_control_size_ram_stacklight_telemetry: 200704
+    salt_control_size_disk_profile_stacklight_telemetry: xxhuge
+    salt_control_size_net_profile_stacklight_telemetry: default
\ No newline at end of file
diff --git a/salt/control/sizes/stacklight/medium.yml b/salt/control/sizes/stacklight/medium.yml
new file mode 100644
index 0000000..6207f48
--- /dev/null
+++ b/salt/control/sizes/stacklight/medium.yml
@@ -0,0 +1,14 @@
+parameters:
+  _param:
+    salt_control_size_cpu_stacklight_log: 16
+    salt_control_size_ram_stacklight_log: 49152
+    salt_control_size_disk_profile_stacklight_log: xxhuge
+    salt_control_size_net_profile_stacklight_log: default
+    salt_control_size_cpu_stacklight_server: 12
+    salt_control_size_ram_stacklight_server: 65536
+    salt_control_size_disk_profile_stacklight_server: xxlarge
+    salt_control_size_net_profile_stacklight_server: default
+    salt_control_size_cpu_stacklight_telemetry: 12
+    salt_control_size_ram_stacklight_telemetry: 98304
+    salt_control_size_disk_profile_stacklight_telemetry: xhuge
+    salt_control_size_net_profile_stacklight_telemetry: default
\ No newline at end of file
diff --git a/salt/control/sizes/stacklight/minimal.yml b/salt/control/sizes/stacklight/minimal.yml
new file mode 100644
index 0000000..8d5c935
--- /dev/null
+++ b/salt/control/sizes/stacklight/minimal.yml
@@ -0,0 +1,14 @@
+parameters:
+  _param:
+    salt_control_size_cpu_stacklight_log: 4
+    salt_control_size_ram_stacklight_log: 4096
+    salt_control_size_disk_profile_stacklight_log: medium
+    salt_control_size_net_profile_stacklight_log: default
+    salt_control_size_cpu_stacklight_server: 4
+    salt_control_size_ram_stacklight_server: 6144
+    salt_control_size_disk_profile_stacklight_server: small
+    salt_control_size_net_profile_stacklight_server: default
+    salt_control_size_cpu_stacklight_telemetry: 4
+    salt_control_size_ram_stacklight_telemetry: 4096
+    salt_control_size_disk_profile_stacklight_telemetry: medium
+    salt_control_size_net_profile_stacklight_telemetry: default
\ No newline at end of file
diff --git a/salt/control/sizes/stacklight/small.yml b/salt/control/sizes/stacklight/small.yml
new file mode 100644
index 0000000..293e14d
--- /dev/null
+++ b/salt/control/sizes/stacklight/small.yml
@@ -0,0 +1,14 @@
+parameters:
+  _param:
+    salt_control_size_cpu_stacklight_log: 12
+    salt_control_size_ram_stacklight_log: 49152
+    salt_control_size_disk_profile_stacklight_log: xhuge
+    salt_control_size_net_profile_stacklight_log: default
+    salt_control_size_cpu_stacklight_server: 12
+    salt_control_size_ram_stacklight_server: 65536
+    salt_control_size_disk_profile_stacklight_server: xxlarge
+    salt_control_size_net_profile_stacklight_server: default
+    salt_control_size_cpu_stacklight_telemetry: 12
+    salt_control_size_ram_stacklight_telemetry: 65536
+    salt_control_size_disk_profile_stacklight_telemetry: xxxlarge
+    salt_control_size_net_profile_stacklight_telemetry: default
\ No newline at end of file
diff --git a/salt/control/virt.yml b/salt/control/virt.yml
index aea524c..0bbb7fa 100644
--- a/salt/control/virt.yml
+++ b/salt/control/virt.yml
@@ -57,3 +57,9 @@
       xxhuge:
         - system:
             size: 3000000
+      xxxhuge:
+        - system:
+            size: 4000000
+      xxxxhuge:
+        - system:
+            size: 5000000
\ No newline at end of file
diff --git a/salt/master/formula/git/auditd.yml b/salt/master/formula/git/auditd.yml
new file mode 100644
index 0000000..f88c0f9
--- /dev/null
+++ b/salt/master/formula/git/auditd.yml
@@ -0,0 +1,10 @@
+parameters:
+  salt:
+    master:
+      environment:
+        dev:
+          formula:
+            auditd:
+              source: git
+              address: '${_param:salt_master_environment_repository}/salt-formula-auditd.git'
+              revision: ${_param:salt_master_environment_revision}
diff --git a/salt/master/formula/pkg/auditd.yml b/salt/master/formula/pkg/auditd.yml
new file mode 100644
index 0000000..b81c419
--- /dev/null
+++ b/salt/master/formula/pkg/auditd.yml
@@ -0,0 +1,9 @@
+parameters:
+  salt:
+    master:
+      environment:
+        prd:
+          formula:
+            auditd:
+              source: pkg
+              name: salt-formula-auditd