Merge "Adding a notification step if docker-publish job fails"
diff --git a/README.md b/README.md
index 921a1fe..c6aa3ed 100644
--- a/README.md
+++ b/README.md
@@ -5,11 +5,19 @@
 
 The best way to work with this repo is to check it out with `repo`, per these
 instructions: [Downloading testing and QA
-repositories](https://guide.opencord.org/getting_the_code.html#downloading-testing-and-qa-repositories)
+repositories](https://guide.opencord.org/developer/getting_the_code.html#testing-and-qa-repositories)
 
-> NOTE: This repo uses git submodules. If you have trouble with the tests or
-> other tasks, please run: `git submodule init && git submodule update` to
-> obtain these submodules, as `repo` won't do this automatically for you.
+> NOTE: This repo uses git submodules. If you get an error like this when
+> testing:
+>
+>     jenkins_jobs.errors.JenkinsJobsException: Failed to find suitable template named '{project-name}-ci-jobs'
+>
+> or have trouble with the other tasks, please run:
+>
+>     git submodule init && git submodule update
+>
+> to obtain these submodules, as a clone of the repo won't automatically
+> checkout these submodules.
 
 ## Jenkins Job Builder (JJB) Documentation
 
@@ -157,9 +165,9 @@
 
 > NOTE: Future builds won't automatically use the new AMI - you have to
 > manually set the instance `AMI ID` on jenkins in [Global
-> Config](https://jenkins-new.opencord.org/configure) > Cloud > Amazon EC2.
+> Config](https://jenkins.opencord.org/configure) > Cloud > Amazon EC2.
 > The new AMI ID can be found near the end of the logs of the run of
-> [ci-management-packer-merge-<ostype>-basebuild](https://jenkins-new.opencord.org/job/ci-management-packer-merge-ubuntu-16.04-basebuild/).
+> [ci-management-packer-merge-<ostype>-basebuild](https://jenkins.opencord.org/job/ci-management-packer-merge-ubuntu-16.04-basebuild/).
 
 ### Adding additional EC2 instance types
 
diff --git a/jjb/api-test.yaml b/jjb/api-test.yaml
index 740fbd8..8b14843 100644
--- a/jjb/api-test.yaml
+++ b/jjb/api-test.yaml
@@ -5,7 +5,7 @@
     id: api-test
     name: 'verify_{project}{name-extension}_api-test'
     description: |
-      Created by {id} job-template from ci-management/jjb/api-test.yaml, using pipeline: {pipeline_script}
+      Created by {id} job-template from ci-management/jjb/api-test.yaml, using script: {pipeline-script}
 
 
     triggers:
@@ -28,36 +28,36 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: 'ubuntu16.04-basebuild-4c-8g'
-         description: 'Name of the Jenkins node to run the job on'
+          name: buildNode
+          default: 'ubuntu16.04-basebuild-4c-8g'
+          description: 'Name of the Jenkins node to run the job on'
 
       - string:
-         name: manifestUrl
-         default: '{gerrit-server-url}/{cord-repo-manifest}'
-         description: 'URL to the repo manifest'
+          name: manifestUrl
+          default: '{gerrit-server-url}/{cord-repo-manifest}'
+          description: 'URL to the repo manifest'
 
       - string:
-         name: manifestBranch
-         default: '$GERRIT_BRANCH'
-         description: 'Name of the repo branch to use'
+          name: manifestBranch
+          default: '$GERRIT_BRANCH'
+          description: 'Name of the repo branch to use'
 
       - string:
-         name: gerritProject
-         default: '$GERRIT_PROJECT'
-         description: 'Name of the Gerrit project'
+          name: gerritProject
+          default: '$GERRIT_PROJECT'
+          description: 'Name of the Gerrit project'
 
       - string:
-         name: gerritChangeNumber
-         default: '$GERRIT_CHANGE_NUMBER'
-         description: 'Changeset number in Gerrit'
+          name: gerritChangeNumber
+          default: '$GERRIT_CHANGE_NUMBER'
+          description: 'Changeset number in Gerrit'
 
       - string:
-         name: gerritPatchsetNumber
-         default: '$GERRIT_PATCHSET_NUMBER'
-         description: 'PatchSet number in Gerrit'
+          name: gerritPatchsetNumber
+          default: '$GERRIT_PATCHSET_NUMBER'
+          description: 'PatchSet number in Gerrit'
 
     project-type: pipeline
     concurrent: true
 
-    dsl: !include-raw-escape: pipeline/{pipeline_script}
+    dsl: !include-raw-escape: pipeline/{pipeline-script}
diff --git a/jjb/bbr.yaml b/jjb/bbr.yaml
new file mode 100644
index 0000000..4ac6ce2
--- /dev/null
+++ b/jjb/bbr.yaml
@@ -0,0 +1,52 @@
+---
+# scale test pipeline for BBSim
+
+- project:
+    name: bbr
+    project: '{name}'
+
+    jobs:
+      - 'bbr-jobs':
+          branch-regexp: '{all-branches-regexp}'
+
+- job-group:
+    name: 'bbr-jobs'
+    jobs:
+      - 'bbsim_scale_test'
+
+- job-template:
+    name: 'bbsim_scale_test'
+    id: 'bbsim_scale_test'
+    description: |
+                  <!-- Managed by Jenkins Job Builder -->
+                  Interval scale tests for BBSim using BBR <br />
+                  Created from job-template bbsim_scale_test from ci-management/jjb/bbr.yaml <br />
+                  Created by Matteo Scandolo, teo@opennetworking.org <br />
+                  Copyright (c) 2017 Open Networking Foundation (ONF)
+
+    project-type: pipeline
+    sandbox: true
+
+    properties:
+      - cord-infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
+          artifact-num-to-keep: '{artifact-num-to-keep}'
+
+    pipeline-scm:
+      script-path: './tests/bbr.groovy'
+      scm:
+        - git:
+            url: '{gerrit-server-url}/bbsim'
+            branches:
+              - 'master'
+
+    triggers:
+      - timed: |
+          TZ=America/Los_Angeles
+          H * * * *
+
+    parameters:
+      - string:
+          name: buildNode
+          default: 'ubuntu16.04-basebuild-4c-8g'
+          description: 'Name of the Jenkins node to run the job on'
diff --git a/jjb/bbsim-validation.yaml b/jjb/bbsim-validation.yaml
index 4ca9fe3..a8aa632 100644
--- a/jjb/bbsim-validation.yaml
+++ b/jjb/bbsim-validation.yaml
@@ -31,49 +31,49 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: 'qct-pod2-node1'
-         description: 'Name of the Jenkins node to run the job on'
+          name: buildNode
+          default: 'qct-pod2-node1'
+          description: 'Name of the Jenkins node to run the job on'
 
       - string:
-         name: manifestUrl
-         default: '{gerrit-server-url}/{cord-repo-manifest}'
-         description: 'URL to the repo manifest'
+          name: manifestUrl
+          default: '{gerrit-server-url}/{cord-repo-manifest}'
+          description: 'URL to the repo manifest'
 
       - string:
-         name: manifestBranch
-         default: 'master'
-         description: 'Name of the repo branch to use'
+          name: manifestBranch
+          default: 'master'
+          description: 'Name of the repo branch to use'
 
       - string:
-         name: deploymentConfig
-         default: 'bbsim-voltha-1.6.yml'
-         description: 'kubernetes configurations file'
+          name: deploymentConfig
+          default: 'bbsim-voltha-1.6.yml'
+          description: 'kubernetes configurations file'
 
       - string:
-         name: OnuCount
-         default: '16'
-         description: 'Number of ONUs per pon port'
+          name: OnuCount
+          default: '16'
+          description: 'Number of ONUs per pon port'
 
       - string:
-         name: EmulationMode
-         default: '--set emulation_mode=both'
-         description: 'Emulation for BBSIM (both|aaa)'
+          name: EmulationMode
+          default: '--set emulation_mode=both'
+          description: 'Emulation for BBSIM (both|aaa)'
 
       - string:
-         name: TestTags
-         default: ''
-         description: 'Tests to include/exclude. eg "-e serviceinstances"'
+          name: TestTags
+          default: ''
+          description: 'Tests to include/exclude. eg "-e serviceinstances"'
 
       - string:
-         name: TestTimeout
-         default: '300s'
-         description: 'timeout for each test case (increase as you scale up)'
+          name: TestTimeout
+          default: '300s'
+          description: 'timeout for each test case (increase as you scale up)'
 
       - bool:
-         name: ArchiveLogs
-         default: true
-         description: 'Archive all pod logs after test run'
+          name: ArchiveLogs
+          default: true
+          description: 'Archive all pod logs after test run'
 
     project-type: pipeline
     concurrent: false
@@ -101,49 +101,49 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: 'qct-pod2-node1'
-         description: 'Name of the Jenkins node to run the job on'
+          name: buildNode
+          default: 'qct-pod2-node1'
+          description: 'Name of the Jenkins node to run the job on'
 
       - string:
-         name: manifestUrl
-         default: '{gerrit-server-url}/{cord-repo-manifest}'
-         description: 'URL to the repo manifest'
+          name: manifestUrl
+          default: '{gerrit-server-url}/{cord-repo-manifest}'
+          description: 'URL to the repo manifest'
 
       - string:
-         name: manifestBranch
-         default: 'master'
-         description: 'Name of the repo branch to use'
+          name: manifestBranch
+          default: 'master'
+          description: 'Name of the repo branch to use'
 
       - string:
-         name: deploymentConfig
-         default: 'bbsim-voltha-master.yml'
-         description: 'kubernetes configurations file'
+          name: deploymentConfig
+          default: 'bbsim-voltha-master.yml'
+          description: 'kubernetes configurations file'
 
       - string:
-         name: OnuCount
-         default: '16'
-         description: 'Number of ONUs per pon port'
+          name: OnuCount
+          default: '16'
+          description: 'Number of ONUs per pon port'
 
       - string:
-         name: EmulationMode
-         default: '--set emulation_mode=both'
-         description: 'Emulation for BBSIM (both|aaa)'
+          name: EmulationMode
+          default: '--set emulation_mode=both'
+          description: 'Emulation for BBSIM (both|aaa)'
 
       - string:
-         name: TestTags
-         default: ''
-         description: 'Tests to include/exclude. eg "-e serviceinstances"'
+          name: TestTags
+          default: ''
+          description: 'Tests to include/exclude. eg "-e serviceinstances"'
 
       - string:
-         name: TestTimeout
-         default: '300s'
-         description: 'timeout for each test case (increase as you scale up)'
+          name: TestTimeout
+          default: '300s'
+          description: 'timeout for each test case (increase as you scale up)'
 
       - bool:
-         name: ArchiveLogs
-         default: true
-         description: 'Archive all pod logs after test run'
+          name: ArchiveLogs
+          default: true
+          description: 'Archive all pod logs after test run'
 
     project-type: pipeline
     concurrent: false
diff --git a/jjb/build_openolt_deb.yaml b/jjb/build_openolt_deb.yaml
index df4fee9..390c398 100644
--- a/jjb/build_openolt_deb.yaml
+++ b/jjb/build_openolt_deb.yaml
@@ -31,9 +31,9 @@
 
     parameters:
       - string:
-         name: notificationEmail
-         default: 'shad@opennetworking.org kailash@opennetworking.org'
-         description: ''
+          name: notificationEmail
+          default: 'shad@opennetworking.org kailash@opennetworking.org'
+          description: ''
 
     node: 'qct-pod3-node2'
 
@@ -44,6 +44,6 @@
       script-path: 'Jenkinsfile-build'
       scm:
         - git:
-           url: '{gerrit-server-url}/openolt'
-           branches:
-             - 'master'
+            url: '{gerrit-server-url}/openolt'
+            branches:
+              - 'master'
diff --git a/jjb/charts.yaml b/jjb/charts.yaml
index 92db94c..298dd52 100644
--- a/jjb/charts.yaml
+++ b/jjb/charts.yaml
@@ -14,7 +14,7 @@
     id: publish-helm-repo
     name: 'publish-helm-repo'
     description: |
-      Created by publish-helm-repo job-template from ci-management/jjb/helm.yaml
+      Created by publish-helm-repo job-template from ci-management/jjb/charts.yaml
 
     triggers:
       - cord-infra-gerrit-trigger-merge:
@@ -119,7 +119,7 @@
     id: verify-helm-lint
     name: 'verify_{project}_helm-lint'
     description: |
-      Created by verify-helm-lint job-template from ci-management/jjb/lint.yaml
+      Created by verify-helm-lint job-template from ci-management/jjb/charts.yaml
 
     triggers:
       - cord-infra-gerrit-trigger-patchset:
diff --git a/jjb/cord-macros.yaml b/jjb/cord-macros.yaml
index 1b82c5c..668c2f7 100644
--- a/jjb/cord-macros.yaml
+++ b/jjb/cord-macros.yaml
@@ -160,5 +160,3 @@
             - file-id: pipconf
               target: '$HOME/.config/pip/pip.conf'
 
-
-
diff --git a/jjb/cord-onos-app-publishing.yaml b/jjb/cord-onos-app-publishing.yaml
deleted file mode 100644
index 4ba0f40..0000000
--- a/jjb/cord-onos-app-publishing.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
----
-# onos-app-publishing
-
-- project:
-    name: onos-app-publishing
-
-    project-name: '{name}'
-
-    jobs:
-      - 'onos-app-publishing'
-
-
-- job-template:
-    id: onos-app-publishing
-    name: 'cord-onos-app-publishing'
-    description: |
-      <!-- Managed by Jenkins Job Builder -->
-      Created by {id} job-template from ci-management/jjb/cord-onos-app-publishing.yaml
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-          artifact-num-to-keep: '{artifact-num-to-keep}'
-
-    parameters:
-      - string:
-         name: notificationEmail
-         default: 'teo@opennetworking.org, saurav.das@opennetworking.org'
-         description: ''
-
-      - string:
-         name: jdkDistro
-         default: '{jdk-distribution}'
-         description: 'Distribution of the JDK to use with update-java-alternatives'
-
-    node: 'ubuntu16.04-basebuild-1c-2g'
-    project-type: pipeline
-    concurrent: true
-
-    pipeline-scm:
-      script-path: 'Jenkinsfile'
-      scm:
-        - git:
-            url: '{gerrit-server-url}/cord-onos-publisher'
-            branches:
-              - 'master'
-
-    triggers:
-       - timed: |
-                 TZ=America/Los_Angeles
-                 H 0 * * *
diff --git a/jjb/cord-test/att-workflow.yaml b/jjb/cord-test/att-workflow.yaml
index fe78442..cca01c2 100644
--- a/jjb/cord-test/att-workflow.yaml
+++ b/jjb/cord-test/att-workflow.yaml
@@ -11,84 +11,84 @@
     jobs:
       # onlab pod1 build
       - 'build_pod_manual':
-         testvm: 'onf-build'
-         config-pod: 'onlab-pod1'
-         profile: 'att-workflow'
-         branch: 'master'
-         test-repo: 'cord-tester'
-         helmRepoUrl: 'https://charts.opencord.org'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-build'
-         oltDebVersion: 'openolt-master.deb'
+          testvm: 'onf-build'
+          config-pod: 'onlab-pod1'
+          profile: 'att-workflow'
+          branch: 'master'
+          test-repo: 'cord-tester'
+          helmRepoUrl: 'https://charts.opencord.org'
+          Jenkinsfile: 'Jenkinsfile-attworkflow-build'
+          oltDebVersion: 'openolt-master.deb'
 
       # onlab pod1 build - cord6.1(voltha 1.6) - seba1.0
       - 'build_pod_manual':
-         testvm: 'onf-build'
-         config-pod: 'onlab-pod1-voltha16'
-         profile: 'att-workflow'
-         branch: 'cord-6.1'
-         test-repo: 'cord-tester'
-         helmRepoUrl: 'https://charts.opencord.org'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-build'
-         oltDebVersion: 'openolt-master-voltha16.deb'
+          testvm: 'onf-build'
+          config-pod: 'onlab-pod1-voltha16'
+          profile: 'att-workflow'
+          branch: 'cord-6.1'
+          test-repo: 'cord-tester'
+          helmRepoUrl: 'https://charts.opencord.org'
+          Jenkinsfile: 'Jenkinsfile-attworkflow-build'
+          oltDebVersion: 'openolt-master-voltha16.deb'
 
       # flex pod1 test job - using voltha-master branch
       - 'build_pod_test':
-         testvm: 'onf-build'
-         config-pod: 'onlab-pod1-qa'
-         profile: 'att-workflow'
-         branch: 'master'
-         test-repo: 'cord-tester'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-test'
+          testvm: 'onf-build'
+          config-pod: 'onlab-pod1-qa'
+          profile: 'att-workflow'
+          branch: 'master'
+          test-repo: 'cord-tester'
+          Jenkinsfile: 'Jenkinsfile-attworkflow-test'
 
       # onlab pod2 build
       - 'build_pod_manual':
-         testvm: 'onf-build'
-         config-pod: 'onlab-pod2'
-         profile: 'att-workflow'
-         branch: 'master'
-         test-repo: 'cord-tester'
-         helmRepoUrl: 'https://charts.opencord.org'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-build'
-         oltDebVersion: 'openolt-master.deb'
+          testvm: 'onf-build'
+          config-pod: 'onlab-pod2'
+          profile: 'att-workflow'
+          branch: 'master'
+          test-repo: 'cord-tester'
+          helmRepoUrl: 'https://charts.opencord.org'
+          Jenkinsfile: 'Jenkinsfile-attworkflow-build'
+          oltDebVersion: 'openolt-master.deb'
 
       # flex OCP pod with olt/onu : using voltha latest(master)
-      - 'build_pod_timer':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord-voltha-master'
-         profile: 'att-workflow'
-         branch: 'master'
-         test-repo: 'cord-tester'
-         helmRepoUrl: 'https://charts.opencord.org'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-build'
-         oltDebVersion: 'openolt-master.deb'
-         time: '6'
+      # - 'build_pod_timer':
+      #   testvm: 'qa-testvm-pod'
+      #   config-pod: 'flex-ocp-cord-voltha-master'
+      #   profile: 'att-workflow'
+      #   branch: 'master'
+      #   test-repo: 'cord-tester'
+      #   helmRepoUrl: 'https://charts.opencord.org'
+      #   Jenkinsfile: 'Jenkinsfile-attworkflow-build'
+      #   oltDebVersion: 'openolt-master.deb'
+      #   time: '6'
 
       # flex OCP pod with olt/onu - seba-1.0/cord-6.1 release
-      - 'build_pod_timer':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord-voltha16'
-         profile: 'att-workflow'
-         branch: 'cord-6.1'
-         test-repo: 'cord-tester'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-build'
-         oltDebVersion: 'openolt-master-voltha16.deb'
-         configurePod: true
-         time: '3'
+      # - 'build_pod_timer':
+      #   testvm: 'qa-testvm-pod'
+      #   config-pod: 'flex-ocp-cord-voltha16'
+      #   profile: 'att-workflow'
+      #   branch: 'cord-6.1'
+      #   test-repo: 'cord-tester'
+      #   Jenkinsfile: 'Jenkinsfile-attworkflow-build'
+      #   oltDebVersion: 'openolt-master-voltha16.deb'
+      #   configurePod: true
+      #   time: '3'
 
       # flex OCP test job - using voltha-master branch
       - 'build_pod_test':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord-voltha-master'
-         profile: 'att-workflow'
-         branch: 'master'
-         test-repo: 'cord-tester'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-test'
+          testvm: 'qa-testvm-pod'
+          config-pod: 'flex-ocp-cord-voltha-master'
+          profile: 'att-workflow'
+          branch: 'master'
+          test-repo: 'cord-tester'
+          Jenkinsfile: 'Jenkinsfile-attworkflow-test'
 
       # flex ocp pod test job - seba-1.0/cord-6.1 release
       - 'build_pod_test':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord-voltha16'
-         profile: 'att-workflow'
-         branch: 'cord-6.1'
-         test-repo: 'cord-tester'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-test'
+          testvm: 'qa-testvm-pod'
+          config-pod: 'flex-ocp-cord-voltha16'
+          profile: 'att-workflow'
+          branch: 'cord-6.1'
+          test-repo: 'cord-tester'
+          Jenkinsfile: 'Jenkinsfile-attworkflow-test'
diff --git a/jjb/cord-test/mcord.yaml b/jjb/cord-test/mcord.yaml
index 5fd830a..917d927 100644
--- a/jjb/cord-test/mcord.yaml
+++ b/jjb/cord-test/mcord.yaml
@@ -11,23 +11,23 @@
     jobs:
       # onlab mcord-pod1 build
       - 'build_mcord_pod_manual':
-         testvm: 'onf-build'
-         config-pod: 'onf-mcord-pod1'
-         profile: 'mcord'
-         branch: 'master'
-         Jenkinsfile: 'Jenkinsfile-mcord-local-build'
+          testvm: 'onf-build'
+          config-pod: 'onf-mcord-pod1'
+          profile: 'mcord'
+          branch: 'master'
+          Jenkinsfile: 'Jenkinsfile-mcord-local-build'
 
       - 'build_mcord_pod_manual':
-         testvm: 'onf-build'
-         config-pod: 'onf-mcord-pod2'
-         profile: 'mcord'
-         branch: 'master'
-         configurePod: false
-         Jenkinsfile: 'Jenkinsfile-mcord-remote-build'
+          testvm: 'onf-build'
+          config-pod: 'onf-mcord-pod2'
+          profile: 'mcord'
+          branch: 'master'
+          configurePod: false
+          Jenkinsfile: 'Jenkinsfile-mcord-remote-build'
 
       - 'build_mcord_pod_manual':
-         testvm: 'mcord-dt'
-         config-pod: 'mcord-barcellona-remote-dt'
-         profile: 'mcord'
-         branch: 'master'
-         Jenkinsfile: 'Jenkinsfile-mcord-remote-build'
+          testvm: 'mcord-dt'
+          config-pod: 'mcord-barcellona-remote-dt'
+          profile: 'mcord'
+          branch: 'master'
+          Jenkinsfile: 'Jenkinsfile-mcord-remote-build'
diff --git a/jjb/cord-test/nightly-build-pipeline.yaml b/jjb/cord-test/nightly-build-pipeline.yaml
index fda3ee1..063c9b7 100644
--- a/jjb/cord-test/nightly-build-pipeline.yaml
+++ b/jjb/cord-test/nightly-build-pipeline.yaml
@@ -20,7 +20,7 @@
     description: |
                   <!-- Managed by Jenkins Job Builder -->
                   Manual Build on POD {config-pod} using {Jenkinsfile} <br /><br />
-                  Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
+                  Created from job-template {id} from ci-management/jjb/cord-test/nightly-build-pipeline.yaml <br />
                   Created by QA (Suchitra Vemuri - suchitra@opennetworking.org ) <br />
                   Copyright (c) 2018 Open Networking Foundation (ONF)
 
@@ -28,63 +28,63 @@
 
     parameters:
       - string:
-         name: TestNodeName
-         default: '{testvm}'
-         description: 'Jenkins node name of TestVM Node'
+          name: TestNodeName
+          default: '{testvm}'
+          description: 'Jenkins node name of TestVM Node'
 
       - string:
-         name: cordRepoUrl
-         default: '{gerrit-server-url}'
-         description: 'The URL of the CORD Project repository'
+          name: cordRepoUrl
+          default: '{gerrit-server-url}'
+          description: 'The URL of the CORD Project repository'
 
       - string:
-         name: configBaseDir
-         default: 'pod-configs'
-         description: 'The directory inside the POD configs repository'
+          name: configBaseDir
+          default: 'pod-configs'
+          description: 'The directory inside the POD configs repository'
 
       - string:
-         name: configDeploymentDir
-         default: 'deployment-configs'
-         description: 'The deployment configs folder'
+          name: configDeploymentDir
+          default: 'deployment-configs'
+          description: 'The deployment configs folder'
 
       - string:
-         name: configKubernetesDir
-         default: 'kubernetes-configs'
-         description: 'The kubernetes config folder'
+          name: configKubernetesDir
+          default: 'kubernetes-configs'
+          description: 'The kubernetes config folder'
 
       - string:
-         name: configToscaDir
-         default: 'tosca-configs'
-         description: 'The tosca config folder'
+          name: configToscaDir
+          default: 'tosca-configs'
+          description: 'The tosca config folder'
 
       - string:
-         name: configFileName
-         default: '{config-pod}'
-         description: 'The config file'
+          name: configFileName
+          default: '{config-pod}'
+          description: 'The config file'
 
       - string:
-         name: oltDebVersion
-         default: '{oltDebVersion}'
-         description: 'OLT Software version to install'
+          name: oltDebVersion
+          default: '{oltDebVersion}'
+          description: 'OLT Software version to install'
 
       - string:
-         name: branch
-         default: '{branch}'
+          name: branch
+          default: '{branch}'
 
       - string:
-         name: helmRepoUrl
-         default: 'https://charts.opencord.org'
-         description: 'URL where helm-charts are published'
+          name: helmRepoUrl
+          default: 'https://charts.opencord.org'
+          description: 'URL where helm-charts are published'
 
       - string:
-         name: profile
-         default: '{profile}'
-         description: 'Profile in which this job installs'
+          name: profile
+          default: '{profile}'
+          description: 'Profile in which this job installs'
 
       - string:
-         name: notificationEmail
-         default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
-         description: ''
+          name: notificationEmail
+          default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
+          description: ''
 
       - bool:
           name: installMonitoringAndLogging
@@ -97,9 +97,9 @@
           description: "Configure POD via TOSCA post build"
 
       - bool:
-            name: reinstallOlt
-            default: true
-            description: "Re-install olt software bringing up CORD"
+          name: reinstallOlt
+          default: true
+          description: "Re-install olt software bringing up CORD"
 
       - bool:
           name: installBBSim
@@ -117,9 +117,9 @@
       script-path: '{Jenkinsfile}'
       scm:
         - git:
-           url: '{gerrit-server-url}/{test-repo}'
-           branches:
-             - '{branch}'
+            url: '{gerrit-server-url}/{test-repo}'
+            branches:
+              - '{branch}'
 
 - job-template:
     name: 'build_{profile}_{config-pod}_{branch}'
@@ -136,58 +136,58 @@
 
     parameters:
       - string:
-         name: TestNodeName
-         default: '{testvm}'
-         description: 'Jenkins node name of TestVM Node'
+          name: TestNodeName
+          default: '{testvm}'
+          description: 'Jenkins node name of TestVM Node'
 
       - string:
-         name: cordRepoUrl
-         default: '{gerrit-server-url}'
-         description: 'The URL of the CORD Project repository'
+          name: cordRepoUrl
+          default: '{gerrit-server-url}'
+          description: 'The URL of the CORD Project repository'
 
       - string:
-         name: configBaseDir
-         default: 'pod-configs'
-         description: 'The directory inside the POD configs repository'
+          name: configBaseDir
+          default: 'pod-configs'
+          description: 'The directory inside the POD configs repository'
 
       - string:
-         name: configDeploymentDir
-         default: 'deployment-configs'
-         description: 'The deployment configs folder'
+          name: configDeploymentDir
+          default: 'deployment-configs'
+          description: 'The deployment configs folder'
 
       - string:
-         name: configKubernetesDir
-         default: 'kubernetes-configs'
-         description: 'The kubernetes config folder'
+          name: configKubernetesDir
+          default: 'kubernetes-configs'
+          description: 'The kubernetes config folder'
 
       - string:
-         name: configToscaDir
-         default: 'tosca-configs'
-         description: 'The tosca config folder'
+          name: configToscaDir
+          default: 'tosca-configs'
+          description: 'The tosca config folder'
 
       - string:
-         name: configFileName
-         default: '{config-pod}'
-         description: 'The config file'
+          name: configFileName
+          default: '{config-pod}'
+          description: 'The config file'
 
       - string:
-         name: oltDebVersion
-         default: '{oltDebVersion}'
-         description: 'OLT Software version to install'
+          name: oltDebVersion
+          default: '{oltDebVersion}'
+          description: 'OLT Software version to install'
 
       - string:
-         name: branch
-         default: '{branch}'
+          name: branch
+          default: '{branch}'
 
       - string:
-         name: helmRepoUrl
-         default: 'https://charts.opencord.org'
-         description: 'URL where helm-charts are published'
+          name: helmRepoUrl
+          default: 'https://charts.opencord.org'
+          description: 'URL where helm-charts are published'
 
       - string:
-         name: profile
-         default: '{profile}'
-         description: 'Profile in which this job installs'
+          name: profile
+          default: '{profile}'
+          description: 'Profile in which this job installs'
 
       - bool:
           name: configurePod
@@ -195,9 +195,9 @@
           description: "Configure POD via TOSCA post build"
 
       - bool:
-            name: reinstallOlt
-            default: true
-            description: "Re-install olt software bringing up CORD"
+          name: reinstallOlt
+          default: true
+          description: "Re-install olt software bringing up CORD"
 
       - bool:
           name: installBBSim
@@ -210,9 +210,9 @@
           description: "Onus per PonPort"
 
       - string:
-         name: notificationEmail
-         default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
-         description: ''
+          name: notificationEmail
+          default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
+          description: ''
 
     concurrent: true
 
@@ -220,12 +220,12 @@
       script-path: '{Jenkinsfile}'
       scm:
         - git:
-           url: '{gerrit-server-url}/{test-repo}'
-           branches:
-             - '{branch}'
+            url: '{gerrit-server-url}/{test-repo}'
+            branches:
+              - '{branch}'
 
     triggers:
-       - timed: |
+      - timed: |
                  TZ=America/Los_Angeles
                  H {time} * * *
 
@@ -235,7 +235,7 @@
     description: |
                   <!-- Managed by Jenkins Job Builder -->
                   Post Tests on {config-pod} triggered by build_{config-pod}_{branch} <br /><br />
-                  Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
+                  Created from job-template {id} from ci-management/jjb/cord-test/nightly-build-pipeline.yaml <br />
                   Created by Kailash Khalasi - kailash@opennetworking.org <br />
                   Copyright (c) 2017 Open Networking Foundation (ONF)
 
@@ -243,48 +243,48 @@
 
     parameters:
       - string:
-         name: TestNodeName
-         default: '{testvm}'
-         description: 'Jenkins node name of TestVM Node'
+          name: TestNodeName
+          default: '{testvm}'
+          description: 'Jenkins node name of TestVM Node'
 
       - string:
-         name: cordRepoUrl
-         default: '{gerrit-server-url}'
-         description: 'The URL of the CORD Project repository'
+          name: cordRepoUrl
+          default: '{gerrit-server-url}'
+          description: 'The URL of the CORD Project repository'
 
       - string:
-         name: configBaseDir
-         default: 'pod-configs'
-         description: 'The directory inside the POD configs repository'
+          name: configBaseDir
+          default: 'pod-configs'
+          description: 'The directory inside the POD configs repository'
 
       - string:
-         name: configDeploymentDir
-         default: 'deployment-configs'
-         description: 'The deployment configs folder'
+          name: configDeploymentDir
+          default: 'deployment-configs'
+          description: 'The deployment configs folder'
 
       - string:
-         name: configKubernetesDir
-         default: 'kubernetes-configs'
-         description: 'The kubernetes config folder'
+          name: configKubernetesDir
+          default: 'kubernetes-configs'
+          description: 'The kubernetes config folder'
 
       - string:
-         name: configToscaDir
-         default: 'tosca-configs'
-         description: 'The tosca config folder'
+          name: configToscaDir
+          default: 'tosca-configs'
+          description: 'The tosca config folder'
 
       - string:
-         name: configFileName
-         default: '{config-pod}'
-         description: 'The config file'
+          name: configFileName
+          default: '{config-pod}'
+          description: 'The config file'
 
       - string:
-         name: branch
-         default: '{branch}'
+          name: branch
+          default: '{branch}'
 
       - string:
-         name: notificationEmail
-         default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
-         description: ''
+          name: notificationEmail
+          default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
+          description: ''
 
     concurrent: true
 
@@ -292,9 +292,9 @@
       script-path: '{Jenkinsfile}'
       scm:
         - git:
-           url: '{gerrit-server-url}/{test-repo}'
-           branches:
-             - '{branch}'
+            url: '{gerrit-server-url}/{test-repo}'
+            branches:
+              - '{branch}'
 
     triggers:
       - reverse:
@@ -307,7 +307,7 @@
     description: |
                   <!-- Managed by Jenkins Job Builder -->
                   Post Actions on {config-pod} triggered by build_{config-pod}_{branch}. Service ofagent restart required <br /><br />
-                  Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
+                  Created from job-template {id} from ci-management/jjb/cord-test/nightly-build-pipeline.yaml <br />
                   Created by Kailash Khalasi - kailash@opennetworking.org <br />
                   Copyright (c) 2017 Open Networking Foundation (ONF)
 
@@ -315,43 +315,43 @@
 
     parameters:
       - string:
-         name: TestNodeName
-         default: '{testvm}'
-         description: 'Jenkins node name of TestVM Node'
+          name: TestNodeName
+          default: '{testvm}'
+          description: 'Jenkins node name of TestVM Node'
 
       - string:
-         name: cordRepoUrl
-         default: '{gerrit-server-url}'
-         description: 'The URL of the CORD Project repository'
+          name: cordRepoUrl
+          default: '{gerrit-server-url}'
+          description: 'The URL of the CORD Project repository'
 
       - string:
-         name: configBaseDir
-         default: 'pod-configs'
-         description: 'The directory inside the POD configs repository'
+          name: configBaseDir
+          default: 'pod-configs'
+          description: 'The directory inside the POD configs repository'
 
       - string:
-         name: configDeploymentDir
-         default: 'deployment-configs'
-         description: 'The deployment configs folder'
+          name: configDeploymentDir
+          default: 'deployment-configs'
+          description: 'The deployment configs folder'
 
       - string:
-         name: configKubernetesDir
-         default: 'kubernetes-configs'
-         description: 'The kubernetes config folder'
+          name: configKubernetesDir
+          default: 'kubernetes-configs'
+          description: 'The kubernetes config folder'
 
       - string:
-         name: configFileName
-         default: '{config-pod}'
-         description: 'The config file'
+          name: configFileName
+          default: '{config-pod}'
+          description: 'The config file'
 
       - string:
-         name: branch
-         default: '{branch}'
+          name: branch
+          default: '{branch}'
 
       - string:
-         name: notificationEmail
-         default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
-         description: ''
+          name: notificationEmail
+          default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
+          description: ''
 
     concurrent: true
 
@@ -359,9 +359,9 @@
       script-path: '{Jenkinsfile}'
       scm:
         - git:
-           url: '{gerrit-server-url}/cord-tester'
-           branches:
-             - '{branch}'
+            url: '{gerrit-server-url}/cord-tester'
+            branches:
+              - '{branch}'
 
     triggers:
       - reverse:
@@ -374,7 +374,7 @@
     description: |
                   <!-- Managed by Jenkins Job Builder -->
                   Manual Build on POD {config-pod} using {Jenkinsfile} <br /><br />
-                  Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
+                  Created from job-template {id} from ci-management/jjb/cord-test/nightly-build-pipeline.yaml <br />
                   Created by QA (Suchitra Vemuri - suchitra@opennetworking.org ) <br />
                   Copyright (c) 2018 Open Networking Foundation (ONF)
 
@@ -382,53 +382,53 @@
 
     parameters:
       - string:
-         name: TestNodeName
-         default: '{testvm}'
-         description: 'Jenkins node name of TestVM Node'
+          name: TestNodeName
+          default: '{testvm}'
+          description: 'Jenkins node name of TestVM Node'
 
       - string:
-         name: cordRepoUrl
-         default: '{gerrit-server-url}'
-         description: 'The URL of the CORD Project repository'
+          name: cordRepoUrl
+          default: '{gerrit-server-url}'
+          description: 'The URL of the CORD Project repository'
 
       - string:
-         name: configBaseDir
-         default: 'pod-configs'
-         description: 'The directory inside the POD configs repository'
+          name: configBaseDir
+          default: 'pod-configs'
+          description: 'The directory inside the POD configs repository'
 
       - string:
-         name: configDeploymentDir
-         default: 'deployment-configs'
-         description: 'The deployment configs folder'
+          name: configDeploymentDir
+          default: 'deployment-configs'
+          description: 'The deployment configs folder'
 
       - string:
-         name: configKubernetesDir
-         default: 'kubernetes-configs'
-         description: 'The kubernetes config folder'
+          name: configKubernetesDir
+          default: 'kubernetes-configs'
+          description: 'The kubernetes config folder'
 
       - string:
-         name: configToscaDir
-         default: 'tosca-configs'
-         description: 'The tosca config folder'
+          name: configToscaDir
+          default: 'tosca-configs'
+          description: 'The tosca config folder'
 
       - string:
-         name: configFileName
-         default: '{config-pod}'
-         description: 'The config file'
+          name: configFileName
+          default: '{config-pod}'
+          description: 'The config file'
 
       - string:
-         name: oltDebVersion
-         default: '{oltDebVersion}'
-         description: 'OLT Software version to install'
+          name: oltDebVersion
+          default: '{oltDebVersion}'
+          description: 'OLT Software version to install'
 
       - string:
-         name: branch
-         default: '{branch}'
+          name: branch
+          default: '{branch}'
 
       - string:
-         name: notificationEmail
-         default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
-         description: ''
+          name: notificationEmail
+          default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
+          description: ''
 
       - bool:
           name: configurePod
@@ -436,9 +436,9 @@
           description: "Configure POD via TOSCA post build"
 
       - bool:
-            name: reinstallOlt
-            default: true
-            description: "Re-install olt software bringing up CORD"
+          name: reinstallOlt
+          default: true
+          description: "Re-install olt software bringing up CORD"
 
       - bool:
           name: installBBSim
@@ -456,9 +456,9 @@
       script-path: '{Jenkinsfile}'
       scm:
         - git:
-           url: '{gerrit-server-url}/cord-tester'
-           branches:
-             - '{branch}'
+            url: '{gerrit-server-url}/cord-tester'
+            branches:
+              - '{branch}'
 
 - job-template:
     name: 'build_{config-pod}_seba_release_{release}'
@@ -466,7 +466,7 @@
     description: |
                   <!-- Managed by Jenkins Job Builder -->
                   Manual Build on POD {config-pod} using {Jenkinsfile} <br /><br />
-                  Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
+                  Created from job-template {id} from ci-management/jjb/cord-test/nightly-build-pipeline.yaml <br />
                   Created by QA (Suchitra Vemuri - suchitra@opennetworking.org ) <br />
                   Copyright (c) 2018 Open Networking Foundation (ONF)
 
@@ -474,58 +474,58 @@
 
     parameters:
       - string:
-         name: TestNodeName
-         default: '{testvm}'
-         description: 'Jenkins node name of TestVM Node'
+          name: TestNodeName
+          default: '{testvm}'
+          description: 'Jenkins node name of TestVM Node'
 
       - string:
-         name: cordRepoUrl
-         default: '{gerrit-server-url}'
-         description: 'The URL of the CORD Project repository'
+          name: cordRepoUrl
+          default: '{gerrit-server-url}'
+          description: 'The URL of the CORD Project repository'
 
       - string:
-         name: configBaseDir
-         default: 'pod-configs'
-         description: 'The directory inside the POD configs repository'
+          name: configBaseDir
+          default: 'pod-configs'
+          description: 'The directory inside the POD configs repository'
 
       - string:
-         name: configDeploymentDir
-         default: 'deployment-configs'
-         description: 'The deployment configs folder'
+          name: configDeploymentDir
+          default: 'deployment-configs'
+          description: 'The deployment configs folder'
 
       - string:
-         name: configKubernetesDir
-         default: 'kubernetes-configs'
-         description: 'The kubernetes config folder'
+          name: configKubernetesDir
+          default: 'kubernetes-configs'
+          description: 'The kubernetes config folder'
 
       - string:
-         name: configToscaDir
-         default: 'tosca-configs'
-         description: 'The tosca config folder'
+          name: configToscaDir
+          default: 'tosca-configs'
+          description: 'The tosca config folder'
 
       - string:
-         name: configFileName
-         default: '{config-pod}'
-         description: 'The config file'
+          name: configFileName
+          default: '{config-pod}'
+          description: 'The config file'
 
       - string:
-         name: oltDebVersion
-         default: '{oltDebVersion}'
-         description: 'OLT Software version to install'
+          name: oltDebVersion
+          default: '{oltDebVersion}'
+          description: 'OLT Software version to install'
 
       - string:
-         name: helmRepoUrl
-         default: 'https://charts.opencord.org'
-         description: 'URL where helm-charts are published'
+          name: helmRepoUrl
+          default: 'https://charts.opencord.org'
+          description: 'URL where helm-charts are published'
 
       - string:
-         name: branch
-         default: '{branch}'
+          name: branch
+          default: '{branch}'
 
       - string:
-         name: notificationEmail
-         default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
-         description: ''
+          name: notificationEmail
+          default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
+          description: ''
 
       - bool:
           name: configurePod
@@ -533,9 +533,9 @@
           description: "Configure POD via TOSCA post build"
 
       - bool:
-            name: reinstallOlt
-            default: true
-            description: "Re-install olt software bringing up CORD"
+          name: reinstallOlt
+          default: true
+          description: "Re-install olt software bringing up CORD"
 
       - bool:
           name: installBBSim
@@ -553,12 +553,12 @@
       script-path: '{Jenkinsfile}'
       scm:
         - git:
-           url: '{gerrit-server-url}/cord-tester'
-           branches:
-             - '{branch}'
+            url: '{gerrit-server-url}/cord-tester'
+            branches:
+              - '{branch}'
 
     triggers:
-       - timed: |
+      - timed: |
                  TZ=America/Los_Angeles
                  H {time} * * *
 
@@ -568,7 +568,7 @@
     description: |
                   <!-- Managed by Jenkins Job Builder -->
                   Post Tests on {config-pod} triggered by build_{config-pod}_{branch} <br /><br />
-                  Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
+                  Created from job-template {id} from ci-management/jjb/cord-test/nightly-build-pipeline.yaml <br />
                   Created by Kailash Khalasi - kailash@opennetworking.org <br />
                   Copyright (c) 2017 Open Networking Foundation (ONF)
 
@@ -576,48 +576,48 @@
 
     parameters:
       - string:
-         name: TestNodeName
-         default: '{testvm}'
-         description: 'Jenkins node name of TestVM Node'
+          name: TestNodeName
+          default: '{testvm}'
+          description: 'Jenkins node name of TestVM Node'
 
       - string:
-         name: cordRepoUrl
-         default: '{gerrit-server-url}'
-         description: 'The URL of the CORD Project repository'
+          name: cordRepoUrl
+          default: '{gerrit-server-url}'
+          description: 'The URL of the CORD Project repository'
 
       - string:
-         name: configBaseDir
-         default: 'pod-configs'
-         description: 'The directory inside the POD configs repository'
+          name: configBaseDir
+          default: 'pod-configs'
+          description: 'The directory inside the POD configs repository'
 
       - string:
-         name: configDeploymentDir
-         default: 'deployment-configs'
-         description: 'The deployment configs folder'
+          name: configDeploymentDir
+          default: 'deployment-configs'
+          description: 'The deployment configs folder'
 
       - string:
-         name: configKubernetesDir
-         default: 'kubernetes-configs'
-         description: 'The kubernetes config folder'
+          name: configKubernetesDir
+          default: 'kubernetes-configs'
+          description: 'The kubernetes config folder'
 
       - string:
-         name: configToscaDir
-         default: 'tosca-configs'
-         description: 'The tosca config folder'
+          name: configToscaDir
+          default: 'tosca-configs'
+          description: 'The tosca config folder'
 
       - string:
-         name: configFileName
-         default: '{config-pod}'
-         description: 'The config file'
+          name: configFileName
+          default: '{config-pod}'
+          description: 'The config file'
 
       - string:
-         name: branch
-         default: '{branch}'
+          name: branch
+          default: '{branch}'
 
       - string:
-         name: notificationEmail
-         default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
-         description: ''
+          name: notificationEmail
+          default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
+          description: ''
 
     concurrent: true
 
@@ -625,9 +625,9 @@
       script-path: '{Jenkinsfile}'
       scm:
         - git:
-           url: '{gerrit-server-url}/cord-tester'
-           branches:
-             - '{branch}'
+            url: '{gerrit-server-url}/cord-tester'
+            branches:
+              - '{branch}'
 
     triggers:
       - reverse:
@@ -641,7 +641,7 @@
     description: |
                   <!-- Managed by Jenkins Job Builder -->
                   Post Tests on {config-pod} triggered by build_{config-pod}_{branch} <br /><br />
-                  Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
+                  Created from job-template {id} from ci-management/jjb/cord-test/nightly-build-pipeline.yaml <br />
                   Created by Kailash Khalasi - kailash@opennetworking.org <br />
                   Copyright (c) 2017 Open Networking Foundation (ONF)
 
@@ -649,48 +649,48 @@
 
     parameters:
       - string:
-         name: TestNodeName
-         default: '{testvm}'
-         description: 'Jenkins node name of TestVM Node'
+          name: TestNodeName
+          default: '{testvm}'
+          description: 'Jenkins node name of TestVM Node'
 
       - string:
-         name: cordRepoUrl
-         default: '{gerrit-server-url}'
-         description: 'The URL of the CORD Project repository'
+          name: cordRepoUrl
+          default: '{gerrit-server-url}'
+          description: 'The URL of the CORD Project repository'
 
       - string:
-         name: configBaseDir
-         default: 'pod-configs'
-         description: 'The directory inside the POD configs repository'
+          name: configBaseDir
+          default: 'pod-configs'
+          description: 'The directory inside the POD configs repository'
 
       - string:
-         name: configDeploymentDir
-         default: 'deployment-configs'
-         description: 'The deployment configs folder'
+          name: configDeploymentDir
+          default: 'deployment-configs'
+          description: 'The deployment configs folder'
 
       - string:
-         name: configKubernetesDir
-         default: 'kubernetes-configs'
-         description: 'The kubernetes config folder'
+          name: configKubernetesDir
+          default: 'kubernetes-configs'
+          description: 'The kubernetes config folder'
 
       - string:
-         name: configToscaDir
-         default: 'tosca-configs'
-         description: 'The tosca config folder'
+          name: configToscaDir
+          default: 'tosca-configs'
+          description: 'The tosca config folder'
 
       - string:
-         name: configFileName
-         default: '{config-pod}'
-         description: 'The config file'
+          name: configFileName
+          default: '{config-pod}'
+          description: 'The config file'
 
       - string:
-         name: branch
-         default: '{branch}'
+          name: branch
+          default: '{branch}'
 
       - string:
-         name: notificationEmail
-         default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
-         description: ''
+          name: notificationEmail
+          default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
+          description: ''
 
     concurrent: true
 
@@ -698,9 +698,9 @@
       script-path: '{Jenkinsfile}'
       scm:
         - git:
-           url: '{gerrit-server-url}/cord-tester'
-           branches:
-             - '{branch}'
+            url: '{gerrit-server-url}/cord-tester'
+            branches:
+              - '{branch}'
 
     triggers:
       - reverse:
@@ -722,53 +722,53 @@
 
     parameters:
       - string:
-         name: TestNodeName
-         default: '{testvm}'
-         description: 'Jenkins node name of TestVM Node'
+          name: TestNodeName
+          default: '{testvm}'
+          description: 'Jenkins node name of TestVM Node'
 
       - string:
-         name: cordRepoUrl
-         default: '{gerrit-server-url}'
-         description: 'The URL of the CORD Project repository'
+          name: cordRepoUrl
+          default: '{gerrit-server-url}'
+          description: 'The URL of the CORD Project repository'
 
       - string:
-         name: configBaseDir
-         default: 'pod-configs'
-         description: 'The directory inside the POD configs repository'
+          name: configBaseDir
+          default: 'pod-configs'
+          description: 'The directory inside the POD configs repository'
 
       - string:
-         name: configDeploymentDir
-         default: 'deployment-configs'
-         description: 'The deployment configs folder'
+          name: configDeploymentDir
+          default: 'deployment-configs'
+          description: 'The deployment configs folder'
 
       - string:
-         name: configKubernetesDir
-         default: 'kubernetes-configs'
-         description: 'The kubernetes config folder'
+          name: configKubernetesDir
+          default: 'kubernetes-configs'
+          description: 'The kubernetes config folder'
 
       - string:
-         name: configToscaDir
-         default: 'tosca-configs'
-         description: 'The tosca config folder'
+          name: configToscaDir
+          default: 'tosca-configs'
+          description: 'The tosca config folder'
 
       - string:
-         name: configFileName
-         default: '{config-pod}'
-         description: 'The config file'
+          name: configFileName
+          default: '{config-pod}'
+          description: 'The config file'
 
       - string:
-         name: branch
-         default: '{branch}'
+          name: branch
+          default: '{branch}'
 
       - string:
-         name: profile
-         default: '{profile}'
-         description: 'Profile in which this job installs'
+          name: profile
+          default: '{profile}'
+          description: 'Profile in which this job installs'
 
       - string:
-         name: notificationEmail
-         default: 'luca@opennetworking.org, teo@opennetworking.org, weiyu@opennetworking.org'
-         description: ''
+          name: notificationEmail
+          default: 'luca@opennetworking.org, teo@opennetworking.org, weiyu@opennetworking.org'
+          description: ''
 
       - bool:
           name: configurePod
@@ -786,12 +786,12 @@
       script-path: '{Jenkinsfile}'
       scm:
         - git:
-           url: '{gerrit-server-url}/cord-tester'
-           branches:
-             - '{branch}'
+            url: '{gerrit-server-url}/cord-tester'
+            branches:
+              - '{branch}'
 
 - job-template:
-    name: 'build_{config-pod}_voltha_{release}'
+    name: 'build_{config-pod}_{profile}_voltha_{release}'
     id: build_voltha_pod_release
     description: |
                   <!-- Managed by Jenkins Job Builder -->
@@ -804,58 +804,63 @@
 
     parameters:
       - string:
-         name: TestNodeName
-         default: '{testvm}'
-         description: 'Jenkins node name of TestVM Node'
+          name: TestNodeName
+          default: '{testvm}'
+          description: 'Jenkins node name of TestVM Node'
 
       - string:
-         name: cordRepoUrl
-         default: '{gerrit-server-url}'
-         description: 'The URL of the CORD Project repository'
+          name: cordRepoUrl
+          default: '{gerrit-server-url}'
+          description: 'The URL of the CORD Project repository'
 
       - string:
-         name: configBaseDir
-         default: 'pod-configs'
-         description: 'The directory inside the POD configs repository'
+          name: configBaseDir
+          default: 'pod-configs'
+          description: 'The directory inside the POD configs repository'
 
       - string:
-         name: configDeploymentDir
-         default: 'deployment-configs'
-         description: 'The deployment configs folder'
+          name: configDeploymentDir
+          default: 'deployment-configs'
+          description: 'The deployment configs folder'
 
       - string:
-         name: configKubernetesDir
-         default: 'kubernetes-configs'
-         description: 'The kubernetes config folder'
+          name: configKubernetesDir
+          default: 'kubernetes-configs'
+          description: 'The kubernetes config folder'
 
       - string:
-         name: configToscaDir
-         default: 'tosca-configs'
-         description: 'The tosca config folder'
+          name: configToscaDir
+          default: 'tosca-configs'
+          description: 'The tosca config folder'
 
       - string:
-         name: configFileName
-         default: '{config-pod}'
-         description: 'The config file'
+          name: configFileName
+          default: '{config-pod}'
+          description: 'The config file'
 
       - string:
-         name: oltDebVersion
-         default: '{oltDebVersion}'
-         description: 'OLT Software version to install'
+          name: profile
+          default: '{profile}'
+          description: 'Technology Profile pushed to the ETCD'
 
       - string:
-         name: helmRepoUrl
-         default: 'https://charts.opencord.org'
-         description: 'URL where helm-charts are published'
+          name: oltDebVersion
+          default: '{oltDebVersion}'
+          description: 'OLT Software version to install'
 
       - string:
-         name: branch
-         default: '{branch}'
+          name: helmRepoUrl
+          default: 'https://charts.opencord.org'
+          description: 'URL where helm-charts are published'
 
       - string:
-         name: notificationEmail
-         default: 'you@opennetworking.org, suchitra@opennetworking.org'
-         description: ''
+          name: branch
+          default: '{branch}'
+
+      - string:
+          name: notificationEmail
+          default: 'you@opennetworking.org, suchitra@opennetworking.org'
+          description: ''
 
       - bool:
           name: configurePod
@@ -863,9 +868,9 @@
           description: "Configure POD via TOSCA post build"
 
       - bool:
-            name: reinstallOlt
-            default: true
-            description: "Re-install olt software bringing up CORD"
+          name: reinstallOlt
+          default: true
+          description: "Re-install olt software bringing up CORD"
 
     concurrent: true
 
@@ -873,71 +878,75 @@
       script-path: '{Jenkinsfile}'
       scm:
         - git:
-           url: '{gerrit-server-url}/voltha-system-tests'
-           branches:
-             - '{branch}'
+            url: '{gerrit-server-url}/voltha-system-tests'
+            branches:
+              - '{branch}'
 
     triggers:
-       - timed: |
+      - timed: |
                  TZ=America/Los_Angeles
                  H {time} * * *
 
 - job-template:
-    name: 'build_{config-pod}_voltha_{release}_test'
+    name: 'build_{config-pod}_{profile}_voltha_{release}_test'
     id: build_voltha_pod_test
     description: |
                   <!-- Managed by Jenkins Job Builder -->
                   Post Tests on {config-pod} triggered by build_{config-pod}_{branch} <br /><br />
-                  Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
+                  Created from job-template {id} from ci-management/jjb/cord-test/nightly-build-pipeline.yaml <br />
                   Created by Suchitra Vemuri, suchitra@opennetworking.org <br />
                   Copyright (c) 2017 Open Networking Foundation (ONF)
 
     <<: *test-pipe-job-boiler-plate
-
     parameters:
       - string:
-         name: TestNodeName
-         default: '{testvm}'
-         description: 'Jenkins node name of TestVM Node'
+          name: TestNodeName
+          default: '{testvm}'
+          description: 'Jenkins node name of TestVM Node'
 
       - string:
-         name: cordRepoUrl
-         default: '{gerrit-server-url}'
-         description: 'The URL of the CORD Project repository'
+          name: cordRepoUrl
+          default: '{gerrit-server-url}'
+          description: 'The URL of the CORD Project repository'
 
       - string:
-         name: configBaseDir
-         default: 'pod-configs'
-         description: 'The directory inside the POD configs repository'
+          name: configBaseDir
+          default: 'pod-configs'
+          description: 'The directory inside the POD configs repository'
 
       - string:
-         name: configDeploymentDir
-         default: 'deployment-configs'
-         description: 'The deployment configs folder'
+          name: configDeploymentDir
+          default: 'deployment-configs'
+          description: 'The deployment configs folder'
 
       - string:
-         name: configKubernetesDir
-         default: 'kubernetes-configs'
-         description: 'The kubernetes config folder'
+          name: configKubernetesDir
+          default: 'kubernetes-configs'
+          description: 'The kubernetes config folder'
 
       - string:
-         name: configToscaDir
-         default: 'tosca-configs'
-         description: 'The tosca config folder'
+          name: configToscaDir
+          default: 'tosca-configs'
+          description: 'The tosca config folder'
 
       - string:
-         name: configFileName
-         default: '{config-pod}'
-         description: 'The config file'
+          name: configFileName
+          default: '{config-pod}'
+          description: 'The config file'
 
       - string:
-         name: branch
-         default: '{branch}'
+          name: profile
+          default: '{profile}'
+          description: 'Technology Profile pushed to the ETCD'
 
       - string:
-         name: notificationEmail
-         default: 'you@opennetworking.org, suchitra@opennetworking.org'
-         description: ''
+          name: branch
+          default: '{branch}'
+
+      - string:
+          name: notificationEmail
+          default: 'you@opennetworking.org, suchitra@opennetworking.org'
+          description: ''
 
     concurrent: true
 
@@ -945,12 +954,12 @@
       script-path: '{Jenkinsfile}'
       scm:
         - git:
-           url: '{gerrit-server-url}/voltha-system-tests'
-           branches:
-             - '{branch}'
+            url: '{gerrit-server-url}/voltha-system-tests'
+            branches:
+              - '{branch}'
 
     triggers:
       - reverse:
-          jobs: 'build_{config-pod}_voltha_{release}'
+          jobs: 'build_{config-pod}_{profile}_voltha_{release}'
           result: 'success'
 
diff --git a/jjb/cord-test/rcord-lite.yaml b/jjb/cord-test/rcord-lite.yaml
deleted file mode 100644
index 8088580..0000000
--- a/jjb/cord-test/rcord-lite.yaml
+++ /dev/null
@@ -1,73 +0,0 @@
----
-# POD Nightly Test Pipeline RCORD Lite Jobs
-
-- project:
-    name: rcord-lite-nightly-job
-
-    project-name: '{name}'
-
-    build-timeout: '300'
-
-    jobs:
-     # flex ocp with olt/onu  kubernetes master build jobs (rcord lite)
-      - 'build_pod_timer':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord'
-         profile: 'rcord-topdown'
-         branch: 'master'
-         test-repo: 'cord-tester'
-         Jenkinsfile: 'Jenkinsfile-rcordlite-topdown-build'
-         oltDebVersion: 'openolt-master.deb'
-         configurePod: true
-         time: '0'
-
-     # flex ocp  with olt/onu test job
-      - 'build_pod_test':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord'
-         profile: 'rcord-topdown'
-         test-repo: 'cord-tester'
-         branch: 'master'
-         Jenkinsfile: 'Jenkinsfile-rcordlite-topdown-test'
-
-     # flex ocp  with olt/onu  kubernetes master build jobs (rcord lite)
-      - 'build_pod_timer':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord'
-         profile: 'rcord-zerotouch'
-         branch: 'master'
-         test-repo: 'cord-tester'
-         Jenkinsfile: 'Jenkinsfile-rcordlite-zerotouch-build'
-         oltDebVersion: 'openolt-master.deb'
-         configurePod: true
-         time: '2'
-
-     # flex ocp with olt/onu test job
-      - 'build_pod_test':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord'
-         profile: 'rcord-zerotouch'
-         branch: 'master'
-         test-repo: 'cord-tester'
-         Jenkinsfile: 'Jenkinsfile-rcordlite-zerotouch-test'
-
-     # qct pod1 kubernetes build jobs (rcord lite topdown)
-      - 'build_pod_timer':
-         testvm: 'qct-pod1'
-         config-pod: 'qct-pod1'
-         profile: 'rcord-topdown'
-         branch: 'master'
-         test-repo: 'cord-tester'
-         Jenkinsfile: 'Jenkinsfile-rcordlite-topdown-build'
-         oltDebVersion: 'openolt-1.4.deb'
-         configurePod: true
-         time: '0'
-
-     # qct pod1 test jobs (rcord lite topdown)
-      - 'build_pod_test':
-         testvm: 'qct-pod1'
-         config-pod: 'qct-pod1'
-         profile: 'rcord-topdown'
-         branch: 'master'
-         test-repo: 'cord-tester'
-         Jenkinsfile: 'Jenkinsfile-rcordlite-topdown-test'
diff --git a/jjb/cord-test/seba-release.yaml b/jjb/cord-test/seba-release.yaml
index 041162f..b572d6b 100644
--- a/jjb/cord-test/seba-release.yaml
+++ b/jjb/cord-test/seba-release.yaml
@@ -11,90 +11,107 @@
     jobs:
       # onlab pod1 build 1.0
       - 'build_pod_manual_release':
-         testvm: 'onf-build'
-         config-pod: 'onlab-pod1-voltha16'
-         release: '1.0'
-         branch: 'cord-6.1'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-build-released-ver'
-         oltDebVersion: 'openolt-master-voltha16.deb'
+          testvm: 'onf-build'
+          config-pod: 'onlab-pod1-voltha16'
+          release: '1.0'
+          branch: 'cord-6.1'
+          Jenkinsfile: 'Jenkinsfile-attworkflow-build-released-ver'
+          oltDebVersion: 'openolt-master-voltha16.deb'
 
       # onlab pod1 build 2.0
       - 'build_pod_manual_release':
-         testvm: 'onf-build'
-         config-pod: 'onlab-pod1'
-         release: '2.0'
-         branch: 'master'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-build-released-ver'
-         oltDebVersion: 'openolt-master.deb'
+          testvm: 'onf-build'
+          config-pod: 'onlab-pod1'
+          release: '2.0'
+          branch: 'master'
+          Jenkinsfile: 'Jenkinsfile-attworkflow-build-released-ver'
+          oltDebVersion: 'openolt-master.deb'
+
+      # onlab pod1 test job - release 2.0 test job
+      - 'build_pod_release_test':
+          testvm: 'onf-build'
+          config-pod: 'onlab-pod1'
+          release: '2.0'
+          branch: 'master'
+          Jenkinsfile: 'Jenkinsfile-attworkflow-test'
 
       # onlab pod2 build
       - 'build_pod_manual_release':
-         testvm: 'onf-build'
-         config-pod: 'onlab-pod2'
-         release: '1.0'
-         branch: 'cord-6.1'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-build-released-ver'
-         oltDebVersion: 'openolt-master.deb'
+          testvm: 'onf-build'
+          config-pod: 'onlab-pod2'
+          release: '1.0'
+          branch: 'cord-6.1'
+          Jenkinsfile: 'Jenkinsfile-attworkflow-build-released-ver'
+          oltDebVersion: 'openolt-master.deb'
 
       # onlab pod2 build 2.0
       - 'build_pod_manual_release':
-         testvm: 'onf-build'
-         config-pod: 'onlab-pod2'
-         release: '2.0'
-         branch: 'master'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-build-released-ver'
-         oltDebVersion: 'openolt-master.deb'
+          testvm: 'onf-build'
+          config-pod: 'onlab-pod2'
+          release: '2.0'
+          branch: 'master'
+          Jenkinsfile: 'Jenkinsfile-attworkflow-build-released-ver'
+          oltDebVersion: 'openolt-master.deb'
 
-      # flex OCP pod with olt/onu - release 2.0 build job
-      - 'build_pod_release':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord'
-         release: '1.0'
-         branch: 'cord-6.1'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-build-released-ver'
-         oltDebVersion: 'openolt-master-voltha16.deb'
-         time: '3'
+     # Flex POD build 2.0
+      - 'build_pod_manual_release':
+          testvm: 'qa-testvm-pod'
+          config-pod: 'flex-ocp-cord'
+          release: '2.0'
+          branch: 'master'
+          Jenkinsfile: 'Jenkinsfile-attworkflow-build-released-ver'
+          oltDebVersion: 'openolt-master.deb'
 
-      # flex OCP pod with olt/onu - release 2.0 build job
-      - 'build_pod_release':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord'
-         release: '2.0'
-         branch: 'master'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-build-released-ver'
-         oltDebVersion: 'openolt-master.deb'
-         time: '5'
+          # # flex OCP pod with olt/onu - release 2.0 build job
+          # - 'build_pod_release':
+          #     testvm: 'qa-testvm-pod'
+          #     config-pod: 'flex-ocp-cord'
+          #     release: '1.0'
+          #     branch: 'cord-6.1'
+          #     Jenkinsfile: 'Jenkinsfile-attworkflow-build-released-ver'
+          #     oltDebVersion: 'openolt-master-voltha16.deb'
+          #     time: '3'
 
-      # flex OCP POD with olt/onu - release 1.0 test job
-      - 'build_pod_release_test':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord'
-         release: '1.0'
-         branch: 'cord-6.1'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-test'
-
-      # flex OCP POD with olt/onu - release 2.0 test job
-      - 'build_pod_release_test':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord'
-         release: '2.0'
-         branch: 'master'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-test'
-
-      # flex OCP pod with olt/onu : using voltha latest(master)
-      - 'build_pod_release':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord'
-         release: '2.0-microcharts'
-         branch: 'master'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-build'
-         oltDebVersion: 'openolt-master.deb'
-         time: '7'
-
-      # flex OCP test job - release 2.0 test job
-      - 'build_pod_release_test':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord'
-         release: '2.0-microcharts'
-         branch: 'master'
-         Jenkinsfile: 'Jenkinsfile-attworkflow-test'
+          # # flex OCP pod with olt/onu - release 2.0 build job
+          # - 'build_pod_release':
+          #     testvm: 'qa-testvm-pod'
+          #     config-pod: 'flex-ocp-cord'
+          #     release: '2.0'
+          #     branch: 'master'
+          #     Jenkinsfile: 'Jenkinsfile-attworkflow-build-released-ver'
+          #     oltDebVersion: 'openolt-master.deb'
+          #     time: '5'
+          #
+          # # flex OCP POD with olt/onu - release 1.0 test job
+          # - 'build_pod_release_test':
+          #     testvm: 'qa-testvm-pod'
+          #     config-pod: 'flex-ocp-cord'
+          #     release: '1.0'
+          #     branch: 'cord-6.1'
+          #     Jenkinsfile: 'Jenkinsfile-attworkflow-test'
+          #
+          # # flex OCP POD with olt/onu - release 2.0 test job
+          # - 'build_pod_release_test':
+          #     testvm: 'qa-testvm-pod'
+          #     config-pod: 'flex-ocp-cord'
+          #     release: '2.0'
+          #     branch: 'master'
+          #     Jenkinsfile: 'Jenkinsfile-attworkflow-test'
+          #
+          # # flex OCP pod with olt/onu : using voltha latest(master)
+          # - 'build_pod_release':
+          #     testvm: 'qa-testvm-pod'
+          #     config-pod: 'flex-ocp-cord'
+          #     release: '2.0-microcharts'
+          #     branch: 'master'
+          #     Jenkinsfile: 'Jenkinsfile-attworkflow-build'
+          #     oltDebVersion: 'openolt-master.deb'
+          #     time: '7'
+          #
+          # # flex OCP test job - release 2.0 test job
+          # - 'build_pod_release_test':
+          #     testvm: 'qa-testvm-pod'
+          #     config-pod: 'flex-ocp-cord'
+          #     release: '2.0-microcharts'
+          #     branch: 'master'
+          #     Jenkinsfile: 'Jenkinsfile-attworkflow-test'
diff --git a/jjb/cord-test/voltha.yaml b/jjb/cord-test/voltha.yaml
index 8a0b31c..34d3205 100644
--- a/jjb/cord-test/voltha.yaml
+++ b/jjb/cord-test/voltha.yaml
@@ -9,45 +9,140 @@
     build-timeout: '300'
 
     jobs:
-      # flex OCP pod with olt/onu - release voltha2.0 build job
+      # flex OCP pod with olt/onu - release voltha master build job
       - 'build_pod_manual':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord'
-         release: '2.0'
-         branch: 'master'
-         test-repo: 'voltha-system-tests'
-         Jenkinsfile: 'Jenkinsfile-voltha-build'
-         oltDebVersion: 'openolt-seba-2.0.deb'
-         profile: 'multipleGem'
+          testvm: 'qa-testvm-pod'
+          config-pod: 'flex-ocp-cord'
+          release: 'master'
+          branch: 'master'
+          test-repo: 'voltha-system-tests'
+          Jenkinsfile: 'Jenkinsfile-voltha-build'
+          oltDebVersion: 'openolt-seba-2.0.deb'
+          profile: '1T4GEM'
 
       # flex pod1 test job - using voltha branch
       - 'build_pod_test':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord'
-         profile: 'multipleGem'
-         branch: 'master'
-         test-repo: 'voltha-system-tests'
-         Jenkinsfile: 'Jenkinsfile-voltha-test'
+          testvm: 'qa-testvm-pod'
+          config-pod: 'flex-ocp-cord'
+          profile: '1T4GEM'
+          branch: 'master'
+          test-repo: 'voltha-system-tests'
+          Jenkinsfile: 'Jenkinsfile-voltha-test'
 
-      # flex OCP pod with olt/onu - timer based job
+      # onlab pod1 OCP pod with olt/onu - testing BAL3.1 release voltha master build job
+      - 'build_pod_manual':
+          testvm: 'onf-build'
+          config-pod: 'onlab-pod1'
+          release: 'master'
+          branch: 'master'
+          test-repo: 'voltha-system-tests'
+          Jenkinsfile: 'Jenkinsfile-voltha-bal31-build'
+          oltDebVersion: 'openolt_asfvolt16.deb'
+          profile: '1T4GEM-bal31'
+
+      # onlab pod1 test job - BAL3.1 tests using voltha branch
+      - 'build_pod_test':
+          testvm: 'onf-build'
+          config-pod: 'onlab-pod1'
+          profile: '1T4GEM'
+          branch: 'master'
+          test-repo: 'voltha-system-tests'
+          Jenkinsfile: 'Jenkinsfile-voltha-test'
+
+      # flex OCP pod with olt/onu - Default tech profile and timer based job
       - 'build_voltha_pod_release':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord'
-         release: '2.1'
+          testvm: 'qa-testvm-pod'
+          config-pod: 'flex-ocp-cord'
+          release: 'master'
+          branch: 'master'
+          test-repo: 'voltha-system-tests'
+          Jenkinsfile: 'Jenkinsfile-voltha-build'
+          oltDebVersion: 'openolt-seba-2.0.deb'
+          configurePod: true
+          profile: 'Default'
+          time: '1'
+
+      # flex pod1 test job - uses tech profile on voltha branch
+      - 'build_voltha_pod_test':
+          testvm: 'qa-testvm-pod'
+          config-pod: 'flex-ocp-cord'
+          release: 'master'
+          branch: 'master'
+          test-repo: 'voltha-system-tests'
+          profile: 'Default'
+          Jenkinsfile: 'Jenkinsfile-voltha-test'
+
+      # flex OCP pod with olt/onu - uses 1TCONT/4GEMs tech profile on voltha - timer based job
+      - 'build_voltha_pod_release':
+          testvm: 'qa-testvm-pod'
+          config-pod: 'flex-ocp-cord'
+          release: 'master'
+          branch: 'master'
+          test-repo: 'voltha-system-tests'
+          Jenkinsfile: 'Jenkinsfile-voltha-build'
+          oltDebVersion: 'openolt-seba-2.0.deb'
+          configurePod: true
+          profile: '1T4GEM'
+          time: '2'
+
+      # flex pod1 test job - test job uses 1TCONT/4GEMs tech profile - using voltha branch
+      - 'build_voltha_pod_test':
+          testvm: 'qa-testvm-pod'
+          config-pod: 'flex-ocp-cord'
+          release: 'master'
+          branch: 'master'
+          test-repo: 'voltha-system-tests'
+          profile: '1T4GEM'
+          Jenkinsfile: 'Jenkinsfile-voltha-test'
+
+      # Menlo DEMO-POD - 1 1TCONT 4 4GEMs TechProfile
+      - 'build_pod_manual':
+          testvm: 'menlo-demo-pod'
+          config-pod: 'onf-demo-pod'
+          release: 'master'
+          branch: 'master'
+          test-repo: 'voltha-system-tests'
+          Jenkinsfile: 'Jenkinsfile-voltha-build'
+          oltDebVersion: 'openolt-seba-2.0.deb'
+          configurePod: true
+          profile: '1T4GEM'
+      - 'build_pod_test':
+          testvm: 'menlo-demo-pod'
+          config-pod: 'onf-demo-pod'
+          branch: 'master'
+          test-repo: 'voltha-system-tests'
+          Jenkinsfile: 'Jenkinsfile-voltha-test'
+          profile: '1T4GEM'
+
+      # Menlo DEMO-POD - Default TechProfile
+      - 'build_pod_manual':
+          testvm: 'menlo-demo-pod'
+          config-pod: 'onf-demo-pod'
+          release: 'master'
+          branch: 'master'
+          test-repo: 'voltha-system-tests'
+          Jenkinsfile: 'Jenkinsfile-voltha-build'
+          oltDebVersion: 'openolt-seba-2.0.deb'
+          configurePod: true
+          profile: 'Default'
+
+      # ONF DEMO  pod with olt/onu - voltha dev job - timer based 
+      - 'build_pod_timer':
+         testvm: 'menlo-demo-pod'
+         config-pod: 'onf-demo-pod'
+         profile: 'Default'
          branch: 'master'
          test-repo: 'voltha-system-tests'
          Jenkinsfile: 'Jenkinsfile-voltha-build'
          oltDebVersion: 'openolt-seba-2.0.deb'
          configurePod: true
-         time: '1'
+         time: '3'
 
-     # flex pod1 test job - using voltha branch
-      - 'build_voltha_pod_test':
-         testvm: 'qa-testvm-pod'
-         config-pod: 'flex-ocp-cord'
-         profile: 'multipleGem'
-         branch: 'master'
-         release: '2.1'
-         test-repo: 'voltha-system-tests'
-         Jenkinsfile: 'Jenkinsfile-voltha-test'
-
+      # ONF DEM) OCP test job - voltha-master branch - timer based
+      - 'build_pod_test':
+          testvm: 'menlo-demo-pod'
+          config-pod: 'onf-demo-pod'
+          profile: 'Default'
+          branch: 'master'
+          test-repo: 'voltha-system-tests'
+          Jenkinsfile: 'Jenkinsfile-voltha-test'
diff --git a/jjb/defaults.yaml b/jjb/defaults.yaml
index 2cbdaef..af00943 100644
--- a/jjb/defaults.yaml
+++ b/jjb/defaults.yaml
@@ -5,7 +5,7 @@
     name: global
 
     # lftools
-    lftools-version: <1.0.0
+    lftools-version: '~=0.26.2'
 
     # name of the SSH key to use in most cases
     jenkins-ssh-credential: 'cord-jenkins-ssh'
@@ -18,7 +18,8 @@
     destination-dir: ''
     basedir: ''
 
-    # used to rename jobs if required
+    # used to rename jobs as is required, if running same job more than once
+    # for a project
     name-extension: ''
 
     # How long to keep builds and artifacts
@@ -29,7 +30,7 @@
     archive-artifacts: ''
 
     # build timeout (minutes)
-    build-timeout: 10
+    build-timeout: 20
 
     # timed trigger defaults, crontab syntax
     # H = random value hashed by name of job
@@ -40,8 +41,8 @@
     twice-a-day: "H */12 * * *"
     once-a-day: "H 0 * * *"
 
-    # The most frequently used type of build node
-    # see other build node types under "Cloud > Amazon EC2" at
+    # The most frequently used type of Build Executor. Name is per the LF global-jjb.
+    # See build node types under "Cloud > Amazon EC2" at
     #  https://jenkins.opencord.org/configure
     build-node: ubuntu16.04-basebuild-1c-1g
 
@@ -71,7 +72,6 @@
     modern-branches-regexp: '^(master|cord-7.0|cord-6.1|cord-6.0|seba-1.0)$'
     platform-branches-regexp: '^(master|cord-7.0|cord-6.1)$'
     seba-branches-regexp: '^(master|cord-7.0|seba-1.0)$'
-    voltha-stablization-branch: '^(voltha-2.1)$'
 
     # matchs all project repos
     all-projects-regexp: '.*'
@@ -86,7 +86,7 @@
 
     # matching repos that should be version tagged by the version-tag job
     # (basically the same as imagebuilder projects + helm charts + tools
-    version-tag-projects-regexp: '^(xos.*|.*helm-charts|automation-tools|cord-tester|chameleon|rcord|mcord|ecord|acordion|addressmanager|epc-service|exampleservice|fabric|fabric-crossconnect|globalxos|hippie-oss|hss_db|hypercache|internetemulator|kubernetes-service|monitoring|olt-service|onos-service|openstack|progran|sdn-controller|simpleexampleservice|templateservice|vEE|vEG|vBBU|venb|vHSS|vMME|vnaas|vPGWC|vPGWU|vrouter|vsg|vsg-hw|vSGW|vSM|vspgwc|vspgwu|vtn-service|vtr|att-workflow-driver|tt-workflow-driver|ves-agent|voltha-bbsim|openolt|sadis-server|kafka-topic-exporter|pyvoltha|voltha-adtran-adapter|voltha-openolt-adapter|voltha-openonu-adapter|plyxproto|voltha-protos|alpine-grpc-base|cordctl|voltha-go|voltha-onos|device-management|cord-workflow.*|voltha-system-tests|openairinterface|omec-.*|bbsim|omci-sim|ponsim|pppoel2relay|voltha-api-server)$'
+    version-tag-projects-regexp: '^(xos.*|.*helm-charts|automation-tools|cord-tester|chameleon|rcord|mcord|ecord|acordion|addressmanager|epc-service|exampleservice|fabric|fabric-crossconnect|globalxos|hippie-oss|hss_db|hypercache|internetemulator|kubernetes-service|monitoring|olt-service|onos-service|openstack|progran|sdn-controller|simpleexampleservice|templateservice|vEE|vEG|vBBU|venb|vHSS|vMME|vnaas|vPGWC|vPGWU|vrouter|vsg|vsg-hw|vSGW|vSM|vspgwc|vspgwu|vtn-service|vtr|att-workflow-driver|tt-workflow-driver|ves-agent|voltha-bbsim|openolt|sadis-server|kafka-topic-exporter|pyvoltha||plyxproto|voltha-protos|alpine-grpc-base|cordctl|voltha-go|voltha-onos|device-management|cord-workflow.*|voltha-system-tests|openairinterface|omec-.*|bbsim|omci-sim|ponsim|pppoel2relay|voltha-api-server|aaa|config|dhcpl2relay|igmp|igmpproxy|kafka-onos|mcast|olt|sadis|vtn|voltha-.*-adapter|voltha-lib-go|voltha-python-base)$'
 
     # PyPI related publishing variables
     #
@@ -126,7 +126,7 @@
     code-files-regexp: '^(?!docs|VERSION|\/COMMIT_MSG).*$'
     api-test-files-regexp: '^(?!docs|VERSION|\/COMMIT_MSG|Jenkinsfile-*).*$'
 
-      # Jenkins SSH host doc publisher
+    # Jenkins SSH host doc publisher
     docs-ssh-host: 'guide.opencord.org'
     docs-ssh-host-key: 'guide.opencord.org,52.9.82.207 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFHwOY3/8GucdKzBngH/FC08nHac/RJ/OheZp2+5EpOPXZG9zQW2YUbXH5A9pO76lI5CG3z3+huG62xEGo99UQU='
 
diff --git a/jjb/docker-publish-github.yaml b/jjb/docker-publish-github.yaml
index 39c6be1..1071aea 100644
--- a/jjb/docker-publish-github.yaml
+++ b/jjb/docker-publish-github.yaml
@@ -25,7 +25,7 @@
 
     parameters:
       - string:
-          name: executorNode
+          name: buildNode
           default: 'ubuntu16.04-basebuild-1c-2g'
           description: 'Name of the Jenkins node to run the job on'
 
diff --git a/jjb/docker-publish.yaml b/jjb/docker-publish.yaml
index 592557f..f9f878a 100644
--- a/jjb/docker-publish.yaml
+++ b/jjb/docker-publish.yaml
@@ -5,7 +5,7 @@
     id: docker-publish
     name: 'docker-publish_{project}'
     description: |
-      Created by {id} job-template from ci-management/jjb/docker-publish.yaml
+      Created by {id} job-template from ci-management/jjb/docker-publish.yaml, script pipeline/docker-publish.groovy
 
     triggers:
       - cord-infra-gerrit-trigger-merge:
@@ -27,9 +27,9 @@
 
     parameters:
       - string:
-          name: executorNode
+          name: buildNode
           default: 'ubuntu16.04-basebuild-1c-2g'
-          description: 'Name of the Jenkins node to run the job on'
+          description: 'Name of the Jenkins build executor to run the job on'
 
       - string:
           name: gitUrl
diff --git a/jjb/fossa.yaml b/jjb/fossa.yaml
new file mode 100644
index 0000000..9d6e09b
--- /dev/null
+++ b/jjb/fossa.yaml
@@ -0,0 +1,102 @@
+---
+# fossa license check job
+# Check for license issues with the FOSSA tool
+
+- project:
+    name: fossa-verify
+
+    jobs:
+      - 'fossa-verify':
+          fossa-team: cord
+          project-regexp: '{all-projects-regexp}'
+          branch-regexp: '{all-branches-regexp}'
+          file-include-regexp: '{all-files-regexp}'
+
+
+- job-template:
+    id: 'fossa-verify'
+    name: 'verify_fossa_{fossa-team}'
+
+    description: |
+                  Post-merge check of code with fossa toolset
+                  Created by {id} job-template from ci-management/jjb/fossa.yaml<br/>
+                  Copyright (c) 2018-present Open Networking Foundation (ONF)
+
+    # replace with cord-infra-gerrit-trigger-patchset when skip-vote is removed
+    triggers:
+      - gerrit:
+          server-name: '{gerrit-server-name}'
+          dependency-jobs: '{dependency-jobs}'
+          silent-start: true
+          trigger-on:
+            - patchset-created-event:
+                exclude-drafts: true
+                exclude-trivial-rebase: false
+                exclude-no-code-change: true
+            - draft-published-event
+            - comment-added-contains-event:
+                comment-contains-value: '(?i)^.*recheck$'
+          projects:
+            - project-compare-type: REG_EXP
+              project-pattern: '{project-regexp}'
+              branches:
+                - branch-compare-type: REG_EXP
+                  branch-pattern: '{branch-regexp}'
+              file-paths:
+                - compare-type: REG_EXP
+                  pattern: '{file-include-regexp}'
+          skip-vote:
+            success: true
+            failed: true
+            unstable: true
+            notbuilt: true
+
+    properties:
+      - cord-infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
+          artifact-num-to-keep: '{artifact-num-to-keep}'
+
+    wrappers:
+      - lf-infra-wrappers:
+          build-timeout: '15'
+          jenkins-ssh-credential: '{jenkins-ssh-credential}'
+      - credentials-binding:
+          - text:
+              credential-id: fossa-api-key
+              variable: FOSSA_API_KEY
+
+    parameters:
+      - string:
+          name: buildNode
+          default: '{build-node}'
+          description: 'Name of the Jenkins node to run the job on'
+
+      - string:
+          name: gitUrl
+          default: '{gerrit-server-url}/$GERRIT_PROJECT'
+          description: 'URL to the git repo'
+
+      - string:
+          name: gitRef
+          default: '$GERRIT_PATCHSET_REVISION'
+          description: 'git ref to build (commit hash or tag)'
+
+      - string:
+          name: projectName
+          default: '$GERRIT_PROJECT'
+          description: 'Name of the project in Gerrit'
+
+      - string:
+          name: branchName
+          default: '$GERRIT_BRANCH'
+          description: 'Branch of the project in Gerrit'
+
+      - string:
+          name: fossaTeam
+          default: '{fossa-team}'
+          description: 'Team to assign this project to in FOSSA'
+
+    project-type: pipeline
+    concurrent: true
+
+    dsl: !include-raw-escape: pipeline/fossa-verify.groovy
diff --git a/jjb/imagebuilder.yaml b/jjb/imagebuilder.yaml
index 10eac84..1c52e87 100644
--- a/jjb/imagebuilder.yaml
+++ b/jjb/imagebuilder.yaml
@@ -37,7 +37,7 @@
 
     parameters:
       - string:
-          name: executorNode
+          name: buildNode
           default: 'imagebuilder'
           description: 'Name of the Jenkins node to run the job on'
 
diff --git a/jjb/k8install.yaml b/jjb/k8install.yaml
index 441473a..c6b634c 100644
--- a/jjb/k8install.yaml
+++ b/jjb/k8install.yaml
@@ -30,7 +30,7 @@
 
     parameters:
       - string:
-          name: executorNode
+          name: buildNode
           default: 'qa-testvm-pod'
           description: 'Name of the Jenkins node to run the job on'
 
@@ -40,24 +40,24 @@
           description: 'Name of the repo branch to use'
 
       - string:
-         name: configRepoUrl
-         default: 'https://gerrit.opencord.org/pod-configs'
-         description: 'The URL of the POD configs repository'
+          name: configRepoUrl
+          default: 'https://gerrit.opencord.org/pod-configs'
+          description: 'The URL of the POD configs repository'
 
       - string:
-         name: configRepoBaseDir
-         default: 'pod-configs/'
-         description: 'The directory inside the POD configs repository'
+          name: configRepoBaseDir
+          default: 'pod-configs/'
+          description: 'The directory inside the POD configs repository'
 
       - string:
-         name: configRepoFile
-         default: 'kubernetes-configs/flex-onf-pod1.yml'
-         description: 'The deployment config file'
+          name: configRepoFile
+          default: 'kubernetes-configs/flex-onf-pod1.yml'
+          description: 'The deployment config file'
 
       - string:
-         name: podName
-         default: 'flex-onf-pod1'
-         description: 'Name of pod'
+          name: podName
+          default: 'flex-onf-pod1'
+          description: 'Name of pod'
 
     project-type: pipeline
     concurrent: false
@@ -65,6 +65,6 @@
     dsl: !include-raw-escape: pipeline/kubespray-install.groovy
 
     triggers:
-       - timed: |
+      - timed: |
                  TZ=America/Los_Angeles
                  H 10 31/3 * *
diff --git a/jjb/make-unit.yaml b/jjb/make-unit.yaml
index ec3a530..9101df3 100644
--- a/jjb/make-unit.yaml
+++ b/jjb/make-unit.yaml
@@ -47,6 +47,7 @@
             DEST_GOPATH={dest-gopath}
             UNIT_TEST_TARGETS={unit-test-targets}
             UNIT_TEST_KEEP_GOING={unit-test-keep-going}
+            GOPROXY=https://proxy.golang.org
       - shell: !include-raw-escape: shell/make-unit.sh
 
     publishers:
diff --git a/jjb/maven.yaml b/jjb/maven.yaml
index 5287127..21d2249 100644
--- a/jjb/maven.yaml
+++ b/jjb/maven.yaml
@@ -2,8 +2,8 @@
 # maven jobs for Java projects
 
 - job-template:
-    id: maven-install
-    name: '{project}-gerrit'
+    id: maven-test
+    name: 'verify_{project}_maven-test{name-extension}'
     description: |
       <!-- Managed by Jenkins Job Builder -->
       Created by {id} job-template from ci-management/jjb/maven.yaml
@@ -13,19 +13,9 @@
 
     parameters:
       - string:
-         name: GERRIT_BRANCH
-         default: 'master'
-         description: 'Use default when using "Build Now"'
-
-      - string:
-         name: GERRIT_REFSPEC
-         default: 'refs/heads/master'
-         description: 'Use default when using "Build Now"'
-
-      - string:
-         name: jdkDistro
-         default: '{jdk-distribution}'
-         description: 'Distribution of the JDK to use with update-java-alternatives'
+          name: jdkDistro
+          default: '{jdk-distribution}'
+          description: 'Distribution of the JDK to use with update-java-alternatives'
 
     triggers:
       - cord-infra-gerrit-trigger-patchset:
@@ -41,24 +31,16 @@
           artifact-num-to-keep: '{artifact-num-to-keep}'
 
     scm:
-      - git:
-          url: '{gerrit-server-url}/{project}'
-          branches:
-            - '$GERRIT_BRANCH'
+      - lf-infra-gerrit-scm:
+          git-url: '$GIT_URL/$GERRIT_PROJECT'
           refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
-          shallow-clone: true
+          branch: '$GERRIT_BRANCH'
+          submodule-recursive: 'false'
+          choosing-strategy: gerrit
+          jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
     builders:
-      # NOTE: this env var is only required to fix a bug in the "surefire" dependency:
-      #  https://issues.apache.org/jira/browse/SUREFIRE-1588
-      #  https://github.com/apache/maven-surefire/pull/197
-      #  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911925
-      # should be removed as soon as this problem is resolved
-      - inject:
-          properties-content: |
-            _JAVA_OPTIONS=-Djdk.net.URLClassPath.disableClassPathURLCheck=true
-
+      # Set JDK version
       - shell: |
           #!/usr/bin/env bash
           set -eu -o pipefail
@@ -67,13 +49,32 @@
           echo "Java Version:"
           java -version
 
+      # run tests and install
       - maven-target:
           pom: pom.xml
-          goals: 'clean install'
+          settings: onoscord-apps
+          settings-type: cfp
+          goals: 'clean test install'
+
+    publishers:
+      - junit:
+          results: "**/TEST-*.xml"
+          allow-empty-results: '{junit-allow-empty-results}'
+      - cobertura:
+          report-file: "**/*coverage.xml"
+          targets:
+            - files:
+                healthy: 80
+                unhealthy: 0
+                failing: 0
+            - method:
+                healthy: 50
+                unhealthy: 0
+                failing: 0
 
 - job-template:
-    id: maven-deploy
-    name: '{project}-gerrit-deploy'
+    id: maven-publish
+    name: 'maven-publish{name-extension}_{project}'
     description: |
       <!-- Managed by Jenkins Job Builder -->
       Created by {id} job-template from ci-management/jjb/maven.yaml
@@ -83,19 +84,9 @@
 
     parameters:
       - string:
-         name: GERRIT_BRANCH
-         default: 'master'
-         description: 'Use default when using "Build Now"'
-
-      - string:
-         name: GERRIT_REFSPEC
-         default: 'refs/heads/master'
-         description: 'Use default when using "Build Now"'
-
-      - string:
-         name: jdkDistro
-         default: '{jdk-distribution}'
-         description: 'Distribution of the JDK to use with update-java-alternatives'
+          name: jdkDistro
+          default: '{jdk-distribution}'
+          description: 'Distribution of the JDK to use with update-java-alternatives'
 
     triggers:
       - cord-infra-gerrit-trigger-merge:
@@ -111,19 +102,16 @@
           artifact-num-to-keep: '{artifact-num-to-keep}'
 
     scm:
-      - git:
-          url: '{gerrit-server-url}/{project}'
-          branches:
-            - '$GERRIT_BRANCH'
+      - lf-infra-gerrit-scm:
+          git-url: '$GIT_URL/$GERRIT_PROJECT'
           refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
-          shallow-clone: true
+          branch: '$GERRIT_BRANCH'
+          submodule-recursive: 'false'
+          choosing-strategy: gerrit
+          jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
     builders:
-      - inject:
-          properties-content: |
-            _JAVA_OPTIONS=-Djdk.net.URLClassPath.disableClassPathURLCheck=true
-
+      # Set JDK version
       - shell: |
           #!/usr/bin/env bash
           set -eu -o pipefail
@@ -137,70 +125,3 @@
           settings: onoscord-apps
           settings-type: cfp
           goals: 'clean deploy'
-
-- job-template:
-    id: maven-test
-    name: 'verify_{project}_maven-test'
-    description: |
-      <!-- Managed by Jenkins Job Builder -->
-      Created by {id} job-template from ci-management/jjb/maven.yaml
-
-    parameters:
-      - string:
-         name: jdkDistro
-         default: '{jdk-distribution}'
-         description: 'Distribution of the JDK to use with update-java-alternatives'
-
-    triggers:
-      - cord-infra-gerrit-trigger-patchset:
-          gerrit-server-name: '{gerrit-server-name}'
-          project-regexp: '{project}'
-          branch-regexp: '{branch-regexp}'
-          file-include-regexp: '{all-files-regexp}'
-          dependency-jobs: '{dependency-jobs}'
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-          artifact-num-to-keep: '{artifact-num-to-keep}'
-
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: 30
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    scm:
-      - lf-infra-gerrit-scm:
-          git-url: '$GIT_URL/$GERRIT_PROJECT'
-          refspec: '$GERRIT_REFSPEC'
-          branch: '$GERRIT_BRANCH'
-          submodule-recursive: 'false'
-          choosing-strategy: gerrit
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    node: 'ubuntu16.04-basebuild-1c-2g'
-    project-type: maven
-    concurrent: true
-
-    builders:
-      # NOTE: this env var is only required to fix a bug in the "surefire" dependency:
-      #  https://issues.apache.org/jira/browse/SUREFIRE-1588
-      #  https://github.com/apache/maven-surefire/pull/197
-      #  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911925
-      # should be removed as soon as this problem is resolved
-      - inject:
-          properties-content: |
-            _JAVA_OPTIONS=-Djdk.net.URLClassPath.disableClassPathURLCheck=true
-
-      - shell: |
-          #!/usr/bin/env bash
-          set -eu -o pipefail
-          echo "Setting JDK Distro to: $jdkDistro"
-          sudo update-java-alternatives -s $jdkDistro
-          echo "Java Version:"
-          java -version
-
-      - maven-target:
-          pom: pom.xml
-          goals: 'test'
diff --git a/jjb/maven/aaa.yaml b/jjb/maven/aaa.yaml
deleted file mode 100644
index e11b20b..0000000
--- a/jjb/maven/aaa.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# maven job for 'aaa' repo
-
-- project:
-    name: aaa
-    project: '{name}'
-
-    jobs:
-      - 'aaa-gerrit':
-          branch-regexp: '^(.*)$'
-
-- job-group:
-    name: 'aaa-gerrit'
-    jobs:
-      - 'verify-licensed'
-      - 'maven-install'
-      - 'maven-deploy'
diff --git a/jjb/maven/config.yaml b/jjb/maven/config.yaml
deleted file mode 100644
index 8c4669b..0000000
--- a/jjb/maven/config.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# maven job for 'config' repo
-
-- project:
-    name: config
-    project: '{name}'
-
-    jobs:
-      - 'config-gerrit':
-          branch-regexp: '^(.*)$'
-
-- job-group:
-    name: 'config-gerrit'
-    jobs:
-      - 'verify-licensed'
-      - 'maven-install'
-      - 'maven-deploy'
diff --git a/jjb/maven/dhcpl2relay.yaml b/jjb/maven/dhcpl2relay.yaml
deleted file mode 100644
index 1f3ed0a..0000000
--- a/jjb/maven/dhcpl2relay.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# maven job for 'dhcpl2relay' repo
-
-- project:
-    name: dhcpl2relay
-    project: '{name}'
-
-    jobs:
-      - 'dhcpl2relay-gerrit':
-          branch-regexp: '^(.*)$'
-
-- job-group:
-    name: 'dhcpl2relay-gerrit'
-    jobs:
-      - 'verify-licensed'
-      - 'maven-install'
-      - 'maven-deploy'
diff --git a/jjb/maven/igmp.yaml b/jjb/maven/igmp.yaml
deleted file mode 100644
index 4e59cb7..0000000
--- a/jjb/maven/igmp.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# maven job for 'igmp' repo
-
-- project:
-    name: igmp
-    project: '{name}'
-
-    jobs:
-      - 'igmp-gerrit':
-          branch-regexp: '^(.*)$'
-
-- job-group:
-    name: 'igmp-gerrit'
-    jobs:
-      - 'verify-licensed'
-      - 'maven-install'
-      - 'maven-deploy'
diff --git a/jjb/maven/igmpproxy.yaml b/jjb/maven/igmpproxy.yaml
deleted file mode 100644
index 5e88bb2..0000000
--- a/jjb/maven/igmpproxy.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# maven job for 'igmpproxy' repo
-
-- project:
-    name: igmpproxy
-    project: '{name}'
-
-    jobs:
-      - 'igmpproxy-gerrit':
-          branch-regexp: '^(.*)$'
-
-- job-group:
-    name: 'igmpproxy-gerrit'
-    jobs:
-      - 'verify-licensed'
-      - 'maven-install'
-      - 'maven-deploy'
diff --git a/jjb/maven/kafka-onos.yaml b/jjb/maven/kafka-onos.yaml
deleted file mode 100644
index cfc438d..0000000
--- a/jjb/maven/kafka-onos.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# maven job for 'kafka-onos' repo
-
-- project:
-    name: kafka-onos
-    project: '{name}'
-
-    jobs:
-      - 'kafka-onos-gerrit':
-          branch-regexp: '^(.*)$'
-
-- job-group:
-    name: 'kafka-onos-gerrit'
-    jobs:
-      - 'verify-licensed'
-      - 'maven-install'
-      - 'maven-deploy'
diff --git a/jjb/maven/mcast.yaml b/jjb/maven/mcast.yaml
deleted file mode 100644
index 60874bb..0000000
--- a/jjb/maven/mcast.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# maven job for 'mcast' repo
-
-- project:
-    name: mcast
-    project: '{name}'
-
-    jobs:
-      - 'mcast-gerrit':
-          branch-regexp: '^(.*)$'
-
-- job-group:
-    name: 'mcast-gerrit'
-    jobs:
-      - 'verify-licensed'
-      - 'maven-install'
-      - 'maven-deploy'
diff --git a/jjb/maven/olt.yaml b/jjb/maven/olt.yaml
deleted file mode 100644
index 38ae126..0000000
--- a/jjb/maven/olt.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# maven job for 'olt' repo
-
-- project:
-    name: olt
-    project: '{name}'
-
-    jobs:
-      - 'olt-gerrit':
-          branch-regexp: '^(.*)$'
-
-- job-group:
-    name: 'olt-gerrit'
-    jobs:
-      - 'verify-licensed'
-      - 'maven-install'
-      - 'maven-deploy'
diff --git a/jjb/maven/sadis.yaml b/jjb/maven/sadis.yaml
deleted file mode 100644
index 2058847..0000000
--- a/jjb/maven/sadis.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# maven job for 'sadis' repo
-
-- project:
-    name: sadis
-    project: '{name}'
-
-    jobs:
-      - 'sadis-gerrit':
-          branch-regexp: '^(.*)$'
-
-- job-group:
-    name: 'sadis-gerrit'
-    jobs:
-      - 'verify-licensed'
-      - 'maven-install'
-      - 'maven-deploy'
diff --git a/jjb/maven/vtn.yaml b/jjb/maven/vtn.yaml
deleted file mode 100644
index 8afe595..0000000
--- a/jjb/maven/vtn.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# maven job for 'vtn' repo
-
-- project:
-    name: vtn
-    project: '{name}'
-
-    jobs:
-      - 'vtn-gerrit':
-          branch-regexp: '^(.*)$'
-
-- job-group:
-    name: 'vtn-gerrit'
-    jobs:
-      - 'verify-licensed'
-      - 'maven-install'
-      - 'maven-deploy'
diff --git a/jjb/omec-ci.yaml b/jjb/omec-ci.yaml
index 9d9f8ad..1c6efc6 100644
--- a/jjb/omec-ci.yaml
+++ b/jjb/omec-ci.yaml
@@ -18,7 +18,7 @@
 # generic OMEC test-case jobs, shared by other projects and triggered within pipelines
 - project:
     name: omec
-    executor_node: 'intel-102'
+    build-node: 'intel-102'
 
     github_pr_auth_id: '64fe2b1a-b33a-4f13-8442-ad8360434003'
     github_pr_org_list:
@@ -33,7 +33,7 @@
     name: ngic-rtc
     project: '{name}'
 
-    executor_node: 'intel-102'
+    build-node: 'intel-102'
 
     github-organization: 'omec-project'
 
@@ -56,7 +56,7 @@
     name: c3po
     project: '{name}'
 
-    executor_node: 'intel-102'
+    build-node: 'intel-102'
 
     github-organization: 'omec-project'
 
@@ -82,7 +82,7 @@
     name: openmme
     project: '{name}'
 
-    executor_node: 'intel-102'
+    build-nod: 'intel-102'
 
     github-organization: 'omec-project'
 
@@ -128,14 +128,14 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: '{executor_node}'
-         description: 'Name of the Jenkins executor node to run the job on'
+          name: buildNode
+          default: '{build-node}'
+          description: 'Name of the Jenkins executor node to run the job on'
 
       - string:
-         name: project
-         default: '{project}'
-         description: 'Name of the project'
+          name: project
+          default: '{project}'
+          description: 'Name of the project'
 
     triggers:
       - cord-infra-github-pr-trigger:
@@ -148,9 +148,9 @@
       script-path: '{pipeline-file}'
       scm:
         - git:
-           url: 'https://github.com/{github-organization}/omec-project-ci'
-           branches:
-             - 'master'
+            url: 'https://github.com/{github-organization}/omec-project-ci'
+            branches:
+              - 'master'
 
 
 # install jobs, run for each project
@@ -177,14 +177,14 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: '{executor_node}'
-         description: 'Name of the Jenkins executor node to run the job on'
+          name: buildNode
+          default: '{build-node}'
+          description: 'Name of the Jenkins executor node to run the job on'
 
       - string:
-         name: project
-         default: '{project}'
-         description: 'Name of the project'
+          name: project
+          default: '{project}'
+          description: 'Name of the project'
 
     concurrent: false
 
@@ -192,9 +192,9 @@
       script-path: '{pipeline-file}'
       scm:
         - git:
-           url: 'https://github.com/{github-organization}/omec-project-ci'
-           branches:
-             - 'master'
+            url: 'https://github.com/{github-organization}/omec-project-ci'
+            branches:
+              - 'master'
 
 # tests
 - job-template:
@@ -218,9 +218,9 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: '{executor_node}'
-         description: 'Name of the Jenkins executor node to run the job on'
+          name: buildNode
+          default: '{build-node}'
+          description: 'Name of the Jenkins executor node to run the job on'
 
     concurrent: false
 
@@ -228,9 +228,9 @@
       script-path: 'Jenkinsfile-omec-test-TC1.groovy'
       scm:
         - git:
-           url: 'https://github.com/omec-project/omec-project-ci'
-           branches:
-             - 'master'
+            url: 'https://github.com/omec-project/omec-project-ci'
+            branches:
+              - 'master'
 
 - job-template:
     id: 'omec-tc2'
@@ -253,9 +253,9 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: '{executor_node}'
-         description: 'Name of the Jenkins executor node to run the job on'
+          name: buildNode
+          default: '{build-node}'
+          description: 'Name of the Jenkins executor node to run the job on'
 
     concurrent: false
 
@@ -263,7 +263,7 @@
       script-path: 'Jenkinsfile-omec-test-TC2.groovy'
       scm:
         - git:
-           url: 'https://github.com/omec-project/omec-project-ci'
-           branches:
-             - 'master'
+            url: 'https://github.com/omec-project/omec-project-ci'
+            branches:
+              - 'master'
 
diff --git a/jjb/onos-app-release.yaml b/jjb/onos-app-release.yaml
index 0d780d8..cf34927 100644
--- a/jjb/onos-app-release.yaml
+++ b/jjb/onos-app-release.yaml
@@ -25,34 +25,34 @@
     wrappers:
       - ssh-agent-credentials:
           users:
-              - 'gerrit-jenkins-user'
+            - 'gerrit-jenkins-user'
       - build-user-vars
 
     parameters:
       - string:
-         name: app
-         default: ''
-         description: 'Name of the app repository on the OpenCORD Gerrit server.\n e.g. vtn'
+          name: app
+          default: ''
+          description: 'Name of the app repository on the OpenCORD Gerrit server.\n e.g. vtn'
 
       - string:
-         name: version
-         default: ''
-         description: 'Version to release.\n e.g. 1.0.0'
+          name: version
+          default: ''
+          description: 'Version to release.\n e.g. 1.0.0'
 
       - string:
-         name: nextVersion
-         default: ''
-         description: 'Snapshot version to move the code forward to.\n e.g. 1.1.0'
+          name: nextVersion
+          default: ''
+          description: 'Snapshot version to move the code forward to.\n e.g. 1.1.0'
 
       - string:
-         name: branch
-         default: 'master'
-         description: 'Name of the branch to release on.'
+          name: branch
+          default: 'master'
+          description: 'Name of the branch to release on.'
 
       - string:
-         name: jdkDistro
-         default: '{jdk-distribution}'
-         description: 'Distribution of the JDK to use with update-java-alternatives'
+          name: jdkDistro
+          default: '{jdk-distribution}'
+          description: 'Distribution of the JDK to use with update-java-alternatives'
 
     node: 'ubuntu16.04-basebuild-1c-2g'
     project-type: pipeline
diff --git a/jjb/opencord.yaml b/jjb/opencord.yaml
index a6668ae..42e7728 100644
--- a/jjb/opencord.yaml
+++ b/jjb/opencord.yaml
@@ -8,8 +8,8 @@
     blackduck-project: cord
 
     jobs:
-#     - 'synopsys-periodic-check':
-#         build-node: "ubuntu16.04-basebuild-2c-4g"
-#         git-server-url: "{gerrit-server-url}"
+      # - 'synopsys-periodic-check':
+      #    build-node: "ubuntu16.04-basebuild-2c-4g"
+      #    git-server-url: "{gerrit-server-url}"
       - 'synopsys-merge-check'
 
diff --git a/jjb/pipeline/all-xos-api-test-helm.groovy b/jjb/pipeline/all-xos-api-test-helm.groovy
index b85ce17..0b9e46b 100644
--- a/jjb/pipeline/all-xos-api-test-helm.groovy
+++ b/jjb/pipeline/all-xos-api-test-helm.groovy
@@ -21,7 +21,7 @@
 
     /* no label, executor is determined by JJB */
     agent {
-        label "${params.executorNode}"
+        label "${params.buildNode}"
     }
 
   stages {
diff --git a/jjb/pipeline/all-xos-api-test.groovy b/jjb/pipeline/all-xos-api-test.groovy
index 75e4fcc..3e59a9d 100644
--- a/jjb/pipeline/all-xos-api-test.groovy
+++ b/jjb/pipeline/all-xos-api-test.groovy
@@ -19,7 +19,7 @@
 
     /* no label, executor is determined by JJB */
     agent {
-        label "${params.executorNode}"
+        label "${params.buildNode}"
     }
 
   stages {
diff --git a/jjb/pipeline/bbsim-validation.groovy b/jjb/pipeline/bbsim-validation.groovy
index 2b8d26a..82e8d77 100644
--- a/jjb/pipeline/bbsim-validation.groovy
+++ b/jjb/pipeline/bbsim-validation.groovy
@@ -19,7 +19,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
 
   stages {
diff --git a/jjb/pipeline/chart-api-test-helm.groovy b/jjb/pipeline/chart-api-test-helm.groovy
index d9c8ace..abb5e68 100644
--- a/jjb/pipeline/chart-api-test-helm.groovy
+++ b/jjb/pipeline/chart-api-test-helm.groovy
@@ -19,7 +19,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
 
   stages {
diff --git a/jjb/pipeline/docker-publish.groovy b/jjb/pipeline/docker-publish.groovy
index 32299f8..a21eda9 100644
--- a/jjb/pipeline/docker-publish.groovy
+++ b/jjb/pipeline/docker-publish.groovy
@@ -15,9 +15,9 @@
 /* docker-publish pipeline */
 pipeline {
 
-  /* no label, executor is determined by JJB */
+  /* executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
   stages {
 
@@ -64,8 +64,10 @@
           then
             for tag in $git_tags
             do
-              echo "Building image with tag: \$tag (should reuse cached layers)"
-              make DOCKER_TAG="\$tag" docker-build
+              # remove leading 'v' on funky golang tags
+              clean_tag=\$(echo \$tag | sed 's/^v//g')
+              echo "Building image with tag: \$clean_tag (should reuse cached layers)"
+              make DOCKER_TAG="\$clean_tag" docker-build
             done
           fi
         """)
@@ -98,8 +100,10 @@
               then
                 for tag in $git_tags
                 do
-                  echo "Pushing image with tag: \$tag (should reuse cached layers)"
-                  make DOCKER_TAG="\$tag" docker-push
+                  # remove leading 'v' on funky golang tags
+                  clean_tag=\$(echo \$tag | sed 's/^v//g')
+                  echo "Pushing image with tag: \$clean_tag (should reuse cached layers)"
+                  make DOCKER_TAG="\$clean_tag" docker-push
                 done
               fi
             """)
diff --git a/jjb/pipeline/fossa-verify.groovy b/jjb/pipeline/fossa-verify.groovy
new file mode 100644
index 0000000..da5c0e9
--- /dev/null
+++ b/jjb/pipeline/fossa-verify.groovy
@@ -0,0 +1,158 @@
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// fossa-verify.groovy
+// checks a single repo against fossa
+
+pipeline {
+
+  /* no label, executor is determined by JJB */
+  agent {
+    label "${buildNode}"
+  }
+
+  // Set so that fossa will know where to run golang tools from
+  environment {
+    PATH = "$PATH:/usr/lib/go-1.12/bin:/usr/local/go/bin/:$WORKSPACE/go/bin"
+    GOPATH = "$WORKSPACE/go"
+  }
+
+  options {
+      timeout(15)
+  }
+
+  stages {
+
+    stage ("Clean workspace") {
+      steps {
+        sh 'rm -rf *'
+      }
+    }
+
+    stage('Checkout') {
+      steps {
+        sh returnStdout: true, script: """
+          #!/usr/bin/env bash
+          set -eu -o pipefail
+
+          echo "Cloning repo: ${gitUrl}"
+          git clone "${gitUrl}"
+          pushd "$projectName"
+          echo "Checking out Gerrit patchset: ${GERRIT_REFSPEC}"
+          git fetch ${gitUrl} ${GERRIT_REFSPEC} && git checkout FETCH_HEAD
+          popd
+        """
+
+        // Used later to set the branch/tag
+        script {
+          git_tag_or_branch = sh(script:"cd $projectName; if [[ \$(git tag -l --points-at HEAD) ]]; then git tag -l --points-at HEAD; else echo ${branchName}; fi", returnStdout: true).trim()
+        }
+      }
+    }
+
+    stage ("Prepare") {
+      steps {
+
+        // change the path tested if for golang projects which expect to be found in GOPATH
+        script {
+          test_path = sh(script:"if [ -f \"$projectName/Gopkg.toml\" ] || [ -f \"$projectName/go.mod\" ] ; then echo $WORKSPACE/go/src/github.com/opencord/$projectName; else echo $projectName; fi", returnStdout: true).trim()
+        }
+
+        sh returnStdout: true, script: """
+          #!/usr/bin/env bash
+          set -eu -o pipefail
+
+
+          if [ -f "$projectName/package.json" ]
+          then
+            echo "Found '$projectName/package.json', assuming a Node.js project, running npm install"
+            pushd "$projectName"
+            npm install
+            popd
+          elif [ -f "$projectName/Gopkg.toml" ]
+          then
+            echo "Found '$projectName/Gopkg.toml', assuming a golang project using dep"
+            mkdir -p "\$GOPATH/src/github.com/opencord/"
+            mv "$WORKSPACE/$projectName" "$test_path"
+            pushd "$test_path"
+            dep ensure
+            popd
+          fi
+        """
+      }
+    }
+
+    stage ("Run FOSSA") {
+      steps {
+        // catch any errors that occur so that logs can be saved in the next stage
+        // docs: https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#catcherror-catch-error-and-set-build-result-to-failure
+        catchError {
+          withCredentials([string(credentialsId: 'fossa-api-key', variable: 'FOSSA_API_KEY')]) {
+            sh returnStdout: true, script: """
+              #!/usr/bin/env bash
+              set -eu -o pipefail
+
+              echo "Creating debug output directory"
+              mkdir -p "$WORKSPACE/debug"
+
+              echo "Download/install fossa CLI tool"
+              curl -H 'Cache-Control: no-cache' -O https://raw.githubusercontent.com/fossas/fossa-cli/master/install.sh
+              mkdir -p "$WORKSPACE/go/bin"
+              bash install.sh -b "$WORKSPACE/go/bin"
+
+              echo "Fossa version:"
+              fossa -v
+
+              echo "Testing project: $projectName located in $test_path"
+              pushd "$test_path"
+
+              echo "Run 'fossa init'"
+              fossa init --no-ansi --verbose
+
+              echo "Contents of .fossa.yml generated by 'fossa init':"
+              cat .fossa.yml
+
+              echo "Run 'fossa analyze'"
+              fossa analyze --no-ansi --verbose \
+                            -T "$fossaTeam" \
+                            -t "$projectName" \
+                            -L "$GERRIT_CHANGE_URL" \
+                            -b "$git_tag_or_branch" \
+                            -r "$GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER"
+
+              echo "Get FOSSA test results with 'fossa test'"
+              fossa test --no-ansi --verbose \
+                            -T "$fossaTeam" \
+                            -t "$projectName" \
+                            -L "$GERRIT_CHANGE_URL" \
+                            -b "$git_tag_or_branch" \
+                            -r "$GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER"
+
+              popd
+            """
+          }
+        }
+      }
+    }
+
+    stage ("Save Logs") {
+      steps {
+        sh returnStdout: true, script: """
+            echo "Logs:"
+            ls -l $WORKSPACE/debug
+          """
+        archiveArtifacts artifacts:'debug/*.log'
+      }
+    }
+  }
+}
+
diff --git a/jjb/pipeline/imagebuilder.groovy b/jjb/pipeline/imagebuilder.groovy
index 1d5a950..25891d3 100644
--- a/jjb/pipeline/imagebuilder.groovy
+++ b/jjb/pipeline/imagebuilder.groovy
@@ -3,7 +3,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
   stages {
 
diff --git a/jjb/pipeline/kubespray-install.groovy b/jjb/pipeline/kubespray-install.groovy
index dfe9820..89a1124 100644
--- a/jjb/pipeline/kubespray-install.groovy
+++ b/jjb/pipeline/kubespray-install.groovy
@@ -4,7 +4,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
   stages {
 
diff --git a/jjb/pipeline/mcord-build-test.groovy b/jjb/pipeline/mcord-build-test.groovy
index acdf489..a5ebb66 100644
--- a/jjb/pipeline/mcord-build-test.groovy
+++ b/jjb/pipeline/mcord-build-test.groovy
@@ -4,7 +4,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
 
   stages {
diff --git a/jjb/pipeline/siab-test.groovy b/jjb/pipeline/siab-test.groovy
index f2ee19b..20b905f 100644
--- a/jjb/pipeline/siab-test.groovy
+++ b/jjb/pipeline/siab-test.groovy
@@ -4,7 +4,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
 
   options {
diff --git a/jjb/pipeline/siab.groovy b/jjb/pipeline/siab.groovy
index 0c6b833..c4ce6e8 100644
--- a/jjb/pipeline/siab.groovy
+++ b/jjb/pipeline/siab.groovy
@@ -4,7 +4,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
 
   options {
diff --git a/jjb/pipeline/synopsys-check.groovy b/jjb/pipeline/synopsys-check.groovy
index 1bd7828..f521c91 100644
--- a/jjb/pipeline/synopsys-check.groovy
+++ b/jjb/pipeline/synopsys-check.groovy
@@ -16,7 +16,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
 
   // Set so that synopsys_detect will know where to run golang tools from
diff --git a/jjb/pipeline/synopsys-single.groovy b/jjb/pipeline/synopsys-single.groovy
index 8b0d093..8b63d89 100644
--- a/jjb/pipeline/synopsys-single.groovy
+++ b/jjb/pipeline/synopsys-single.groovy
@@ -17,7 +17,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
 
   // Set so that synopsys_detect will know where to run golang tools from
diff --git a/jjb/pipeline/voltha-atest-provisioning.groovy b/jjb/pipeline/voltha-atest-provisioning.groovy
index de7ef0b..297c27d 100755
--- a/jjb/pipeline/voltha-atest-provisioning.groovy
+++ b/jjb/pipeline/voltha-atest-provisioning.groovy
@@ -4,7 +4,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
 
   stages {
diff --git a/jjb/pipeline/voltha-automated-build.groovy b/jjb/pipeline/voltha-automated-build.groovy
index 6b11292..3b2ac05 100644
--- a/jjb/pipeline/voltha-automated-build.groovy
+++ b/jjb/pipeline/voltha-automated-build.groovy
@@ -4,7 +4,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
 
   stages {
diff --git a/jjb/pipeline/voltha-bbsim-tests.groovy b/jjb/pipeline/voltha-bbsim-tests.groovy
index 2cd9340..8c5e7f8 100644
--- a/jjb/pipeline/voltha-bbsim-tests.groovy
+++ b/jjb/pipeline/voltha-bbsim-tests.groovy
@@ -20,10 +20,10 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
   options {
-      timeout(time: 120, unit: 'MINUTES')
+      timeout(time: 90, unit: 'MINUTES')
   }
 
   stages {
@@ -58,7 +58,6 @@
     stage('Create K8s Cluster') {
       steps {
         sh """
-           git clone https://gerrit.opencord.org/voltha-system-tests
            git clone https://github.com/ciena/kind-voltha.git
            cd kind-voltha/
            DEPLOY_K8S=y JUST_K8S=y FANCY=0 ./voltha up
@@ -69,8 +68,10 @@
     stage('Build Images') {
       steps {
         sh """
-           cd $WORKSPACE/voltha/${gerritProject}/
-           make DOCKER_REPOSITORY=voltha/ DOCKER_TAG=citest docker-build
+           if ! [[ "${gerritProject}" =~ ^(voltha-helm-charts|voltha-system-tests)\$ ]]; then
+             cd $WORKSPACE/voltha/${gerritProject}/
+             make DOCKER_REPOSITORY=voltha/ DOCKER_TAG=citest docker-build
+           fi
            """
       }
     }
@@ -78,38 +79,61 @@
     stage('Push Images') {
       steps {
         sh '''
-           export GOROOT=/usr/local/go
-           export GOPATH=\$(pwd)
-           export TYPE=minimal
-           export KUBECONFIG="$(./bin/kind get kubeconfig-path --name="voltha-minimal")"
-           export VOLTCONFIG="/home/jenkins/.volt/config-minimal"
-           export PATH=/w/workspace/${gerritProject}_sanity-system-test/kind-voltha/bin:$PATH
-           docker images | grep citest
-           for image in \$(docker images -f "reference=*/*citest" --format "{{.Repository}}"); do echo "Pushing \$image to nodes"; kind load docker-image \$image:citest --name voltha-\$TYPE --nodes voltha-\$TYPE-worker,voltha-\$TYPE-worker2; done
+           if ! [[ "${gerritProject}" =~ ^(voltha-helm-charts|voltha-system-tests)\$ ]]; then
+             export GOROOT=/usr/local/go
+             export GOPATH=\$(pwd)
+             export TYPE=minimal
+             export KUBECONFIG="$(./bin/kind get kubeconfig-path --name="voltha-minimal")"
+             export VOLTCONFIG="/home/jenkins/.volt/config-minimal"
+             export PATH=/w/workspace/${gerritProject}_sanity-system-test/kind-voltha/bin:$PATH
+             docker images | grep citest
+             for image in \$(docker images -f "reference=*/*citest" --format "{{.Repository}}"); do echo "Pushing \$image to nodes"; kind load docker-image \$image:citest --name voltha-\$TYPE --nodes voltha-\$TYPE-worker,voltha-\$TYPE-worker2; done
+           fi
            '''
       }
     }
     stage('Deploy Voltha') {
       steps {
-        sh """
-           HELM_FLAG="--set defaults.image_tag=voltha-2.1 "
+        sh '''
+           HELM_FLAG="${extraHelmFlags} "
 
            if [ "${gerritProject}" = "voltha-go" ]; then
-             HELM_FLAG+="-f $WORKSPACE/voltha-system-tests/tests/data/ci-test.yaml"
+             HELM_FLAG+="-f $WORKSPACE/voltha/voltha-system-tests/tests/data/ci-test.yaml "
            fi
 
            if [ "${gerritProject}" = "voltha-openolt-adapter" ]; then
-             HELM_FLAG+="--set images.adapter_open_olt.tag=citest,images.adapter_open_olt.pullPolicy=Never"
+             HELM_FLAG+="--set images.adapter_open_olt.tag=citest,images.adapter_open_olt.pullPolicy=Never "
            fi
 
            if [ "${gerritProject}" = "voltha-openonu-adapter" ]; then
-             HELM_FLAG+="--set images.adapter_open_onu.tag=citest,images.adapter_open_onu.pullPolicy=Never"
+             HELM_FLAG+="--set images.adapter_open_onu.tag=citest,images.adapter_open_onu.pullPolicy=Never "
            fi
 
-           cd kind-voltha/
+           if [ "${gerritProject}" = "bbsim" ]; then
+             HELM_FLAG+="--set images.bbsim.tag=citest,images.bbsim.pullPolicy=Never "
+           fi
+
+           if [ "${gerritProject}" = "voltha-api-server" ]; then
+             HELM_FLAG+="--set images.afrouter.tag=citest,images.afrouter.pullPolicy=Never,images.afrouterd.tag=citest,images.afrouterd.pullPolicy=Never "
+           else
+             # afrouter only has master branch at present
+             HELM_FLAG+="--set images.afrouter.tag=master,images.afrouterd.tag=master "
+           fi
+
+           if [ "${gerritProject}" = "voltha-helm-charts" ]; then
+             export CHART_PATH=$WORKSPACE/voltha/voltha-helm-charts
+             export VOLTHA_CHART=\$CHART_PATH/voltha
+             export VOLTHA_ADAPTER_OPEN_OLT_CHART=\$CHART_PATH/voltha-adapter-openolt
+             export VOLTHA_ADAPTER_OPEN_ONU_CHART=\$CHART_PATH/voltha-adapter-openonu
+             helm dep update \$VOLTHA_CHART
+             helm dep update \$VOLTHA_ADAPTER_OPEN_OLT_CHART
+             helm dep update \$VOLTHA_ADAPTER_OPEN_ONU_CHART
+           fi
+
+           cd $WORKSPACE/kind-voltha/
            echo \$HELM_FLAG
-           EXTRA_HELM_FLAGS=\$HELM_FLAG VOLTHA_LOG_LEVEL=DEBUG TYPE=minimal WITH_RADIUS=y WITH_BBSIM=y INSTALL_ONOS_APPS=y CONFIG_SADIS=y FANCY=0 ./voltha up
-           """
+           EXTRA_HELM_FLAGS=\$HELM_FLAG VOLTHA_LOG_LEVEL=DEBUG TYPE=minimal WITH_RADIUS=y WITH_BBSIM=y INSTALL_ONOS_APPS=y CONFIG_SADIS=y FANCY=0 WITH_SIM_ADAPTERS=n ./voltha up
+           '''
       }
     }
 
@@ -120,8 +144,7 @@
            export KUBECONFIG="$(./bin/kind get kubeconfig-path --name="voltha-minimal")"
            export VOLTCONFIG="/home/jenkins/.volt/config-minimal"
            export PATH=/w/workspace/${gerritProject}_sanity-system-test/kind-voltha/bin:$PATH
-           cd $WORKSPACE/voltha-system-tests/tests/sanity
-           robot -v ONOS_REST_PORT:8181 -v ONOS_SSH_PORT:8101 -e notready --critical sanity --noncritical VOL-1705 -v num_onus:1 sanity.robot || true
+           make -C $WORKSPACE/voltha/voltha-system-tests sanity-kind || true
            '''
       }
     }
@@ -130,15 +153,17 @@
   post {
     always {
       sh '''
+         set +e
          # copy robot logs
          if [ -d RobotLogs ]; then rm -r RobotLogs; fi; mkdir RobotLogs
-         cp -r $WORKSPACE/voltha-system-tests/tests/sanity/*ml ./RobotLogs || true
+         cp -r $WORKSPACE/voltha/voltha-system-tests/tests/*/*.html ./RobotLogs || true
+         cp -r $WORKSPACE/voltha/voltha-system-tests/tests/*/*.xml ./RobotLogs || true
          cd kind-voltha/
          cp install-minimal.log $WORKSPACE/
          export KUBECONFIG="$(./bin/kind get kubeconfig-path --name="voltha-minimal")"
          export VOLTCONFIG="/home/jenkins/.volt/config-minimal"
          export PATH=/w/workspace/${gerritProject}_sanity-system-test/kind-voltha/bin:$PATH
-         kubectl get pods --all-namespaces -o jsonpath="{..image}" |tr -s "[[:space:]]" "\n" | sort | uniq -c
+         kubectl get pods --all-namespaces -o jsonpath="{range .items[*].status.containerStatuses[*]}{.image}{'\\t'}{.imageID}{'\\n'}" | sort | uniq -c
          kubectl get nodes -o wide
          kubectl get pods -o wide
          kubectl get pods -n voltha -o wide
@@ -156,14 +181,16 @@
          do
            if [[ \$pod == *"-api-"* ]]; then
              kubectl logs \$pod arouter -n voltha > $WORKSPACE/\$pod.log;
+           elif [[ \$pod == "bbsim-"* ]]; then
+             kubectl logs \$pod -n voltha -p > $WORKSPACE/\$pod.log;
            else
              kubectl logs \$pod -n voltha > $WORKSPACE/\$pod.log;
            fi
          done
          ## clean up node
-	 WAIT_ON_DOWN=y ./voltha down
+	 FANCY=0 WAIT_ON_DOWN=y ./voltha down
 	 cd $WORKSPACE/
-	 rm -rf kind-voltha/ voltha-system-tests/ || true
+	 rm -rf kind-voltha/ voltha/ || true
          '''
          step([$class: 'RobotPublisher',
             disableArchiveOutput: false,
@@ -179,3 +206,4 @@
     }
   }
 }
+
diff --git a/jjb/pipeline/voltha-go-tests-new-bbsim.groovy b/jjb/pipeline/voltha-go-tests-new-bbsim.groovy
deleted file mode 100644
index 65cbc24..0000000
--- a/jjb/pipeline/voltha-go-tests-new-bbsim.groovy
+++ /dev/null
@@ -1,153 +0,0 @@
-// Copyright 2017-present Open Networking Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// voltha-2.x e2e tests
-// uses kind-voltha to deploy voltha-2.X
-// uses bbsim to simulate OLT/ONUs
-
-pipeline {
-
-  /* no label, executor is determined by JJB */
-  agent {
-    label "${params.executorNode}"
-  }
-  options {
-      timeout(time: 40, unit: 'MINUTES')
-  }
-
-  stages {
-
-    stage('Download kind-voltha') {
-      steps {
-        sh """
-           rm -rf kind-voltha
-           git clone https://github.com/ciena/kind-voltha.git
-           """
-      }
-    }
-
-    stage('Deploy Voltha') {
-      steps {
-        sh """
-           cd kind-voltha/
-           EXTRA_HELM_FLAGS="${params.extraHelmFlags}" VOLTHA_LOG_LEVEL=DEBUG TYPE=minimal WITH_RADIUS=y WITH_BBSIM=n INSTALL_ONOS_APPS=y CONFIG_SADIS=y FANCY=0 ./voltha up
-           """
-      }
-    }
-
-    stage('Download BBSim repo') {
-      steps {
-        sh """
-          cd $WORKSPACE
-          rm -rf bbsim
-          git clone https://github.com/opencord/bbsim.git bbsim
-          """
-      }
-    }
-
-    stage('config ONOS with BBSim sadis values') {
-      steps {
-        sh """
-          cd $WORKSPACE/bbsim
-          curl --user karaf:karaf -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d @examples/sadis-minimal-voltha-2.json http://127.0.0.1:8181/onos/v1/network/configuration/apps
-          curl --user karaf:karaf -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d @examples/onos-dhcp.json  http://127.0.0.1:8181/onos/v1/network/configuration/apps
-          """
-      }
-    }
-
-    stage('Build and Deploy BBSim') {
-      // This step doing multple things as it is (hopefully) a temporary step
-      // once the new-bbsim is integrated with kind-voltha this all pipeline should be dismissed
-      steps {
-        sh '''
-          cd $WORKSPACE/kind-voltha/
-          export KUBECONFIG="$(./bin/kind get kubeconfig-path --name="voltha-minimal")"
-          export VOLTCONFIG="/home/jenkins/.volt/config-minimal"
-          export PATH=$WORKSPACE/kind-voltha/bin:$PATH
-          cd $WORKSPACE/bbsim
-          # DOCKER_TAG=candidate make docker-build
-          # TYPE=minimal kind load docker-image voltha/bbsim:candidate --name voltha-\$TYPE --nodes voltha-\$TYPE-worker,voltha-\$TYPE-worker2;
-          # helm install -n bbsim deployments/helm-chart/bbsim/ --set images.bbsim.tag=candidate --set images.bbsim.pullPolicy=IfNotProsent
-          helm install -n bbsim deployments/helm-chart/bbsim/ --set images.bbsim.tag=master
-          '''
-      }
-    }
-
-    stage('Run E2E Tests') {
-      steps {
-        sh '''
-           git clone https://gerrit.opencord.org/voltha-system-tests
-           cd kind-voltha/
-           export KUBECONFIG="$(./bin/kind get kubeconfig-path --name="voltha-minimal")"
-           export VOLTCONFIG="/home/jenkins/.volt/config-minimal"
-           export PATH=$WORKSPACE/kind-voltha/bin:$PATH
-           cd $WORKSPACE/voltha-system-tests/tests/sanity
-           robot -v ONOS_REST_PORT:8181 -v ONOS_SSH_PORT:8101 -e notready --critical sanity -v num_onus:1 -v BBSIM_IP:bbsim-olt-id-0 -v BBSIM_OLT_SN:BBSIM_OLT_0 -b BBSIM_ONU_SN:BBSM00000001 sanity.robot || true
-           '''
-      }
-    }
-  }
-
-  post {
-    always {
-      sh '''
-         # copy robot logs
-         if [ -d RobotLogs ]; then rm -r RobotLogs; fi; mkdir RobotLogs
-         cp -r $WORKSPACE/voltha-system-tests/tests/sanity/*ml ./RobotLogs || true
-         cd kind-voltha/
-         cp install-minimal.log $WORKSPACE/
-         export KUBECONFIG="$(./bin/kind get kubeconfig-path --name="voltha-minimal")"
-         export VOLTCONFIG="/home/jenkins/.volt/config-minimal"
-         export PATH=$WORKSPACE/kind-voltha/bin:$PATH
-         kubectl get pods --all-namespaces -o jsonpath="{..image}" |tr -s "[[:space:]]" "\n" | sort | uniq -c
-         kubectl get nodes -o wide
-         kubectl get pods -o wide
-         kubectl get pods -n voltha -o wide
-         ## get default pod logs
-         for pod in \$(kubectl get pods --no-headers | awk '{print \$1}');
-         do
-           if [[ \$pod == *"onos"* && \$pod != *"onos-service"* ]]; then
-             kubectl logs \$pod onos> $WORKSPACE/\$pod.log;
-           else
-             kubectl logs \$pod> $WORKSPACE/\$pod.log;
-           fi
-         done
-         ## get voltha pod logs
-         for pod in \$(kubectl get pods --no-headers -n voltha | awk '{print \$1}');
-         do
-           if [[ \$pod == *"-api-"* ]]; then
-             kubectl logs \$pod arouter -n voltha > $WORKSPACE/\$pod.log;
-           else
-             kubectl logs \$pod -n voltha > $WORKSPACE/\$pod.log;
-           fi
-         done
-         ## clean up node
-         WAIT_ON_DOWN=y ./voltha down
-         cd $WORKSPACE/
-         rm -rf kind-voltha/ voltha-system-tests/ || true
-         '''
-         step([$class: 'RobotPublisher',
-            disableArchiveOutput: false,
-            logFileName: 'RobotLogs/log*.html',
-            otherFiles: '',
-            outputFileName: 'RobotLogs/output*.xml',
-            outputPath: '.',
-            passThreshold: 100,
-            reportFileName: 'RobotLogs/report*.html',
-            unstableThreshold: 0]);
-         archiveArtifacts artifacts: '*.log'
-         step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: "teo@opennetworking.org", sendToIndividuals: false])
-    }
-  }
-}
diff --git a/jjb/pipeline/voltha-go-tests.groovy b/jjb/pipeline/voltha-go-tests.groovy
index 029e5c9..3af8bd9 100644
--- a/jjb/pipeline/voltha-go-tests.groovy
+++ b/jjb/pipeline/voltha-go-tests.groovy
@@ -20,7 +20,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
   options {
       timeout(time: 40, unit: 'MINUTES')
@@ -40,7 +40,7 @@
       steps {
         sh """
            cd kind-voltha/
-           EXTRA_HELM_FLAGS="${params.extraHelmFlags}" VOLTHA_LOG_LEVEL=DEBUG TYPE=minimal WITH_RADIUS=y WITH_BBSIM=y INSTALL_ONOS_APPS=y CONFIG_SADIS=y FANCY=0 ./voltha up
+           EXTRA_HELM_FLAGS="${params.extraHelmFlags}" VOLTHA_LOG_LEVEL=DEBUG TYPE=minimal WITH_RADIUS=y WITH_BBSIM=y INSTALL_ONOS_APPS=y CONFIG_SADIS=y WITH_SIM_ADAPTERS=n FANCY=0 ./voltha up
            """
       }
     }
@@ -53,8 +53,8 @@
            export KUBECONFIG="$(./bin/kind get kubeconfig-path --name="voltha-minimal")"
            export VOLTCONFIG="/home/jenkins/.volt/config-minimal"
            export PATH=$WORKSPACE/kind-voltha/bin:$PATH
-           cd $WORKSPACE/voltha-system-tests/tests/sanity
-           robot -v ONOS_REST_PORT:8181 -v ONOS_SSH_PORT:8101 -e notready --critical sanity -v num_onus:1 sanity.robot || true
+           export ROBOT_VAR_FILE=$WORKSPACE/voltha-system-tests/tests/data/${robotVarFile}
+           make -C $WORKSPACE/voltha-system-tests sanity-kind || true
            '''
       }
     }
@@ -65,13 +65,14 @@
       sh '''
          # copy robot logs
          if [ -d RobotLogs ]; then rm -r RobotLogs; fi; mkdir RobotLogs
-         cp -r $WORKSPACE/voltha-system-tests/tests/sanity/*ml ./RobotLogs || true
+         cp -r $WORKSPACE/voltha-system-tests/tests/*/*.html ./RobotLogs || true
+         cp -r $WORKSPACE/voltha-system-tests/tests/*/*.xml ./RobotLogs || true
          cd kind-voltha/
          cp install-minimal.log $WORKSPACE/
          export KUBECONFIG="$(./bin/kind get kubeconfig-path --name="voltha-minimal")"
          export VOLTCONFIG="/home/jenkins/.volt/config-minimal"
          export PATH=$WORKSPACE/kind-voltha/bin:$PATH
-         kubectl get pods --all-namespaces -o jsonpath="{..image}" |tr -s "[[:space:]]" "\n" | sort | uniq -c
+         kubectl get pods --all-namespaces -o jsonpath="{range .items[*].status.containerStatuses[*]}{.image}{'\\t'}{.imageID}{'\\n'}" | sort | uniq -c
          kubectl get nodes -o wide
          kubectl get pods -o wide
          kubectl get pods -n voltha -o wide
@@ -89,6 +90,8 @@
          do
            if [[ \$pod == *"-api-"* ]]; then
              kubectl logs \$pod arouter -n voltha > $WORKSPACE/\$pod.log;
+           elif [[ \$pod == "bbsim-"* ]]; then
+             kubectl logs \$pod -n voltha -p > $WORKSPACE/\$pod.log;
            else
              kubectl logs \$pod -n voltha > $WORKSPACE/\$pod.log;
            fi
diff --git a/jjb/pipeline/voltha-publish.groovy b/jjb/pipeline/voltha-publish.groovy
index c8c48ef..7af9a53 100644
--- a/jjb/pipeline/voltha-publish.groovy
+++ b/jjb/pipeline/voltha-publish.groovy
@@ -3,7 +3,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
   stages {
 
diff --git a/jjb/pipeline/xos-core.groovy b/jjb/pipeline/xos-core.groovy
index 99aacb1..b6001fb 100644
--- a/jjb/pipeline/xos-core.groovy
+++ b/jjb/pipeline/xos-core.groovy
@@ -19,7 +19,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
 
   stages {
diff --git a/jjb/pipeline/xos-integration-tests.groovy b/jjb/pipeline/xos-integration-tests.groovy
index 27bc34f..5874c43 100644
--- a/jjb/pipeline/xos-integration-tests.groovy
+++ b/jjb/pipeline/xos-integration-tests.groovy
@@ -19,7 +19,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
 
   stages {
diff --git a/jjb/pipeline/xos-service-upgrade.groovy b/jjb/pipeline/xos-service-upgrade.groovy
index 6d4d07e..173c463 100644
--- a/jjb/pipeline/xos-service-upgrade.groovy
+++ b/jjb/pipeline/xos-service-upgrade.groovy
@@ -21,7 +21,7 @@
 
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.executorNode}"
+    label "${params.buildNode}"
   }
 
   stages {
diff --git a/jjb/pipeline/xos-synchronizer-update.groovy b/jjb/pipeline/xos-synchronizer-update.groovy
index d895cfc..77045e7 100644
--- a/jjb/pipeline/xos-synchronizer-update.groovy
+++ b/jjb/pipeline/xos-synchronizer-update.groovy
@@ -22,7 +22,7 @@
 
     /* no label, executor is determined by JJB */
     agent {
-        label "${params.executorNode}"
+        label "${params.buildNode}"
     }
 
   stages {
diff --git a/jjb/pypi-publish.yaml b/jjb/pypi-publish.yaml
index 77cbfe6..614ed5e 100644
--- a/jjb/pypi-publish.yaml
+++ b/jjb/pypi-publish.yaml
@@ -48,5 +48,3 @@
 
       - shell: !include-raw-escape: shell/pypi-publish.sh
 
-
-
diff --git a/jjb/shell/github-release.sh b/jjb/shell/github-release.sh
index 2ab2c94..40705c6 100644
--- a/jjb/shell/github-release.sh
+++ b/jjb/shell/github-release.sh
@@ -40,11 +40,13 @@
 # Use "release" as the default makefile target, can be a space separated list
 RELEASE_TARGETS=${RELEASE_TARGETS:-release}
 
+
 # check that we're on a semver released version, or exit
 pushd "$GERRIT_PROJECT"
   GIT_VERSION=$(git tag -l --points-at HEAD)
 
-  if [[ "$GIT_VERSION" =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]
+  # match bare versions or v-prefixed golang style version
+  if [[ "$GIT_VERSION" =~ ^v?([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]
   then
     echo "git has a SemVer released version tag: '$GIT_VERSION'"
     echo "Building artifacts for GitHub release."
@@ -54,7 +56,11 @@
   fi
 popd
 
-# To support golang projects create a GOPATH
+# Set and handle GOPATH and PATH
+export GOPATH=${GOPATH:-$WORKSPACE/go}
+export PATH=$PATH:/usr/lib/go-1.12/bin:/usr/local/go/bin:$GOPATH/bin
+
+# To support golang projects that require GOPATH to be set and code checked out there
 # If $DEST_GOPATH is not an empty string:
 # - create GOPATH within WORKSPACE, and destination directory within
 # - set PATH to include $GOPATH/bin and the system go binaries
@@ -63,9 +69,7 @@
 
 DEST_GOPATH=${DEST_GOPATH:-}
 if [ ! -z "$DEST_GOPATH" ]; then
-  export GOPATH=${GOPATH:-$WORKSPACE/go}
   mkdir -p "$GOPATH/src/$DEST_GOPATH"
-  export PATH=$PATH:/usr/lib/go-1.12/bin:/usr/local/go/bin:$GOPATH/bin
   release_path="$GOPATH/src/$DEST_GOPATH/$GERRIT_PROJECT"
   mv "$WORKSPACE/$GERRIT_PROJECT" "$release_path"
 else
diff --git a/jjb/shell/pypi-publish.sh b/jjb/shell/pypi-publish.sh
index b7f3526..3118df7 100755
--- a/jjb/shell/pypi-publish.sh
+++ b/jjb/shell/pypi-publish.sh
@@ -26,7 +26,8 @@
 # check that we're on a semver released version
 GIT_VERSION=$(git tag -l --points-at HEAD)
 
-if [[ "$GIT_VERSION" =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]
+# match bare versions or v-prefixed golang style version
+if [[ "$GIT_VERSION" =~ ^v?([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]
 then
   echo "git has a SemVer released version tag: '$GIT_VERSION', publishing to PyPI"
 else
diff --git a/jjb/shell/tagcollisionreject.sh b/jjb/shell/tagcollisionreject.sh
index 85015d4..309e35c 100755
--- a/jjb/shell/tagcollisionreject.sh
+++ b/jjb/shell/tagcollisionreject.sh
@@ -21,6 +21,7 @@
 
 VERSIONFILE="" # file path to file containing version number
 NEW_VERSION="" # version number found in $VERSIONFILE
+TAG_VERSION="" # version file that might have a leading v to work around go mod funkyness
 
 SEMVER_STRICT=${SEMVER_STRICT:-0} # require semver versions
 
@@ -37,28 +38,32 @@
   then
     NEW_VERSION=$(head -n1 "VERSION")
     VERSIONFILE="VERSION"
+
+    # If this is a golang project, use funky v-prefixed versions
+    if [ -f "Gopkg.toml" ] || [ -f "go.mod" ]
+    then
+      echo "go-based project found, using v-prefixed version for git tags: v${NEW_VERSION}"
+      TAG_VERSION=v${NEW_VERSION}
+    else
+      TAG_VERSION=${NEW_VERSION}
+    fi
+
   elif [ -f "package.json" ]
   then
     NEW_VERSION=$(python -c 'import json,sys;obj=json.load(sys.stdin); print obj["version"]' < package.json)
+    TAG_VERSION=$NEW_VERSION
     VERSIONFILE="package.json"
+  elif [ -f "pom.xml" ]
+  then
+    NEW_VERSION=$(xmllint --xpath '/*[local-name()="project"]/*[local-name()="version"]/text()' pom.xml)
+    TAG_VERSION=$NEW_VERSION
+    VERSIONFILE="pom.xml"
   else
     echo "ERROR: No versioning file found!"
     exit 1
   fi
 }
 
-# check if the version is already a tag in git
-function is_git_tag_duplicated {
-  for existing_tag in $(git tag)
-  do
-    if [ "$NEW_VERSION" = "$existing_tag" ]
-    then
-      echo "ERROR: Duplicate tag: $existing_tag"
-      exit 2
-    fi
-  done
-}
-
 # check if the version is a released version
 function check_if_releaseversion {
   if [[ "$NEW_VERSION" =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]
@@ -76,6 +81,18 @@
   fi
 }
 
+# check if the version is already a tag in git
+function is_git_tag_duplicated {
+  for existing_tag in $(git tag)
+  do
+    if [ "$TAG_VERSION" = "$existing_tag" ]
+    then
+      echo "ERROR: Duplicate tag: $existing_tag"
+      exit 2
+    fi
+  done
+}
+
 # check if Dockerfiles have a released version as their parent
 function dockerfile_parentcheck {
   while IFS= read -r -d '' dockerfile
diff --git a/jjb/shell/versiontag.sh b/jjb/shell/versiontag.sh
index 669aeec..cc01f97 100755
--- a/jjb/shell/versiontag.sh
+++ b/jjb/shell/versiontag.sh
@@ -22,6 +22,7 @@
 
 VERSIONFILE="" # file path to file containing version number
 NEW_VERSION="" # version number found in $VERSIONFILE
+TAG_VERSION="" # version file that might have a leading v to work around go mod funkyness
 
 SEMVER_STRICT=${SEMVER_STRICT:-0} # require semver versions
 
@@ -38,10 +39,26 @@
   then
     NEW_VERSION=$(head -n1 "VERSION")
     VERSIONFILE="VERSION"
+
+    # If this is a golang project, use funky v-prefixed versions
+    if [ -f "Gopkg.toml" ] || [ -f "go.mod" ]
+    then
+      echo "go-based project found, using v-prefixed version for git tags: v${NEW_VERSION}"
+      TAG_VERSION=v${NEW_VERSION}
+    else
+      TAG_VERSION=${NEW_VERSION}
+    fi
+
   elif [ -f "package.json" ]
   then
     NEW_VERSION=$(python -c 'import json,sys;obj=json.load(sys.stdin); print obj["version"]' < package.json)
+    TAG_VERSION=$NEW_VERSION
     VERSIONFILE="package.json"
+  elif [ -f "pom.xml" ]
+  then
+    NEW_VERSION=$(xmllint --xpath '/*[local-name()="project"]/*[local-name()="version"]/text()' pom.xml)
+    TAG_VERSION=$NEW_VERSION
+    VERSIONFILE="pom.xml"
   else
     echo "ERROR: No versioning file found!"
     exit 1
@@ -69,7 +86,7 @@
 function is_git_tag_duplicated {
   for existing_tag in $(git tag)
   do
-    if [ "$NEW_VERSION" = "$existing_tag" ]
+    if [ "$TAG_VERSION" = "$existing_tag" ]
     then
       echo "ERROR: Duplicate tag: $existing_tag"
       exit 2
@@ -130,18 +147,18 @@
 
 # create a git tag
 function create_git_tag {
-  echo "Creating git tag: $NEW_VERSION"
+  echo "Creating git tag: $TAG_VERSION"
   git checkout "$GERRIT_PATCHSET_REVISION"
 
   git config --global user.email "do-not-reply@opencord.org"
   git config --global user.name "Jenkins"
 
-  git tag -a "$NEW_VERSION" -m "Tagged by CORD Jenkins version-tag job: $BUILD_NUMBER, for Gerrit patchset: $GERRIT_CHANGE_NUMBER"
+  git tag -a "$TAG_VERSION" -m "Tagged by CORD Jenkins version-tag job: $BUILD_NUMBER, for Gerrit patchset: $GERRIT_CHANGE_NUMBER"
 
   echo "Tags including new tag:"
   git tag -n
 
-  git push origin "$NEW_VERSION"
+  git push origin "$TAG_VERSION"
 }
 
 echo "Checking git repo with remotes:"
diff --git a/jjb/siab.yaml b/jjb/siab.yaml
index 5d04080..3d12c2c 100644
--- a/jjb/siab.yaml
+++ b/jjb/siab.yaml
@@ -33,7 +33,7 @@
 
     parameters:
       - string:
-          name: executorNode
+          name: buildNode
           default: 'qct-pod3-node1'
           description: 'Name of the Jenkins node to run the job on'
 
@@ -58,7 +58,7 @@
     dsl: !include-raw-escape: pipeline/siab.groovy
 
     triggers:
-       - timed: |
+      - timed: |
                  TZ=America/Los_Angeles
                  0 0,3,6,9,12,15,18,21 * * *
 
@@ -83,7 +83,7 @@
 
     parameters:
       - string:
-          name: executorNode
+          name: buildNode
           default: 'qct-pod3-node1'
           description: 'Name of the Jenkins node to run the job on'
 
@@ -108,7 +108,7 @@
     dsl: !include-raw-escape: pipeline/siab.groovy
 
     triggers:
-       - timed: |
+      - timed: |
                  TZ=America/Los_Angeles
                  0 1,4,7,10,13,16,19,22 * * *
 
@@ -133,7 +133,7 @@
 
     parameters:
       - string:
-          name: executorNode
+          name: buildNode
           default: 'qct-pod3-node1'
           description: 'Name of the Jenkins node to run the job on'
 
@@ -158,7 +158,7 @@
     dsl: !include-raw-escape: pipeline/siab.groovy
 
     triggers:
-       - timed: |
+      - timed: |
                  TZ=America/Los_Angeles
                  0 2,5,8,11,14,17,20,23 * * *
 
@@ -184,20 +184,20 @@
 
     parameters:
       - string:
-          name: executorNode
+          name: buildNode
           default: 'qct-pod1-node2'
           description: 'Name of the Jenkins node to run the job on'
 
 
       - string:
-            name: gerritChangeNumber
-            default: '$GERRIT_CHANGE_NUMBER'
-            description: 'Changeset number in Gerrit'
+          name: gerritChangeNumber
+          default: '$GERRIT_CHANGE_NUMBER'
+          description: 'Changeset number in Gerrit'
 
       - string:
-            name: gerritPatchsetNumber
-            default: '$GERRIT_PATCHSET_NUMBER'
-            description: 'PatchSet number in Gerrit'
+          name: gerritPatchsetNumber
+          default: '$GERRIT_PATCHSET_NUMBER'
+          description: 'PatchSet number in Gerrit'
 
       - string:
           name: version
diff --git a/jjb/sonar.yaml b/jjb/sonar.yaml
index 72bbb62..f546a79 100644
--- a/jjb/sonar.yaml
+++ b/jjb/sonar.yaml
@@ -75,10 +75,10 @@
     concurrent: true
 
     builders:
-        - 'cord-infra-sonarqube':
-            project: '{project}'
-            sonar-prep-commands: '{sonar-prep-commands}'
-            sonar-java-binaries: '{sonar-java-binaries}'
+      - 'cord-infra-sonarqube':
+          project: '{project}'
+          sonar-prep-commands: '{sonar-prep-commands}'
+          sonar-java-binaries: '{sonar-java-binaries}'
 
 # run Sonarqube as a verification jobs on individual patchsets
 - job-template:
@@ -119,7 +119,8 @@
     concurrent: true
 
     builders:
-        - 'cord-infra-sonarqube':
-            project: '{project}'
-            sonar-prep-commands: '{sonar-prep-commands}'
-            sonar-java-binaries: '{sonar-java-binaries}'
+      - 'cord-infra-sonarqube':
+          project: '{project}'
+          sonar-prep-commands: '{sonar-prep-commands}'
+          sonar-java-binaries: '{sonar-java-binaries}'
+
diff --git a/jjb/synopsys-check.yaml b/jjb/synopsys-check.yaml
index 4f9145e..ea66e53 100644
--- a/jjb/synopsys-check.yaml
+++ b/jjb/synopsys-check.yaml
@@ -23,29 +23,29 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: '{build-node}'
-         description: 'Name of the Jenkins node to run the job on'
+          name: buildNode
+          default: '{build-node}'
+          description: 'Name of the Jenkins node to run the job on'
 
       - string:
-         name: branch
-         default: 'master'
-         description: 'branch to check'
+          name: branch
+          default: 'master'
+          description: 'branch to check'
 
       - string:
-         name: git_server_url
-         default: '{git-server-url}'
-         description: 'Git Server URL'
+          name: git_server_url
+          default: '{git-server-url}'
+          description: 'Git Server URL'
 
       - string:
-         name: github_organization
-         default: '{github-organization}'
-         description: 'GitHub Organization (leave blank if using Gerrit)'
+          name: github_organization
+          default: '{github-organization}'
+          description: 'GitHub Organization (leave blank if using Gerrit)'
 
       - string:
-         name: blackduck_project
-         default: '{blackduck-project}'
-         description: 'The project to assign repos to in the BlackDuck dashboard'
+          name: blackduck_project
+          default: '{blackduck-project}'
+          description: 'The project to assign repos to in the BlackDuck dashboard'
 
     project-type: pipeline
     concurrent: true
@@ -53,7 +53,7 @@
     dsl: !include-raw-escape: pipeline/synopsys-check.groovy
 
     triggers:
-       - timed: |
+      - timed: |
                  TZ=America/Los_Angeles
                  H 3 * * *
 
@@ -87,9 +87,9 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: '{build-node}'
-         description: 'Name of the Jenkins node to run the job on'
+          name: buildNode
+          default: '{build-node}'
+          description: 'Name of the Jenkins node to run the job on'
 
       - string:
           name: gitUrl
@@ -112,9 +112,9 @@
           description: 'Branch of the project in Gerrit'
 
       - string:
-         name: blackduck_project
-         default: '{blackduck-project}'
-         description: 'The project to assign repos to in the BlackDuck dashboard'
+          name: blackduck_project
+          default: '{blackduck-project}'
+          description: 'The project to assign repos to in the BlackDuck dashboard'
 
     project-type: pipeline
     concurrent: true
diff --git a/jjb/triggered-api-test.yaml b/jjb/triggered-api-test.yaml
index 08208ee..853fd5a 100644
--- a/jjb/triggered-api-test.yaml
+++ b/jjb/triggered-api-test.yaml
@@ -6,7 +6,7 @@
     name: 'verify_{project}{name-extension}_triggered-api-test'
     description: |
       Triggers an api test in a pipeline post-merge and on a schedule.
-      Created by {id} job-template from ci-management/jjb/triggered-api-test.yaml, using pipeline: {pipeline_script}
+      Created by {id} job-template from ci-management/jjb/triggered-api-test.yaml, using script: {pipeline-script}
 
     triggers:
       - cord-infra-gerrit-trigger-merge:
@@ -29,21 +29,21 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: 'ubuntu16.04-basebuild-4c-8g'
-         description: 'Name of the Jenkins node to run the job on'
+          name: buildNode
+          default: 'ubuntu16.04-basebuild-4c-8g'
+          description: 'Name of the Jenkins node to run the job on'
 
       - string:
-         name: manifestUrl
-         default: '{gerrit-server-url}/{cord-repo-manifest}'
-         description: 'URL to the repo manifest'
+          name: manifestUrl
+          default: '{gerrit-server-url}/{cord-repo-manifest}'
+          description: 'URL to the repo manifest'
 
       - string:
-         name: manifestBranch
-         default: '{branch}'
-         description: 'Name of the repo branch to use'
+          name: manifestBranch
+          default: '{branch}'
+          description: 'Name of the repo branch to use'
 
     project-type: pipeline
     concurrent: true
 
-    dsl: !include-raw-escape: pipeline/{pipeline_script}
+    dsl: !include-raw-escape: pipeline/{pipeline-script}
diff --git a/jjb/verify/aaa.yaml b/jjb/verify/aaa.yaml
new file mode 100644
index 0000000..438dd3e
--- /dev/null
+++ b/jjb/verify/aaa.yaml
@@ -0,0 +1,36 @@
+---
+# jobs for 'aaa' repo
+
+- project:
+    name: aaa
+    project: '{name}'
+
+    jobs:
+      - 'aaa-jobs-common':
+          branch-regexp: '^(.*)$'
+
+      - 'aaa-jobs':
+          branch-regexp: '^(master)$'
+
+      - 'aaa-jobs-legacy':
+          branch-regexp: '^(aaa-1.10)$'
+          jdk-distribution: 'java-1.8.0-amazon-corretto'
+          name-extension: '-jdk8'
+
+- job-group:
+    name: 'aaa-jobs-common'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject'
+
+- job-group:
+    name: 'aaa-jobs'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
+- job-group:
+    name: 'aaa-jobs-legacy'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
diff --git a/jjb/verify/bbsim.yaml b/jjb/verify/bbsim.yaml
index e5dad98..f4e2e13 100644
--- a/jjb/verify/bbsim.yaml
+++ b/jjb/verify/bbsim.yaml
@@ -20,8 +20,10 @@
       - 'make-unit-test':
           build-node: 'ubuntu16.04-basebuild-1c-2g'
           dest-gopath: "github.com/opencord"
-          unit-test-targets: 'test docker-build'
+          unit-test-targets: 'test'
           unit-test-keep-going: 'true'
+      - 'voltha-patch-test':
+          pipeline-script: 'voltha-bbsim-tests.groovy'
 
 - job-group:
     name: 'publish-bbsim-jobs'
@@ -30,3 +32,8 @@
           maintainers: "teo@opennetworking.org"
           docker-repo: 'voltha'
           dependency-jobs: 'version-tag'
+      - 'github-release':
+           dependency-jobs: 'version-tag'
+           github-organization: 'opencord'
+           release-targets: 'dep release'
+           artifact-glob: 'release/*'
diff --git a/jjb/verify/config.yaml b/jjb/verify/config.yaml
new file mode 100644
index 0000000..ec9f48f
--- /dev/null
+++ b/jjb/verify/config.yaml
@@ -0,0 +1,37 @@
+---
+# jobs for 'config' repo
+
+- project:
+    name: config
+    project: '{name}'
+
+    jobs:
+      - 'config-jobs-common':
+          branch-regexp: '^(.*)$'
+
+      - 'config-jobs':
+          branch-regexp: '^(master)$'
+
+      - 'config-jobs-legacy':
+          branch-regexp: '^(config-1.5)$'
+          jdk-distribution: 'java-1.8.0-amazon-corretto'
+          name-extension: '-jdk8'
+
+- job-group:
+    name: 'config-jobs-common'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject'
+
+- job-group:
+    name: 'config-jobs'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
+- job-group:
+    name: 'config-jobs-legacy'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
diff --git a/jjb/verify/cord-workflow-airflow.yaml b/jjb/verify/cord-workflow-airflow.yaml
index 5342af0..8151451 100644
--- a/jjb/verify/cord-workflow-airflow.yaml
+++ b/jjb/verify/cord-workflow-airflow.yaml
@@ -11,7 +11,7 @@
       - 'verify-cord-workflow-airflow-jobs':
           branch-regexp: '{supported-branches-regexp}'
       - 'publish-cord-workflow-airflow-jobs':
-            branch-regexp: '{supported-branches-regexp}'
+          branch-regexp: '{supported-branches-regexp}'
 
 - job-group:
     name: 'verify-cord-workflow-airflow-jobs'
diff --git a/jjb/verify/cord-workflow-controller.yaml b/jjb/verify/cord-workflow-controller.yaml
index 9d43dfc..b769eed 100644
--- a/jjb/verify/cord-workflow-controller.yaml
+++ b/jjb/verify/cord-workflow-controller.yaml
@@ -11,7 +11,7 @@
       - 'verify-cord-workflow-controller-jobs':
           branch-regexp: '{supported-branches-regexp}'
       - 'publish-cord-workflow-controller-jobs':
-            branch-regexp: '{supported-branches-regexp}'
+          branch-regexp: '{supported-branches-regexp}'
 
 - job-group:
     name: 'verify-cord-workflow-controller-jobs'
diff --git a/jjb/verify/dhcpl2relay.yaml b/jjb/verify/dhcpl2relay.yaml
new file mode 100644
index 0000000..ef1d849
--- /dev/null
+++ b/jjb/verify/dhcpl2relay.yaml
@@ -0,0 +1,37 @@
+---
+# jobs for 'dhcpl2relay' repo
+
+- project:
+    name: dhcpl2relay
+    project: '{name}'
+
+    jobs:
+      - 'dhcpl2relay-jobs-common':
+          branch-regexp: '^(.*)$'
+
+      - 'dhcpl2relay-jobs':
+          branch-regexp: '^(master)$'
+
+      - 'dhcpl2relay-jobs-legacy':
+          branch-regexp: '^(dhcpl2relay-1.6)$'
+          jdk-distribution: 'java-1.8.0-amazon-corretto'
+          name-extension: '-jdk8'
+
+- job-group:
+    name: 'dhcpl2relay-jobs-common'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject'
+
+- job-group:
+    name: 'dhcpl2relay-jobs'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
+- job-group:
+    name: 'dhcpl2relay-jobs-legacy'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
diff --git a/jjb/verify/fabric-crossconnect.yaml b/jjb/verify/fabric-crossconnect.yaml
index e1ec19c..bc2d2b8 100644
--- a/jjb/verify/fabric-crossconnect.yaml
+++ b/jjb/verify/fabric-crossconnect.yaml
@@ -21,7 +21,7 @@
       - 'xos-unit-test':
           dependency-jobs: 'verify_fabric-crossconnect_sonarqube'
       - 'xos-service-upgrade':
-            dependency-jobs: 'verify_fabric-crossconnect-unit-test'
+          dependency-jobs: 'verify_fabric-crossconnect-unit-test'
 - job-group:
     name: 'publish-fabric-crossconnect-jobs'
     jobs:
diff --git a/jjb/verify/fabric.yaml b/jjb/verify/fabric.yaml
index 0d83ffe..b1e53e8 100644
--- a/jjb/verify/fabric.yaml
+++ b/jjb/verify/fabric.yaml
@@ -21,7 +21,7 @@
       - 'xos-unit-test':
           dependency-jobs: 'verify_fabric_sonarqube'
       - 'xos-service-upgrade':
-            dependency-jobs: 'verify_fabric-unit-test'
+          dependency-jobs: 'verify_fabric-unit-test'
 
 - job-group:
     name: 'publish-fabric-jobs'
diff --git a/jjb/verify/helm-charts.yaml b/jjb/verify/helm-charts.yaml
index 3c119c6..137586b 100644
--- a/jjb/verify/helm-charts.yaml
+++ b/jjb/verify/helm-charts.yaml
@@ -32,4 +32,4 @@
     name: 'post-merge-helm-charts-jobs'
     jobs:
       - 'triggered-api-test':
-          pipeline_script: 'chart-api-test-helm.groovy'
+          pipeline-script: 'chart-api-test-helm.groovy'
diff --git a/jjb/verify/igmp.yaml b/jjb/verify/igmp.yaml
new file mode 100644
index 0000000..143d8c4
--- /dev/null
+++ b/jjb/verify/igmp.yaml
@@ -0,0 +1,37 @@
+---
+# jobs for 'igmp' repo
+
+- project:
+    name: igmp
+    project: '{name}'
+
+    jobs:
+      - 'igmp-jobs-common':
+          branch-regexp: '^(.*)$'
+
+      - 'igmp-jobs':
+          branch-regexp: '^(master)$'
+
+      - 'igmp-jobs-legacy':
+          branch-regexp: '^(igmp-1.4)$'
+          jdk-distribution: 'java-1.8.0-amazon-corretto'
+          name-extension: '-jdk8'
+
+- job-group:
+    name: 'igmp-jobs-common'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject'
+
+- job-group:
+    name: 'igmp-jobs'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
+- job-group:
+    name: 'igmp-jobs-legacy'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
diff --git a/jjb/verify/igmpproxy.yaml b/jjb/verify/igmpproxy.yaml
new file mode 100644
index 0000000..9801154
--- /dev/null
+++ b/jjb/verify/igmpproxy.yaml
@@ -0,0 +1,39 @@
+---
+# jobs for 'igmpproxy' repo
+
+- project:
+    name: igmpproxy
+    project: '{name}'
+
+    jobs:
+      - 'igmpproxy-jobs-common':
+          branch-regexp: '^(.*)$'
+
+      - 'igmpproxy-jobs':
+          branch-regexp: '^(master)$'
+          junit-allow-empty-results: true
+
+      - 'igmpproxy-jobs-legacy':
+          branch-regexp: '^(igmpproxy-1.3)$'
+          jdk-distribution: 'java-1.8.0-amazon-corretto'
+          name-extension: '-jdk8'
+          junit-allow-empty-results: true
+
+- job-group:
+    name: 'igmpproxy-jobs-common'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject'
+
+- job-group:
+    name: 'igmpproxy-jobs'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
+- job-group:
+    name: 'igmpproxy-jobs-legacy'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
diff --git a/jjb/verify/kafka-onos.yaml b/jjb/verify/kafka-onos.yaml
new file mode 100644
index 0000000..e59c307
--- /dev/null
+++ b/jjb/verify/kafka-onos.yaml
@@ -0,0 +1,37 @@
+---
+# jobs for 'kafka-onos' repo
+
+- project:
+    name: kafka-onos
+    project: '{name}'
+
+    jobs:
+      - 'kafka-onos-jobs-common':
+          branch-regexp: '^(.*)$'
+
+      - 'kafka-onos-jobs':
+          branch-regexp: '^(master)$'
+
+      - 'kafka-onos-jobs-legacy':
+          branch-regexp: '^(kafka-onos-1.1)$'
+          jdk-distribution: 'java-1.8.0-amazon-corretto'
+          name-extension: '-jdk8'
+
+- job-group:
+    name: 'kafka-onos-jobs-common'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject'
+
+- job-group:
+    name: 'kafka-onos-jobs'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
+- job-group:
+    name: 'kafka-onos-jobs-legacy'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
diff --git a/jjb/verify/kubernetes-service.yaml b/jjb/verify/kubernetes-service.yaml
index 6604773..0a55b21 100644
--- a/jjb/verify/kubernetes-service.yaml
+++ b/jjb/verify/kubernetes-service.yaml
@@ -21,7 +21,7 @@
       - 'xos-unit-test':
           dependency-jobs: 'verify_kubernetes-service_sonarqube'
       - 'xos-service-upgrade':
-            dependency-jobs: 'verify_kubernetes-service-unit-test'
+          dependency-jobs: 'verify_kubernetes-service-unit-test'
 
 - job-group:
     name: 'publish-kubernetes-service-jobs'
diff --git a/jjb/verify/mcast.yaml b/jjb/verify/mcast.yaml
new file mode 100644
index 0000000..a79f955
--- /dev/null
+++ b/jjb/verify/mcast.yaml
@@ -0,0 +1,39 @@
+---
+# jobs for 'mcast' repo
+
+- project:
+    name: mcast
+    project: '{name}'
+
+    jobs:
+      - 'mcast-jobs-common':
+          branch-regexp: '^(.*)$'
+
+      - 'mcast-jobs':
+          branch-regexp: '^(master)$'
+          junit-allow-empty-results: true
+
+      - 'mcast-jobs-legacy':
+          branch-regexp: '^(mcast-1.4)$'
+          jdk-distribution: 'java-1.8.0-amazon-corretto'
+          name-extension: '-jdk8'
+          junit-allow-empty-results: true
+
+- job-group:
+    name: 'mcast-jobs-common'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject'
+
+- job-group:
+    name: 'mcast-jobs'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
+- job-group:
+    name: 'mcast-jobs-legacy'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
diff --git a/jjb/verify/olt-service.yaml b/jjb/verify/olt-service.yaml
index 7fd3ffd..089a023 100644
--- a/jjb/verify/olt-service.yaml
+++ b/jjb/verify/olt-service.yaml
@@ -21,7 +21,7 @@
       - 'xos-unit-test':
           dependency-jobs: 'verify_olt-service_sonarqube'
       - 'xos-service-upgrade':
-            dependency-jobs: 'verify_olt-service-unit-test'
+          dependency-jobs: 'verify_olt-service-unit-test'
 - job-group:
     name: 'publish-olt-service-jobs'
     jobs:
diff --git a/jjb/verify/olt.yaml b/jjb/verify/olt.yaml
new file mode 100644
index 0000000..a654a96
--- /dev/null
+++ b/jjb/verify/olt.yaml
@@ -0,0 +1,37 @@
+---
+# jobs for 'olt' repo
+
+- project:
+    name: olt
+    project: '{name}'
+
+    jobs:
+      - 'olt-jobs-common':
+          branch-regexp: '^(.*)$'
+
+      - 'olt-jobs':
+          branch-regexp: '^(master)$'
+
+      - 'olt-jobs-legacy':
+          branch-regexp: '^(olt-3.0)$'
+          jdk-distribution: 'java-1.8.0-amazon-corretto'
+          name-extension: '-jdk8'
+
+- job-group:
+    name: 'olt-jobs-common'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject'
+
+- job-group:
+    name: 'olt-jobs'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
+- job-group:
+    name: 'olt-jobs-legacy'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
diff --git a/jjb/verify/onos-service.yaml b/jjb/verify/onos-service.yaml
index 8cfda63..b582d44 100644
--- a/jjb/verify/onos-service.yaml
+++ b/jjb/verify/onos-service.yaml
@@ -21,7 +21,7 @@
       - 'xos-unit-test':
           dependency-jobs: 'verify_onos-service_sonarqube'
       - 'xos-service-upgrade':
-            dependency-jobs: 'verify_onos-service-unit-test'
+          dependency-jobs: 'verify_onos-service-unit-test'
 
 - job-group:
     name: 'publish-onos-service-jobs'
diff --git a/jjb/verify/openolt.yaml b/jjb/verify/openolt.yaml
index 3576748..edec421 100644
--- a/jjb/verify/openolt.yaml
+++ b/jjb/verify/openolt.yaml
@@ -42,9 +42,9 @@
 
     parameters:
       - string:
-         name: notificationEmail
-         default: '$GERRIT_EVENT_ACCOUNT_EMAIL'
-         description: 'Verification failure of patch $GERRIT_CHANGE_NUMBER to {project} repo'
+          name: notificationEmail
+          default: '$GERRIT_EVENT_ACCOUNT_EMAIL'
+          description: 'Verification failure of patch $GERRIT_CHANGE_NUMBER to {project} repo'
 
     node: 'openolt_deb_onf_agent'
     project-type: pipeline
diff --git a/jjb/maven/pppoel2relay.yaml b/jjb/verify/pppoel2relay.yaml
similarity index 63%
rename from jjb/maven/pppoel2relay.yaml
rename to jjb/verify/pppoel2relay.yaml
index 0932cc3..51be4d4 100644
--- a/jjb/maven/pppoel2relay.yaml
+++ b/jjb/verify/pppoel2relay.yaml
@@ -1,18 +1,18 @@
 ---
-# maven job for 'pppoel2relay' repo
+# jobs for 'pppoel2relay' repo
 
 - project:
     name: pppoel2relay
     project: '{name}'
 
     jobs:
-      - 'pppoel2relay-gerrit':
+      - 'pppoel2relay-jobs':
           branch-regexp: '^(.*)$'
 
 - job-group:
-    name: 'pppoel2relay-gerrit'
+    name: 'pppoel2relay-jobs'
     jobs:
       - 'verify-licensed'
       - 'tag-collision-reject'
       - 'maven-install'
-      - 'maven-deploy'
+      - 'maven-publish'
diff --git a/jjb/verify/rcord.yaml b/jjb/verify/rcord.yaml
index 52251d8..c046fab 100644
--- a/jjb/verify/rcord.yaml
+++ b/jjb/verify/rcord.yaml
@@ -21,7 +21,7 @@
       - 'xos-unit-test':
           dependency-jobs: 'verify_rcord_sonarqube'
       - 'xos-service-upgrade':
-            dependency-jobs: 'verify_rcord-unit-test'
+          dependency-jobs: 'verify_rcord-unit-test'
 
 - job-group:
     name: 'publish-rcord-jobs'
diff --git a/jjb/verify/sadis.yaml b/jjb/verify/sadis.yaml
new file mode 100644
index 0000000..9728ebf
--- /dev/null
+++ b/jjb/verify/sadis.yaml
@@ -0,0 +1,37 @@
+---
+# jobs for 'sadis' repo
+
+- project:
+    name: sadis
+    project: '{name}'
+
+    jobs:
+      - 'sadis-jobs-common':
+          branch-regexp: '^(.*)$'
+
+      - 'sadis-jobs':
+          branch-regexp: '^(master)$'
+
+      - 'sadis-jobs-legacy':
+          branch-regexp: '^(sadis-3.0)$'
+          jdk-distribution: 'java-1.8.0-amazon-corretto'
+          name-extension: '-jdk8'
+
+- job-group:
+    name: 'sadis-jobs-common'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject'
+
+- job-group:
+    name: 'sadis-jobs'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
+- job-group:
+    name: 'sadis-jobs-legacy'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
diff --git a/jjb/verify/simpleexampleservice.yaml b/jjb/verify/simpleexampleservice.yaml
index c0a09c7..5077924 100644
--- a/jjb/verify/simpleexampleservice.yaml
+++ b/jjb/verify/simpleexampleservice.yaml
@@ -21,7 +21,7 @@
       - 'xos-unit-test':
           dependency-jobs: 'verify_simpleexampleservice_sonarqube'
       - 'xos-service-upgrade':
-            dependency-jobs: 'verify_simpleexampleservice-unit-test'
+          dependency-jobs: 'verify_simpleexampleservice-unit-test'
 
 - job-group:
     name: 'publish-simpleexampleservice-jobs'
diff --git a/jjb/verify/voltha-api-server.yaml b/jjb/verify/voltha-api-server.yaml
index da1390a..2e379fc 100644
--- a/jjb/verify/voltha-api-server.yaml
+++ b/jjb/verify/voltha-api-server.yaml
@@ -18,11 +18,13 @@
       - 'tag-collision-reject':
           dependency-jobs: 'verify_voltha-api-server_licensed'
       - 'make-unit-test':
-          build-node: 'ubuntu16.04-basebuild-1c-2g'
+          build-node: 'ubuntu16.04-basebuild-2c-4g'
           dest-gopath: "github.com/opencord"
-          unit-test-targets: 'lint sca test docker-build'
+          unit-test-targets: 'lint sca test'
           unit-test-keep-going: 'true'
           junit-allow-empty-results: true
+      - 'voltha-patch-test':
+          pipeline-script: 'voltha-bbsim-tests.groovy'
 
 - job-group:
     name: 'publish-voltha-api-server-jobs'
@@ -31,9 +33,3 @@
           build-timeout: 30
           docker-repo: 'voltha'
           dependency-jobs: 'version-tag'
-
-- job-group:
-    name: 'voltha-api-server-system-tests'
-    jobs:
-      - 'voltha-patch-test':
-         pipeline: 'voltha-bbsim-tests.groovy'
diff --git a/jjb/verify/voltha-bbsim.yaml b/jjb/verify/voltha-bbsim.yaml
index cbd77a3..1ad61e9 100644
--- a/jjb/verify/voltha-bbsim.yaml
+++ b/jjb/verify/voltha-bbsim.yaml
@@ -9,7 +9,7 @@
       - 'verify-voltha-bbsim-jobs':
           branch-regexp: '{all-branches-regexp}'
       - 'publish-voltha-bbsim-jobs':
-            branch-regexp: '{all-branches-regexp}'
+          branch-regexp: '{all-branches-regexp}'
 
 - job-group:
     name: 'verify-voltha-bbsim-jobs'
@@ -18,9 +18,10 @@
       - 'tag-collision-reject':
           dependency-jobs: 'verify_voltha-bbsim_licensed'
       - 'make-unit-test':
-          unit-test-targets: 'test docker-build'
+          unit-test-targets: 'test'
           dest-gopath: "github.com/opencord"
           junit-allow-empty-results: true
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
 
 - job-group:
     name: 'publish-voltha-bbsim-jobs'
diff --git a/jjb/verify/voltha-go.yaml b/jjb/verify/voltha-go.yaml
index 42a2c6d..0cbb585 100644
--- a/jjb/verify/voltha-go.yaml
+++ b/jjb/verify/voltha-go.yaml
@@ -10,8 +10,6 @@
           branch-regexp: '{all-branches-regexp}'
       - 'publish-voltha-go-jobs':
           branch-regexp: '{all-branches-regexp}'
-      - 'voltha-go-system-tests':
-          branch-regexp: '{voltha-stablization-branch}'
 
 - job-group:
     name: 'verify-voltha-go-jobs'
@@ -20,6 +18,8 @@
       - 'tag-collision-reject':
           dependency-jobs: 'verify_voltha-go_licensed'
       - 'make-unit-test':
+          build-node: 'ubuntu16.04-basebuild-2c-4g'
+          build-timeout: 20
           dest-gopath: "github.com/opencord"
           name-extension: "-lint"
           unit-test-targets: 'lint'
@@ -31,6 +31,9 @@
           name-extension: "-tests"
           unit-test-targets: 'test'
           unit-test-keep-going: 'true'
+      - 'voltha-patch-test':
+          buildImages: true
+          pipeline-script: 'voltha-bbsim-tests.groovy'
 
 - job-group:
     name: 'publish-voltha-go-jobs'
@@ -39,9 +42,3 @@
           build-timeout: 30
           docker-repo: 'voltha'
           dependency-jobs: 'version-tag'
-
-- job-group:
-    name: 'voltha-go-system-tests'
-    jobs:
-      - 'voltha-patch-test':
-         pipeline: 'voltha-bbsim-tests.groovy'
diff --git a/jjb/verify/voltha-helm-charts.yaml b/jjb/verify/voltha-helm-charts.yaml
index 50b1399..a4b7a9d 100644
--- a/jjb/verify/voltha-helm-charts.yaml
+++ b/jjb/verify/voltha-helm-charts.yaml
@@ -17,4 +17,8 @@
           dependency-jobs: 'verify_voltha-helm-charts_licensed'
       - 'verify-helm-lint':
           dependency-jobs: 'verify_voltha-helm-charts_tag-collision'
+      - 'voltha-patch-test':
+          dependency-jobs: 'verify_voltha-helm-charts_helm-lint'
+          build-timeout: 20
+          pipeline-script: 'voltha-bbsim-tests.groovy'
 
diff --git a/jjb/verify/voltha-lib-go.yaml b/jjb/verify/voltha-lib-go.yaml
new file mode 100644
index 0000000..448cb7e
--- /dev/null
+++ b/jjb/verify/voltha-lib-go.yaml
@@ -0,0 +1,23 @@
+---
+# verification jobs for 'voltha-lib-go' repo
+
+- project:
+    name: voltha-lib-go
+    project: '{name}'
+
+    jobs:
+      - 'verify-voltha-lib-go-jobs':
+          branch-regexp: '{all-branches-regexp}'
+
+- job-group:
+    name: 'verify-voltha-lib-go-jobs'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject':
+          dependency-jobs: 'verify_voltha-lib-go_licensed'
+      - 'make-unit-test':
+          build-node: 'ubuntu16.04-basebuild-2c-4g'
+          build-timeout: 20
+          dest-gopath: "github.com/opencord"
+          unit-test-targets: 'lint test'
+          unit-test-keep-going: 'true'
diff --git a/jjb/verify/voltha-openolt-adapter.yaml b/jjb/verify/voltha-openolt-adapter.yaml
index 3f9790d..893ec19 100644
--- a/jjb/verify/voltha-openolt-adapter.yaml
+++ b/jjb/verify/voltha-openolt-adapter.yaml
@@ -10,8 +10,6 @@
           branch-regexp: '{all-branches-regexp}'
       - 'publish-voltha-openolt-adapter-jobs':
           branch-regexp: '{all-branches-regexp}'
-      - 'voltha-openolt-adapter-system-tests':
-          branch-regexp: '{voltha-stablization-branch}'
 
 - job-group:
     name: 'verify-voltha-openolt-adapter-jobs'
@@ -25,13 +23,16 @@
           unit-test-targets: 'lint sca'
           unit-test-keep-going: 'true'
           junit-allow-empty-results: true
-          build-node: 'ubuntu16.04-basebuild-1c-2g'
+          build-node: 'ubuntu16.04-basebuild-2c-4g'
       - 'make-unit-test':
           dest-gopath: "github.com/opencord"
           name-extension: "-tests"
           unit-test-targets: 'test'
           unit-test-keep-going: 'true'
           junit-allow-empty-results: true
+          build-node: 'ubuntu16.04-basebuild-2c-4g'
+      - 'voltha-patch-test':
+          pipeline-script: 'voltha-bbsim-tests.groovy'
 
 - job-group:
     name: 'publish-voltha-openolt-adapter-jobs'
@@ -40,9 +41,3 @@
           build-timeout: 30
           docker-repo: 'voltha'
           dependency-jobs: 'version-tag'
-
-- job-group:
-    name: 'voltha-openolt-adapter-system-tests'
-    jobs:
-      - 'voltha-patch-test':
-         pipeline: 'voltha-bbsim-tests.groovy'
diff --git a/jjb/verify/voltha-openonu-adapter.yaml b/jjb/verify/voltha-openonu-adapter.yaml
index 8c41c58..7d7ec6d 100644
--- a/jjb/verify/voltha-openonu-adapter.yaml
+++ b/jjb/verify/voltha-openonu-adapter.yaml
@@ -10,8 +10,6 @@
           branch-regexp: '{all-branches-regexp}'
       - 'publish-voltha-openonu-adapter-jobs':
           branch-regexp: '{all-branches-regexp}'
-      - 'voltha-openonu-adapter-system-tests':
-          branch-regexp: '{voltha-stablization-branch}'
 
 - job-group:
     name: 'verify-voltha-openonu-adapter-jobs'
@@ -24,6 +22,8 @@
           unit-test-keep-going: 'true'
           junit-allow-empty-results: true
           build-timeout: 15
+      - 'voltha-patch-test':
+          pipeline-script: 'voltha-bbsim-tests.groovy'
 
 - job-group:
     name: 'publish-voltha-openonu-adapter-jobs'
@@ -32,9 +32,3 @@
           build-timeout: 30
           docker-repo: 'voltha'
           dependency-jobs: 'version-tag'
-
-- job-group:
-    name: 'voltha-openonu-adapter-system-tests'
-    jobs:
-      - 'voltha-patch-test':
-         pipeline: 'voltha-bbsim-tests.groovy'
diff --git a/jjb/verify/voltha-ponsimolt-adapter.yaml b/jjb/verify/voltha-ponsimolt-adapter.yaml
new file mode 100644
index 0000000..052107d
--- /dev/null
+++ b/jjb/verify/voltha-ponsimolt-adapter.yaml
@@ -0,0 +1,29 @@
+---
+# verification jobs for 'voltha-ponsimolt-adapter' repo
+
+- project:
+    name: voltha-ponsimolt-adapter
+    project: '{name}'
+
+    jobs:
+      - 'verify-voltha-ponsimolt-adapter-jobs':
+          branch-regexp: '{all-branches-regexp}'
+      - 'publish-voltha-ponsimolt-adapter-jobs':
+          branch-regexp: '{all-branches-regexp}'
+
+- job-group:
+    name: 'verify-voltha-ponsimolt-adapter-jobs'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject':
+          dependency-jobs: 'verify_voltha-ponsimolt-adapter_licensed'
+      - 'make-unit-test':
+          dest-gopath: "github.com/opencord"
+          unit-test-keep-going: 'true'
+
+- job-group:
+    name: 'publish-voltha-ponsimolt-adapter-jobs'
+    jobs:
+      - 'docker-publish':
+          docker-repo: 'voltha'
+          dependency-jobs: 'version-tag'
diff --git a/jjb/verify/voltha-ponsimonu-adapter.yaml b/jjb/verify/voltha-ponsimonu-adapter.yaml
new file mode 100644
index 0000000..3f83d09
--- /dev/null
+++ b/jjb/verify/voltha-ponsimonu-adapter.yaml
@@ -0,0 +1,29 @@
+---
+# verification jobs for 'voltha-ponsimonu-adapter' repo
+
+- project:
+    name: voltha-ponsimonu-adapter
+    project: '{name}'
+
+    jobs:
+      - 'verify-voltha-ponsimonu-adapter-jobs':
+          branch-regexp: '{all-branches-regexp}'
+      - 'publish-voltha-ponsimonu-adapter-jobs':
+          branch-regexp: '{all-branches-regexp}'
+
+- job-group:
+    name: 'verify-voltha-ponsimonu-adapter-jobs'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject':
+          dependency-jobs: 'verify_voltha-ponsimonu-adapter_licensed'
+      - 'make-unit-test':
+          dest-gopath: "github.com/opencord"
+          unit-test-keep-going: 'true'
+
+- job-group:
+    name: 'publish-voltha-ponsimonu-adapter-jobs'
+    jobs:
+      - 'docker-publish':
+          docker-repo: 'voltha'
+          dependency-jobs: 'version-tag'
diff --git a/jjb/verify/voltha-protos.yaml b/jjb/verify/voltha-protos.yaml
index f4b780f..a02f309 100644
--- a/jjb/verify/voltha-protos.yaml
+++ b/jjb/verify/voltha-protos.yaml
@@ -19,11 +19,11 @@
       - 'verify-licensed'
       - 'tag-collision-reject':
           dependency-jobs: 'verify_voltha-protos_licensed'
-#     - 'verify-sonarqube':
-#         dependency-jobs: 'verify_voltha-protos_tag-collision'
+      #     - 'verify-sonarqube':
+      #         dependency-jobs: 'verify_voltha-protos_tag-collision'
       - 'python-unit-test':
-         dependency-jobs: 'verify_voltha-protos_tag-collision'
-#        dependency-jobs: 'verify_voltha-protos_sonarqube'
+          dependency-jobs: 'verify_voltha-protos_tag-collision'
+#         dependency-jobs: 'verify_voltha-protos_sonarqube'
 
 - job-group:
     name: 'post-merge-voltha-protos-jobs'
diff --git a/jjb/verify/voltha-python-base.yaml b/jjb/verify/voltha-python-base.yaml
new file mode 100644
index 0000000..ce03fb3
--- /dev/null
+++ b/jjb/verify/voltha-python-base.yaml
@@ -0,0 +1,30 @@
+---
+# verification jobs for 'voltha-python-base' repo
+
+- project:
+    name: voltha-python-base
+    project: '{name}'
+
+    jobs:
+      - 'verify-voltha-python-base-jobs':
+          branch-regexp: '{all-branches-regexp}'
+      - 'publish-voltha-python-base-jobs'
+
+- job-group:
+    name: 'verify-voltha-python-base-jobs'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject':
+          dependency-jobs: 'verify_voltha-python-base_licensed'
+      - 'make-unit-test':
+          build-timeout: 30
+          unit-test-targets: 'docker-build'
+          junit-allow-empty-results: true
+
+- job-group:
+    name: 'publish-voltha-python-base-jobs'
+    jobs:
+      - 'docker-publish':
+          build-timeout: 30
+          docker-repo: 'voltha'
+          dependency-jobs: 'version-tag'
diff --git a/jjb/verify/voltha-system-tests.yaml b/jjb/verify/voltha-system-tests.yaml
index ba934a5..724589c 100644
--- a/jjb/verify/voltha-system-tests.yaml
+++ b/jjb/verify/voltha-system-tests.yaml
@@ -19,4 +19,7 @@
           dependency-jobs: 'verify_voltha-system-tests_tag-collision'
           unit-test-targets: 'lint'
           junit-allow-empty-results: true
-
+      - 'voltha-patch-test':
+          build-timeout: 20
+          pipeline-script: 'voltha-bbsim-tests.groovy'
+          dependency-jobs: 'verify_voltha-system-tests_unit-test'
diff --git a/jjb/verify/voltha.yaml b/jjb/verify/voltha.yaml
index 7c0da1b..caa8477 100644
--- a/jjb/verify/voltha.yaml
+++ b/jjb/verify/voltha.yaml
@@ -13,9 +13,9 @@
     name: 'verify-voltha-jobs'
     jobs:
       - 'verify-licensed'
-#     - 'verify-sonarqube':
-#         dependency-jobs: 'verify_voltha_licensed'
-#         build-timeout: 20
+      #     - 'verify-sonarqube':
+      #         dependency-jobs: 'verify_voltha_licensed'
+      #         build-timeout: 20
       - 'voltha-unit-test':
           dependency-jobs: 'verify_voltha_licensed'
 #         dependency-jobs: 'verify_voltha_sonarqube'
diff --git a/jjb/verify/vsg-hw.yaml b/jjb/verify/vsg-hw.yaml
index 88395f9..1314376 100644
--- a/jjb/verify/vsg-hw.yaml
+++ b/jjb/verify/vsg-hw.yaml
@@ -20,4 +20,3 @@
       - 'xos-unit-test':
           dependency-jobs: 'verify_vsg-hw_sonarqube'
 
-
diff --git a/jjb/verify/vtn.yaml b/jjb/verify/vtn.yaml
new file mode 100644
index 0000000..1dbed6d
--- /dev/null
+++ b/jjb/verify/vtn.yaml
@@ -0,0 +1,37 @@
+---
+# jobs for 'vtn' repo
+
+- project:
+    name: vtn
+    project: '{name}'
+
+    jobs:
+      - 'vtn-jobs-common':
+          branch-regexp: '^(.*)$'
+
+      - 'vtn-jobs':
+          branch-regexp: '^(master)$'
+
+      - 'vtn-jobs-legacy':
+          branch-regexp: '^(vtn-1.7)$'
+          jdk-distribution: 'java-1.8.0-amazon-corretto'
+          name-extension: '-jdk8'
+
+- job-group:
+    name: 'vtn-jobs-common'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject'
+
+- job-group:
+    name: 'vtn-jobs'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
+- job-group:
+    name: 'vtn-jobs-legacy'
+    jobs:
+      - 'maven-test'
+      - 'maven-publish'
+
diff --git a/jjb/verify/xos.yaml b/jjb/verify/xos.yaml
index aaf54a9..ff385f5 100644
--- a/jjb/verify/xos.yaml
+++ b/jjb/verify/xos.yaml
@@ -33,7 +33,7 @@
           build-timeout: 45
           build-node: 'ubuntu16.04-basebuild-2c-4g'
       - 'api-test':
-          pipeline_script: 'xos-core.groovy'
+          pipeline-script: 'xos-core.groovy'
 
 - job-group:
     name: 'publish-xos-jobs'
diff --git a/jjb/versioning.yaml b/jjb/versioning.yaml
index b69c861..ddefa17 100644
--- a/jjb/versioning.yaml
+++ b/jjb/versioning.yaml
@@ -77,7 +77,7 @@
     id: version-tag
     name: "version-tag"
     description: |
-      Created by {id} job-template from ci-management/jjb/release.yaml
+      Created by {id} job-template from ci-management/jjb/versioning.yaml
       When a patch is merged, check if it contains a SemVer released version
       file and if so tags the commit in git with that same version.
 
diff --git a/jjb/voltha-atest-provisioning.yaml b/jjb/voltha-atest-provisioning.yaml
index ebce3ce..703baf4 100644
--- a/jjb/voltha-atest-provisioning.yaml
+++ b/jjb/voltha-atest-provisioning.yaml
@@ -8,7 +8,6 @@
 
     jobs:
       - 'voltha-atest-provisioning'
-      - 'voltha-atest-bbsim'
 
 - job-template:
     id: voltha-atest-provisioning
@@ -37,7 +36,7 @@
 
     parameters:
       - string:
-          name: executorNode
+          name: buildNode
           default: 'qct-pod3-voltha-testing'
           description: 'Name of the Jenkins node to run the job on'
 
@@ -52,100 +51,28 @@
           description: 'Name of the repo branch to use'
 
       - string:
-            name: gerritChangeNumber
-            default: '$GERRIT_CHANGE_NUMBER'
-            description: 'Changeset number in Gerrit'
+          name: gerritChangeNumber
+          default: '$GERRIT_CHANGE_NUMBER'
+          description: 'Changeset number in Gerrit'
 
       - string:
-            name: gerritPatchsetNumber
-            default: '$GERRIT_PATCHSET_NUMBER'
-            description: 'PatchSet number in Gerrit'
+          name: gerritPatchsetNumber
+          default: '$GERRIT_PATCHSET_NUMBER'
+          description: 'PatchSet number in Gerrit'
 
       - string:
-            name: adapter
-            default: ''
-            description: 'BLANK for ponsim'
+          name: adapter
+          default: ''
+          description: 'BLANK for ponsim'
       - bool:
-         name: BuildVoltha
-         default: true
-         description: 'Build modified voltha component'
+          name: BuildVoltha
+          default: true
+          description: 'Build modified voltha component'
 
       - bool:
-         name: BuildBbsim
-         default: false
-         description: 'Build modified bbsim component'
-
-    project-type: pipeline
-    concurrent: false
-
-    dsl: !include-raw-escape: pipeline/voltha-atest-provisioning.groovy
-
-- job-template:
-    id: voltha-atest-bbsim
-    name: 'voltha-atest-bbsim'
-    description: |
-      Created by {id} job-template from ci-management/jjb/voltha-atest-provisioning.yaml
-      Voltha automated tests run per commit. Voltha testing with bbsim to validate voltha+bbsim
-
-    triggers:
-      - cord-infra-gerrit-trigger-patchset:
-          gerrit-server-name: '{gerrit-server-name}'
-          project-regexp: 'voltha-bbsim'
-          branch-regexp: '{supported-branches-regexp}'
-          dependency-jobs: '{dependency-jobs}'
-          file-include-regexp: '{all-files-regexp}'
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-          artifact-num-to-keep: '{artifact-num-to-keep}'
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '{build-timeout}'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    parameters:
-      - string:
-          name: executorNode
-          default: 'qct-pod3-voltha-testing'
-          description: 'Name of the Jenkins node to run the job on'
-
-      - string:
-          name: manifestUrl
-          default: '{gerrit-server-url}/{cord-repo-manifest}'
-          description: 'URL to the repo manifest'
-
-      - string:
-          name: manifestBranch
-          default: 'master'
-          description: 'Name of the repo branch to use'
-
-      - string:
-            name: gerritChangeNumber
-            default: '$GERRIT_CHANGE_NUMBER'
-            description: 'Changeset number in Gerrit'
-
-      - string:
-            name: gerritPatchsetNumber
-            default: '$GERRIT_PATCHSET_NUMBER'
-            description: 'PatchSet number in Gerrit'
-
-      - string:
-            name: adapter
-            default: 'bbsim'
-            description: 'virtual olt to install with voltha'
-
-      - bool:
-         name: BuildVoltha
-         default: false
-         description: 'Build modified voltha component'
-
-      - bool:
-         name: BuildBbsim
-         default: true
-         description: 'Build modified bbsim component'
-
+          name: BuildBbsim
+          default: false
+          description: 'Build modified bbsim component'
 
     project-type: pipeline
     concurrent: false
diff --git a/jjb/voltha-automated-build.yaml b/jjb/voltha-automated-build.yaml
index 3150c13..a852607 100644
--- a/jjb/voltha-automated-build.yaml
+++ b/jjb/voltha-automated-build.yaml
@@ -16,7 +16,7 @@
       Created by {id} job-template from ci-management/jjb/voltha-automated-build.yaml
 
     triggers:
-       - timed: |
+      - timed: |
                  TZ=America/Los_Angeles
                  H 2 * * *
 
@@ -32,19 +32,19 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: 'onf-build'
-         description: 'Name of the Jenkins node to run the job on'
+          name: buildNode
+          default: 'onf-build'
+          description: 'Name of the Jenkins node to run the job on'
 
       - string:
-         name: manifestUrl
-         default: '{gerrit-server-url}/{cord-repo-manifest}'
-         description: 'URL to the repo manifest'
+          name: manifestUrl
+          default: '{gerrit-server-url}/{cord-repo-manifest}'
+          description: 'URL to the repo manifest'
 
       - string:
-         name: manifestBranch
-         default: 'master'
-         description: 'Name of the repo branch to use'
+          name: manifestBranch
+          default: 'master'
+          description: 'Name of the repo branch to use'
 
     project-type: pipeline
     concurrent: true
diff --git a/jjb/voltha-e2e.yaml b/jjb/voltha-e2e.yaml
index 34e39c9..9de0ca2 100644
--- a/jjb/voltha-e2e.yaml
+++ b/jjb/voltha-e2e.yaml
@@ -7,17 +7,9 @@
     project-name: '{name}'
 
     jobs:
-    - 'voltha-periodic-test':
+      - 'voltha-periodic-test':
           name: 'voltha-system-tests'
-          pipeline: 'voltha-go-tests.groovy'
-          default-image-tag: 'voltha-2.1'
-    - 'voltha-periodic-test-new-bbsim':
-          name: 'voltha-system-tests-new-bbsim'
-          pipeline: 'voltha-go-tests-new-bbsim.groovy'
-          default-image-tag: 'voltha-2.1'
-    - 'voltha-periodic-test':
-          name: 'voltha-system-tests-master'
-          pipeline: 'voltha-go-tests.groovy'
+          pipeline-script: 'voltha-go-tests.groovy'
           default-image-tag: 'master'
 
 - job-template:
@@ -41,7 +33,7 @@
 
     parameters:
       - string:
-          name: executorNode
+          name: buildNode
           default: 'ubuntu16.04-basebuild-4c-8g'
           description: 'Name of the Jenkins node to run the job on'
 
@@ -51,9 +43,9 @@
           description: 'Number of onus per pon port'
 
       - string:
-         name: emulationMode
-         default: '--set emulation_mode=both'
-         description: 'Emulation for BBSIM (both|aaa)'
+          name: emulationMode
+          default: '--set emulation_mode=both'
+          description: 'Emulation for BBSIM (both|aaa)'
 
       - string:
           name: testTimeout
@@ -67,71 +59,21 @@
 
       - string:
           name: extraHelmFlags
-          default: '--set defaults.image_tag={default-image-tag},wpa_wait=10,dhcp_wait=10'
+          default: '--set defaults.image_tag={default-image-tag},onu=2,pon=2'
           description: 'Helm flags to pass to ./voltha up'
 
+      - string:
+          name: robotVarFile
+          default: 'bbsim-kind-2x2.yaml'
+          description: 'Pod config file to use for tests'
+
     project-type: pipeline
     concurrent: false
 
-    dsl: !include-raw-escape: pipeline/{pipeline}
+    dsl: !include-raw-escape: pipeline/{pipeline-script}
 
     triggers:
-       - timed: |
-                 TZ=America/Los_Angeles
-                 H/30 * * * *
-
-- job-template:
-    id: 'voltha-periodic-test-new-bbsim'
-    name: '{name}'
-
-    description: |
-      <!-- Managed by Jenkins Job Builder -->
-      Created by {id} job-template from ci-management/jjb/voltha-e2e.yaml  <br /><br />
-      E2E Validation for Voltha 2.X and the new BBSim
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-          artifact-num-to-keep: '{artifact-num-to-keep}'
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '{build-timeout}'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    parameters:
-      - string:
-          name: executorNode
-          default: 'ubuntu16.04-basebuild-4c-8g'
-          description: 'Name of the Jenkins node to run the job on'
-
-      - string:
-          name: numOnus
-          default: '1'
-          description: 'Number of onus per pon port'
-
-      - string:
-          name: testTimeout
-          default: '90'
-          description: 'timeout for olt/onu validations'
-
-      - string:
-          name: testTags
-          default: '-e notready'
-          description: 'test tags'
-
-      - string:
-          name: extraHelmFlags
-          default: '--set defaults.image_tag={default-image-tag}'
-          description: 'Helm flags to pass to ./voltha up'
-
-    project-type: pipeline
-    concurrent: false
-
-    dsl: !include-raw-escape: pipeline/{pipeline}
-
-    triggers:
-       - timed: |
+      - timed: |
                  TZ=America/Los_Angeles
                  H/30 * * * *
 
@@ -156,7 +98,7 @@
 
     parameters:
       - string:
-          name: executorNode
+          name: buildNode
           default: 'ubuntu16.04-basebuild-4c-8g'
           description: 'Name of the Jenkins node to run the job on'
 
@@ -166,24 +108,24 @@
           description: 'URL to the repo manifest'
 
       - string:
-         name: manifestBranch
-         default: '$GERRIT_BRANCH'
-         description: 'Name of the repo branch to use'
+          name: manifestBranch
+          default: '$GERRIT_BRANCH'
+          description: 'Name of the repo branch to use'
 
       - string:
-         name: gerritProject
-         default: '$GERRIT_PROJECT'
-         description: 'Name of the Gerrit project'
+          name: gerritProject
+          default: '$GERRIT_PROJECT'
+          description: 'Name of the Gerrit project'
 
       - string:
-         name: gerritChangeNumber
-         default: '$GERRIT_CHANGE_NUMBER'
-         description: 'Changeset number in Gerrit'
+          name: gerritChangeNumber
+          default: '$GERRIT_CHANGE_NUMBER'
+          description: 'Changeset number in Gerrit'
 
       - string:
-         name: gerritPatchsetNumber
-         default: '$GERRIT_PATCHSET_NUMBER'
-         description: 'PatchSet number in Gerrit'
+          name: gerritPatchsetNumber
+          default: '$GERRIT_PATCHSET_NUMBER'
+          description: 'PatchSet number in Gerrit'
 
       - string:
           name: numOnus
@@ -191,9 +133,9 @@
           description: 'Number of onus per pon port'
 
       - string:
-         name: emulationMode
-         default: '--set emulation_mode=both'
-         description: 'Emulation for BBSIM (both|aaa)'
+          name: emulationMode
+          default: '--set emulation_mode=both'
+          description: 'Emulation for BBSIM (both|aaa)'
 
       - string:
           name: testTimeout
@@ -205,10 +147,15 @@
           default: '-e notready'
           description: 'test tags'
 
+      - string:
+          name: extraHelmFlags
+          default: '--set defaults.image_tag=$GERRIT_BRANCH'
+          description: 'Helm flags to pass to ./voltha up'
+
     project-type: pipeline
     concurrent: true
 
-    dsl: !include-raw-escape: pipeline/{pipeline}
+    dsl: !include-raw-escape: pipeline/{pipeline-script}
 
     triggers:
       - cord-infra-gerrit-trigger-patchset:
diff --git a/jjb/voltha-publish.yaml b/jjb/voltha-publish.yaml
index e58a5ef..d8b8246 100644
--- a/jjb/voltha-publish.yaml
+++ b/jjb/voltha-publish.yaml
@@ -9,7 +9,7 @@
       - 'voltha-publish':
           project-regexp: 'voltha'
           branch-regexp: '^(master|voltha-1.6|voltha-1.7)$'
-          executor-node: 'ubuntu16.04-basebuild-1c-2g'
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
           dependency-jobs: ''
 
 - job-template:
@@ -38,8 +38,8 @@
 
     parameters:
       - string:
-          name: executorNode
-          default: '{executor-node}'
+          name: buildNode
+          default: '{build-node}'
           description: 'Name of the Jenkins node to run the job on'
 
       - string:
diff --git a/jjb/xos-integration-tests.yaml b/jjb/xos-integration-tests.yaml
index 140ec77..c894947 100644
--- a/jjb/xos-integration-tests.yaml
+++ b/jjb/xos-integration-tests.yaml
@@ -32,34 +32,34 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: 'ubuntu16.04-basebuild-4c-8g'
-         description: 'Name of the Jenkins node to run the job on'
+          name: buildNode
+          default: 'ubuntu16.04-basebuild-4c-8g'
+          description: 'Name of the Jenkins node to run the job on'
 
       - string:
-         name: manifestUrl
-         default: '{gerrit-server-url}/{cord-repo-manifest}'
-         description: 'URL to the repo manifest'
+          name: manifestUrl
+          default: '{gerrit-server-url}/{cord-repo-manifest}'
+          description: 'URL to the repo manifest'
 
       - string:
-         name: manifestBranch
-         default: 'master'
-         description: 'Name of the repo branch to use'
+          name: manifestBranch
+          default: 'master'
+          description: 'Name of the repo branch to use'
 
       - string:
-         name: TestDir
-         default: 'xos-scale-tests'
-         description: 'Directory where tests reside'
+          name: TestDir
+          default: 'xos-scale-tests'
+          description: 'Directory where tests reside'
 
       - string:
-         name: TestCommand
-         default: 'robot -d Log -T -v xos_chameleon_url:127.0.0.1 -v xos_chameleon_port:30006 -v cord_kafka:\$CORD_KAFKA_IP -v num_olts:10 -v num_onus:1 -v num_pon_ports:10 -v timeout:360s xos-scale-att-workflow.robot'
-         description: 'Exact command to execute the tests including arguments'
+          name: TestCommand
+          default: 'robot -d Log -T -v xos_chameleon_url:127.0.0.1 -v xos_chameleon_port:30006 -v cord_kafka:\$CORD_KAFKA_IP -v num_olts:10 -v num_onus:1 -v num_pon_ports:10 -v timeout:360s xos-scale-att-workflow.robot'
+          description: 'Exact command to execute the tests including arguments'
 
       - string:
-         name: notificationEmail
-         default: 'kailash@opennetworking.org, teo@opennetworking.org'
-         description: ''
+          name: notificationEmail
+          default: 'kailash@opennetworking.org, teo@opennetworking.org'
+          description: ''
 
     project-type: pipeline
     concurrent: false
@@ -67,7 +67,7 @@
     dsl: !include-raw-escape: pipeline/xos-integration-tests.groovy
 
     triggers:
-       - timed: |
+      - timed: |
                  TZ=America/Los_Angeles
                  H 0,12 * * *
 
@@ -91,34 +91,34 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: 'ubuntu16.04-basebuild-4c-8g'
-         description: 'Name of the Jenkins node to run the job on'
+          name: buildNode
+          default: 'ubuntu16.04-basebuild-4c-8g'
+          description: 'Name of the Jenkins node to run the job on'
 
       - string:
-         name: manifestUrl
-         default: '{gerrit-server-url}/{cord-repo-manifest}'
-         description: 'URL to the repo manifest'
+          name: manifestUrl
+          default: '{gerrit-server-url}/{cord-repo-manifest}'
+          description: 'URL to the repo manifest'
 
       - string:
-         name: manifestBranch
-         default: 'master'
-         description: 'Name of the repo branch to use'
+          name: manifestBranch
+          default: 'master'
+          description: 'Name of the repo branch to use'
 
       - string:
-         name: TestDir
-         default: 'xos-migration-tests'
-         description: 'Directory where tests reside'
+          name: TestDir
+          default: 'xos-migration-tests'
+          description: 'Directory where tests reside'
 
       - string:
-         name: TestCommand
-         default: 'robot -d Log -T -v helm_chart:$WORKSPACE/cord/helm-charts/xos-services/simpleexampleservice xos-remove-service.robot xos-service-migrations.robot'
-         description: 'Exact command to execute the tests including arguments'
+          name: TestCommand
+          default: 'robot -d Log -T -v helm_chart:$WORKSPACE/cord/helm-charts/xos-services/simpleexampleservice xos-remove-service.robot xos-service-migrations.robot'
+          description: 'Exact command to execute the tests including arguments'
 
       - string:
-         name: notificationEmail
-         default: 'kailash@opennetworking.org, smbaker@opennetworking.org'
-         description: ''
+          name: notificationEmail
+          default: 'kailash@opennetworking.org, smbaker@opennetworking.org'
+          description: ''
 
     project-type: pipeline
     concurrent: false
@@ -150,34 +150,34 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: 'ubuntu16.04-basebuild-4c-8g'
-         description: 'Name of the Jenkins node to run the job on'
+          name: buildNode
+          default: 'ubuntu16.04-basebuild-4c-8g'
+          description: 'Name of the Jenkins node to run the job on'
 
       - string:
-         name: manifestUrl
-         default: '{gerrit-server-url}/{cord-repo-manifest}'
-         description: 'URL to the repo manifest'
+          name: manifestUrl
+          default: '{gerrit-server-url}/{cord-repo-manifest}'
+          description: 'URL to the repo manifest'
 
       - string:
-         name: manifestBranch
-         default: 'master'
-         description: 'Name of the repo branch to use'
+          name: manifestBranch
+          default: 'master'
+          description: 'Name of the repo branch to use'
 
       - string:
-         name: TestDir
-         default: 'xos-backup-tests'
-         description: 'Directory where tests reside'
+          name: TestDir
+          default: 'xos-backup-tests'
+          description: 'Directory where tests reside'
 
       - string:
-         name: TestCommand
-         default: 'robot -d Log -T xos-backup.robot'
-         description: 'Exact command to execute the tests including arguments'
+          name: TestCommand
+          default: 'robot -d Log -T xos-backup.robot'
+          description: 'Exact command to execute the tests including arguments'
 
       - string:
-         name: notificationEmail
-         default: 'kailash@opennetworking.org, smbaker@opennetworking.org'
-         description: ''
+          name: notificationEmail
+          default: 'kailash@opennetworking.org, smbaker@opennetworking.org'
+          description: ''
 
     project-type: pipeline
     concurrent: false
@@ -209,49 +209,49 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: 'ubuntu16.04-basebuild-4c-8g'
-         description: 'Name of the Jenkins node to run the job on'
+          name: buildNode
+          default: 'ubuntu16.04-basebuild-4c-8g'
+          description: 'Name of the Jenkins node to run the job on'
 
       - string:
-         name: manifestUrl
-         default: '{gerrit-server-url}/{cord-repo-manifest}'
-         description: 'URL to the repo manifest'
+          name: manifestUrl
+          default: '{gerrit-server-url}/{cord-repo-manifest}'
+          description: 'URL to the repo manifest'
 
       - string:
-         name: manifestBranch
-         default: 'master'
-         description: 'Name of the repo branch to use'
+          name: manifestBranch
+          default: 'master'
+          description: 'Name of the repo branch to use'
 
       - string:
-         name: service
-         default: 'att-workflow-driver'
-         description: 'Name of the service being tested'
+          name: service
+          default: 'att-workflow-driver'
+          description: 'Name of the service being tested'
 
       - string:
-         name: helmChart
-         default: 'workflows/att-workflow'
-         description: 'Directory/name of the service helm-chart'
+          name: helmChart
+          default: 'workflows/att-workflow'
+          description: 'Directory/name of the service helm-chart'
 
       - string:
-         name: TestDir
-         default: 'xos-att-workflow-driver-tests'
-         description: 'Directory where tests reside'
+          name: TestDir
+          default: 'xos-att-workflow-driver-tests'
+          description: 'Directory where tests reside'
 
       - string:
-         name: TestCommand
-         default: 'robot -d Log -T -v server_ip:127.0.0.1 -v server_port:30006 -v cord_kafka:\$CORD_KAFKA_IP ATT_Workflow.robot'
-         description: 'Exact command to execute the tests including arguments'
+          name: TestCommand
+          default: 'robot -d Log -T -v server_ip:127.0.0.1 -v server_port:30006 -v cord_kafka:\$CORD_KAFKA_IP ATT_Workflow.robot'
+          description: 'Exact command to execute the tests including arguments'
 
       - string:
-         name: notificationEmail
-         default: 'kailash@opennetworking.org, teo@opennetworking.org'
-         description: ''
+          name: notificationEmail
+          default: 'kailash@opennetworking.org, teo@opennetworking.org'
+          description: ''
 
       - bool:
-         name: InstallService
-         default: true
-         description: 'Set to true when testing a particular xos-service'
+          name: InstallService
+          default: true
+          description: 'Set to true when testing a particular xos-service'
 
     project-type: pipeline
     concurrent: false
diff --git a/jjb/xos-synchronizer-update.yaml b/jjb/xos-synchronizer-update.yaml
index a395d3c..2f49512 100644
--- a/jjb/xos-synchronizer-update.yaml
+++ b/jjb/xos-synchronizer-update.yaml
@@ -27,34 +27,34 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: 'ubuntu16.04-basebuild-4c-8g'
-         description: 'Name of the Jenkins node to run the job on'
+          name: buildNode
+          default: 'ubuntu16.04-basebuild-4c-8g'
+          description: 'Name of the Jenkins node to run the job on'
 
       - string:
-         name: manifestUrl
-         default: '{gerrit-server-url}/{cord-repo-manifest}'
-         description: 'URL to the repo manifest'
+          name: manifestUrl
+          default: '{gerrit-server-url}/{cord-repo-manifest}'
+          description: 'URL to the repo manifest'
 
       - string:
-         name: manifestBranch
-         default: '$GERRIT_BRANCH'
-         description: 'Name of the repo branch to use'
+          name: manifestBranch
+          default: '$GERRIT_BRANCH'
+          description: 'Name of the repo branch to use'
 
       - string:
-         name: gerritProject
-         default: '$GERRIT_PROJECT'
-         description: 'Name of the Gerrit project'
+          name: gerritProject
+          default: '$GERRIT_PROJECT'
+          description: 'Name of the Gerrit project'
 
       - string:
-         name: gerritChangeNumber
-         default: '$GERRIT_CHANGE_NUMBER'
-         description: 'Changeset number in Gerrit'
+          name: gerritChangeNumber
+          default: '$GERRIT_CHANGE_NUMBER'
+          description: 'Changeset number in Gerrit'
 
       - string:
-         name: gerritPatchsetNumber
-         default: '$GERRIT_PATCHSET_NUMBER'
-         description: 'PatchSet number in Gerrit'
+          name: gerritPatchsetNumber
+          default: '$GERRIT_PATCHSET_NUMBER'
+          description: 'PatchSet number in Gerrit'
 
     project-type: pipeline
     concurrent: true
diff --git a/jjb/xos-upgrade.yaml b/jjb/xos-upgrade.yaml
index 35aba14..506d5dd 100644
--- a/jjb/xos-upgrade.yaml
+++ b/jjb/xos-upgrade.yaml
@@ -5,7 +5,7 @@
     id: xos-service-upgrade
     name: 'verify_{project}_service-upgrade-test'
     description: |
-      Created by {id} job-template from ci-management/jjb/xos-upgrade.yaml, using pipeline: xos-service-upgrade.groovy
+      Created by {id} job-template from ci-management/jjb/xos-upgrade.yaml, using script: xos-service-upgrade.groovy
 
 
     triggers:
@@ -28,34 +28,34 @@
 
     parameters:
       - string:
-         name: executorNode
-         default: 'ubuntu16.04-basebuild-4c-8g'
-         description: 'Name of the Jenkins node to run the job on'
+          name: buildNode
+          default: 'ubuntu16.04-basebuild-4c-8g'
+          description: 'Name of the Jenkins node to run the job on'
 
       - string:
-         name: manifestUrl
-         default: '{gerrit-server-url}/{cord-repo-manifest}'
-         description: 'URL to the repo manifest'
+          name: manifestUrl
+          default: '{gerrit-server-url}/{cord-repo-manifest}'
+          description: 'URL to the repo manifest'
 
       - string:
-         name: manifestBranch
-         default: '$GERRIT_BRANCH'
-         description: 'Name of the repo branch to use'
+          name: manifestBranch
+          default: '$GERRIT_BRANCH'
+          description: 'Name of the repo branch to use'
 
       - string:
-         name: gerritProject
-         default: '$GERRIT_PROJECT'
-         description: 'Name of the Gerrit project'
+          name: gerritProject
+          default: '$GERRIT_PROJECT'
+          description: 'Name of the Gerrit project'
 
       - string:
-         name: gerritChangeNumber
-         default: '$GERRIT_CHANGE_NUMBER'
-         description: 'Changeset number in Gerrit'
+          name: gerritChangeNumber
+          default: '$GERRIT_CHANGE_NUMBER'
+          description: 'Changeset number in Gerrit'
 
       - string:
-         name: gerritPatchsetNumber
-         default: '$GERRIT_PATCHSET_NUMBER'
-         description: 'PatchSet number in Gerrit'
+          name: gerritPatchsetNumber
+          default: '$GERRIT_PATCHSET_NUMBER'
+          description: 'PatchSet number in Gerrit'
 
     project-type: pipeline
     concurrent: true