Merge "add Multiarch jobs for policy-pap with docker.io repository"
diff --git a/jenkins-config/clouds/openstack/cattle/centos7-builder-2c-1g.cfg b/jenkins-config/clouds/openstack/cattle/centos7-builder-2c-1g.cfg
index a542419..a5b4bd9 100644
--- a/jenkins-config/clouds/openstack/cattle/centos7-builder-2c-1g.cfg
+++ b/jenkins-config/clouds/openstack/cattle/centos7-builder-2c-1g.cfg
@@ -1,3 +1,3 @@
-IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20190926-155906.553
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20200224-191258.235
 LABELS=centos7-builder-2c-1g
 HARDWARE_ID=v2-highcpu-2
diff --git a/jenkins-config/clouds/openstack/cattle/centos7-builder-4c-4g.cfg b/jenkins-config/clouds/openstack/cattle/centos7-builder-4c-4g.cfg
index c583dd8..209cb0e 100644
--- a/jenkins-config/clouds/openstack/cattle/centos7-builder-4c-4g.cfg
+++ b/jenkins-config/clouds/openstack/cattle/centos7-builder-4c-4g.cfg
@@ -1,3 +1,3 @@
-IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20190926-155906.553
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20200224-191258.235
 LABELS=centos7-builder-4c-4g
 HARDWARE_ID=v2-highcpu-4
diff --git a/jenkins-config/clouds/openstack/cattle/centos7-docker-8c-8g.cfg b/jenkins-config/clouds/openstack/cattle/centos7-docker-8c-8g.cfg
index 1829cfe..edbfd34 100644
--- a/jenkins-config/clouds/openstack/cattle/centos7-docker-8c-8g.cfg
+++ b/jenkins-config/clouds/openstack/cattle/centos7-docker-8c-8g.cfg
@@ -1,3 +1,3 @@
-IMAGE_NAME=ZZCI - CentOS 7 - docker - x86_64 - 20190926-164302.295
+IMAGE_NAME=ZZCI - CentOS 7 - docker - x86_64 - 20200224-195343.324
 LABELS=centos7-docker-8c-8g
 HARDWARE_ID=v2-highcpu-8
diff --git a/jenkins-config/clouds/openstack/cattle/queue-docker-4c-4g.cfg b/jenkins-config/clouds/openstack/cattle/queue-docker-4c-4g.cfg
index 75014db..37a375a 100644
--- a/jenkins-config/clouds/openstack/cattle/queue-docker-4c-4g.cfg
+++ b/jenkins-config/clouds/openstack/cattle/queue-docker-4c-4g.cfg
@@ -1,4 +1,4 @@
-IMAGE_NAME=ZZCI - Ubuntu 16.04 - docker - x86_64 - 20190925-220639.261
+IMAGE_NAME=ZZCI - Ubuntu 18.04 - docker - x86_64 - 20200220-113128.675
 LABELS=queue-docker-4c-4g
 HARDWARE_ID=v2-highcpu-4
 INSTANCE_CAP=1
diff --git a/jenkins-config/clouds/openstack/cattle/ubuntu1604-docker-arm64-4c-2g.cfg b/jenkins-config/clouds/openstack/cattle/ubuntu1604-docker-arm64-4c-2g.cfg
index 12bbf4d..b04a0a5 100644
--- a/jenkins-config/clouds/openstack/cattle/ubuntu1604-docker-arm64-4c-2g.cfg
+++ b/jenkins-config/clouds/openstack/cattle/ubuntu1604-docker-arm64-4c-2g.cfg
@@ -1,3 +1,3 @@
-IMAGE_NAME=ZZCI - Ubuntu 16.04 - docker - arm64 - 20191018-215136.301
+IMAGE_NAME=ZZCI - Ubuntu 16.04 - docker - arm64 - 20200305-202810.251
 LABELS=ubuntu1604-docker-arm64-4c-2g
 HARDWARE_ID=lf-standard-2
diff --git a/jenkins-config/clouds/openstack/cattle/ubuntu1604-docker-arm64-4c-4g.cfg b/jenkins-config/clouds/openstack/cattle/ubuntu1604-docker-arm64-4c-4g.cfg
index 037e042..440c37d 100644
--- a/jenkins-config/clouds/openstack/cattle/ubuntu1604-docker-arm64-4c-4g.cfg
+++ b/jenkins-config/clouds/openstack/cattle/ubuntu1604-docker-arm64-4c-4g.cfg
@@ -1,3 +1,3 @@
-IMAGE_NAME=ZZCI - Ubuntu 16.04 - docker - arm64 - 20191018-215136.301
+IMAGE_NAME=ZZCI - Ubuntu 16.04 - docker - arm64 - 20200305-202810.251
 LABELS=ubuntu1604-docker-arm64-4c-4g
 HARDWARE_ID=lf-standard-4
diff --git a/jjb/ccsdk/apps.yaml b/jjb/ccsdk/apps.yaml
index 8a97a17..8b2ec47 100644
--- a/jjb/ccsdk/apps.yaml
+++ b/jjb/ccsdk/apps.yaml
@@ -30,6 +30,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-apps-settings'
     # due to a strange macro / variable translation problem this needs to be
     # passed as a string block to properly get the properties correctly defined
@@ -72,6 +74,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-apps-settings'
     maven-version: "mvn35"
     build-node: ubuntu1604-builder-4c-4g
diff --git a/jjb/ccsdk/cds.yaml b/jjb/ccsdk/cds.yaml
index 91fb432..d8395ba 100644
--- a/jjb/ccsdk/cds.yaml
+++ b/jjb/ccsdk/cds.yaml
@@ -26,6 +26,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-cds-settings'
     # due to a strange macro / variable translation problem this needs to be
     # passed as a string block to properly get the properties correctly defined
@@ -68,6 +70,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-cds-settings'
     maven-version: "mvn35"
     build-node: ubuntu1604-builder-4c-4g
diff --git a/jjb/ccsdk/distribution.yaml b/jjb/ccsdk/distribution.yaml
index eab7aa8..b9cd8fa 100644
--- a/jjb/ccsdk/distribution.yaml
+++ b/jjb/ccsdk/distribution.yaml
@@ -25,6 +25,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-distribution-settings'
     files: '**'
     archive-artifacts: ''
@@ -63,6 +65,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-distribution-settings'
     build-node: ubuntu1604-docker-8c-8g
 
diff --git a/jjb/ccsdk/features.yaml b/jjb/ccsdk/features.yaml
index fc8b655..0a0120e 100644
--- a/jjb/ccsdk/features.yaml
+++ b/jjb/ccsdk/features.yaml
@@ -17,6 +17,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-features-settings'
     # due to a strange macro / variable translation problem this needs to be
     # passed as a string block to properly get the properties correctly defined
@@ -60,6 +62,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-features-settings'
     maven-version: "mvn35"
     build-node: ubuntu1604-builder-4c-4g
diff --git a/jjb/ccsdk/parent.yaml b/jjb/ccsdk/parent.yaml
index 4a73968..a29b096 100644
--- a/jjb/ccsdk/parent.yaml
+++ b/jjb/ccsdk/parent.yaml
@@ -19,6 +19,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-parent-settings'
     # due to a strange macro / variable translation problem this needs to be
     # passed as a string block to properly get the properties correctly defined
@@ -39,6 +41,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-parent-settings'
     maven-version: "mvn35"
     build-node: ubuntu1604-builder-4c-4g
diff --git a/jjb/ccsdk/sli-adaptors.yaml b/jjb/ccsdk/sli-adaptors.yaml
index 8db8e3e..8b65dc8 100644
--- a/jjb/ccsdk/sli-adaptors.yaml
+++ b/jjb/ccsdk/sli-adaptors.yaml
@@ -20,6 +20,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-sli-adaptors-settings'
     # due to a strange macro / variable translation problem this needs to be
     # passed as a string block to properly get the properties correctly defined
@@ -62,6 +64,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-sli-adaptors-settings'
     maven-version: "mvn35"
     build-node: ubuntu1604-builder-4c-4g
diff --git a/jjb/ccsdk/sli-core.yaml b/jjb/ccsdk/sli-core.yaml
index f4996b9..946a4fb 100644
--- a/jjb/ccsdk/sli-core.yaml
+++ b/jjb/ccsdk/sli-core.yaml
@@ -20,6 +20,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-sli-core-settings'
     # due to a strange macro / variable translation problem this needs to be
     # passed as a string block to properly get the properties correctly defined
@@ -62,6 +64,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-sli-core-settings'
     maven-version: "mvn35"
     build-node: ubuntu1604-builder-4c-4g
diff --git a/jjb/ccsdk/sli-northbound.yaml b/jjb/ccsdk/sli-northbound.yaml
index ebe19d4..8cd692b 100644
--- a/jjb/ccsdk/sli-northbound.yaml
+++ b/jjb/ccsdk/sli-northbound.yaml
@@ -20,6 +20,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-sli-northbound-settings'
     # due to a strange macro / variable translation problem this needs to be
     # passed as a string block to properly get the properties correctly defined
@@ -62,6 +64,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-sli-northbound-settings'
     maven-version: "mvn35"
     build-node: ubuntu1604-builder-4c-4g
diff --git a/jjb/ccsdk/sli-plugins.yaml b/jjb/ccsdk/sli-plugins.yaml
index c631f64..aec06db 100644
--- a/jjb/ccsdk/sli-plugins.yaml
+++ b/jjb/ccsdk/sli-plugins.yaml
@@ -20,6 +20,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-sli-plugins-settings'
     # due to a strange macro / variable translation problem this needs to be
     # passed as a string block to properly get the properties correctly defined
@@ -62,6 +64,8 @@
     stream:
       - 'master':
           branch: 'master'
+      - 'frankfurt':
+          branch: 'frankfurt'
     mvn-settings: 'ccsdk-sli-plugins-settings'
     maven-version: "mvn35"
 
diff --git a/jjb/dcaegen2/dcaegen2-platform-docker-python-subprojects.yaml b/jjb/dcaegen2/dcaegen2-platform-docker-python-subprojects.yaml
index 847f052..685582e 100644
--- a/jjb/dcaegen2/dcaegen2-platform-docker-python-subprojects.yaml
+++ b/jjb/dcaegen2/dcaegen2-platform-docker-python-subprojects.yaml
@@ -61,8 +61,11 @@
           cron: '@daily'
           stream: master
           branch: master
-      - gerrit-release-verify
-      - gerrit-release-merge
+          sonarcloud: true
+          sonarcloud-project-organization: '{sonarcloud_project_organization}'
+          sonarcloud-api-token: '{sonarcloud_api_token}'
+          sonarcloud-project-key: '{sonarcloud_project_organization}_{project-name}'
+
 
 - project:
     name: dcaegen2-platform-docker-python-subprojects
diff --git a/jjb/dcaegen2/dcaegen2-platform-mod-bpgenerator.yaml b/jjb/dcaegen2/dcaegen2-platform-mod-bpgenerator.yaml
index 1c29e04..855be90 100644
--- a/jjb/dcaegen2/dcaegen2-platform-mod-bpgenerator.yaml
+++ b/jjb/dcaegen2/dcaegen2-platform-mod-bpgenerator.yaml
@@ -6,9 +6,6 @@
     jobs:
       - '{project-name}-{stream}-{subproject}-verify-java'
       - '{project-name}-{stream}-{subproject}-merge-java'
-      - '{project-name}-gerrit-release-jobs':
-          build-node: centos7-docker-8c-8g
-          project-name: dcaegen2-platform-mod-bpgenerator
       - gerrit-maven-stage:
           project-name: dcaegen2-platform-mod-bpgenerator
           sign-artifacts: true
diff --git a/jjb/dcaegen2/dcaegen2-platform-mod-designtool.yaml b/jjb/dcaegen2/dcaegen2-platform-mod-designtool.yaml
index 4cced95..2402dd0 100644
--- a/jjb/dcaegen2/dcaegen2-platform-mod-designtool.yaml
+++ b/jjb/dcaegen2/dcaegen2-platform-mod-designtool.yaml
@@ -8,9 +8,6 @@
       - '{project-name}-{stream}-{subproject}-verify-java'
       - '{project-name}-{stream}-{subproject}-merge-java':
           mvn-goals: 'clean install'
-      - '{project-name}-gerrit-release-jobs':
-          build-node: centos7-docker-8c-8g
-          project-name: dcaegen2-platform-mod-designtool
     subproject:
       - designtool:
           pom: 'mod/designtool/pom.xml'
diff --git a/jjb/dcaegen2/dcaegen2-platform-mod-genprocessor.yaml b/jjb/dcaegen2/dcaegen2-platform-mod-genprocessor.yaml
index 513df2f..f3ad499 100644
--- a/jjb/dcaegen2/dcaegen2-platform-mod-genprocessor.yaml
+++ b/jjb/dcaegen2/dcaegen2-platform-mod-genprocessor.yaml
@@ -8,9 +8,6 @@
       - '{project-name}-{stream}-{subproject}-verify-java'
       - '{project-name}-{stream}-{subproject}-merge-java':
           mvn-goals: 'clean install'
-      - '{project-name}-gerrit-release-jobs':
-          build-node: centos7-docker-8c-8g
-          project-name: dcaegen2-platform-mod-genprocessor
     subproject:
       - genprocessor:
           pom: 'mod/genprocessor/pom.xml'
diff --git a/jjb/dcaegen2/dcaegen2-platform-mod-runtimeapi.yaml b/jjb/dcaegen2/dcaegen2-platform-mod-runtimeapi.yaml
index ed11903..cdfd3c6 100644
--- a/jjb/dcaegen2/dcaegen2-platform-mod-runtimeapi.yaml
+++ b/jjb/dcaegen2/dcaegen2-platform-mod-runtimeapi.yaml
@@ -8,9 +8,6 @@
       - '{project-name}-{stream}-{subproject}-verify-java'
       - '{project-name}-{stream}-{subproject}-merge-java':
           mvn-goals: 'clean install'
-      - '{project-name}-gerrit-release-jobs':
-          build-node: centos7-docker-8c-8g
-          project-name: dcaegen2-platform-mod-runtimeapi
     subproject:
       - runtimeapi:
           pom: 'mod/runtimeapi/pom.xml'
diff --git a/jjb/dcaegen2/dcaegen2-platform-oti-eventproc.yaml b/jjb/dcaegen2/dcaegen2-platform-oti-eventproc.yaml
index e5825be..c38e1c8 100644
--- a/jjb/dcaegen2/dcaegen2-platform-oti-eventproc.yaml
+++ b/jjb/dcaegen2/dcaegen2-platform-oti-eventproc.yaml
@@ -8,10 +8,6 @@
       - '{project-name}-{stream}-{subproject}-verify-java'
       - '{project-name}-{stream}-{subproject}-merge-java':
           mvn-goals: 'clean install'
-      - '{project-name}-gerrit-release-jobs':
-          build-node: centos7-docker-8c-8g
-          project-name: dcaegen2-platform-oti-event-proc
-
     subproject:
       - eventproc:
           pom: 'oti/event-proc/pom.xml'
diff --git a/jjb/dcaegen2/dcaegen2-platform.yaml b/jjb/dcaegen2/dcaegen2-platform.yaml
index fa8af0d..23d22ed 100644
--- a/jjb/dcaegen2/dcaegen2-platform.yaml
+++ b/jjb/dcaegen2/dcaegen2-platform.yaml
@@ -7,3 +7,13 @@
     build-node: centos7-builder-2c-1g
     project: dcaegen2/platform
     branch: master
+
+- project:
+    name: dcaegen2-platform-release
+    project-name: dcaegen2-platform
+    mvn-settings: dcaegen2-platform-settings
+    jobs:
+      - '{project-name}-gerrit-release-jobs'
+    build-node: centos7-docker-8c-8g
+    project: dcaegen2/platform
+    branch: master
diff --git a/jjb/dcaegen2/dcaegen2-services-bbs-eventprocessor-java.yaml b/jjb/dcaegen2/dcaegen2-services-bbs-eventprocessor-java.yaml
index d2487dd..a3fd2ed 100644
--- a/jjb/dcaegen2/dcaegen2-services-bbs-eventprocessor-java.yaml
+++ b/jjb/dcaegen2/dcaegen2-services-bbs-eventprocessor-java.yaml
@@ -7,9 +7,6 @@
       - '{project-name}-{stream}-{subproject}-verify-java'
       - '{project-name}-{stream}-{subproject}-merge-java':
           mvn-goals: 'clean install'
-      - '{project-name}-gerrit-release-jobs':
-          build-node: centos7-docker-8c-8g
-          project-name: dcaegen2-services-bbs-event-processor
     subproject:
       - 'bbs-event-processor':
           pom: 'components/bbs-event-processor/pom.xml'
@@ -17,12 +14,14 @@
     stream:
       - 'master':
           branch: 'master'
+          java-version: openjdk11
     mvn-settings: 'dcaegen2-services-settings'
+    maven-version: 'mvn35'
     maven-deploy-properties: |
       deployAtEnd=true
     files: '**'
     archive-artifacts: ''
-    build-node: 'ubuntu1604-docker-8c-8g'
+    build-node: 'ubuntu1804-docker-8c-8g'
 
 - project:
     name: dcaegen2-services-bbs-event-processor-release
@@ -39,7 +38,7 @@
           mvn-goals: 'clean deploy -Ddockerfile.skip -f components/bbs-event-processor/pom.xml'
           pattern: 'components/bbs-event-processor/**'
       - gerrit-maven-docker-stage:
-          build-node: ubuntu1604-docker-8c-8g
+          build-node: ubuntu1804-docker-8c-8g
           mvn-goals: 'clean package dockerfile:build dockerfile:push -f components/bbs-event-processor/pom.xml'
           container-public-registry: 'nexus3.onap.org:10001'
           container-staging-registry: 'nexus3.onap.org:10003'
@@ -48,15 +47,17 @@
     stream:
       - 'master':
           branch: 'master'
+          java-version: openjdk11
     mvn-settings: 'dcaegen2-services-settings'
     maven-deploy-properties: |
       deployAtEnd=true
     files: '**'
     archive-artifacts: ''
-    build-node: 'ubuntu1604-docker-8c-8g'
+    build-node: 'ubuntu1804-docker-8c-8g'
 
 - project:
     name: dcaegen2-services-bbs-event-processor-sonar
+    java-version: openjdk11
     jobs:
       - gerrit-maven-sonar
     sonarcloud: true
@@ -76,10 +77,11 @@
 
 - project:
     name: dcaegen2-services-bbs-event-processor-clm
+    java-version: openjdk11
     jobs:
       - gerrit-maven-clm
     nexus-iq-namespace: 'onap-'
-    build-node: ubuntu1604-docker-8c-8g
+    build-node: ubuntu1804-docker-8c-8g
     project: 'dcaegen2/services'
     project-name: 'dcaegen2-services-bbs-event-processor-clm'
     mvn-params: '-f components/bbs-event-processor/pom.xml'
diff --git a/jjb/dcaegen2/dcaegen2-services-datalake-handler.yaml b/jjb/dcaegen2/dcaegen2-services-datalake-handler.yaml
index a119ef9..c8e76d9 100644
--- a/jjb/dcaegen2/dcaegen2-services-datalake-handler.yaml
+++ b/jjb/dcaegen2/dcaegen2-services-datalake-handler.yaml
@@ -6,9 +6,6 @@
     jobs:
       - '{project-name}-{stream}-{subproject}-verify-java'
       - '{project-name}-{stream}-{subproject}-merge-java'
-      - '{project-name}-gerrit-release-jobs':
-          build-node: centos7-docker-8c-8g
-
     subproject:
       - 'datalake-handler':
           pom: 'components/datalake-handler/pom.xml'
@@ -42,6 +39,8 @@
           container-public-registry: 'nexus3.onap.org:10001'
           container-staging-registry: 'nexus3.onap.org:10003'
           pattern: 'components/datalake-handler/**'
+      - '{project-name}-gerrit-release-jobs':
+          build-node: centos7-docker-8c-8g
     stream:
       - 'master':
          branch: 'master'
@@ -71,6 +70,8 @@
           container-public-registry: 'nexus3.onap.org:10001'
           container-staging-registry: 'nexus3.onap.org:10003'
           pattern: 'components/datalake-handler/**'
+      - '{project-name}-gerrit-release-jobs':
+          build-node: centos7-docker-8c-8g
     stream:
       - 'master':
          branch: 'master'
@@ -96,10 +97,12 @@
           pattern: 'components/datalake-handler/**'
       - gerrit-maven-docker-stage:
           build-node: ubuntu1604-docker-8c-8g
-          mvn-goals: 'clean package dockerfile:build dockerfile:push -f components/datalake-handler/packages/init_db/pom.xml'
+          mvn-goals: 'clean package dockerfile:build dockerfile:push -f components/datalake-handler/init_db/pom.xml'
           container-public-registry: 'nexus3.onap.org:10001'
           container-staging-registry: 'nexus3.onap.org:10003'
           pattern: 'components/datalake-handler/**'
+      - '{project-name}-gerrit-release-jobs':
+          build-node: centos7-docker-8c-8g
     stream:
       - 'master':
          branch: 'master'
diff --git a/jjb/dcaegen2/dcaegen2-services-docker-python-subprojects.yaml b/jjb/dcaegen2/dcaegen2-services-docker-python-subprojects.yaml
new file mode 100644
index 0000000..be95546
--- /dev/null
+++ b/jjb/dcaegen2/dcaegen2-services-docker-python-subprojects.yaml
@@ -0,0 +1,89 @@
+---
+- job-group:
+    # This job group contains all the jobs that should be deployed for
+    # a subproject of dcaegen2/services that builds a Docker image from
+    # Python code.
+    #
+    # Required parameters:
+    #  build-node: The node to run build on.
+    #  mvn-settings: Maven settings.xml file containing credentials to use.
+    #  project-name: The job name prefix
+    #  src-dir: The subdirectory of the repository containing subproject code
+    #  stream: The stream to build
+    #  branch: The branch to build
+    #
+    #  Note: Multiple subprojects can be built with a single JJB project
+    #  by specifying the value of project-name as a list.
+    #  Similarly, multiple streams can be built with a single JJB project
+    #  by specifying the value of the stream as a list.
+    #  For example:
+    #    project-name:
+    #      - subproject-name1:
+    #          src-dir: subproject-dir1
+    #          docker-name: onap/org.onap.dcaegen2.services.something.name1
+    #      - subproject-name2:
+    #          src-dir: subproject-dir2
+    #          docker-name: onap/org.onap.dcaegen2.services.something.name2
+    #      - subproject-name3:
+    #          src-dir: subproject-dir3
+    #          docker-name: onap/org.onap.dcaegen2.services.something.name3
+    #    stream:
+    #      - master:
+    #          branch: master
+    #      - release1:
+    #          branch: release1.0
+    #    jobs:
+    #      - dcaegen2-docker-python-jobs
+
+    name: '{project-name}-docker-python-jobs'
+    id: dcaegen2-services-docker-python-jobs
+    container-tag-method: latest
+    docker-get-container-tag-script: '../../shell/docker-ts-tag-override.sh'
+    nexus-iq-namespace: 'onap-'
+    tox-dir: '{src-dir}'
+    tox-envs: 'py3'
+    sonarcloud: true
+    sonarcloud-project-organization: '{sonarcloud_project_organization}'
+    sonarcloud-api-token: '{sonarcloud_api_token}'
+    sonarcloud-project-key: '{sonarcloud_project_organization}_{project-name}'
+    python-version: python3
+    wss-product-name: '{project-name}'
+    docker-root: '{src-dir}'
+    gerrit_trigger_file_paths:
+      - compare-type: REG_EXP
+        pattern: '{src-dir}/.*'
+    jobs:
+      - gerrit-tox-verify:
+          stream: master
+          branch: 'master'
+      - gerrit-docker-verify
+      - gerrit-docker-merge
+      - gerrit-whitesource-scan:
+          build-timeout: 120
+          submodule-timeout: 30
+          java-opts: '-Xmx2048m'
+          mvn-pom: '{src-dir}/pom.xml'
+      - gerrit-tox-sonar:
+          # workaround because gerrit-tox-sonar doesn't support mvn-params/opts
+          sonar-mvn-goal: '-f {src-dir}/pom.xml sonar:sonar'
+          cron: '@daily'
+          stream: master
+          branch: master
+
+- project:
+    name: dcaegen2-services-docker-python-subprojects
+    project: dcaegen2/services
+    mvn-settings: dcaegen2-services-settings
+    build-node: ubuntu1804-docker-8c-8g
+    project-name:
+      - dcaegen2-services-pmsh:
+          src-dir: components/pm-subscription-handler
+          docker-name: onap/org.onap.dcaegen2.services.pmsh
+    stream:
+      - master:
+          branch: master
+    views:
+      - project-view:
+          project-name: dcaegen2-services-pmsh
+    jobs:
+      - dcaegen2-services-docker-python-jobs
diff --git a/jjb/dcaegen2/dcaegen2-services-pm-subscription-handler-csit.yaml b/jjb/dcaegen2/dcaegen2-services-pm-subscription-handler-csit.yaml
index 20dcad4..a6bc305 100644
--- a/jjb/dcaegen2/dcaegen2-services-pm-subscription-handler-csit.yaml
+++ b/jjb/dcaegen2/dcaegen2-services-pm-subscription-handler-csit.yaml
@@ -11,5 +11,5 @@
     functionality:
       - 'testsuite':
           trigger_jobs:
-            - '{project-name}-{stream}-release-version-java-daily'
+            - '{project-name}-docker-merge-master'
     robot-options: ''
diff --git a/jjb/dcaegen2/dcaegen2-services-pm-subscription-handler.yaml b/jjb/dcaegen2/dcaegen2-services-pm-subscription-handler.yaml
deleted file mode 100644
index f3c24bf..0000000
--- a/jjb/dcaegen2/dcaegen2-services-pm-subscription-handler.yaml
+++ /dev/null
@@ -1,83 +0,0 @@
----
-- dcaegen2_services_common: &dcaegen2_services_common
-    # values apply to all dcaegen2_services docker projects
-    name: dcaegen2-services-docker-common
-    project: dcaegen2/services
-    # maven settings file has docker credentials
-    mvn-settings: dcaegen2-services-settings
-    # use host network to clone from our gerrit
-    container-tag-method: latest
-    build-node: ubuntu1604-docker-8c-8g
-    # jenkins job name prefix
-    project-name: '{name}'
-    tox-dir: '{docker-root}'
-    # build only on relevant changes
-    gerrit_trigger_file_paths:
-      - compare-type: REG_EXP
-        pattern: '{docker-root}/.*'
-
-- project:
-    <<: *dcaegen2_services_common
-    name: dcaegen2-services-pmsh
-    # root of docker build
-    docker-root: components/pm-subscription-handler
-    # tag override
-    # Following is dependent on merge https://gerrit.onap.org/r/#/c/ci-management/+/99313/
-    # docker-get-container-tag-script: '../../shell/docker-ts-tag-override.sh'
-    # image name
-    docker-name: 'onap/{name}'
-    stream:
-      - master:
-            branch: master
-    jobs:
-      - gerrit-docker-verify
-      - gerrit-docker-merge
-
-- project:
-    <<: *dcaegen2_services_common
-    name: dcaegen2-services-pmsh-verify
-    docker-root: components/pm-subscription-handler
-    stream:
-      - all:
-            branch: '*'
-    jobs:
-      - gerrit-tox-verify
-
-- project:
-    <<: *dcaegen2_services_common
-    name: dcaegen2-services-pmsh-sonar
-    docker-root: components/pm-subscription-handler
-    cron: '@daily'
-    branch: master
-    jobs:
-      - gerrit-tox-sonar:
-          sonar-mvn-goal: '-f components/pm-subscription-handler sonar:sonar'
-
-
-- project:
-    <<: *dcaegen2_services_common
-    docker-root: components/pm-subscription-handler
-    name: dcaegen2-services-pmsh-release
-    project-name: dcaegen2-services-pmsh-release
-    jobs:
-      - '{project-name}-gerrit-release-jobs':
-              build-node: centos7-docker-8c-8g
-    stream:
-      - 'master':
-          branch: master
-    maven-deploy-properties: |
-      deployAtEnd=true
-    files: '**'
-    archive-artifacts: ''
-
-- project:
-    <<: *dcaegen2_services_common
-    name: dcaegen2-services-pmsh-clm
-    docker-root: components/pm-subscription-handler
-    jobs:
-      - gerrit-maven-clm
-    nexus-iq-namespace: 'onap-'
-    project-name: 'dcaegen2-services-pmsh-clm'
-    mvn-params: '-f components/pm-subscription-handler/pom.xml'
-    branch: 'master'
-
diff --git a/jjb/dcaegen2/dcaegen2-services.yaml b/jjb/dcaegen2/dcaegen2-services.yaml
index 81bcd8a..4ff813e 100644
--- a/jjb/dcaegen2/dcaegen2-services.yaml
+++ b/jjb/dcaegen2/dcaegen2-services.yaml
@@ -7,3 +7,12 @@
     build-node: centos7-builder-2c-1g
     project: dcaegen2/services
     branch: master
+- project:
+    name: dcaegen2-services-release
+    project-name: dcaegen2-services
+    mvn-settings: dcaegen2-services-settings
+    jobs:
+      - '{project-name}-gerrit-release-jobs'
+    build-node: centos7-docker-8c-8g
+    project: dcaegen2/services
+    branch: master
diff --git a/jjb/integration/integration-templates.yaml b/jjb/integration/integration-templates.yaml
index 0adfae7..0cf19bc 100644
--- a/jjb/integration/integration-templates.yaml
+++ b/jjb/integration/integration-templates.yaml
@@ -43,3 +43,56 @@
 
     publishers:
       - lf-infra-publish
+
+- job-template:
+    # Job template for running linters against specific file formats
+    #
+    # Required Variables:
+    #     python-version: Python version to deploy in venv
+    #     tox-env:        Tox environments to run
+    #     tox-dir:        Directory containing the project's tox.ini
+    #     pattern:        List of file patterns to scan
+
+    name: '{project-name}-{stream}-{subproject}-lint'
+    project-type: freestyle
+    description: 'Job intended for running linters with Tox and Coala'
+    node: ubuntu1604-builder-2c-1g
+
+    parameters:
+      - lf-infra-parameters:
+          project: '{project}'
+          stream: '{stream}'
+          branch: '{branch}'
+      - lf-infra-tox-parameters:
+          tox-dir: '{tox-dir}'
+          tox-envs: '{tox-envs}'
+
+    properties:
+      - infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
+
+    scm:
+      - gerrit-trigger-scm:
+          refspec: '$GERRIT_REFSPEC'
+          choosing-strategy: 'gerrit'
+          submodule-recursive: '{submodule-recursive}'
+
+    wrappers:
+      - infra-wrappers:
+          build-timeout: '{build-timeout}'
+
+    triggers:
+      - gerrit-trigger-patch-submitted:
+          server: '{server-name}'
+          project: '{project}'
+          branch: '{branch}'
+          files: '{pattern}'
+
+    builders:
+      - lf-infra-tox-install:
+          python-version: '{python-version}'
+      - lf-infra-tox-run:
+          parallel: 'false'
+
+    publishers:
+      - lf-infra-publish
diff --git a/jjb/integration/integration.yaml b/jjb/integration/integration.yaml
index 453dc75..8d4d52e 100644
--- a/jjb/integration/integration.yaml
+++ b/jjb/integration/integration.yaml
@@ -36,11 +36,9 @@
     name: integration-verify-vagrantfile
     project-name: 'integration'
     project: 'integration'
-
     stream:
       - 'master':
           branch: 'master'
-
     jobs:
       - '{project-name}-{stream}-verify-vagrantfile'
 
@@ -65,3 +63,44 @@
         set -ex # Fail build if any setup step fails
         cd test/security/k8s
         make test
+
+- project:
+    name: integration-netconf-pnp-simulator
+    project: integration
+    stream:
+      - 'master':
+          branch: 'master'
+    # Required by verifier
+    mvn-settings: 'integration-settings'
+    project-name: 'integration-netconf-pnp-simulator'
+    gerrit_trigger_file_paths:
+      - compare-type: ANT
+        pattern: 'test/mocks/netconf-pnp-simulator/engine/**'
+    docker-name: 'onap/integration/simulators/netconf-pnp-simulator'
+    docker-root: test/mocks/netconf-pnp-simulator/engine
+    container-tag-method: yaml-file
+    build-node: centos7-docker-8c-8g
+    build-timeout: 20
+    jobs:
+      - gerrit-docker-verify
+      - gerrit-docker-merge
+
+- project:
+    name: integration-linters
+    project: 'integration'
+    project-name: 'integration'
+    python-version: python3
+    jobs:
+      - '{project-name}-{stream}-{subproject}-lint'
+    subproject:
+      - 'yaml':
+          tox-dir: '.'
+          tox-envs: 'yaml'
+          pattern: '**/*.yaml|**/*.yml'
+      - 'json':
+          tox-dir: '.'
+          tox-envs: 'json'
+          pattern: '**/*.json'
+    stream:
+      - 'master':
+          branch: 'master'
diff --git a/jjb/logging-analytics/logging-analytics.yaml b/jjb/logging-analytics/logging-analytics.yaml
index 62947a0..6e6b289 100644
--- a/jjb/logging-analytics/logging-analytics.yaml
+++ b/jjb/logging-analytics/logging-analytics.yaml
@@ -81,7 +81,7 @@
     stream:
       - 'master':
           branch: 'master'
-    build-node: ubuntu1604-builder-4c-4g
+    build-node: centos7-builder-4c-4g
     mvn-settings: 'logging-analytics-settings'
     subproject:
       - 'pylog':
diff --git a/jjb/multicloud/multicloud-openstack.yaml b/jjb/multicloud/multicloud-openstack.yaml
index f588024..1bdc5b9 100644
--- a/jjb/multicloud/multicloud-openstack.yaml
+++ b/jjb/multicloud/multicloud-openstack.yaml
@@ -65,7 +65,7 @@
           build-node: centos7-builder-4c-4g
           maven-versions-plugin: true
       - gerrit-maven-docker-stage:
-          build-node: ubuntu1604-docker-8c-8g
+          build-node: centos7-docker-8c-8g
           maven-goals: install
           mvn-params: '-P docker'
           maven-versions-plugin: true
@@ -75,7 +75,7 @@
           build-node: centos7-docker-8c-8g
     files: '**'
     archive-artifacts: ''
-    build-node: 'ubuntu1604-memcached-4c-4g'
+    build-node: 'centos7-builder-4c-4g'
 
 #- project:
 #    name: multicloud-openstack-arm64
diff --git a/jjb/optf/optf-osdf.yaml b/jjb/optf/optf-osdf.yaml
index 830ac93..b4884b7 100644
--- a/jjb/optf/optf-osdf.yaml
+++ b/jjb/optf/optf-osdf.yaml
@@ -17,9 +17,9 @@
           pom: 'pom.xml'
     jobs:
       - '{project-name}-{stream}-{subproject}-verify-python':
-          build-node: ubuntu1604-builder-4c-4g
+          build-node: ubuntu1804-builder-4c-4g
       - '{project-name}-{stream}-{subproject}-merge-java':
-          build-node: ubuntu1604-docker-8c-8g
+          build-node: ubuntu1804-docker-8c-8g
       - gerrit-maven-stage:
           sign-artifacts: true
           build-node: centos7-docker-8c-8g
@@ -27,12 +27,11 @@
       - '{project-name}-gerrit-release-jobs':
           build-node: centos7-docker-8c-8g
       - gerrit-maven-docker-stage:
-          build-node: ubuntu1604-docker-8c-8g
+          build-node: ubuntu1804-docker-8c-8g
           maven-versions-plugin: true
           container-public-registry: 'nexus3.onap.org:10001'
           container-staging-registry: 'nexus3.onap.org:10003'
           docker-pom: 'pom.xml'
-          mvn-goals: 'install'
           mvn-params: '-Dmaven.test.skip=true -P docker'
 
     files: '**'
@@ -40,37 +39,6 @@
     build-node: 'ubuntu1604-builder-4c-4g'
 
 - project:
-    name: optf-osdf-docker
-    project-name: 'optf-osdf'
-    project: 'optf/osdf'
-    stream:
-      - 'master':
-          branch: 'master'
-      - 'elalto':
-          branch: 'elalto'
-    mvn-settings: 'optf-osdf-settings'
-    subproject:
-      - 'osdf':
-          path: '.'
-          pattern: '**'
-          pom: 'pom.xml'
-    jobs:
-      - '{project-name}-{stream}-{subproject}-docker-java-version-shell-daily':
-          docker-pom: 'pom.xml'
-          mvn-goals: 'install'
-          mvn-params: '-Dmaven.test.skip=true'
-          script:
-            !include-raw-escape: 'build-optf-osdf-docker-image.sh'
-          build-node: queue-docker-4c-4g
-      - '{project-name}-{stream}-{subproject}-docker-java-shell-daily':
-          docker-pom: 'pom.xml'
-          mvn-goals: 'install'
-          mvn-params: '-Dmaven.test.skip=true'
-          script:
-            !include-raw-escape: 'build-optf-osdf-docker-image.sh'
-          build-node: queue-docker-4c-4g
-
-- project:
     name: optf-osdf-sonar
     jobs:
       - gerrit-maven-sonar
diff --git a/jjb/policy/policy-csit.yaml b/jjb/policy/policy-csit.yaml
index ef02a1d..38759ff 100644
--- a/jjb/policy/policy-csit.yaml
+++ b/jjb/policy/policy-csit.yaml
@@ -1,23 +1,4 @@
 - project:
-    name: policy-health-csit
-    jobs:
-      - '{project-name}-{stream}-verify-csit-{functionality}'
-      - '{project-name}-{stream}-csit-{functionality}'
-    project-name: 'policy'
-    java-version: openjdk11
-    stream:
-      - 'master':
-          branch: master
-    functionality:
-      - 'health'
-    trigger_jobs:
-      - 'policy-engine-{stream}-merge-java'
-      - 'policy-drools-pdp-{stream}-merge-java'
-      - 'policy-drools-applications-{stream}-merge-java'
-    robot-options: ''
-    build-timeout: 40
-
-- project:
     name: policy-apex-pdp-csit
     jobs:
       - '{project-name}-{stream}-verify-csit-{functionality}'
diff --git a/jjb/sdc/sdc-sdc-docker-base.yaml b/jjb/sdc/sdc-sdc-docker-base.yaml
index 1c718ac..6507f4f 100644
--- a/jjb/sdc/sdc-sdc-docker-base.yaml
+++ b/jjb/sdc/sdc-sdc-docker-base.yaml
@@ -4,6 +4,9 @@
     name: sdc-sdc-docker-base
     project-name: 'sdc-sdc-docker-base'
     jobs:
+      - '{project-name}-{stream}-verify-java':
+          build-node: 'ubuntu1604-docker-v1-8c-8g'
+          docker-pom: 'pom.xml'
       - '{project-name}-{stream}-sdc-merge-java':
           build-node: 'ubuntu1604-docker-8c-8g'
           docker-pom: 'pom.xml'
@@ -14,6 +17,8 @@
           mvn-params: '-P default'
           container-public-registry: 'nexus3.onap.org:10001'
           container-staging-registry: 'nexus3.onap.org:10003'
+      - '{project-name}-gerrit-release-jobs':
+          build-node: centos7-docker-8c-8g
     project: 'sdc/sdc-docker-base'
     stream:
       - 'master':
diff --git a/jjb/usecaseui/usecase-ui-server.yaml b/jjb/usecaseui/usecase-ui-server.yaml
index 601c5e5..a19dcd6 100644
--- a/jjb/usecaseui/usecase-ui-server.yaml
+++ b/jjb/usecaseui/usecase-ui-server.yaml
@@ -28,6 +28,11 @@
     name: usecase-ui-server-sonar
     jobs:
       - gerrit-maven-sonar
+    sonarcloud: true
+    sonarcloud-project-organization: '{sonarcloud_project_organization}'
+    sonarcloud-api-token: '{sonarcloud_api_token}'
+    sonarcloud-project-key: '{sonarcloud_project_organization}_{project-name}'
+    sonar-mvn-goal: '{sonar_mvn_goal}'
     cron: '@daily'
     build-node: ubuntu1604-builder-4c-4g
     project: 'usecase-ui/server'
diff --git a/jjb/vfc/vfc-nfvo-driver-sfc.yaml b/jjb/vfc/vfc-nfvo-driver-sfc.yaml
index 0483624..273e377 100644
--- a/jjb/vfc/vfc-nfvo-driver-sfc.yaml
+++ b/jjb/vfc/vfc-nfvo-driver-sfc.yaml
@@ -32,7 +32,6 @@
 
 - project:
     name: vfc-nfvo-driver-sfc-sonar
-    java-version: openjdk11
     jobs:
       - gerrit-maven-sonar
     sonarcloud: true
diff --git a/jjb/vfc/vfc-nfvo-resmanagement.yaml b/jjb/vfc/vfc-nfvo-resmanagement.yaml
index 8beb8d4..9fa63c6 100644
--- a/jjb/vfc/vfc-nfvo-resmanagement.yaml
+++ b/jjb/vfc/vfc-nfvo-resmanagement.yaml
@@ -24,7 +24,6 @@
 
 - project:
     name: vfc-nfvo-resmanagement-sonar
-    java-version: openjdk11
     jobs:
       - gerrit-maven-sonar
     sonarcloud: true
diff --git a/jjb/vvp/vvp-em.yaml b/jjb/vvp/vvp-em.yaml
new file mode 100644
index 0000000..a0870ad
--- /dev/null
+++ b/jjb/vvp/vvp-em.yaml
@@ -0,0 +1,10 @@
+---
+- project:
+    name: vvp-engagementmgr
+    project-name: 'vvp-engagementmgr'
+    project: 'vvp/engagementmgr'
+    mvn-settings: 'vvp-engagementmgr-settings'
+    branch: master
+    jobs:
+      - gerrit-info-yaml-verify
+    build-node: centos7-builder-2c-1g
diff --git a/jjb/vvp/vvp-oom.yaml b/jjb/vvp/vvp-oom.yaml
new file mode 100644
index 0000000..2a6b271
--- /dev/null
+++ b/jjb/vvp/vvp-oom.yaml
@@ -0,0 +1,10 @@
+---
+- project:
+    name: vvp-oom
+    project-name: 'vvp-oom'
+    project: 'vvp/oom'
+    mvn-settings: 'vvp-oom-settings'
+    branch: master
+    jobs:
+      - gerrit-info-yaml-verify
+    build-node: centos7-builder-2c-1g
diff --git a/jjb/vvp/vvp-regression.yaml b/jjb/vvp/vvp-regression.yaml
new file mode 100644
index 0000000..bea93c3
--- /dev/null
+++ b/jjb/vvp/vvp-regression.yaml
@@ -0,0 +1,10 @@
+---
+- project:
+    name: vvp-regression-tests
+    project-name: 'vvp-regression-tests'
+    project: 'vvp/regression-tests'
+    mvn-settings: 'vvp-regression-tests-settings'
+    branch: master
+    jobs:
+      - gerrit-info-yaml-verify
+    build-node: centos7-builder-2c-1g
diff --git a/jjb/vvp/vvp-test-engine.yaml b/jjb/vvp/vvp-test-engine.yaml
new file mode 100644
index 0000000..c746fbd
--- /dev/null
+++ b/jjb/vvp/vvp-test-engine.yaml
@@ -0,0 +1,10 @@
+---
+- project:
+    name: vvp-test-engine
+    project-name: 'vvp-test-engine'
+    project: 'vvp/test-engine'
+    mvn-settings: 'vvp-test-engine-settings'
+    branch: master
+    jobs:
+      - gerrit-info-yaml-verify
+    build-node: centos7-builder-2c-1g
diff --git a/packer/common-packer b/packer/common-packer
index d5fc82e..da5d5cf 160000
--- a/packer/common-packer
+++ b/packer/common-packer
@@ -1 +1 @@
-Subproject commit d5fc82ea247c96744ac7610476f5df10614f3668
+Subproject commit da5d5cf92fafcdc0f31a76d2955e8ac9c327c100
diff --git a/packer/provision/local-builder.yaml b/packer/provision/local-builder.yaml
index 992cd48..61cc509 100644
--- a/packer/provision/local-builder.yaml
+++ b/packer/provision/local-builder.yaml
@@ -19,9 +19,14 @@
       become: true
       when: ansible_distribution == 'Ubuntu'
 
-    - name: Install python-tox
+    - name: Install python-tox and deps
       pip:
-        name: tox
+        name:
+          - tox
+          - tox-pyenv
+          - virtualenv
+          - more-itertools~=5.0.0
+          - zipp==1.0.0
         state: present
       become: true
 
diff --git a/packer/provision/local-docker.yaml b/packer/provision/local-docker.yaml
index 37e857f..d54746f 100644
--- a/packer/provision/local-docker.yaml
+++ b/packer/provision/local-docker.yaml
@@ -60,9 +60,14 @@
       become: true
       when: ansible_distribution == 'Ubuntu'
 
-    - name: Install python-tox
+    - name: Install python-tox and deps
       pip:
-        name: tox
+        name:
+          - tox
+          - tox-pyenv
+          - virtualenv
+          - more-itertools~=5.0.0
+          - zipp==1.0.0
         state: present
       become: true
 
diff --git a/shell/run_releasedockerhub.sh b/shell/run_releasedockerhub.sh
index 42771af..474911d 100644
--- a/shell/run_releasedockerhub.sh
+++ b/shell/run_releasedockerhub.sh
@@ -18,7 +18,7 @@
 # shellcheck disable=SC1090
 source ~/lf-env.sh
 
-lf-activate-venv lftools
+lf-activate-venv zipp==1.1.0 lftools
 
 if [ ! -v RELEASEDOCKERHUB_ORG ]
 then