Merge "Add 2way sync for salt-formulas/auditd"
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/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/jenkins/client/job/deploy/update/kubernetes_update.yml b/jenkins/client/job/deploy/update/kubernetes_update.yml
new file mode 100644
index 0000000..09f0166
--- /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"
+    hyperkube_repo:  "${_param:kubernetes_hyperkube_repo}"
+  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: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: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/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
index e847166..82107a3 100644
--- a/kubernetes/common.yml
+++ b/kubernetes/common.yml
@@ -11,10 +11,11 @@
     kubernetes_virtlet_repo: mirantis
     kubernetes_kubedns_repo: gcr.io/google_containers
     kubernetes_externaldns_repo: mirantis
-    kubernetes_genie_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
@@ -35,12 +36,15 @@
     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_image: ${_param:kubernetes_genie_repo}/cnigenie:v1.0-124-ge4298f1
+    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
@@ -70,6 +74,10 @@
       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}
@@ -106,7 +114,8 @@
       network:
         genie:
           enabled: ${_param:kubernetes_genie_enabled}
-          image: ${_param:kubernetes_genie_image}
+          source: ${_param:kubernetes_genie_source}
+          source_hash: ${_param:kubernetes_genie_source_hash}
         calico:
           enabled: ${_param:kubernetes_calico_enabled}
           image: ${_param:kubernetes_calico_image}
@@ -126,7 +135,8 @@
       network:
         genie:
           enabled: ${_param:kubernetes_genie_enabled}
-          image: ${_param:kubernetes_genie_image}
+          source: ${_param:kubernetes_genie_source}
+          source_hash: ${_param:kubernetes_genie_source_hash}
         calico:
           enabled: ${_param:kubernetes_calico_enabled}
           image: ${_param:kubernetes_calico_image}
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}