Merge "Revert "Added exitonfailure flag as input to robot command for physical pod jobs""
diff --git a/jjb/defaults.yaml b/jjb/defaults.yaml
index 107d452..a2875d9 100644
--- a/jjb/defaults.yaml
+++ b/jjb/defaults.yaml
@@ -74,7 +74,7 @@
     failure-email-address: 'cord-dev@opencord.org'
 
     # Projects containing helm-charts
-    helm-charts-projects-regexp: '^(?!aether|roc)(.*helm-charts|cord-platform|seba)$'
+    helm-charts-projects-regexp: '(comac-helm-charts|voltha-helm-charts|helm-charts|cord-platform|seba)$'
 
     # regexp for gerrit triggers
     # list of supported branches, for branch-regexp
@@ -93,7 +93,7 @@
     semver-strict: 0
 
     # matching repos that should be version tagged by the version-tag job
-    version-tag-projects-regexp: '^(?!aether)(xos.*|.*helm-charts|automation-tools|cord-tester|chameleon|rcord|mcord|ecord|acordion|addressmanager|epc-service|exampleservice|fabric.*|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|.*-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|pppoe.*|voltha-api-server|aaa|config|dhcpl2relay|igmp|igmpproxy|kafka-onos|mcast|olt|sadis|vtn|voltha-.*-adapter.*|voltha-lib-go|voltha-python-base|voltha-docker-tools|mn-stratum-siab|ofagent.*|bng|voltctl|openolt-scale-tester|nem-ondemand-proxy|multifabric|openolt-test|omci-lib-go|kind-voltha|voltha-docs|mac-learning|goloxi|device-management-interface|bbsim-sadis-server|olttopology|opendm-agent|opendevice-manager|.*-robot)$'
+    version-tag-projects-regexp: '^(?!aether)(xos.*|comac-helm-charts|voltha-helm-charts|helm-charts|automation-tools|cord-tester|chameleon|rcord|mcord|ecord|acordion|addressmanager|epc-service|exampleservice|fabric.*|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|.*-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|pppoe.*|voltha-api-server|aaa|config|dhcpl2relay|igmp|igmpproxy|kafka-onos|mcast|olt|sadis|vtn|voltha-.*-adapter.*|voltha-lib-go|voltha-python-base|voltha-docker-tools|mn-stratum-siab|ofagent.*|bng|voltctl|openolt-scale-tester|nem-ondemand-proxy|multifabric|openolt-test|omci-lib-go|kind-voltha|voltha-docs|mac-learning|goloxi|device-management-interface|bbsim-sadis-server|olttopology|opendm-agent|opendevice-manager|.*-robot)$'
 
     # List of all repos that contribute to the CORD guide
     cord-guide-projects-regexp: '^(att-workflow-driver|cord-tester|cordctl|exampleservice|fabric|fabric-crossconnect|hippie-oss|kubernetes-service|olt-service|onos-service|openolt|openstack|rcord|simpleexampleservice|vrouter|vtn-service|xos|xos-gui|xos-tosca)$'
diff --git a/jjb/pipeline/voltha/master/bbsim-tests.groovy b/jjb/pipeline/voltha/master/bbsim-tests.groovy
index b2f0220..0650373 100755
--- a/jjb/pipeline/voltha/master/bbsim-tests.groovy
+++ b/jjb/pipeline/voltha/master/bbsim-tests.groovy
@@ -23,10 +23,10 @@
 
 def clusterName = "kind-ci"
 
-def execute_test(testTarget, workflow, teardown, testSpecificHelmFlags = "") {
+def execute_test(testTarget, workflow, testLogging, teardown, testSpecificHelmFlags = "") {
   def infraNamespace = "default"
   def volthaNamespace = "voltha"
-  def robotLogsDir = "RobotLogs"
+  def logsDir = "$WORKSPACE/${testTarget}"
   stage('Cleanup') {
     if (teardown) {
       timeout(15) {
@@ -48,8 +48,8 @@
         script {
 
           sh """
-          mkdir -p $WORKSPACE/${testTarget}-components
-          _TAG=kail-startup kail -n ${infraNamespace} -n ${volthaNamespace} > $WORKSPACE/${testTarget}-components/onos-voltha-startup-combined.log &
+          mkdir -p ${logsDir}
+          _TAG=kail-startup kail -n ${infraNamespace} -n ${volthaNamespace} > ${logsDir}/onos-voltha-startup-combined.log &
           """
 
           // if we're downloading a voltha-helm-charts patch, then install from a local copy of the charts
@@ -89,7 +89,7 @@
               kill -9 \$P_ID
             done
           fi
-          cd $WORKSPACE/${testTarget}-components/
+          cd ${logsDir}
           gzip -k onos-voltha-startup-combined.log
           rm onos-voltha-startup-combined.log
         """
@@ -105,37 +105,24 @@
       done
       ps aux | grep port-forward
       """
+      // setting ONOS log level
+      sh """
+      sshpass -e ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 log:set ${logLevel.toUpperCase()} org.opencord.olt
+      sshpass -e ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 log:set ${logLevel.toUpperCase()} org.opencord.aaa
+      sshpass -e ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 log:set ${logLevel.toUpperCase()} org.opencord.dhcpl2relay
+      """
     }
   }
   stage('Run test ' + testTarget + ' on ' + workflow + ' workFlow') {
-    // start logging
     sh """
-    mkdir -p $WORKSPACE/${testTarget}-components
-    _TAG=kail-${workflow} kail -n ${infraNamespace} -n ${volthaNamespace} > $WORKSPACE/${testTarget}-components/onos-voltha-combined.log &
-    """
-    sh """
-    mkdir -p $WORKSPACE/${robotLogsDir}/${testTarget}-robot
-    export ROBOT_MISC_ARGS="-d $WORKSPACE/${robotLogsDir}/${testTarget}-robot "
-    ROBOT_MISC_ARGS+="-v ONOS_SSH_PORT:30115 -v ONOS_REST_PORT:30120 -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
+    mkdir -p ${logsDir}
+    export ROBOT_MISC_ARGS="-d ${logsDir} "
+    ROBOT_MISC_ARGS+="-v ONOS_SSH_PORT:30115 -v ONOS_REST_PORT:30120 -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace} -v container_log_dir:${logsDir} -v logging:${testLogging}"
     export KVSTOREPREFIX=voltha/voltha_voltha
 
     make -C $WORKSPACE/voltha-system-tests ${testTarget} || true
     """
-    // stop logging
-    sh """
-      P_IDS="\$(ps e -ww -A | grep "_TAG=kail-${workflow}" | grep -v grep | awk '{print \$1}')"
-      if [ -n "\$P_IDS" ]; then
-        echo \$P_IDS
-        for P_ID in \$P_IDS; do
-          kill -9 \$P_ID
-        done
-      fi
-      cd $WORKSPACE/${testTarget}-components/
-      rm onos-voltha-combined.log.gz || true
-      gzip -k onos-voltha-combined.log
-      rm onos-voltha-combined.log
-    """
-    getPodsInfo("$WORKSPACE/${testTarget}-components")
+    getPodsInfo("${logsDir}")
   }
 }
 
@@ -153,12 +140,12 @@
   '''
   step([$class: 'RobotPublisher',
     disableArchiveOutput: false,
-    logFileName: "RobotLogs/*/log*.html",
+    logFileName: "**/*/log*.html",
     otherFiles: '',
-    outputFileName: "RobotLogs/*/output*.xml",
+    outputFileName: "**/*/output*.xml",
     outputPath: '.',
     passThreshold: 100,
-    reportFileName: "RobotLogs/*/report*.html",
+    reportFileName: "**/*/report*.html",
     unstableThreshold: 0,
     onlyCritical: true]);
 }
@@ -178,6 +165,7 @@
     PATH="$PATH:$WORKSPACE/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
     ROBOT_MISC_ARGS="-e PowerSwitch ${params.extraRobotArgs}"
     DIAGS_PROFILE="VOLTHA_PROFILE"
+    SSHPASS="karaf"
   }
   stages {
     stage('Download Code') {
@@ -251,8 +239,13 @@
               def workflow = test["workflow"]
               def flags = test["flags"]
               def teardown = test["teardown"].toBoolean()
-              println "Executing test ${target} on workflow ${workflow} with extra flags ${flags}"
-              execute_test(target, workflow, teardown, flags)
+              def logging = test["logging"].toBoolean()
+              def testLogging = 'False'
+              if (logging) {
+                  testLogging = 'True'
+              }
+              println "Executing test ${target} on workflow ${workflow} with logging ${testLogging} and extra flags ${flags}"
+              execute_test(target, workflow, testLogging, teardown, flags)
             }
           }
         }
diff --git a/jjb/pipeline/voltha/master/physical-build.groovy b/jjb/pipeline/voltha/master/physical-build.groovy
index ce4b8ad..51dea2c 100644
--- a/jjb/pipeline/voltha/master/physical-build.groovy
+++ b/jjb/pipeline/voltha/master/physical-build.groovy
@@ -92,6 +92,7 @@
     stage('Install Voltha')  {
       steps {
         timeout(20) {
+          installVoltctl("${branch}")
           script {
             // if we're downloading a voltha-helm-charts patch, then install from a local copy of the charts
             def localCharts = false
diff --git a/jjb/pipeline/voltha/master/software-upgrades.groovy b/jjb/pipeline/voltha/master/software-upgrades.groovy
index 42b132b..2724510 100644
--- a/jjb/pipeline/voltha/master/software-upgrades.groovy
+++ b/jjb/pipeline/voltha/master/software-upgrades.groovy
@@ -24,8 +24,15 @@
   def infraNamespace = "infra"
   def volthaNamespace = "voltha"
   stage('Deploy Voltha - '+ name) {
+    timeout(10) {
+      // start logging
+      sh """
+      rm -rf $WORKSPACE/${name} || true
+      mkdir -p $WORKSPACE/${name}
+      _TAG=kail-${name} kail -n ${infraNamespace} -n ${volthaNamespace} > $WORKSPACE/${name}/onos-voltha-startup-combined.log &
+      """
       def extraHelmFlags = extraHelmFlags.trim()
-      extraHelmFlags = extraHelmFlags + " --set global.log_level=DEBUG,onu=1,pon=1 --set onos-classic.replicas=3,onos-classic.atomix.replicas=3 "
+      extraHelmFlags = extraHelmFlags + " --set global.log_level=${logLevel.toUpperCase()},onu=1,pon=1 --set onos-classic.replicas=3,onos-classic.atomix.replicas=3 "
       if ("${name}" == "onos-app-upgrade" || "${name}" == "onu-software-upgrade") {
           extraHelmFlags = extraHelmFlags + "--set global.image_tag=master --set onos-classic.image.tag=master "
       }
@@ -45,11 +52,18 @@
       // Currently only testing with ATT workflow
       // TODO: Support for other workflows
       volthaDeploy([workflow: "att", extraHelmFlags: extraHelmFlags, localCharts: localCharts])
-      // start logging
+      // stop logging
       sh """
-      rm -rf $WORKSPACE/${name} || true
-      mkdir -p $WORKSPACE/${name}
-      _TAG=kail-${name} kail -n infra -n voltha > $WORKSPACE/${name}/onos-voltha-combined.log &
+        P_IDS="\$(ps e -ww -A | grep "_TAG=kail-${name}" | grep -v grep | awk '{print \$1}')"
+        if [ -n "\$P_IDS" ]; then
+          echo \$P_IDS
+          for P_ID in \$P_IDS; do
+            kill -9 \$P_ID
+          done
+        fi
+        cd $WORKSPACE/${name}/
+        gzip -k onos-voltha-startup-combined.log
+        rm onos-voltha-startup-combined.log
       """
       // forward ONOS and VOLTHA ports
       sh """
@@ -60,8 +74,10 @@
       sh """
       sshpass -e ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 8101 karaf@127.0.0.1 log:set DEBUG org.opencord
       """
+    }
   }
   stage('Test - '+ name) {
+    timeout(40) {
       sh """
         ROBOT_LOGS_DIR="$WORKSPACE/RobotLogs/${name}"
         mkdir -p \$ROBOT_LOGS_DIR
@@ -112,22 +128,16 @@
           export ROBOT_MISC_ARGS="-d \$ROBOT_LOGS_DIR -v image_version:${onuImageVersion.trim()} -v image_url:${onuImageUrl.trim()} -v image_vendor:${onuImageVendor.trim()} -v image_activate_on_success:${onuImageActivateOnSuccess.trim()} -v image_commit_on_success:${onuImageCommitOnSuccess.trim()} -v image_crc:${onuImageCrc.trim()} -e PowerSwitch"
           export TARGET=onu-upgrade-test
         fi
+        testLogging='False'
+        if [ ${logging} = true ]; then
+          testLogging='True'
+        fi
         export VOLTCONFIG=$HOME/.volt/config-minimal
         export KUBECONFIG=$HOME/.kube/kind-config-voltha-minimal
-        ROBOT_MISC_ARGS+=" -v ONOS_SSH_PORT:30115 -v ONOS_REST_PORT:30120 -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
+        ROBOT_MISC_ARGS+=" -v ONOS_SSH_PORT:30115 -v ONOS_REST_PORT:30120 -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace} -v container_log_dir:$WORKSPACE/RobotLogs/${name} -v logging:\$testLogging"
         # Run the specified tests
         make -C $WORKSPACE/voltha-system-tests \$TARGET || true
       """
-      // stop logging
-      sh """
-        P_IDS="\$(ps e -ww -A | grep "_TAG=kail-${name}" | grep -v grep | awk '{print \$1}')"
-        if [ -n "\$P_IDS" ]; then
-          echo \$P_IDS
-          for P_ID in \$P_IDS; do
-            kill -9 \$P_ID
-          done
-        fi
-      """
       // remove port-forwarding
       sh """
         # remove orphaned port-forward from different namespaces
@@ -136,6 +146,7 @@
       // collect pod details
       get_pods_info("$WORKSPACE/${name}")
       helmTeardown(['infra', 'voltha'])
+    }
   }
 }
 def get_pods_info(dest) {
@@ -160,7 +171,7 @@
     label "${params.buildNode}"
   }
   options {
-    timeout(time: 60, unit: 'MINUTES')
+    timeout(time: 90, unit: 'MINUTES')
   }
   environment {
     PATH="$PATH:$WORKSPACE/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
@@ -208,11 +219,6 @@
       get_pods_info("$WORKSPACE/failed")
     }
     always {
-      sh '''
-      gzip $WORKSPACE/onos-app-upgrade/onos-voltha-combined.log || true
-      gzip $WORKSPACE/voltha-component-upgrade/onos-voltha-combined.log || true
-      gzip $WORKSPACE/onu-software-upgrade/onos-voltha-combined.log || true
-      '''
       step([$class: 'RobotPublisher',
          disableArchiveOutput: false,
          logFileName: 'RobotLogs/*/log*.html',
diff --git a/jjb/pipeline/voltha/master/voltha-dt-physical-functional-tests.groovy b/jjb/pipeline/voltha/master/voltha-dt-physical-functional-tests.groovy
index d94bf03..000d5fe 100644
--- a/jjb/pipeline/voltha/master/voltha-dt-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha/master/voltha-dt-physical-functional-tests.groovy
@@ -99,25 +99,11 @@
         script {
            deployment_config = readYaml file: "${configBaseDir}/${configDeploymentDir}/${configFileName}-DT.yaml"
         }
+        installVoltctl("${branch}")
         sh returnStdout: false, script: """
         mkdir -p $WORKSPACE/bin
+        # download kail
         bash <( curl -sfL https://raw.githubusercontent.com/boz/kail/master/godownloader.sh) -b "$WORKSPACE/bin"
-        cd $WORKSPACE
-        if [ "${params.branch}" == "voltha-2.8" ]; then
-           VOLTCTL_VERSION=1.6.11
-        else
-           VOLTCTL_VERSION=\$(curl -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')
-        fi
-
-        HOSTOS=\$(uname -s | tr "[:upper:]" "[:lower:"])
-        HOSTARCH=\$(uname -m | tr "[:upper:]" "[:lower:"])
-        if [ \$HOSTARCH == "x86_64" ]; then
-            HOSTARCH="amd64"
-        fi
-        curl -o $WORKSPACE/bin/voltctl -sSL https://github.com/opencord/voltctl/releases/download/v\${VOLTCTL_VERSION}/voltctl-\${VOLTCTL_VERSION}-\${HOSTOS}-\${HOSTARCH}
-        chmod 755 $WORKSPACE/bin/voltctl
-        voltctl version --clientonly
-
 
         # Default kind-voltha config doesn't work on ONF demo pod for accessing kvstore.
         # The issue is that the mgmt node is also one of the k8s nodes and so port forwarding doesn't work.
diff --git a/jjb/pipeline/voltha/master/voltha-physical-functional-tests.groovy b/jjb/pipeline/voltha/master/voltha-physical-functional-tests.groovy
index 9dddd05..f6e63f4 100644
--- a/jjb/pipeline/voltha/master/voltha-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha/master/voltha-physical-functional-tests.groovy
@@ -87,24 +87,11 @@
         script {
           deployment_config = readYaml file: "${configBaseDir}/${configDeploymentDir}/${configFileName}.yaml"
         }
+        installVoltctl("${branch}")
         sh returnStdout: false, script: """
         mkdir -p $WORKSPACE/bin
+        # download kail
         bash <( curl -sfL https://raw.githubusercontent.com/boz/kail/master/godownloader.sh) -b "$WORKSPACE/bin"
-        cd $WORKSPACE
-        if [ "${params.branch}" == "voltha-2.8" ]; then
-           VOLTCTL_VERSION=1.6.11
-        else
-           VOLTCTL_VERSION=\$(curl -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')
-        fi
-
-        HOSTOS=\$(uname -s | tr "[:upper:]" "[:lower:"])
-        HOSTARCH=\$(uname -m | tr "[:upper:]" "[:lower:"])
-        if [ \$HOSTARCH == "x86_64" ]; then
-            HOSTARCH="amd64"
-        fi
-        curl -o $WORKSPACE/bin/voltctl -sSL https://github.com/opencord/voltctl/releases/download/v\${VOLTCTL_VERSION}/voltctl-\${VOLTCTL_VERSION}-\${HOSTOS}-\${HOSTARCH}
-        chmod 755 $WORKSPACE/bin/voltctl
-        voltctl version --clientonly
 
         if [ "${params.branch}" == "master" ]; then
         # Default kind-voltha config doesn't work on ONF demo pod for accessing kvstore.
diff --git a/jjb/pipeline/voltha/master/voltha-physical-soak-dt-tests.groovy b/jjb/pipeline/voltha/master/voltha-physical-soak-dt-tests.groovy
index 8a93fc4..680ac5d 100644
--- a/jjb/pipeline/voltha/master/voltha-physical-soak-dt-tests.groovy
+++ b/jjb/pipeline/voltha/master/voltha-physical-soak-dt-tests.groovy
@@ -100,24 +100,11 @@
         script {
            deployment_config = readYaml file: "${configBaseDir}/${configDeploymentDir}/${configFileName}-DT.yaml"
         }
+        installVoltctl("${branch}")
         sh returnStdout: false, script: """
         mkdir -p $WORKSPACE/bin
+        # download kail
         bash <( curl -sfL https://raw.githubusercontent.com/boz/kail/master/godownloader.sh) -b "$WORKSPACE/bin"
-        cd $WORKSPACE
-        if [ "${params.branch}" == "voltha-2.8" ]; then
-           VC_VERSION=1.6.11
-        else
-           VC_VERSION=\$(curl -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')
-        fi
-
-        HOSTOS=\$(uname -s | tr "[:upper:]" "[:lower:"])
-        HOSTARCH=\$(uname -m | tr "[:upper:]" "[:lower:"])
-        if [ \$HOSTARCH == "x86_64" ]; then
-            HOSTARCH="amd64"
-        fi
-        curl -o $WORKSPACE/bin/voltctl -sSL https://github.com/opencord/voltctl/releases/download/v\${VC_VERSION}/voltctl-\${VC_VERSION}-\${HOSTOS}-\${HOSTARCH}
-        chmod 755 $WORKSPACE/bin/voltctl
-        voltctl version --clientonly
 
         if [ "${params.branch}" == "master" ]; then
         # Default kind-voltha config doesn't work on ONF demo pod for accessing kvstore.
diff --git a/jjb/pipeline/voltha/master/voltha-scale-test.groovy b/jjb/pipeline/voltha/master/voltha-scale-test.groovy
index a7cb4ee..91d5552 100644
--- a/jjb/pipeline/voltha/master/voltha-scale-test.groovy
+++ b/jjb/pipeline/voltha/master/voltha-scale-test.groovy
@@ -57,42 +57,53 @@
   stages {
     stage ('Cleanup') {
       steps {
-        timeout(time: 11, unit: 'MINUTES') {
-          sh returnStdout: false, script: '''
-          cd $WORKSPACE
-          rm -rf $WORKSPACE/*
-          '''
-          // removing the voltha-infra chart first
-          // if we don't ONOS might get stuck because of all the events when BBSim goes down
-          sh returnStdout: false, script: '''
-          set +x
-          helm del voltha-infra || true
-          echo -ne "\nWaiting for ONOS to be removed..."
-          onos=$(kubectl get pod -n default -l app=onos-classic --no-headers | wc -l)
-          while [[ $onos != 0 ]]; do
-            onos=$(kubectl get pod -n default -l app=onos-classic --no-headers | wc -l)
-            sleep 5
-            echo -ne "."
-          done
-          '''
-          script {
-            helmTeardown(["default"])
+        script {
+          try {
+            timeout(time: 5, unit: 'MINUTES') {
+              sh returnStdout: false, script: '''
+              cd $WORKSPACE
+              rm -rf $WORKSPACE/*
+              '''
+              // removing the voltha-infra chart first
+              // if we don't ONOS might get stuck because of all the events when BBSim goes down
+              sh returnStdout: false, script: '''
+              set +x
+              helm del voltha-infra || true
+              echo -ne "\nWaiting for ONOS to be removed..."
+              onos=$(kubectl get pod -n default -l app=onos-classic --no-headers | wc -l)
+              while [[ $onos != 0 ]]; do
+                onos=$(kubectl get pod -n default -l app=onos-classic --no-headers | wc -l)
+                sleep 5
+                echo -ne "."
+              done
+              '''
+            }
+          } catch(org.jenkinsci.plugins.workflow.steps.FlowInterruptedException e) {
+            // if we have a timeout in the Cleanup fase most likely ONOS got stuck somewhere, thuse force remove the pods
+            sh '''
+              kubectl get pods | grep Terminating | awk '{print $1}' | xargs kubectl delete pod --force --grace-period=0
+            '''
           }
-          sh returnStdout: false, script: '''
-            helm repo add onf https://charts.opencord.org
-            helm repo update
+          timeout(time: 10, unit: 'MINUTES') {
+            script {
+              helmTeardown(["default"])
+            }
+            sh returnStdout: false, script: '''
+              helm repo add onf https://charts.opencord.org
+              helm repo update
 
-            # remove all persistent volume claims
-            kubectl delete pvc --all-namespaces --all
-            PVCS=\$(kubectl get pvc --all-namespaces --no-headers | wc -l)
-            while [[ \$PVCS != 0 ]]; do
-              sleep 5
+              # remove all persistent volume claims
+              kubectl delete pvc --all-namespaces --all
               PVCS=\$(kubectl get pvc --all-namespaces --no-headers | wc -l)
-            done
+              while [[ \$PVCS != 0 ]]; do
+                sleep 5
+                PVCS=\$(kubectl get pvc --all-namespaces --no-headers | wc -l)
+              done
 
-            # remove orphaned port-forward from different namespaces
-            ps aux | grep port-forw | grep -v grep | awk '{print $2}' | xargs --no-run-if-empty kill -9 || true
-          '''
+              # remove orphaned port-forward from different namespaces
+              ps aux | grep port-forw | grep -v grep | awk '{print $2}' | xargs --no-run-if-empty kill -9 || true
+            '''
+          }
         }
       }
     }
diff --git a/jjb/pipeline/voltha/master/voltha-tt-physical-functional-tests.groovy b/jjb/pipeline/voltha/master/voltha-tt-physical-functional-tests.groovy
index b66a500..05bd5db 100644
--- a/jjb/pipeline/voltha/master/voltha-tt-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha/master/voltha-tt-physical-functional-tests.groovy
@@ -99,25 +99,11 @@
         script {
            deployment_config = readYaml file: "${configBaseDir}/${configDeploymentDir}/${configFileName}-TT.yaml"
         }
+        installVoltctl("${branch}")
         sh returnStdout: false, script: """
         mkdir -p $WORKSPACE/bin
+        # download kail
         bash <( curl -sfL https://raw.githubusercontent.com/boz/kail/master/godownloader.sh) -b "$WORKSPACE/bin"
-        cd $WORKSPACE
-        if [ "${params.branch}" == "voltha-2.8" ]; then
-           VOLTCTL_VERSION=1.6.11
-        else
-           VOLTCTL_VERSION=\$(curl -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')
-        fi
-
-        HOSTOS=\$(uname -s | tr "[:upper:]" "[:lower:"])
-        HOSTARCH=\$(uname -m | tr "[:upper:]" "[:lower:"])
-        if [ \$HOSTARCH == "x86_64" ]; then
-            HOSTARCH="amd64"
-        fi
-        curl -o $WORKSPACE/bin/voltctl -sSL https://github.com/opencord/voltctl/releases/download/v\${VOLTCTL_VERSION}/voltctl-\${VOLTCTL_VERSION}-\${HOSTOS}-\${HOSTARCH}
-        chmod 755 $WORKSPACE/bin/voltctl
-        voltctl version --clientonly
-
 
         # Default kind-voltha config doesn't work on ONF demo pod for accessing kvstore.
         # The issue is that the mgmt node is also one of the k8s nodes and so port forwarding doesn't work.
@@ -224,7 +210,9 @@
           if (olt.type == null || olt.type == "" || olt.type == "openolt") {
              sh returnStdout: false, script: """
              sshpass -p ${olt.pass} scp ${olt.user}@${olt.sship}:/var/log/openolt.log $WORKSPACE/openolt-${olt.sship}.log || true
+             sshpass -p ${olt.pass} scp ${olt.user}@${olt.sship}:/var/log/dev_mgmt_daemon.log $WORKSPACE/dev_mgmt_daemon-${olt.sship}.log || true
              sed -i 's/\\x1b\\[[0-9;]*[a-zA-Z]//g' $WORKSPACE/openolt-${olt.sship}.log  # Remove escape sequences
+             sed -i 's/\\x1b\\[[0-9;]*[a-zA-Z]//g' $WORKSPACE/dev_mgmt_daemon-${olt.sship}.log  # Remove escape sequences
              """
           }
         }
diff --git a/jjb/pipeline/voltha/voltha-2.8/bbsim-tests.groovy b/jjb/pipeline/voltha/voltha-2.8/bbsim-tests.groovy
index ef6964b..24b2d82 100755
--- a/jjb/pipeline/voltha/voltha-2.8/bbsim-tests.groovy
+++ b/jjb/pipeline/voltha/voltha-2.8/bbsim-tests.groovy
@@ -23,10 +23,10 @@
 
 def clusterName = "kind-ci"
 
-def execute_test(testTarget, workflow, teardown, testSpecificHelmFlags = "") {
+def execute_test(testTarget, workflow, testLogging, teardown, testSpecificHelmFlags = "") {
   def infraNamespace = "default"
   def volthaNamespace = "voltha"
-  def robotLogsDir = "RobotLogs"
+  def logsDir = "$WORKSPACE/${testTarget}"
   stage('Cleanup') {
     if (teardown) {
       timeout(15) {
@@ -48,8 +48,8 @@
         script {
 
           sh """
-          mkdir -p $WORKSPACE/${testTarget}-components
-          _TAG=kail-startup kail -n ${infraNamespace} -n ${volthaNamespace} > $WORKSPACE/${testTarget}-components/onos-voltha-startup-combined.log &
+          mkdir -p ${logsDir}
+          _TAG=kail-startup kail -n ${infraNamespace} -n ${volthaNamespace} > ${logsDir}/onos-voltha-startup-combined.log &
           """
 
           // if we're downloading a voltha-helm-charts patch, then install from a local copy of the charts
@@ -89,7 +89,7 @@
               kill -9 \$P_ID
             done
           fi
-          cd $WORKSPACE/${testTarget}-components/
+          cd ${logsDir}
           gzip -k onos-voltha-startup-combined.log
           rm onos-voltha-startup-combined.log
         """
@@ -108,34 +108,15 @@
     }
   }
   stage('Run test ' + testTarget + ' on ' + workflow + ' workFlow') {
-    // start logging
     sh """
-    mkdir -p $WORKSPACE/${testTarget}-components
-    _TAG=kail-${workflow} kail -n ${infraNamespace} -n ${volthaNamespace} > $WORKSPACE/${testTarget}-components/onos-voltha-combined.log &
-    """
-    sh """
-    mkdir -p $WORKSPACE/${robotLogsDir}/${testTarget}-robot
-    export ROBOT_MISC_ARGS="-d $WORKSPACE/${robotLogsDir}/${testTarget}-robot "
-    ROBOT_MISC_ARGS+="-v ONOS_SSH_PORT:30115 -v ONOS_REST_PORT:30120 -v INFRA_NAMESPACE:${infraNamespace}"
+    mkdir -p ${logsDir}
+    export ROBOT_MISC_ARGS="-d ${logsDir} "
+    ROBOT_MISC_ARGS+="-v ONOS_SSH_PORT:30115 -v ONOS_REST_PORT:30120 -v INFRA_NAMESPACE:${infraNamespace} -v container_log_dir:${logsDir} -v logging:${testLogging}"
     export KVSTOREPREFIX=voltha/voltha_voltha
 
     make -C $WORKSPACE/voltha-system-tests ${testTarget} || true
     """
-    // stop logging
-    sh """
-      P_IDS="\$(ps e -ww -A | grep "_TAG=kail-${workflow}" | grep -v grep | awk '{print \$1}')"
-      if [ -n "\$P_IDS" ]; then
-        echo \$P_IDS
-        for P_ID in \$P_IDS; do
-          kill -9 \$P_ID
-        done
-      fi
-      cd $WORKSPACE/${testTarget}-components/
-      rm onos-voltha-combined.log.gz || true
-      gzip -k onos-voltha-combined.log
-      rm onos-voltha-combined.log
-    """
-    getPodsInfo("$WORKSPACE/${testTarget}-components")
+    getPodsInfo("${logsDir}")
   }
 }
 
@@ -153,12 +134,12 @@
   '''
   step([$class: 'RobotPublisher',
     disableArchiveOutput: false,
-    logFileName: "RobotLogs/*/log*.html",
+    logFileName: "**/*/log*.html",
     otherFiles: '',
-    outputFileName: "RobotLogs/*/output*.xml",
+    outputFileName: "**/*/output*.xml",
     outputPath: '.',
     passThreshold: 100,
-    reportFileName: "RobotLogs/*/report*.html",
+    reportFileName: "**/*/report*.html",
     unstableThreshold: 0,
     onlyCritical: true]);
 }
@@ -251,8 +232,13 @@
               def workflow = test["workflow"]
               def flags = test["flags"]
               def teardown = test["teardown"].toBoolean()
-              println "Executing test ${target} on workflow ${workflow} with extra flags ${flags}"
-              execute_test(target, workflow, teardown, flags)
+              def logging = test["logging"].toBoolean()
+              def testLogging = 'False'
+              if (logging) {
+                  testLogging = 'True'
+              }
+              println "Executing test ${target} on workflow ${workflow} with logging ${testLogging} and extra flags ${flags}"
+              execute_test(target, workflow, testLogging, teardown, flags)
             }
           }
         }
diff --git a/jjb/pipeline/voltha/voltha-2.8/physical-build.groovy b/jjb/pipeline/voltha/voltha-2.8/physical-build.groovy
index d01b7ab..c1029bf 100644
--- a/jjb/pipeline/voltha/voltha-2.8/physical-build.groovy
+++ b/jjb/pipeline/voltha/voltha-2.8/physical-build.groovy
@@ -92,6 +92,7 @@
     stage('Install Voltha')  {
       steps {
         timeout(20) {
+          installVoltctl("$branch")
           script {
             // if we're downloading a voltha-helm-charts patch, then install from a local copy of the charts
             def localCharts = false
diff --git a/jjb/pipeline/voltha/voltha-2.8/software-upgrades.groovy b/jjb/pipeline/voltha/voltha-2.8/software-upgrades.groovy
index 700ac94..88fb129 100644
--- a/jjb/pipeline/voltha/voltha-2.8/software-upgrades.groovy
+++ b/jjb/pipeline/voltha/voltha-2.8/software-upgrades.groovy
@@ -21,15 +21,19 @@
       remote: 'https://gerrit.opencord.org/ci-management.git'
 ])
 def test_software_upgrade(name) {
+  def infraNamespace = "infra"
+  def volthaNamespace = "voltha"
   stage('Deploy Voltha - '+ name) {
+    timeout(10) {
+      // start logging
+      sh """
+      rm -rf $WORKSPACE/${name} || true
+      mkdir -p $WORKSPACE/${name}
+      _TAG=kail-${name} kail -n ${infraNamespace} -n ${volthaNamespace} > $WORKSPACE/${name}/onos-voltha-startup-combined.log &
+      """
       def extraHelmFlags = extraHelmFlags.trim()
-      extraHelmFlags = extraHelmFlags + " --set global.log_level=DEBUG,onu=1,pon=1 --set onos-classic.replicas=3,onos-classic.atomix.replicas=3 "
-      if ("${name}" == "onos-app-upgrade" || "${name}" == "onu-software-upgrade") {
-          extraHelmFlags = extraHelmFlags + "--set global.image_tag=master --set onos-classic.image.tag=master "
-      }
-      if ("${name}" == "voltha-component-upgrade") {
-          extraHelmFlags = extraHelmFlags + "--set images.onos_config_loader.tag=master-onos-config-loader --set onos-classic.image.tag=master "
-      }
+      extraHelmFlags = extraHelmFlags + " --set global.log_level=${logLevel.toUpperCase()},onu=1,pon=1 --set onos-classic.replicas=3,onos-classic.atomix.replicas=3 "
+
       extraHelmFlags = extraHelmFlags + " --set onos-classic.onosSshPort=30115 --set onos-classic.onosApiPort=30120 "
       extraHelmFlags = extraHelmFlags + " --set voltha.onos_classic.replicas=3"
       //ONOS custom image handling
@@ -46,11 +50,18 @@
       // Currently only testing with ATT workflow
       // TODO: Support for other workflows
       volthaDeploy([workflow: "att", extraHelmFlags: extraHelmFlags, localCharts: localCharts])
-      // start logging
+      // stop logging
       sh """
-      rm -rf $WORKSPACE/${name} || true
-      mkdir -p $WORKSPACE/${name}
-      _TAG=kail-${name} kail -n infra -n voltha > $WORKSPACE/${name}/onos-voltha-combined.log &
+        P_IDS="\$(ps e -ww -A | grep "_TAG=kail-${name}" | grep -v grep | awk '{print \$1}')"
+        if [ -n "\$P_IDS" ]; then
+          echo \$P_IDS
+          for P_ID in \$P_IDS; do
+            kill -9 \$P_ID
+          done
+        fi
+        cd $WORKSPACE/${name}/
+        gzip -k onos-voltha-startup-combined.log
+        rm onos-voltha-startup-combined.log
       """
       // forward ONOS and VOLTHA ports
       sh """
@@ -61,8 +72,10 @@
       sh """
       sshpass -e ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 8101 karaf@127.0.0.1 log:set DEBUG org.opencord
       """
+    }
   }
   stage('Test - '+ name) {
+    timeout(20) {
       sh """
         ROBOT_LOGS_DIR="$WORKSPACE/RobotLogs/${name}"
         mkdir -p \$ROBOT_LOGS_DIR
@@ -113,22 +126,16 @@
           export ROBOT_MISC_ARGS="-d \$ROBOT_LOGS_DIR -v image_version:${onuImageVersion.trim()} -v image_url:${onuImageUrl.trim()} -v image_vendor:${onuImageVendor.trim()} -v image_activate_on_success:${onuImageActivateOnSuccess.trim()} -v image_commit_on_success:${onuImageCommitOnSuccess.trim()} -v image_crc:${onuImageCrc.trim()} -e PowerSwitch"
           export TARGET=onu-upgrade-test
         fi
+        testLogging='False'
+        if [ ${logging} = true ]; then
+          testLogging='True'
+        fi
         export VOLTCONFIG=$HOME/.volt/config-minimal
         export KUBECONFIG=$HOME/.kube/kind-config-voltha-minimal
-        ROBOT_MISC_ARGS+=" -v ONOS_SSH_PORT:30115 -v ONOS_REST_PORT:30120"
+        ROBOT_MISC_ARGS+=" -v ONOS_SSH_PORT:30115 -v ONOS_REST_PORT:30120 -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace} -v container_log_dir:$WORKSPACE/RobotLogs/${name} -v logging:\$testLogging"
         # Run the specified tests
         make -C $WORKSPACE/voltha-system-tests \$TARGET || true
       """
-      // stop logging
-      sh """
-        P_IDS="\$(ps e -ww -A | grep "_TAG=kail-${name}" | grep -v grep | awk '{print \$1}')"
-        if [ -n "\$P_IDS" ]; then
-          echo \$P_IDS
-          for P_ID in \$P_IDS; do
-            kill -9 \$P_ID
-          done
-        fi
-      """
       // remove port-forwarding
       sh """
         # remove orphaned port-forward from different namespaces
@@ -137,6 +144,7 @@
       // collect pod details
       get_pods_info("$WORKSPACE/${name}")
       helmTeardown(['infra', 'voltha'])
+    }
   }
 }
 def get_pods_info(dest) {
@@ -209,11 +217,6 @@
       get_pods_info("$WORKSPACE/failed")
     }
     always {
-      sh '''
-      gzip $WORKSPACE/onos-app-upgrade/onos-voltha-combined.log || true
-      gzip $WORKSPACE/voltha-component-upgrade/onos-voltha-combined.log || true
-      gzip $WORKSPACE/onu-software-upgrade/onos-voltha-combined.log || true
-      '''
       step([$class: 'RobotPublisher',
          disableArchiveOutput: false,
          logFileName: 'RobotLogs/*/log*.html',
diff --git a/jjb/pipeline/voltha/voltha-2.8/tucson-build-and-test.groovy b/jjb/pipeline/voltha/voltha-2.8/tucson-build-and-test.groovy
index 78a0f5e..7e7048f 100644
--- a/jjb/pipeline/voltha/voltha-2.8/tucson-build-and-test.groovy
+++ b/jjb/pipeline/voltha/voltha-2.8/tucson-build-and-test.groovy
@@ -312,6 +312,7 @@
           ROBOT_MISC_ARGS+="${robotDataplaneKeyword}"
         fi
 
+        ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
         make -C $WORKSPACE/voltha-system-tests ${makeTarget} || true
         """
       }
diff --git a/jjb/pipeline/voltha/voltha-2.8/voltha-dt-physical-functional-tests.groovy b/jjb/pipeline/voltha/voltha-2.8/voltha-dt-physical-functional-tests.groovy
index 05e0902..369808a 100644
--- a/jjb/pipeline/voltha/voltha-2.8/voltha-dt-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha/voltha-2.8/voltha-dt-physical-functional-tests.groovy
@@ -23,6 +23,9 @@
   deployment_config = null
 }
 
+def infraNamespace = "infra"
+def volthaNamespace = "voltha"
+
 pipeline {
   /* no label, executor is determined by JJB */
   agent {
@@ -71,25 +74,11 @@
         script {
            deployment_config = readYaml file: "${configBaseDir}/${configDeploymentDir}/${configFileName}-DT.yaml"
         }
+        installVoltctl("${branch}")
         sh returnStdout: false, script: """
         mkdir -p $WORKSPACE/bin
+        # download kail
         bash <( curl -sfL https://raw.githubusercontent.com/boz/kail/master/godownloader.sh) -b "$WORKSPACE/bin"
-        cd $WORKSPACE
-        if [ "${params.branch}" == "voltha-2.8" ]; then
-           VOLTCTL_VERSION=1.6.11
-        else
-           VOLTCTL_VERSION=\$(curl -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')
-        fi
-
-        HOSTOS=\$(uname -s | tr "[:upper:]" "[:lower:"])
-        HOSTARCH=\$(uname -m | tr "[:upper:]" "[:lower:"])
-        if [ \$HOSTARCH == "x86_64" ]; then
-            HOSTARCH="amd64"
-        fi
-        curl -o $WORKSPACE/bin/voltctl -sSL https://github.com/opencord/voltctl/releases/download/v\${VOLTCTL_VERSION}/voltctl-\${VOLTCTL_VERSION}-\${HOSTOS}-\${HOSTARCH}
-        chmod 755 $WORKSPACE/bin/voltctl
-        voltctl version --clientonly
-
 
         # Default kind-voltha config doesn't work on ONF demo pod for accessing kvstore.
         # The issue is that the mgmt node is also one of the k8s nodes and so port forwarding doesn't work.
@@ -124,6 +113,7 @@
         else
              export ROBOT_MISC_ARGS="--removekeywords wuks -e PowerSwitch -i sanityDt -i functionalDt -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
         fi
+        ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
         make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
         """
       }
@@ -143,6 +133,7 @@
         else
              export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functionalDt -e PowerSwitch -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
         fi
+        ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
         make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
         """
       }
@@ -158,6 +149,7 @@
         sh """
         mkdir -p $ROBOT_LOGS_DIR
         export ROBOT_MISC_ARGS="--removekeywords wuks -i dataplaneDt -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+        ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
         make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
         """
       }
@@ -172,6 +164,7 @@
         sh """
         mkdir -p $ROBOT_LOGS_DIR
         export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v workflow:${params.workFlow} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+        ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
         make -C $WORKSPACE/voltha-system-tests voltha-test || true
         """
       }
@@ -191,6 +184,7 @@
         else
              export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functionalDt -e PowerSwitch -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
         fi
+        ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
         make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
         """
       }
@@ -207,6 +201,7 @@
         sh """
         mkdir -p $ROBOT_LOGS_DIR
         export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functional -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v workflow:${params.workFlow} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+        ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
         make -C $WORKSPACE/voltha-system-tests voltha-test || true
         """
       }
diff --git a/jjb/pipeline/voltha/voltha-2.8/voltha-physical-functional-tests.groovy b/jjb/pipeline/voltha/voltha-2.8/voltha-physical-functional-tests.groovy
index aca802b..040bb0c 100644
--- a/jjb/pipeline/voltha/voltha-2.8/voltha-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha/voltha-2.8/voltha-physical-functional-tests.groovy
@@ -23,6 +23,9 @@
   deployment_config = null
 }
 
+def infraNamespace = "infra"
+def volthaNamespace = "voltha"
+
 pipeline {
   /* no label, executor is determined by JJB */
   agent {
@@ -84,24 +87,11 @@
         script {
           deployment_config = readYaml file: "${configBaseDir}/${configDeploymentDir}/${configFileName}.yaml"
         }
+        installVoltctl("${branch}")
         sh returnStdout: false, script: """
         mkdir -p $WORKSPACE/bin
+        # download kail
         bash <( curl -sfL https://raw.githubusercontent.com/boz/kail/master/godownloader.sh) -b "$WORKSPACE/bin"
-        cd $WORKSPACE
-        if [ "${params.branch}" == "voltha-2.8" ]; then
-           VOLTCTL_VERSION=1.6.11
-        else
-           VOLTCTL_VERSION=\$(curl -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')
-        fi
-
-        HOSTOS=\$(uname -s | tr "[:upper:]" "[:lower:"])
-        HOSTARCH=\$(uname -m | tr "[:upper:]" "[:lower:"])
-        if [ \$HOSTARCH == "x86_64" ]; then
-            HOSTARCH="amd64"
-        fi
-        curl -o $WORKSPACE/bin/voltctl -sSL https://github.com/opencord/voltctl/releases/download/v\${VOLTCTL_VERSION}/voltctl-\${VOLTCTL_VERSION}-\${HOSTOS}-\${HOSTARCH}
-        chmod 755 $WORKSPACE/bin/voltctl
-        voltctl version --clientonly
 
         if [ "${params.branch}" == "master" ]; then
         # Default kind-voltha config doesn't work on ONF demo pod for accessing kvstore.
@@ -135,6 +125,7 @@
         else
              export ROBOT_MISC_ARGS="--removekeywords wuks -e PowerSwitch -i sanity -i functional -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
         fi
+        ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
         make -C $WORKSPACE/voltha-system-tests voltha-test || true
         """
       }
@@ -154,6 +145,7 @@
         else
              export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functional -e PowerSwitch -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
         fi
+        ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
         make -C $WORKSPACE/voltha-system-tests voltha-test || true
         """
       }
@@ -169,6 +161,7 @@
         sh """
         mkdir -p $ROBOT_LOGS_DIR
         export ROBOT_MISC_ARGS="--removekeywords wuks -i dataplane -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+        ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
         make -C $WORKSPACE/voltha-system-tests voltha-test || true
         """
       }
@@ -183,6 +176,7 @@
        sh """
        mkdir -p $ROBOT_LOGS_DIR
        export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v workflow:${params.workFlow} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+       ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
        make -C $WORKSPACE/voltha-system-tests voltha-test || true
        """
       }
@@ -198,6 +192,7 @@
         sh """
         mkdir -p $ROBOT_LOGS_DIR
         export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functional -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+        ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
         make -C $WORKSPACE/voltha-system-tests voltha-test || true
         """
       }
diff --git a/jjb/pipeline/voltha/voltha-2.8/voltha-physical-soak-dt-tests.groovy b/jjb/pipeline/voltha/voltha-2.8/voltha-physical-soak-dt-tests.groovy
index a9a2005..17cb701 100644
--- a/jjb/pipeline/voltha/voltha-2.8/voltha-physical-soak-dt-tests.groovy
+++ b/jjb/pipeline/voltha/voltha-2.8/voltha-physical-soak-dt-tests.groovy
@@ -24,6 +24,7 @@
 }
 
 def volthaNamespace = "voltha"
+def infraNamespace = "infra"
 
 pipeline {
   /* no label, executor is determined by JJB */
@@ -37,7 +38,7 @@
   environment {
     KUBECONFIG="$WORKSPACE/${configBaseDir}/${configKubernetesDir}/${configFileName}.conf"
     VOLTCONFIG="$HOME/.volt/config-minimal"
-    PATH="$WORKSPACE/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+    PATH="$PATH:$WORKSPACE/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
   }
 
 
@@ -99,24 +100,11 @@
         script {
            deployment_config = readYaml file: "${configBaseDir}/${configDeploymentDir}/${configFileName}-DT.yaml"
         }
+        installVoltctl("${branch}")
         sh returnStdout: false, script: """
         mkdir -p $WORKSPACE/bin
+        # download kail
         bash <( curl -sfL https://raw.githubusercontent.com/boz/kail/master/godownloader.sh) -b "$WORKSPACE/bin"
-        cd $WORKSPACE
-        if [ "${params.branch}" == "voltha-2.8" ]; then
-           VC_VERSION=1.6.11
-        else
-           VC_VERSION=\$(curl -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')
-        fi
-
-        HOSTOS=\$(uname -s | tr "[:upper:]" "[:lower:"])
-        HOSTARCH=\$(uname -m | tr "[:upper:]" "[:lower:"])
-        if [ \$HOSTARCH == "x86_64" ]; then
-            HOSTARCH="amd64"
-        fi
-        curl -o $WORKSPACE/bin/voltctl -sSL https://github.com/opencord/voltctl/releases/download/v\${VC_VERSION}/voltctl-\${VC_VERSION}-\${HOSTOS}-\${HOSTARCH}
-        chmod 755 $WORKSPACE/bin/voltctl
-        voltctl version --clientonly
 
         if [ "${params.branch}" == "master" ]; then
         # Default kind-voltha config doesn't work on ONF demo pod for accessing kvstore.
@@ -153,6 +141,7 @@
             else
                  export ROBOT_MISC_ARGS="--removekeywords wuks -e PowerSwitch -i soak -e dataplaneDt -e bbsim -e notready -d $ROBOT_LOGS_DIR -v SOAK_TEST:True -v logging:False -v teardown_device:False -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE"
             fi
+            ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
             make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
         fi
         """
@@ -170,6 +159,7 @@
         mkdir -p $ROBOT_LOGS_DIR
         if [ "${params.testType}" == "Failure" ]; then
            export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i soak -e PowerSwitch -e bbsim -e notready -d $ROBOT_LOGS_DIR -v SOAK_TEST:True -v logging:False -v teardown_device:False -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE"
+           ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
            make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
         fi
         """
@@ -187,6 +177,7 @@
         mkdir -p $ROBOT_LOGS_DIR
         if [ "${params.testType}" == "Dataplane" ]; then
            export ROBOT_MISC_ARGS="--removekeywords wuks -i soakDataplane -e bbsim -e notready -d $ROBOT_LOGS_DIR -v SOAK_TEST:True -v logging:False -v teardown_device:False -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE"
+           ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
            make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
         fi
         """
diff --git a/jjb/pipeline/voltha/voltha-2.8/voltha-scale-test.groovy b/jjb/pipeline/voltha/voltha-2.8/voltha-scale-test.groovy
index dc94736..bc14f57 100644
--- a/jjb/pipeline/voltha/voltha-2.8/voltha-scale-test.groovy
+++ b/jjb/pipeline/voltha/voltha-2.8/voltha-scale-test.groovy
@@ -60,42 +60,53 @@
   stages {
     stage ('Cleanup') {
       steps {
-        timeout(time: 11, unit: 'MINUTES') {
-          sh returnStdout: false, script: '''
-          cd $WORKSPACE
-          rm -rf $WORKSPACE/*
-          '''
-          // removing the voltha-infra chart first
-          // if we don't ONOS might get stuck because of all the events when BBSim goes down
-          sh returnStdout: false, script: '''
-          set +x
-          helm del voltha-infra || true
-          echo -ne "\nWaiting for ONOS to be removed..."
-          onos=$(kubectl get pod -n default -l app=onos-classic --no-headers | wc -l)
-          while [[ $onos != 0 ]]; do
-            onos=$(kubectl get pod -n default -l app=onos-classic --no-headers | wc -l)
-            sleep 5
-            echo -ne "."
-          done
-          '''
-          script {
-            helmTeardown(["default"])
+        script {
+          try {
+            timeout(time: 5, unit: 'MINUTES') {
+              sh returnStdout: false, script: '''
+              cd $WORKSPACE
+              rm -rf $WORKSPACE/*
+              '''
+              // removing the voltha-infra chart first
+              // if we don't ONOS might get stuck because of all the events when BBSim goes down
+              sh returnStdout: false, script: '''
+              set +x
+              helm del voltha-infra || true
+              echo -ne "\nWaiting for ONOS to be removed..."
+              onos=$(kubectl get pod -n default -l app=onos-classic --no-headers | wc -l)
+              while [[ $onos != 0 ]]; do
+                onos=$(kubectl get pod -n default -l app=onos-classic --no-headers | wc -l)
+                sleep 5
+                echo -ne "."
+              done
+              '''
+            }
+          } catch(org.jenkinsci.plugins.workflow.steps.FlowInterruptedException e) {
+            // if we have a timeout in the Cleanup fase most likely ONOS got stuck somewhere, thuse force remove the pods
+            sh '''
+              kubectl get pods | grep Terminating | awk '{print $1}' | xargs kubectl delete pod --force --grace-period=0
+            '''
           }
-          sh returnStdout: false, script: '''
-            helm repo add onf https://charts.opencord.org
-            helm repo update
+          timeout(time: 10, unit: 'MINUTES') {
+            script {
+              helmTeardown(["default"])
+            }
+            sh returnStdout: false, script: '''
+              helm repo add onf https://charts.opencord.org
+              helm repo update
 
-            # remove all persistent volume claims
-            kubectl delete pvc --all-namespaces --all
-            PVCS=\$(kubectl get pvc --all-namespaces --no-headers | wc -l)
-            while [[ \$PVCS != 0 ]]; do
-              sleep 5
+              # remove all persistent volume claims
+              kubectl delete pvc --all-namespaces --all
               PVCS=\$(kubectl get pvc --all-namespaces --no-headers | wc -l)
-            done
+              while [[ \$PVCS != 0 ]]; do
+                sleep 5
+                PVCS=\$(kubectl get pvc --all-namespaces --no-headers | wc -l)
+              done
 
-            # remove orphaned port-forward from different namespaces
-            ps aux | grep port-forw | grep -v grep | awk '{print $2}' | xargs --no-run-if-empty kill -9 || true
-          '''
+              # remove orphaned port-forward from different namespaces
+              ps aux | grep port-forw | grep -v grep | awk '{print $2}' | xargs --no-run-if-empty kill -9 || true
+            '''
+          }
         }
       }
     }
@@ -279,6 +290,7 @@
               workflow: workflow,
               extraHelmFlags: stackHelmFlags,
               localCharts: localCharts,
+              adaptersToWait: 0, // no need to wait for adapters, 2.8 is kafka based
             ])
             sh """
               set +x
diff --git a/jjb/pipeline/voltha/voltha-2.8/voltha-tt-physical-functional-tests.groovy b/jjb/pipeline/voltha/voltha-2.8/voltha-tt-physical-functional-tests.groovy
index c6cd0d2..a139b7a 100644
--- a/jjb/pipeline/voltha/voltha-2.8/voltha-tt-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha/voltha-2.8/voltha-tt-physical-functional-tests.groovy
@@ -23,6 +23,9 @@
   deployment_config = null
 }
 
+def volthaNamespace = "voltha"
+def infraNamespace = "infra"
+
 pipeline {
   /* no label, executor is determined by JJB */
   agent {
@@ -96,25 +99,11 @@
         script {
            deployment_config = readYaml file: "${configBaseDir}/${configDeploymentDir}/${configFileName}-TT.yaml"
         }
+        installVoltctl("${branch}")
         sh returnStdout: false, script: """
         mkdir -p $WORKSPACE/bin
+        # download kail
         bash <( curl -sfL https://raw.githubusercontent.com/boz/kail/master/godownloader.sh) -b "$WORKSPACE/bin"
-        cd $WORKSPACE
-        if [ "${params.branch}" == "voltha-2.8" ]; then
-           VOLTCTL_VERSION=1.6.11
-        else
-           VOLTCTL_VERSION=\$(curl -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')
-        fi
-
-        HOSTOS=\$(uname -s | tr "[:upper:]" "[:lower:"])
-        HOSTARCH=\$(uname -m | tr "[:upper:]" "[:lower:"])
-        if [ \$HOSTARCH == "x86_64" ]; then
-            HOSTARCH="amd64"
-        fi
-        curl -o $WORKSPACE/bin/voltctl -sSL https://github.com/opencord/voltctl/releases/download/v\${VOLTCTL_VERSION}/voltctl-\${VOLTCTL_VERSION}-\${HOSTOS}-\${HOSTARCH}
-        chmod 755 $WORKSPACE/bin/voltctl
-        voltctl version --clientonly
-
 
         # Default kind-voltha config doesn't work on ONF demo pod for accessing kvstore.
         # The issue is that the mgmt node is also one of the k8s nodes and so port forwarding doesn't work.
@@ -149,6 +138,7 @@
         else
              export ROBOT_MISC_ARGS="--removekeywords wuks -i functionalTT -e PowerSwitch -i sanityTT -i sanityTT-MCAST -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
         fi
+        ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
         make -C $WORKSPACE/voltha-system-tests voltha-tt-test || true
         """
       }
@@ -169,6 +159,7 @@
           else
                export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functionalTT -e PowerSwitch -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
           fi
+          ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
           make -C $WORKSPACE/voltha-system-tests voltha-tt-test || true
         fi
         """
@@ -191,6 +182,7 @@
           else
             export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functionalTT -e PowerSwitch -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel} -V $ROBOT_TEST_INPUT_FILE"
           fi
+          ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
           make -C $WORKSPACE/voltha-system-tests voltha-tt-test || true
         fi
         """
@@ -215,6 +207,8 @@
              sh returnStdout: false, script: """
              sshpass -p ${olt.pass} scp ${olt.user}@${olt.sship}:/var/log/openolt.log $WORKSPACE/openolt-${olt.sship}.log || true
              sed -i 's/\\x1b\\[[0-9;]*[a-zA-Z]//g' $WORKSPACE/openolt-${olt.sship}.log  # Remove escape sequences
+             sshpass -p ${olt.pass} scp ${olt.user}@${olt.sship}:/var/log/dev_mgmt_daemon.log $WORKSPACE/dev_mgmt_daemon-${olt.sship}.log || true
+             sed -i 's/\\x1b\\[[0-9;]*[a-zA-Z]//g' $WORKSPACE/dev_mgmt_daemon-${olt.sship}.log  # Remove escape sequences
              """
           }
         }
diff --git a/jjb/software-upgrades.yaml b/jjb/software-upgrades.yaml
index 3591992..15a1474 100644
--- a/jjb/software-upgrades.yaml
+++ b/jjb/software-upgrades.yaml
@@ -75,6 +75,8 @@
     volthaSystemTestsChange: ''
     volthaHelmChartsChange: ''
     kindVolthaChange: ''
+    logLevel: 'DEBUG'
+    logging: true
 
     description: |
       <!-- Managed by Jenkins Job Builder -->
@@ -247,6 +249,16 @@
           default: '{onu-image-crc}'
           description: 'CRC of ONU Image to Upgrade'
 
+      - string:
+          name: logLevel
+          default: '{logLevel}'
+          description: 'Log level for all the components'
+
+      - bool:
+          name: logging
+          default: '{logging}'
+          description: 'Option to collect voltha components logs per test case'
+
     project-type: pipeline
     concurrent: true
 
diff --git a/jjb/verify/bbsim.yaml b/jjb/verify/bbsim.yaml
index 3b64b88..22b44f7 100644
--- a/jjb/verify/bbsim.yaml
+++ b/jjb/verify/bbsim.yaml
@@ -39,14 +39,17 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: sanity-bbsim-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: sanity-bbsim-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
 
 - job-group:
     name: 'verify-bbsim-jobs-master'
@@ -58,14 +61,17 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: sanity-bbsim-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: sanity-bbsim-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
 
 - job-group:
     name: 'publish-bbsim-jobs'
diff --git a/jjb/verify/voltha-openonu-adapter-go.yaml b/jjb/verify/voltha-openonu-adapter-go.yaml
index efcef9f..8a1353a 100644
--- a/jjb/verify/voltha-openonu-adapter-go.yaml
+++ b/jjb/verify/voltha-openonu-adapter-go.yaml
@@ -53,18 +53,22 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: sanity-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: sanity-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
             - target: 1t4gem-openonu-go-adapter-test
               workflow: att
               flags: ""
               teardown: true
+              logging: true
 
 - job-group:
     name: 'publish-voltha-openonu-adapter-go-jobs'
diff --git a/jjb/voltha-e2e.yaml b/jjb/voltha-e2e.yaml
index 80bde43..9eae7b1 100755
--- a/jjb/voltha-e2e.yaml
+++ b/jjb/voltha-e2e.yaml
@@ -31,22 +31,59 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: bbsim-alarms-kind
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: bbsim-failurescenarios
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: bbsim-errorscenarios
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: onos-ha-test
               workflow: att
               flags: ""
               teardown: false
+              logging: true
+
+      - 'voltha-periodic-test':
+          name: 'periodic-voltha-test-bbsim-new-olt-app'
+          code-branch: 'master'
+          extraHelmFlags: '--set global.image_tag=master --set onos-classic.image.repository=matteoscandolo/voltha-onos,onos-classic.image.tag=oltapp --set onos-classic.replicas=3,onos-classic.atomix.replicas=3 --set voltha.onos_classic.replicas=3'
+          time-trigger: "H H/23 * * *"
+          testTargets: |
+            - target: functional-single-kind
+              workflow: att
+              flags: ""
+              teardown: true
+              logging: true
+            - target: bbsim-alarms-kind
+              workflow: att
+              flags: ""
+              teardown: false
+              logging: true
+            - target: bbsim-failurescenarios
+              workflow: att
+              flags: ""
+              teardown: false
+              logging: true
+            - target: bbsim-errorscenarios
+              workflow: att
+              flags: ""
+              teardown: false
+              logging: true
+            - target: onos-ha-test
+              workflow: att
+              flags: ""
+              teardown: false
+              logging: true
 
       - 'voltha-periodic-test':
           name: 'periodic-voltha-multiple-olts-test-bbsim'
@@ -59,18 +96,22 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: bbsim-multiolt-failurescenarios
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: bbsim-multiolt-errorscenarios
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: bbsim-multiolt-kind
               workflow: att
               flags: ""
               teardown: false
+              logging: true
 
       - 'voltha-periodic-test':
           name: 'periodic-voltha-test-bbsim-2.8'
@@ -82,18 +123,22 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: bbsim-alarms-kind
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: bbsim-failurescenarios
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: bbsim-errorscenarios
               workflow: att
               flags: ""
               teardown: false
+              logging: true
 
       - 'voltha-periodic-test':
           name: 'periodic-voltha-multiple-olts-test-bbsim-2.8'
@@ -107,18 +152,22 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: bbsim-multiolt-failurescenarios
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: bbsim-multiolt-errorscenarios
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: bbsim-multiolt-kind
               workflow: att
               flags: ""
               teardown: false
+              logging: true
 
       - 'voltha-periodic-test':
           name: 'periodic-voltha-multi-uni-test-bbsim'
@@ -130,14 +179,17 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: bbsim-multiuni-failurescenarios-att
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: bbsim-multiuni-errorscenarios-att
               workflow: att
               flags: ""
               teardown: false
+              logging: true
 
       - 'voltha-periodic-test':
           name: 'periodic-voltha-multi-uni-multiple-olts-test-bbsim'
@@ -150,14 +202,17 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: bbsim-multiuni-multiolt-failurescenarios-att
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: bbsim-multiuni-multiolt-errorscenarios-att
               workflow: att
               flags: ""
               teardown: false
+              logging: true
           timeout: 180
 
       - 'voltha-periodic-test':
@@ -171,14 +226,17 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: bbsim-multiuni-failurescenarios-att
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: bbsim-multiuni-errorscenarios-att
               workflow: att
               flags: ""
               teardown: false
+              logging: true
 
       - 'voltha-periodic-test':
           name: 'periodic-voltha-multi-uni-multiple-olts-test-bbsim-2.8'
@@ -192,14 +250,17 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: bbsim-multiuni-multiolt-failurescenarios-att
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: bbsim-multiuni-multiolt-errorscenarios-att
               workflow: att
               flags: ""
               teardown: false
+              logging: true
           timeout: 180
 
       # openonu Go periodic tests
@@ -214,62 +275,160 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: 1t4gem-openonu-go-adapter-test
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: 1t8gem-openonu-go-adapter-test
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: mib-upload-templating-openonu-go-adapter-test
               workflow: att
               flags: "--set pon=2,onu=2,controlledActivation=only-onu"
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-test-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-test-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-test-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
             - target: openonu-go-adapter-omci-hardening-passed-test
               workflow: att
               flags: "--set omci_response_rate=9 --set voltha-adapter-openonu.adapter_open_onu.omci_timeout=1s"
               teardown: true
+              logging: true
             - target: openonu-go-adapter-omci-hardening-failed-test
               workflow: att
               flags: "--set omci_response_rate=7"
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-single-kind-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-single-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-single-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-flows-check-single-kind-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-flows-check-single-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-flows-check-single-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
+
+      - 'voltha-periodic-test':
+          name: 'periodic-voltha-openonu-go-test-bbsim-new-olt-app'
+          code-branch: 'master'
+          extraHelmFlags: '--set global.image_tag=master --set onos-classic.image.repository=matteoscandolo/voltha-onos,onos-classic.image.tag=oltapp '
+          time-trigger: "H H/12 * * *"
+          logLevel: 'DEBUG'
+          testTargets: |
+            - target: 1t1gem-openonu-go-adapter-test
+              workflow: att
+              flags: ""
+              teardown: true
+              logging: true
+            - target: 1t4gem-openonu-go-adapter-test
+              workflow: att
+              flags: ""
+              teardown: true
+              logging: true
+            - target: 1t8gem-openonu-go-adapter-test
+              workflow: att
+              flags: ""
+              teardown: true
+              logging: true
+            - target: mib-upload-templating-openonu-go-adapter-test
+              workflow: att
+              flags: "--set pon=2,onu=2,controlledActivation=only-onu"
+              teardown: true
+              logging: true
+            - target: reconcile-openonu-go-adapter-test-att
+              workflow: att
+              flags: ""
+              teardown: true
+              logging: true
+            - target: reconcile-openonu-go-adapter-test-dt
+              workflow: dt
+              flags: ""
+              teardown: true
+              logging: true
+            - target: reconcile-openonu-go-adapter-test-tt
+              workflow: tt
+              flags: ""
+              teardown: true
+              logging: true
+            - target: openonu-go-adapter-omci-hardening-passed-test
+              workflow: att
+              flags: "--set omci_response_rate=9 --set voltha-adapter-openonu.adapter_open_onu.omci_timeout=1s"
+              teardown: true
+              logging: true
+            - target: openonu-go-adapter-omci-hardening-failed-test
+              workflow: att
+              flags: "--set omci_response_rate=7"
+              teardown: true
+              logging: true
+            - target: voltha-onu-omci-get-single-kind-att
+              workflow: att
+              flags: ""
+              teardown: true
+              logging: true
+            - target: voltha-onu-omci-get-single-kind-dt
+              workflow: dt
+              flags: ""
+              teardown: true
+              logging: true
+            - target: voltha-onu-omci-get-single-kind-tt
+              workflow: tt
+              flags: ""
+              teardown: true
+              logging: true
+            - target: voltha-onu-flows-check-single-kind-att
+              workflow: att
+              flags: ""
+              teardown: true
+              logging: true
+            - target: voltha-onu-flows-check-single-kind-dt
+              workflow: dt
+              flags: ""
+              teardown: true
+              logging: true
+            - target: voltha-onu-flows-check-single-kind-tt
+              workflow: tt
+              flags: ""
+              teardown: true
+              logging: true
 
       - 'voltha-periodic-test':
           name: 'periodic-voltha-openonu-go-test-bbsim-2.8'
@@ -282,50 +441,62 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: 1t4gem-openonu-go-adapter-test
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: 1t8gem-openonu-go-adapter-test
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: mib-upload-templating-openonu-go-adapter-test
               workflow: att
               flags: "--set pon=2,onu=2,controlledActivation=only-onu"
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-test-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-test-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-test-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
             - target: openonu-go-adapter-omci-hardening-passed-test
               workflow: att
               flags: "--set omci_response_rate=9 --set voltha-adapter-openonu.adapter_open_onu.omci_timeout=1s"
               teardown: true
+              logging: true
             - target: openonu-go-adapter-omci-hardening-failed-test
               workflow: att
               flags: "--set omci_response_rate=7"
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-single-kind-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-single-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-single-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
 
       - 'voltha-periodic-test':
           name: 'patchset-voltha-openonu-go-test-bbsim'
@@ -340,62 +511,77 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: 1t4gem-openonu-go-adapter-test
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: 1t8gem-openonu-go-adapter-test
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: mib-upload-templating-openonu-go-adapter-test
               workflow: att
               flags: "--set pon=2,onu=2,controlledActivation=only-onu"
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-test-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-test-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-test-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
             - target: openonu-go-adapter-omci-hardening-passed-test
               workflow: att
               flags: "--set omci_response_rate=9 --set voltha-adapter-openonu.adapter_open_onu.omci_timeout=1s"
               teardown: true
+              logging: true
             - target: openonu-go-adapter-omci-hardening-failed-test
               workflow: att
               flags: "--set omci_response_rate=7"
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-single-kind-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-single-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-single-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-flows-check-single-kind-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-flows-check-single-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-flows-check-single-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
 
       - 'voltha-periodic-test':
           name: 'periodic-voltha-multiple-olts-openonu-go-test-bbsim'
@@ -408,50 +594,62 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: 1t4gem-openonu-go-adapter-multi-olt-test
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: 1t8gem-openonu-go-adapter-multi-olt-test
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-multi-olt-test-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-multi-olt-test-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-multi-olt-test-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-multiolt-kind-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-multiolt-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-multiolt-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-flows-check-multiolt-kind-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-flows-check-multiolt-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-flows-check-multiolt-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
           time-trigger: "H H/12 * * *"
 
       - 'voltha-periodic-test':
@@ -466,38 +664,47 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: 1t4gem-openonu-go-adapter-multi-olt-test
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: 1t8gem-openonu-go-adapter-multi-olt-test
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-multi-olt-test-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-multi-olt-test-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-multi-olt-test-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-multiolt-kind-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-multiolt-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-multiolt-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
           time-trigger: "H H/23 * * *"
 
       - 'voltha-periodic-test':
@@ -513,50 +720,62 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: 1t4gem-openonu-go-adapter-multi-olt-test
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: 1t8gem-openonu-go-adapter-multi-olt-test
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-multi-olt-test-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-multi-olt-test-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: reconcile-openonu-go-adapter-multi-olt-test-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-multiolt-kind-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-multiolt-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-omci-get-multiolt-kind-tt
               workflow: tt
               flags: ""
               teardown: true
-             - target: voltha-onu-flows-check-multiolt-kind-att
+              logging: true
+            - target: voltha-onu-flows-check-multiolt-kind-att
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-flows-check-multiolt-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-onu-flows-check-multiolt-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
           olts: 2
 
       - 'voltha-periodic-test':
@@ -570,14 +789,17 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-pm-data-single-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-pm-data-single-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
           timeout: 140
 
       - 'voltha-periodic-test':
@@ -593,14 +815,17 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-pm-data-single-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-pm-data-single-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
           timeout: 140
 
       - 'voltha-periodic-test':
@@ -615,14 +840,17 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-pm-data-single-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-pm-data-single-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
           timeout: 140
 
       - 'voltha-periodic-test':
@@ -637,14 +865,17 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-pm-data-multiolt-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-pm-data-multiolt-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
           time-trigger: "H H/23 * * *"
 
       - 'voltha-periodic-test':
@@ -660,14 +891,17 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-pm-data-multiolt-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-pm-data-multiolt-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
           olts: 2
           timeout: 180
 
@@ -684,14 +918,17 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-pm-data-multiolt-kind-dt
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
             - target: voltha-pm-data-multiolt-kind-tt
               workflow: tt
               flags: ""
               teardown: true
+              logging: true
           time-trigger: "H H/23 * * *"
 
       - 'voltha-periodic-test':
@@ -704,6 +941,7 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
 
       - 'voltha-periodic-test':
           name: 'periodic-voltha-test-DMI-2.8'
@@ -715,6 +953,7 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
 
       - 'voltha-periodic-test':
           name: 'periodic-voltha-etcd-test'
@@ -727,6 +966,7 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
 
       - 'voltha-periodic-test':
           name: 'periodic-voltha-etcd-test-2.8'
@@ -740,6 +980,7 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
 
       - 'voltha-periodic-test':
           name: 'periodic-voltha-sanity-test-multi-runs'
@@ -751,22 +992,27 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: sanity-kind
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: sanity-kind
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: sanity-kind
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: sanity-kind
               workflow: att
               flags: ""
               teardown: false
+              logging: true
 
       - 'voltha-periodic-test':
           name: 'periodic-voltha-sanity-test-multi-runs-2.8'
@@ -778,22 +1024,27 @@
               workflow: att
               flags: ""
               teardown: true
+              logging: true
             - target: sanity-kind
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: sanity-kind
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: sanity-kind
               workflow: att
               flags: ""
               teardown: false
+              logging: true
             - target: sanity-kind
               workflow: att
               flags: ""
               teardown: false
+              logging: true
 
       - 'voltha-periodic-test':
           name: 'nightly-voltha-DTflow-sanity-test'
@@ -806,6 +1057,7 @@
               workflow: dt
               flags: ""
               teardown: true
+              logging: true
 
       # ATT Per-patchset Pod builds on Tucson pod (master)
       - 'verify_physical_voltha_patchset_auto':
@@ -914,6 +1166,7 @@
       #     workflow: att
       #     flags: ""
       #     teardown: true
+      #     logging: true
       - text:
           name: testTargets
           default: '{testTargets}'
@@ -1017,14 +1270,17 @@
         workflow: att
         flags: ""
         teardown: true
+        logging: true
       - target: sanity-kind-dt
         workflow: dt
         flags: ""
         teardown: true
+        logging: true
       - target: sanity-kind-tt
         workflow: tt
         flags: ""
         teardown: true
+        logging: true
 
     description: |
       <!-- Managed by Jenkins Job Builder -->
@@ -1086,6 +1342,7 @@
       #     workflow: att
       #     flags: ""
       #     teardown: true
+      #     logging: true
       - text:
           name: testTargets
           default: '{testTargets}'
diff --git a/jjb/voltha-scale.yaml b/jjb/voltha-scale.yaml
index 6effbd9..8df67f5 100644
--- a/jjb/voltha-scale.yaml
+++ b/jjb/voltha-scale.yaml
@@ -54,8 +54,8 @@
           name: 'voltha-scale-measurements-master-2-16-32-att-subscribers-newoltapp'
           'disable-job': false
           build-node: 'voltha-scale-1'
-          # time-trigger: "H H/4 * * *"
-          time-trigger: "H 0 29 2 *"
+          time-trigger: "H H/4 * * *"
+          # time-trigger: "H 0 29 2 *"
           logLevel: INFO
           olts: 2
           pons: 16
@@ -73,8 +73,8 @@
           name: 'voltha-scale-measurements-master-2-16-32-dt-subscribers-newoltapp'
           'disable-job': false
           build-node: 'voltha-scale-1'
-          # time-trigger: "H H/4 * * *"
-          time-trigger: "H 0 29 2 *"
+          time-trigger: "H H/4 * * *"
+          # time-trigger: "H 0 29 2 *"
           logLevel: INFO
           olts: 2
           pons: 16
@@ -93,8 +93,8 @@
           name: 'voltha-scale-measurements-master-2-16-32-tt-subscribers-newoltapp'
           'disable-job': false
           build-node: 'voltha-scale-1'
-          # time-trigger: "H H/4 * * *"
-          time-trigger: "H 0 29 2 *"
+          time-trigger: "H H/4 * * *"
+          # time-trigger: "H 0 29 2 *"
           logLevel: INFO
           olts: 2
           pons: 16
@@ -113,7 +113,7 @@
       # jobs for 1024 ONUs with openonu-go and clustered ONOS (2 OLTs)
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-2-16-32-att-subscribers'
-          'disable-job': true
+          'disable-job': false
           build-node: 'voltha-scale-1'
           time-trigger: "H H/4 * * *"
           olts: 2
@@ -128,7 +128,7 @@
 
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-2-16-32-dt-subscribers'
-          'disable-job': true
+          'disable-job': false
           build-node: 'voltha-scale-1'
           time-trigger: "H H/4 * * *"
           olts: 2
@@ -144,7 +144,7 @@
 
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-2-16-32-tt-subscribers'
-          'disable-job': true
+          'disable-job': false
           build-node: 'voltha-scale-1'
           time-trigger: "H H/4 * * *"
           olts: 2
@@ -178,7 +178,8 @@
           withEapol: true
           withDhcp: true
           withIgmp: false
-          extraHelmFlags: "-f /home/jenkins/voltha-scale/voltha-values.yaml "
+          extraHelmFlags: "-f /home/jenkins/voltha-scale/voltha-values.yaml --set etcd.persistence.enabled=true,etcd.persistence.storageClass=longhorn"
+          onosImg: 'matteoscandolo/voltha-onos:oltapp'
 
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-10-stacks-2-16-32-dt-subscribers'
@@ -198,6 +199,7 @@
           withDhcp: false
           withIgmp: false
           extraHelmFlags: "-f /home/jenkins/voltha-scale/voltha-values.yaml --set etcd.persistence.enabled=true,etcd.persistence.storageClass=longhorn"
+          onosImg: 'matteoscandolo/voltha-onos:oltapp'
 
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-10-stacks-2-16-32-tt-subscribers'
@@ -216,12 +218,13 @@
           withEapol: false
           withDhcp: true
           withIgmp: true
-          extraHelmFlags: "-f /home/jenkins/voltha-scale/voltha-values.yaml "
+          extraHelmFlags: "-f /home/jenkins/voltha-scale/voltha-values.yaml --set etcd.persistence.enabled=true,etcd.persistence.storageClass=longhorn"
+          onosImg: 'matteoscandolo/voltha-onos:oltapp'
 
       # voltha-2.8 Jobs
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-voltha-2.8-2-16-32-att-subscribers'
-          'disable-job': true
+          'disable-job': false
           pipeline-script: 'voltha/voltha-2.8/voltha-scale-test.groovy'
           build-node: 'voltha-scale-1'
           time-trigger: "H H/4 * * *"
@@ -245,7 +248,7 @@
 
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-voltha-2.8-2-16-32-dt-subscribers'
-          'disable-job': true
+          'disable-job': false
           pipeline-script: 'voltha/voltha-2.8/voltha-scale-test.groovy'
           build-node: 'voltha-scale-1'
           time-trigger: "H H/4 * * *"
@@ -270,7 +273,7 @@
 
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-voltha-2.8-2-16-32-tt-subscribers'
-          'disable-job': true
+          'disable-job': false
           pipeline-script: 'voltha/voltha-2.8/voltha-scale-test.groovy'
           build-node: 'voltha-scale-1'
           time-trigger: "H H/4 * * *"
diff --git a/jjb/voltha-test/voltha-certification.yaml b/jjb/voltha-test/voltha-certification.yaml
index f048043..994c543 100644
--- a/jjb/voltha-test/voltha-certification.yaml
+++ b/jjb/voltha-test/voltha-certification.yaml
@@ -36,7 +36,7 @@
           work-flow: 'DT'
           profile: '1T8GEM'
           time: '21'
-          extraHelmFlags: "--set onos-classic.image.repository=andreacampanella/voltha-onos --set onos-classic.image.tag=meter-fixes-simple"
+          extraHelmFlags: "--set onos-classic.image.repository=andreacampanella/voltha-onos --set onos-classic.image.tag=meter-fixes-simple --set voltha.global.rw_core.rpc_timeout=30s --set voltha.global.rw_core.internal_timeout=30s"
 
       # Certification (Radisys 1600G) POD test job - master versions: uses 1T8GEM tech profile on voltha branch
       - 'build_voltha_pod_test':
@@ -62,7 +62,7 @@
           work-flow: 'DT'
           profile: '1T8GEM'
           time: '1'
-          extraHelmFlags: "--set onos-classic.image.repository=andreacampanella/voltha-onos --set onos-classic.image.tag=meter-fixes-simple"
+          extraHelmFlags: "--set onos-classic.image.repository=andreacampanella/voltha-onos --set onos-classic.image.tag=meter-fixes-simple --set voltha.global.rw_core.rpc_timeout=30s --set voltha.global.rw_core.internal_timeout=30s"
 
       # Certification (Radisys 1600X) POD test job - master versions: uses 1T8GEM tech profile on voltha branch
       - 'build_voltha_pod_test':
@@ -88,7 +88,7 @@
           work-flow: 'DT'
           profile: '1T8GEM'
           time: '5'
-          extraHelmFlags: "--set onos-classic.image.repository=andreacampanella/voltha-onos --set onos-classic.image.tag=meter-fixes-simple"
+          extraHelmFlags: "--set onos-classic.image.repository=andreacampanella/voltha-onos --set onos-classic.image.tag=meter-fixes-simple --set voltha.global.rw_core.rpc_timeout=30s --set voltha.global.rw_core.internal_timeout=30s"
 
       # Certification (Radisys) POD test job - master versions: uses 1T8GEM tech profile on voltha branch
       - 'build_voltha_pod_test':
diff --git a/jjb/voltha-test/voltha.yaml b/jjb/voltha-test/voltha.yaml
index 95364f3..d42c198 100644
--- a/jjb/voltha-test/voltha.yaml
+++ b/jjb/voltha-test/voltha.yaml
@@ -27,6 +27,7 @@
     jobs:
       # flex OCP pod with olt/onu - manual test job, voltha master build job
       - 'build_voltha_pod_manual':
+          'disable-job': false
           build-node: 'qa-testvm-pod'
           config-pod: 'flex-ocp-cord'
           num-of-onos: '3'
@@ -40,6 +41,7 @@
 
       # flex pod1 test job - using voltha branch
       - 'build_voltha_pod_manual_test':
+          'disable-job': false
           build-node: 'qa-testvm-pod'
           config-pod: 'flex-ocp-cord'
           disable-job: false
@@ -54,6 +56,7 @@
 
       # flex OCP pod with olt/onu - Default tech profile and timer based job
       - 'build_voltha_pod_release_timer':
+          'disable-job': false
           build-node: 'qa-testvm-pod'
           config-pod: 'flex-ocp-cord'
           profile: 'Default'
@@ -64,6 +67,7 @@
 
       # flex pod1 test job - uses tech profile on voltha branch
       - 'build_voltha_pod_test':
+          'disable-job': false
           build-node: 'qa-testvm-pod'
           config-pod: 'flex-ocp-cord'
           release: 'master'
@@ -74,6 +78,7 @@
 
       # flex OCP pod with olt/onu - 1T4GEM tech profile and timer based job
       - 'build_voltha_pod_release_timer':
+          'disable-job': false
           build-node: 'qa-testvm-pod'
           config-pod: 'flex-ocp-cord'
           release: '2.8'
@@ -87,6 +92,7 @@
 
       # flex pod1 test job - released versions: uses tech profile on voltha branch
       - 'build_voltha_pod_test':
+          'disable-job': false
           build-node: 'qa-testvm-pod'
           config-pod: 'flex-ocp-cord'
           release: '2.8'
@@ -97,6 +103,7 @@
 
     # flex OCP pod with olt/onu - Released versions Default tech profile and timer based job
       - 'build_voltha_pod_release_timer':
+          'disable-job': false
           build-node: 'qa-testvm-pod'
           config-pod: 'flex-ocp-cord'
           release: 'master'
@@ -111,6 +118,7 @@
 
       # flex pod1 test job - released versions: uses tech profile on voltha branch
       - 'build_voltha_pod_test':
+          'disable-job': false
           build-node: 'qa-testvm-pod'
           config-pod: 'flex-ocp-cord'
           release: 'master'
@@ -121,9 +129,11 @@
           pipeline-script: 'voltha/master/voltha-tt-physical-functional-tests.groovy'
           test-repo: 'voltha-system-tests'
           profile: 'TP'
+          timeout: 330
 
     # flex OCP pod with olt/onu - Released versions Default tech profile and timer based job
       - 'build_voltha_pod_release_timer':
+          'disable-job': false
           build-node: 'qa-testvm-pod'
           config-pod: 'flex-ocp-cord'
           release: '2.8'
@@ -139,6 +149,7 @@
 
       # flex pod1 test job - released versions: uses tech profile on voltha branch
       - 'build_voltha_pod_test':
+          'disable-job': false
           build-node: 'qa-testvm-pod'
           config-pod: 'flex-ocp-cord'
           release: '2.8'
@@ -152,6 +163,7 @@
 
     # flex OCP pod with olt/onu - Released versions Default tech profile and timer based job
       - 'build_voltha_pod_release_timer':
+          'disable-job': false
           build-node: 'qa-testvm-pod'
           config-pod: 'flex-ocp-cord-multi-uni'
           release: 'master'
@@ -159,7 +171,7 @@
           name-extension: '_TT'
           work-flow: 'TT'
           profile: 'TP'
-          time: '15'
+          time: '16'
           VolthaEtcdPort: 9999
           num-of-onos: '3'
           num-of-atomix: '3'
@@ -169,6 +181,7 @@
 
       # flex pod1 test job - released versions: uses tech profile on voltha branch
       - 'build_voltha_pod_test':
+          'disable-job': false
           build-node: 'qa-testvm-pod'
           config-pod: 'flex-ocp-cord-multi-uni'
           release: 'master'
@@ -192,6 +205,7 @@
           waitTimerForOltUp: 540
           VolthaEtcdPort: 9999
           time: '1'
+          extraHelmFlags: "--set onos-classic.image.repository=matteoscandolo/voltha-onos --set onos-classic.image.tag=oltapp"
 
       # Menlo pod test job - master test job uses tech profile on voltha branch
       - 'build_voltha_pod_test':
@@ -217,6 +231,7 @@
           in-band-management: true
           waitTimerForOltUp: 540
           time: '4'
+          extraHelmFlags: "--set onos-classic.image.repository=matteoscandolo/voltha-onos --set onos-classic.image.tag=oltapp"
 
       # Menlo pod test job - uses tech profile on voltha branch
       - 'build_voltha_pod_test':
@@ -247,6 +262,7 @@
           in-band-management: true
           time: '7'
           pipeline-script: 'voltha/voltha-2.8/physical-build.groovy'
+          extraHelmFlags: "--set onos-classic.image.repository=matteoscandolo/voltha-onos --set onos-classic.image.tag=oltapp"
 
       # Menlo pod test job - uses tech profile on voltha branch
       - 'build_voltha_pod_test':
@@ -261,12 +277,13 @@
           profile: '1T8GEM'
           pipeline-script: 'voltha/voltha-2.8/voltha-dt-physical-functional-tests.groovy'
           power-switch: True
+          extraHelmFlags: "--set onos-classic.image.repository=matteoscandolo/voltha-onos --set onos-classic.image.tag=oltapp"
 
       # ONF Menlo Soak POD build job - voltha-master branch
       - 'build_voltha_pod_manual':
           build-node: 'menlo-soak-pod'
           config-pod: 'onf-soak-pod'
-          disable-job: true
+          disable-job: false
           bbsimReplicas: 1
           profile: '1T8GEM'
           name-extension: '_DT'
@@ -281,7 +298,7 @@
       - 'build_voltha_pod_manual_test':
           build-node: 'menlo-soak-pod'
           config-pod: 'onf-soak-pod'
-          disable-job: true
+          disable-job: false
           profile: '1T8GEM'
           branch: 'master'
           release: 'master'
@@ -296,7 +313,7 @@
       - 'build_voltha_pod_soak_test':
           build-node: 'menlo-soak-pod'
           config-pod: 'onf-soak-pod'
-          'disable-job': true
+          'disable-job': false
           profile: '1T8GEM'
           branch: 'master'
           release: 'master'
@@ -312,7 +329,7 @@
       - 'build_voltha_pod_soak_test':
           build-node: 'menlo-soak-pod'
           config-pod: 'onf-soak-pod'
-          'disable-job': true
+          'disable-job': false
           profile: '1T8GEM'
           branch: 'master'
           release: 'master'
@@ -524,4 +541,3 @@
           power-switch: True
           pipeline-script: 'voltha/voltha-2.8/voltha-dt-physical-functional-tests.groovy'
           oltAdapterAppLabel: 'adapter-adtran-olt'
-
diff --git a/vars/createKubernetesCluster.groovy b/vars/createKubernetesCluster.groovy
index 24a052f..d329de2 100644
--- a/vars/createKubernetesCluster.groovy
+++ b/vars/createKubernetesCluster.groovy
@@ -52,21 +52,10 @@
       curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.0/kind-linux-amd64
       chmod +x ./kind
       mv ./kind $WORKSPACE/bin/kind
-
-      # install voltctl
-      HOSTOS="\$(uname -s | tr "[:upper:]" "[:lower:"])"
-      HOSTARCH="\$(uname -m | tr "[:upper:]" "[:lower:"])"
-      if [ "\$HOSTARCH" == "x86_64" ]; then
-          HOSTARCH="amd64"
-      fi
-      if [ "${cfg.branch}" == "voltha-2.8" ]; then
-          VC_VERSION="1.6.11"
-      else
-          VC_VERSION="\$(curl --fail -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')"
-      fi
-      curl -Lo $WORKSPACE/bin/voltctl https://github.com/opencord/voltctl/releases/download/v\$VC_VERSION/voltctl-\$VC_VERSION-\$HOSTOS-\$HOSTARCH
-      chmod +x $WORKSPACE/bin/voltctl
-
+    """
+    // install voltctl
+    installVoltctl("${cfg.branch}")
+    sh """
       # start the kind cluster
       kind create cluster --name ${cfg.name} --config kind.cfg
 
diff --git a/vars/installVoltctl.groovy b/vars/installVoltctl.groovy
new file mode 100644
index 0000000..3608537
--- /dev/null
+++ b/vars/installVoltctl.groovy
@@ -0,0 +1,29 @@
+// This keyword will install the voltctl based on the branch (e.g.: voltha-2.8 or master)
+def call(String branch) {
+
+  def voltctlVersion = ""
+  if (branch == "voltha-2.8") {
+    voltctlVersion = "1.6.11"
+  } else {
+    voltctlVersion = sh (
+      script: "curl -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g'",
+      returnStdout: true
+    ).trim()
+  }
+
+  println "Installing voltctl version ${voltctlVersion} on branch ${branch}"
+
+  sh returnStdout: false, script: """
+
+    mkdir -p $WORKSPACE/bin
+    cd $WORKSPACE
+    HOSTOS=\$(uname -s | tr "[:upper:]" "[:lower:"])
+    HOSTARCH=\$(uname -m | tr "[:upper:]" "[:lower:"])
+    if [ \$HOSTARCH == "x86_64" ]; then
+       HOSTARCH="amd64"
+    fi
+    curl -o $WORKSPACE/bin/voltctl -sSL https://github.com/opencord/voltctl/releases/download/v${voltctlVersion}/voltctl-${voltctlVersion}-\${HOSTOS}-\${HOSTARCH}
+    chmod 755 $WORKSPACE/bin/voltctl
+    voltctl version --clientonly
+  """
+}