diff --git a/jjb/cord-test/voltha.yaml b/jjb/cord-test/voltha.yaml
index f4ef061..cd17d16 100644
--- a/jjb/cord-test/voltha.yaml
+++ b/jjb/cord-test/voltha.yaml
@@ -377,9 +377,6 @@
           config-pod: 'infosys-pod'
           release: '2.4'
           branch: 'voltha-2.4'
-          num-of-openonu: '2'
-          num-of-onos: '3'
-          num-of-atomix: '3'
           test-repo: 'voltha-system-tests'
           Jenkinsfile: 'Jenkinsfile-voltha-build'
           configurePod: true
diff --git a/jjb/defaults.yaml b/jjb/defaults.yaml
index a3cee32..9243dae 100644
--- a/jjb/defaults.yaml
+++ b/jjb/defaults.yaml
@@ -4,6 +4,10 @@
 - defaults:
     name: global
 
+    # used to enable disable jobs if the job template contains
+    # disabled: '{disable-job}'
+    disable-job: false
+
     # lftools
     lftools-version: '~=0.26.2'
 
diff --git a/jjb/pipeline/chart-api-test-helm.groovy b/jjb/pipeline/chart-api-test-helm.groovy
deleted file mode 100644
index f42e2ee..0000000
--- a/jjb/pipeline/chart-api-test-helm.groovy
+++ /dev/null
@@ -1,422 +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.
-
-// chart-api-test-helm.groovy
-// Checks functionality of the helm-chart, without overriding the version/tag used
-
-pipeline {
-
-  /* no label, executor is determined by JJB */
-  agent {
-    label "${params.buildNode}"
-  }
-
-  stages {
-
-    stage('repo') {
-      steps {
-        checkout(changelog: false, \
-          poll: false,
-          scm: [$class: 'RepoScm', \
-            manifestRepositoryUrl: "${params.manifestUrl}", \
-            manifestBranch: "${params.manifestBranch}", \
-            currentBranch: true, \
-            destinationDir: 'cord', \
-            forceSync: true,
-            resetFirst: true, \
-            quiet: true, \
-            jobs: 4, \
-            showAllChanges: true] \
-          )
-      }
-    }
-
-    stage('minikube') {
-      steps {
-        /* see https://github.com/kubernetes/minikube/#linux-continuous-integration-without-vm-support */
-        sh '''
-           export MINIKUBE_WANTUPDATENOTIFICATION=false
-           export MINIKUBE_WANTREPORTERRORPROMPT=false
-           export CHANGE_MINIKUBE_NONE_USER=true
-           export MINIKUBE_HOME=$HOME
-           mkdir -p $HOME/.kube || true
-           touch $HOME/.kube/config
-           export KUBECONFIG=$HOME/.kube/config
-           sudo -E /usr/bin/minikube start --vm-driver=none
-           '''
-        script {
-          timeout(3) {
-            waitUntil {
-              sleep 5
-              def kc_ret = sh script: "kubectl get po", returnStatus: true
-              return (kc_ret == 0);
-            }
-          }
-        }
-      }
-    }
-
-    stage('helm') {
-      steps {
-        sh '''
-           helm init
-           sleep 60
-           helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com/
-           helm repo add cord https://charts.opencord.org
-           '''
-      }
-    }
-
-    stage('cord-kafka') {
-      steps {
-        sh '''
-           #!/usr/bin/env bash
-           set -eu -o pipefail
-
-           pushd cord/helm-charts
-           helm install -f examples/kafka-single.yaml --version 0.8.8 -n cord-kafka incubator/kafka
-
-           ./helm-repo-tools/wait_for_pods.sh
-
-           popd
-           '''
-      }
-    }
-
-    stage('install/test att-workflow') {
-      when {
-        expression {
-          params.manifestBranch ==~ 'master'
-        }
-      }
-      steps {
-        sh """
-           #!/usr/bin/env bash
-           set -eu -o pipefail
-
-           helm_install_args='-f examples/api-test-values.yaml'
-
-           pushd cord/helm-charts
-
-           helm dep up xos-core
-           helm install \${helm_install_args} xos-core -n xos-core
-
-           helm dep update xos-profiles/seba-services
-           helm install \${helm_install_args} xos-profiles/seba-services -n seba-services
-           JOBS_TIMEOUT=900 ./helm-repo-tools/wait_for_jobs.sh
-           helm dep update workflows/att-workflow
-           helm install \${helm_install_args} workflows/att-workflow -n att-workflow
-
-           # wait for services to load
-           PODS_TIMEOUT=900 ./helm-repo-tools/wait_for_pods.sh
-
-           echo "# Checking helm deployments"
-           kubectl get pods
-
-           for hchart in \$(helm list -q);
-           do
-             echo "## 'helm status' for chart: \${hchart} ##"
-             helm status "\${hchart}"
-           done
-
-           CORE_POD=\$(kubectl get pods | grep "xos-core.*Running" | awk '{print \$1}')
-           CORE_CONTAINER=\$(docker ps | grep k8s_xos-core_\${CORE_POD} | awk '{print \$1}')
-
-           docker cp $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/targets/xosapitests.xtarget \$CORE_CONTAINER:/opt/xos/lib/xos-genx/xosgenx/targets/xosapitests.xtarget
-           docker cp $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/targets/xosserviceapitests.xtarget \$CORE_CONTAINER:/opt/xos/lib/xos-genx/xosgenx/targets/xosserviceapitests.xtarget
-           docker cp $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/targets/xoslibrary.xtarget \$CORE_CONTAINER:/opt/xos/lib/xos-genx/xosgenx/targets/xoslibrary.xtarget
-           docker exec -i \$CORE_CONTAINER /bin/bash -c "xosgenx --target /opt/xos/lib/xos-genx/xosgenx/targets/./xosapitests.xtarget /opt/xos/core/models/core.xproto" > $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/XOSCoreAPITests.robot
-
-           export testname=_service_api.robot
-           export library=_library.robot
-
-           SERVICES=\$(docker exec -i \$CORE_CONTAINER /bin/bash -c "cd /opt/xos/dynamic_services/;find -name '*.xproto'" | awk -F[//] '{print \$2}')
-           echo \$SERVICES
-
-           for i in \$SERVICES; do bash -c "docker exec -i \$CORE_CONTAINER /bin/bash -c 'xosgenx --target /opt/xos/lib/xos-genx/xosgenx/targets/./xosserviceapitests.xtarget /opt/xos/dynamic_services/\$i/\$i.xproto /opt/xos/core/models/core.xproto'" > $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/\$i\$testname; done
-
-           for i in \$SERVICES; do bash -c "docker exec -i \$CORE_CONTAINER /bin/bash -c 'xosgenx --target /opt/xos/lib/xos-genx/xosgenx/targets/./xoslibrary.xtarget /opt/xos/dynamic_services/\$i/\$i.xproto /opt/xos/core/models/core.xproto'" > $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/\$i\$library; done
-
-           CHAM_CONTAINER=\$(docker ps | grep k8s_xos-chameleon | awk '{print \$1}')
-           XOS_CHAMELEON=\$(docker exec \$CHAM_CONTAINER ip a | grep -oE "([0-9]{1,3}\\.){3}[0-9]{1,3}\\b" | grep 172)
-
-           cd $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Properties/
-           sed -i \"s/^\\(SERVER_IP = \\).*/\\1\'\$XOS_CHAMELEON\'/\" RestApiProperties.py
-           sed -i \"s/^\\(SERVER_PORT = \\).*/\\1\'9101\'/\" RestApiProperties.py
-           sed -i \"s/^\\(XOS_USER = \\).*/\\1\'admin@opencord.org\'/\" RestApiProperties.py
-           sed -i \"s/^\\(XOS_PASSWD = \\).*/\\1\'letmein\'/\" RestApiProperties.py
-           sed -i \"s/^\\(PASSWD = \\).*/\\1\'letmein\'/\" RestApiProperties.py
-
-           timeout 300 bash -c "until http -a admin@opencord.org:letmein GET http://'\$XOS_CHAMELEON\':9101/xosapi/v1/core/sites |jq '.items[0].name'|grep -q mysite; do echo 'Waiting for API To be up'; sleep 10; done"
-
-           cd $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests
-           ## Run CORE API Tests
-           robot -d Log -T XOSCoreAPITests.robot  || true
-           ## Run services API Tests
-           for i in \$SERVICES; do bash -c "robot -d Log -T -v TESTLIBRARY:\$i\$library \$i\$testname"; sleep 2; done || true
-
-           popd
-
-           helm delete --purge att-workflow
-           helm delete --purge xos-core
-	   helm delete --purge seba-services
-           """
-      }
-    }
-
-    stage('install/test rcord-lite') {
-      steps {
-        sh """
-           #!/usr/bin/env bash
-           set -eu -o pipefail
-
-           helm_install_args='-f examples/api-test-values.yaml'
-
-           pushd cord/helm-charts
-
-           helm dep up xos-core
-           helm install \${helm_install_args} xos-core -n xos-core
-
-           helm dep update xos-profiles/rcord-lite
-           helm install \${helm_install_args} xos-profiles/rcord-lite -n rcord-lite
-
-           # wait for services to load
-           PODS_TIMEOUT=900 ./helm-repo-tools/wait_for_pods.sh
-
-           echo "# Checking helm deployments"
-           kubectl get pods
-
-           for hchart in \$(helm list -q);
-           do
-             echo "## 'helm status' for chart: \${hchart} ##"
-             helm status "\${hchart}"
-           done
-
-           CORE_POD=\$(kubectl get pods | grep "xos-core.*Running" | awk '{print \$1}')
-           CORE_CONTAINER=\$(docker ps | grep k8s_xos-core_\${CORE_POD} | awk '{print \$1}')
-
-           docker cp $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/targets/xosapitests.xtarget \$CORE_CONTAINER:/opt/xos/lib/xos-genx/xosgenx/targets/xosapitests.xtarget
-           docker cp $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/targets/xosserviceapitests.xtarget \$CORE_CONTAINER:/opt/xos/lib/xos-genx/xosgenx/targets/xosserviceapitests.xtarget
-           docker cp $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/targets/xoslibrary.xtarget \$CORE_CONTAINER:/opt/xos/lib/xos-genx/xosgenx/targets/xoslibrary.xtarget
-           docker exec -i \$CORE_CONTAINER /bin/bash -c "xosgenx --target /opt/xos/lib/xos-genx/xosgenx/targets/./xosapitests.xtarget /opt/xos/core/models/core.xproto" > $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/XOSCoreAPITests.robot
-
-           export testname=_service_api.robot
-           export library=_library.robot
-
-           SERVICES=\$(docker exec -i \$CORE_CONTAINER /bin/bash -c "cd /opt/xos/dynamic_services/;find -name '*.xproto'" | awk -F[//] '{print \$2}')
-           echo \$SERVICES
-
-           for i in \$SERVICES; do bash -c "docker exec -i \$CORE_CONTAINER /bin/bash -c 'xosgenx --target /opt/xos/lib/xos-genx/xosgenx/targets/./xosserviceapitests.xtarget /opt/xos/dynamic_services/\$i/\$i.xproto /opt/xos/core/models/core.xproto'" > $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/\$i\$testname; done
-
-           for i in \$SERVICES; do bash -c "docker exec -i \$CORE_CONTAINER /bin/bash -c 'xosgenx --target /opt/xos/lib/xos-genx/xosgenx/targets/./xoslibrary.xtarget /opt/xos/dynamic_services/\$i/\$i.xproto /opt/xos/core/models/core.xproto'" > $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/\$i\$library; done
-
-           CHAM_CONTAINER=\$(docker ps | grep k8s_xos-chameleon | awk '{print \$1}')
-           XOS_CHAMELEON=\$(docker exec \$CHAM_CONTAINER ip a | grep -oE "([0-9]{1,3}\\.){3}[0-9]{1,3}\\b" | grep 172)
-
-           cd $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Properties/
-           sed -i \"s/^\\(SERVER_IP = \\).*/\\1\'\$XOS_CHAMELEON\'/\" RestApiProperties.py
-           sed -i \"s/^\\(SERVER_PORT = \\).*/\\1\'9101\'/\" RestApiProperties.py
-           sed -i \"s/^\\(XOS_USER = \\).*/\\1\'admin@opencord.org\'/\" RestApiProperties.py
-           sed -i \"s/^\\(XOS_PASSWD = \\).*/\\1\'letmein\'/\" RestApiProperties.py
-           sed -i \"s/^\\(PASSWD = \\).*/\\1\'letmein\'/\" RestApiProperties.py
-           timeout 300 bash -c "until http -a admin@opencord.org:letmein GET http://'\$XOS_CHAMELEON\':9101/xosapi/v1/core/sites |jq '.items[0].name'|grep -q mysite; do echo 'Waiting for API To be up'; sleep 10; done"
-
-           cd $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests
-           ## Run CORE API Tests
-           robot -d Log -T XOSCoreAPITests.robot  || true
-           ## Run Rcord-lite services API Tests
-           for i in \$SERVICES; do bash -c "robot -d Log -T -v TESTLIBRARY:\$i\$library \$i\$testname"; sleep 2; done || true
-
-           popd
-
-           helm delete --purge rcord-lite
-           helm delete --purge xos-core
-           """
-      }
-    }
-
-    stage('install/test simpleexampleservice') {
-      steps {
-        sh """
-           #!/usr/bin/env bash
-           set -eu -o pipefail
-
-           helm_install_args='-f examples/api-test-values.yaml'
-
-           pushd cord/helm-charts
-
-           helm dep up xos-core
-           helm install \${helm_install_args} xos-core -n xos-core
-
-           helm dep update xos-profiles/base-kubernetes
-           helm dep update xos-profiles/demo-simpleexampleservice
-           helm install \${helm_install_args} xos-profiles/base-kubernetes -n base-kubernetes
-           helm install \${helm_install_args} xos-profiles/demo-simpleexampleservice -n demo-simpleexampleservice
-
-           # wait for services to load
-           PODS_TIMEOUT=900 ./helm-repo-tools/wait_for_pods.sh
-
-           echo "# Checking helm deployments"
-           kubectl get pods
-
-           for hchart in \$(helm list -q);
-           do
-             echo "## 'helm status' for chart: \${hchart} ##"
-             helm status "\${hchart}"
-           done
-
-           CORE_POD=\$(kubectl get pods | grep "xos-core.*Running" | awk '{print \$1}')
-           CORE_CONTAINER=\$(docker ps | grep k8s_xos-core_\${CORE_POD} | awk '{print \$1}')
-
-           docker cp $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/targets/xosapitests.xtarget \$CORE_CONTAINER:/opt/xos/lib/xos-genx/xosgenx/targets/xosapitests.xtarget
-           docker cp $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/targets/xosserviceapitests.xtarget \$CORE_CONTAINER:/opt/xos/lib/xos-genx/xosgenx/targets/xosserviceapitests.xtarget
-           docker cp $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/targets/xoslibrary.xtarget \$CORE_CONTAINER:/opt/xos/lib/xos-genx/xosgenx/targets/xoslibrary.xtarget
-           docker exec -i \$CORE_CONTAINER /bin/bash -c "xosgenx --target /opt/xos/lib/xos-genx/xosgenx/targets/./xosapitests.xtarget /opt/xos/core/models/core.xproto" > $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/XOSCoreAPITests.robot
-
-           export testname=_service_api.robot
-           export library=_library.robot
-
-           SERVICES=\$(docker exec -i \$CORE_CONTAINER /bin/bash -c "cd /opt/xos/dynamic_services/;find -name '*.xproto'" | awk -F[//] '{print \$2}')
-           echo \$SERVICES
-
-           for i in \$SERVICES; do bash -c "docker exec -i \$CORE_CONTAINER /bin/bash -c 'xosgenx --target /opt/xos/lib/xos-genx/xosgenx/targets/./xosserviceapitests.xtarget /opt/xos/dynamic_services/\$i/\$i.xproto /opt/xos/core/models/core.xproto'" > $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/\$i\$testname; done
-
-           for i in \$SERVICES; do bash -c "docker exec -i \$CORE_CONTAINER /bin/bash -c 'xosgenx --target /opt/xos/lib/xos-genx/xosgenx/targets/./xoslibrary.xtarget /opt/xos/dynamic_services/\$i/\$i.xproto /opt/xos/core/models/core.xproto'" > $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/\$i\$library; done
-
-           CHAM_CONTAINER=\$(docker ps | grep k8s_xos-chameleon | awk '{print \$1}')
-           XOS_CHAMELEON=\$(docker exec \$CHAM_CONTAINER ip a | grep -oE "([0-9]{1,3}\\.){3}[0-9]{1,3}\\b" | grep 172)
-
-           cd $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Properties/
-           sed -i \"s/^\\(SERVER_IP = \\).*/\\1\'\$XOS_CHAMELEON\'/\" RestApiProperties.py
-           sed -i \"s/^\\(SERVER_PORT = \\).*/\\1\'9101\'/\" RestApiProperties.py
-           sed -i \"s/^\\(XOS_USER = \\).*/\\1\'admin@opencord.org\'/\" RestApiProperties.py
-           sed -i \"s/^\\(XOS_PASSWD = \\).*/\\1\'letmein\'/\" RestApiProperties.py
-           sed -i \"s/^\\(PASSWD = \\).*/\\1\'letmein\'/\" RestApiProperties.py
-           timeout 300 bash -c "until http -a admin@opencord.org:letmein GET http://'\$XOS_CHAMELEON\':9101/xosapi/v1/core/sites |jq '.items[0].name'|grep -q mysite; do echo 'Waiting for API To be up'; sleep 10; done"
-
-
-           cd $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests
-           ## Run kubernetes-base services API Tests
-           for i in \$SERVICES; do bash -c "robot -d Log -T -v TESTLIBRARY:\$i\$library \$i\$testname"; sleep 2; done || true
-
-           popd
-
-           helm delete --purge base-kubernetes
-           helm delete --purge demo-simpleexampleservice
-           helm delete --purge xos-core
-           """
-      }
-    }
-
-    stage('install/test hippie-oss') {
-      steps {
-        sh """
-           #!/usr/bin/env bash
-           set -eu -o pipefail
-
-           helm_install_args='-f examples/api-test-values.yaml'
-
-           pushd cord/helm-charts
-
-           helm dep up xos-core
-           helm install \${helm_install_args} xos-core -n xos-core
-
-           helm dep update xos-services/hippie-oss
-           helm install \${helm_install_args} xos-services/hippie-oss -n hippie-oss
-	   sleep 300
-
-           # wait for services to load
-           PODS_TIMEOUT=900 ./helm-repo-tools/wait_for_pods.sh
-
-           echo "# Checking helm deployments"
-           kubectl get pods
-
-           for hchart in \$(helm list -q);
-           do
-             echo "## 'helm status' for chart: \${hchart} ##"
-             helm status "\${hchart}"
-           done
-
-           CORE_POD=\$(kubectl get pods | grep "xos-core.*Running" | awk '{print \$1}')
-           CORE_CONTAINER=\$(docker ps | grep k8s_xos-core_\${CORE_POD} | awk '{print \$1}')
-
-           docker cp $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/targets/xosapitests.xtarget \$CORE_CONTAINER:/opt/xos/lib/xos-genx/xosgenx/targets/xosapitests.xtarget
-           docker cp $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/targets/xosserviceapitests.xtarget \$CORE_CONTAINER:/opt/xos/lib/xos-genx/xosgenx/targets/xosserviceapitests.xtarget
-           docker cp $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/targets/xoslibrary.xtarget \$CORE_CONTAINER:/opt/xos/lib/xos-genx/xosgenx/targets/xoslibrary.xtarget
-           docker exec -i \$CORE_CONTAINER /bin/bash -c "xosgenx --target /opt/xos/lib/xos-genx/xosgenx/targets/./xosapitests.xtarget /opt/xos/core/models/core.xproto" > $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/XOSCoreAPITests.robot
-
-           export testname=_service_api.robot
-           export library=_library.robot
-
-           SERVICES=\$(docker exec -i \$CORE_CONTAINER /bin/bash -c "cd /opt/xos/dynamic_services/;find -name '*.xproto'" | awk -F[//] '{print \$2}')
-           echo \$SERVICES
-
-           for i in \$SERVICES; do bash -c "docker exec -i \$CORE_CONTAINER /bin/bash -c 'xosgenx --target /opt/xos/lib/xos-genx/xosgenx/targets/./xosserviceapitests.xtarget /opt/xos/dynamic_services/\$i/\$i.xproto /opt/xos/core/models/core.xproto'" > $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/\$i\$testname; done
-
-           for i in \$SERVICES; do bash -c "docker exec -i \$CORE_CONTAINER /bin/bash -c 'xosgenx --target /opt/xos/lib/xos-genx/xosgenx/targets/./xoslibrary.xtarget /opt/xos/dynamic_services/\$i/\$i.xproto /opt/xos/core/models/core.xproto'" > $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/\$i\$library; done
-
-           CHAM_CONTAINER=\$(docker ps | grep k8s_xos-chameleon | awk '{print \$1}')
-           XOS_CHAMELEON=\$(docker exec \$CHAM_CONTAINER ip a | grep -oE "([0-9]{1,3}\\.){3}[0-9]{1,3}\\b" | grep 172)
-
-           cd $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Properties/
-           sed -i \"s/^\\(SERVER_IP = \\).*/\\1\'\$XOS_CHAMELEON\'/\" RestApiProperties.py
-           sed -i \"s/^\\(SERVER_PORT = \\).*/\\1\'9101\'/\" RestApiProperties.py
-           sed -i \"s/^\\(XOS_USER = \\).*/\\1\'admin@opencord.org\'/\" RestApiProperties.py
-           sed -i \"s/^\\(XOS_PASSWD = \\).*/\\1\'letmein\'/\" RestApiProperties.py
-           sed -i \"s/^\\(PASSWD = \\).*/\\1\'letmein\'/\" RestApiProperties.py
-           timeout 300 bash -c "until http -a admin@opencord.org:letmein GET http://'\$XOS_CHAMELEON\':9101/xosapi/v1/core/sites |jq '.items[0].name'|grep -q mysite; do echo 'Waiting for API To be up'; sleep 10; done"
-
-           cd $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests
-           ## Run hippie-oss services API Tests
-           for i in \$SERVICES; do bash -c "robot -d Log -T -v TESTLIBRARY:\$i\$library \$i\$testname"; sleep 2; done || true
-
-           popd
-
-           helm delete --purge hippie-oss
-           helm delete --purge xos-core
-           """
-      }
-    }
-  }
-  post {
-    always {
-      sh '''
-         # copy robot logs
-         if [ -d RobotLogs ]; then rm -r RobotLogs; fi; mkdir RobotLogs
-         cp -r $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/Log/*ml ./RobotLogs
-
-         kubectl get pods --all-namespaces
-
-         echo "# removing helm deployments"
-         for hchart in \$(helm list -q);
-         do
-           echo "## Purging chart: \${hchart} ##"
-           helm delete --purge "\${hchart}"
-         done
-
-         sudo minikube delete
-         '''
-         step([$class: 'RobotPublisher',
-            disableArchiveOutput: false,
-            logFileName: 'RobotLogs/log*.html',
-            otherFiles: '',
-            outputFileName: 'RobotLogs/output*.xml',
-            outputPath: '.',
-            passThreshold: 100,
-            reportFileName: 'RobotLogs/report*.html',
-            unstableThreshold: 0]);
-         step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: "kailash@opennetworking.org", sendToIndividuals: false])
-    }
-  }
-}
diff --git a/jjb/pipeline/voltha-scale-test.groovy b/jjb/pipeline/voltha-scale-test.groovy
index d04b251..627490e 100644
--- a/jjb/pipeline/voltha-scale-test.groovy
+++ b/jjb/pipeline/voltha-scale-test.groovy
@@ -152,7 +152,7 @@
         # the ETCD chart use "auth" for resons different than BBsim, so strip that away
         ETCD_FLAGS=$(echo ${extraHelmFlags} | sed -e 's/--set auth=false / /g') | sed -e 's/--set auth=true / /g'
         ETCD_FLAGS+=" --set memoryMode=${inMemoryEtcdStorage} "
-        helm install -f $WORKSPACE/kind-voltha/minimal-values.yaml --set etcd.replicas=3 etcd etcd/etcd $ETCD_FLAGS
+        helm install -f $WORKSPACE/kind-voltha/values.yaml --set etcd.replicas=3 etcd etcd/etcd $ETCD_FLAGS
 
         if [ ${withMonitoring} = true ] ; then
           helm install nem-monitoring cord/nem-monitoring \
diff --git a/jjb/verify/helm-charts.yaml b/jjb/verify/helm-charts.yaml
index 137586b..af2ab28 100644
--- a/jjb/verify/helm-charts.yaml
+++ b/jjb/verify/helm-charts.yaml
@@ -8,14 +8,6 @@
     jobs:
       - 'verify-helm-charts-jobs':
           branch-regexp: '{modern-branches-regexp}'
-      - 'post-merge-helm-charts-jobs':
-          branch: 'master'
-          name-extension: '-master'
-          timed-trigger: '{twice-a-day}'
-      - 'post-merge-helm-charts-jobs':
-          branch: 'cord-6.0'
-          name-extension: '-cord6.0'
-          timed-trigger: '{once-a-day}'
 
 - job-group:
     name: 'verify-helm-charts-jobs'
@@ -28,8 +20,3 @@
       - 'verify-sonarqube':
           dependency-jobs: 'verify_helm-charts_helm-lint'
 
-- job-group:
-    name: 'post-merge-helm-charts-jobs'
-    jobs:
-      - 'triggered-api-test':
-          pipeline-script: 'chart-api-test-helm.groovy'
diff --git a/jjb/voltha-scale.yaml b/jjb/voltha-scale.yaml
index 35e9410..91f8c4a 100644
--- a/jjb/voltha-scale.yaml
+++ b/jjb/voltha-scale.yaml
@@ -12,6 +12,7 @@
       # jobs for 64 ONUs with a 1 openonu-adapter
       - 'voltha-scale-measurements':
           name: 'voltha-openonu-go-scale-measurements-master-1-2-32-activation'
+          'disable-job': true
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 1
@@ -28,6 +29,7 @@
 
       - 'voltha-scale-measurements':
           name: 'voltha-openonu-scale-measurements-master-1-2-32-activation'
+          'disable-job': true
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 1
@@ -44,6 +46,7 @@
       # jobs for 256 ONUs with a 1 openonu-adapter
       - 'voltha-scale-measurements':
           name: 'voltha-openonu-go-scale-measurements-master-1-8-32-activation'
+          'disable-job': true
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 1
@@ -60,6 +63,7 @@
 
       - 'voltha-scale-measurements':
           name: 'voltha-openonu-scale-measurements-master-1-8-32-activation'
+          'disable-job': true
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 1
@@ -75,6 +79,7 @@
 
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-1-16-32-activation'
+          'disable-job': true
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 1
@@ -91,6 +96,7 @@
 
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-1-16-32-att-flows'
+          'disable-job': true
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 1
@@ -108,6 +114,7 @@
 
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-1-16-32-att-subscribers'
+          'disable-job': true
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 1
@@ -126,6 +133,7 @@
       # jobs for DT with 512 ONUs with a 8 openonu-adapters and clustered ONOS.
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-1-16-32-dt-subscribers'
+          'disable-job': true
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 1
@@ -143,7 +151,7 @@
 
       # jobs for 1024 ONUs with a 8 openonu-adapters and clustered ONOS (2 OLTs)
       - 'voltha-scale-measurements':
-          disabled: true
+          'disable-job': true
           name: 'voltha-scale-measurements-master-2-16-32-activation'
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
@@ -160,7 +168,7 @@
           atomixReplicas: 3
 
       - 'voltha-scale-measurements':
-          disabled: true
+          'disable-job': true
           name: 'voltha-scale-measurements-master-2-16-32-att-flows'
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
@@ -178,7 +186,7 @@
           extraHelmFlags: '--set auth=false '
 
       - 'voltha-scale-measurements':
-          disabled: true
+          'disable-job': true
           name: 'voltha-scale-measurements-master-2-16-32-att-subscribers'
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
@@ -198,6 +206,7 @@
       # jobs for DT with 512 ONUs with a 8 openonu-adapters and clustered ONOS.
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-2-16-32-dt-subscribers'
+          'disable-job': true
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 2
@@ -265,6 +274,7 @@
     id: 'voltha-scale-measurements'
     name: '{name}'
     pipeline-script: 'voltha-scale-test.groovy'
+    disabled: '{disable-job}'
 
     description: |
       <!-- Managed by Jenkins Job Builder -->
@@ -319,6 +329,7 @@
     volthaSystemTestsChange: ''
     kindVolthaChange: ''
     inMemoryEtcdStorage: true
+    karafHome: 'apache-karaf-4.2.9'
 
     parameters:
       - string:
@@ -498,7 +509,7 @@
 
       - string:
           name: karafHome
-          default: '{karaf-home}'
+          default: '{karafHome}'
           description: 'Karaf home'
 
     project-type: pipeline
@@ -569,6 +580,7 @@
     volthaSystemTestsChange: ''
     kindVolthaChange: ''
     inMemoryEtcdStorage: true
+    karafHome: 'apache-karaf-4.2.9'
 
     parameters:
       - string:
@@ -748,7 +760,7 @@
 
       - string:
           name: karafHome
-          default: '{karaf-home}'
+          default: '{karafHome}'
           description: 'Karaf home'
 
     project-type: pipeline
