Merge "[VOL-4565] Fixing ONU template path for scale tests"
diff --git a/jjb/defaults.yaml b/jjb/defaults.yaml
index a2875d9..1bf6631 100644
--- a/jjb/defaults.yaml
+++ b/jjb/defaults.yaml
@@ -200,7 +200,7 @@
 
     # karaf-home
     # Use to grab the logs or onos-diagnostics
-    karaf-home: 'apache-karaf-4.2.9'
+    karaf-home: 'apache-karaf-4.2.14'
 
     # maven version
     # Have to setup JAVA_HOME correctly if we upgrade to mvn36
diff --git a/jjb/pipeline/voltha/master/physical-build.groovy b/jjb/pipeline/voltha/master/physical-build.groovy
old mode 100644
new mode 100755
index 51313a6..213f5a6
--- a/jjb/pipeline/voltha/master/physical-build.groovy
+++ b/jjb/pipeline/voltha/master/physical-build.groovy
@@ -182,20 +182,16 @@
                 export KUBECONFIG=$WORKSPACE/${configBaseDir}/${configKubernetesDir}/${configFileName}.conf
                 etcd_container=\$(kubectl get pods -n ${infraNamespace} -l app.kubernetes.io/name=etcd --no-headers | awk 'NR==1{print \$1}')
                 if [[ "${workFlow}" == "TT" ]]; then
+                   kubectl cp -n ${infraNamespace} $WORKSPACE/voltha-system-tests/tests/data/TechProfile-TT-HSIA.json \$etcd_container:/tmp/hsia.json
+                   kubectl exec -n ${infraNamespace} -it \$etcd_container -- /bin/sh -c 'cat /tmp/hsia.json | ETCDCTL_API=3 etcdctl put service/voltha/technology_profiles/${tech_prof_directory}/64'
+                   kubectl cp -n ${infraNamespace} $WORKSPACE/voltha-system-tests/tests/data/TechProfile-TT-VoIP.json \$etcd_container:/tmp/voip.json
+                   kubectl exec -n ${infraNamespace} -it \$etcd_container -- /bin/sh -c 'cat /tmp/voip.json | ETCDCTL_API=3 etcdctl put service/voltha/technology_profiles/${tech_prof_directory}/65'
                    if [[ "${params.enableMultiUni}" == "true" ]]; then
-                      kubectl cp -n ${infraNamespace} $WORKSPACE/voltha-system-tests/tests/data/TechProfile-TT-multi-uni-HSIA.json \$etcd_container:/tmp/hsia.json
-                      kubectl exec -n ${infraNamespace} -it \$etcd_container -- /bin/sh -c 'cat /tmp/hsia.json | ETCDCTL_API=3 etcdctl put service/voltha/technology_profiles/${tech_prof_directory}/64'
-                      kubectl cp -n ${infraNamespace} $WORKSPACE/voltha-system-tests/tests/data/TechProfile-TT-multi-uni-VoIP.json \$etcd_container:/tmp/voip.json
-                      kubectl exec -n ${infraNamespace} -it \$etcd_container -- /bin/sh -c 'cat /tmp/voip.json | ETCDCTL_API=3 etcdctl put service/voltha/technology_profiles/${tech_prof_directory}/65'
                       kubectl cp -n ${infraNamespace} $WORKSPACE/voltha-system-tests/tests/data/TechProfile-TT-multi-uni-MCAST-AdditionalBW-None.json \$etcd_container:/tmp/mcast_additionalBW_none.json
                       kubectl exec -n ${infraNamespace} -it \$etcd_container -- /bin/sh -c 'cat /tmp/mcast_additionalBW_none.json | ETCDCTL_API=3 etcdctl put service/voltha/technology_profiles/${tech_prof_directory}/66'
                       kubectl cp -n ${infraNamespace} $WORKSPACE/voltha-system-tests/tests/data/TechProfile-TT-multi-uni-MCAST-AdditionalBW-NA.json \$etcd_container:/tmp/mcast_additionalBW_na.json
                       kubectl exec -n ${infraNamespace} -it \$etcd_container -- /bin/sh -c 'cat /tmp/mcast_additionalBW_na.json | ETCDCTL_API=3 etcdctl put service/voltha/technology_profiles/${tech_prof_directory}/67'
                    else
-                      kubectl cp -n ${infraNamespace} $WORKSPACE/voltha-system-tests/tests/data/TechProfile-TT-HSIA.json \$etcd_container:/tmp/hsia.json
-                      kubectl exec -n ${infraNamespace} -it \$etcd_container -- /bin/sh -c 'cat /tmp/hsia.json | ETCDCTL_API=3 etcdctl put service/voltha/technology_profiles/${tech_prof_directory}/64'
-                      kubectl cp -n ${infraNamespace} $WORKSPACE/voltha-system-tests/tests/data/TechProfile-TT-VoIP.json \$etcd_container:/tmp/voip.json
-                      kubectl exec -n ${infraNamespace} -it \$etcd_container -- /bin/sh -c 'cat /tmp/voip.json | ETCDCTL_API=3 etcdctl put service/voltha/technology_profiles/${tech_prof_directory}/65'
                       kubectl cp -n ${infraNamespace} $WORKSPACE/voltha-system-tests/tests/data/TechProfile-TT-MCAST-AdditionalBW-None.json \$etcd_container:/tmp/mcast_additionalBW_none.json
                       kubectl exec -n ${infraNamespace} -it \$etcd_container -- /bin/sh -c 'cat /tmp/mcast_additionalBW_none.json | ETCDCTL_API=3 etcdctl put service/voltha/technology_profiles/${tech_prof_directory}/66'
                       kubectl cp -n ${infraNamespace} $WORKSPACE/voltha-system-tests/tests/data/TechProfile-TT-MCAST-AdditionalBW-NA.json \$etcd_container:/tmp/mcast_additionalBW_na.json
diff --git a/jjb/pipeline/voltha/master/software-upgrades.groovy b/jjb/pipeline/voltha/master/software-upgrades.groovy
index 387cbda..a6a56b4 100755
--- a/jjb/pipeline/voltha/master/software-upgrades.groovy
+++ b/jjb/pipeline/voltha/master/software-upgrades.groovy
@@ -33,7 +33,7 @@
       _TAG=kail-${name} kail -n ${infraNamespace} -n ${volthaNamespace} > ${logsDir}/onos-voltha-startup-combined.log &
       """
       def extraHelmFlags = extraHelmFlags.trim()
-      if ("${name}" == "onos-app-upgrade" || "${name}" == "onu-software-upgrade" || "${name}" == "voltha-component-upgrade") {
+      if ("${name}" == "onos-app-upgrade" || "${name}" == "onu-software-upgrade" || "${name}" == "voltha-component-upgrade" || "${name}" == "voltha-component-rolling-upgrade") {
           extraHelmFlags = " --set global.log_level=${logLevel.toUpperCase()},onu=1,pon=1 --set onos-classic.replicas=3,onos-classic.atomix.replicas=3 " + extraHelmFlags
       }
       if ("${name}" == "onu-image-dwl-simultaneously") {
@@ -42,7 +42,7 @@
       if ("${name}" == "onos-app-upgrade" || "${name}" == "onu-software-upgrade" || "${name}" == "onu-image-dwl-simultaneously") {
           extraHelmFlags = " --set global.image_tag=master --set onos-classic.image.tag=master " + extraHelmFlags
       }
-      if ("${name}" == "voltha-component-upgrade") {
+      if ("${name}" == "voltha-component-upgrade" || "${name}" == "voltha-component-rolling-upgrade") {
           extraHelmFlags = " --set images.onos_config_loader.tag=master-onos-config-loader --set onos-classic.image.tag=master " + extraHelmFlags
       }
       extraHelmFlags = extraHelmFlags + " --set onos-classic.onosSshPort=30115 --set onos-classic.onosApiPort=30120 "
@@ -117,7 +117,7 @@
           export ROBOT_MISC_ARGS="-d \$ROBOT_LOGS_DIR -v onos_apps_under_test:\$ONOS_APPS_UNDER_TEST -e PowerSwitch"
           export TARGET=onos-app-upgrade-test
         fi
-        if [[ ${name} == 'voltha-component-upgrade' ]]; then
+        if [ ${name} == 'voltha-component-upgrade' ] || [ ${name} == 'voltha-component-rolling-upgrade' ]; then
           export VOLTHA_COMPS_UNDER_TEST+=''
           if [ ${adapterOpenOltImage.trim()} != '' ]; then
             VOLTHA_COMPS_UNDER_TEST+="adapter-open-olt,adapter-open-olt,${adapterOpenOltImage.trim()}*"
@@ -132,8 +132,13 @@
             VOLTHA_COMPS_UNDER_TEST+="ofagent,ofagent,${ofAgentImage.trim()}*"
           fi
           export ROBOT_MISC_ARGS="-d \$ROBOT_LOGS_DIR -v voltha_comps_under_test:\$VOLTHA_COMPS_UNDER_TEST -e PowerSwitch"
+        fi
+        if [[ ${name} == 'voltha-component-upgrade' ]]; then
           export TARGET=voltha-comp-upgrade-test
         fi
+        if [[ ${name} == 'voltha-component-rolling-upgrade' ]]; then
+          export TARGET=voltha-comp-rolling-upgrade-test
+        fi
         if [[ ${name} == 'onu-software-upgrade' ]]; then
           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
@@ -183,7 +188,7 @@
   """
   sh '''
   # copy the ONOS logs directly from the container to avoid the color codes
-  printf '%s\\n' $(kubectl get pods -n infra -l app=onos-classic -o=jsonpath="{.items[*]['metadata.name']}") | xargs --no-run-if-empty -I# bash -c 'kubectl -n infra cp #:apache-karaf-4.2.9/data/log/karaf.log ''' + dest + '''/#.log' || true
+  printf '%s\\n' $(kubectl get pods -n infra -l app=onos-classic -o=jsonpath="{.items[*]['metadata.name']}") | xargs --no-run-if-empty -I# bash -c 'kubectl -n infra cp #:apache-karaf-4.2.14/data/log/karaf.log ''' + dest + '''/#.log' || true
   '''
 }
 pipeline {
@@ -228,6 +233,7 @@
       steps {
         test_software_upgrade("onos-app-upgrade")
         test_software_upgrade("voltha-component-upgrade")
+        test_software_upgrade("voltha-component-rolling-upgrade")
         test_software_upgrade("onu-software-upgrade")
         test_software_upgrade("onu-image-dwl-simultaneously")
       }
diff --git a/jjb/pipeline/voltha/master/voltha-scale-multi-stack.groovy b/jjb/pipeline/voltha/master/voltha-scale-multi-stack.groovy
index ef09ef0..1e17241 100644
--- a/jjb/pipeline/voltha/master/voltha-scale-multi-stack.groovy
+++ b/jjb/pipeline/voltha/master/voltha-scale-multi-stack.groovy
@@ -295,6 +295,7 @@
           sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 8101 karaf@127.0.0.1 volt-olts > $LOG_FOLDER/onos-olt-list.txt || true
           sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 8101 karaf@127.0.0.1 flows -s > $LOG_FOLDER/onos-flows-list.txt || true
           sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 8101 karaf@127.0.0.1 meters > $LOG_FOLDER/onos-meters-list.txt || true
+          sshpass -e ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 volt-port-status > $LOG_FOLDER/onos-volt-port-status.txt || true
         fi
 
         if [ ${provisionSubscribers} = true ]; then
diff --git a/jjb/pipeline/voltha/master/voltha-scale-test.groovy b/jjb/pipeline/voltha/master/voltha-scale-test.groovy
index 526c379..b6958f7 100644
--- a/jjb/pipeline/voltha/master/voltha-scale-test.groovy
+++ b/jjb/pipeline/voltha/master/voltha-scale-test.groovy
@@ -699,13 +699,13 @@
         printf '%s\n' $(kubectl get pods -l app=onos-classic -o=jsonpath="{.items[*]['metadata.name']}") | xargs --no-run-if-empty -I# bash -c "kubectl cp #:${karafHome}/data/log/karaf.log $LOG_FOLDER/#.log" || true
 
         # get ONOS cfg from the 3 nodes
-        # kubectl exec -t voltha-infra-onos-classic-0 -- sh /root/onos/apache-karaf-4.2.9/bin/client cfg get > ~/voltha-infra-onos-classic-0-cfg.txt || true
-        # kubectl exec -t voltha-infra-onos-classic-1 -- sh /root/onos/apache-karaf-4.2.9/bin/client cfg get > ~/voltha-infra-onos-classic-1-cfg.txt || true
-        # kubectl exec -t voltha-infra-onos-classic-2 -- sh /root/onos/apache-karaf-4.2.9/bin/client cfg get > ~/voltha-infra-onos-classic-2-cfg.txt || true
+        # kubectl exec -t voltha-infra-onos-classic-0 -- sh /root/onos/${karafHome}/bin/client cfg get > ~/voltha-infra-onos-classic-0-cfg.txt || true
+        # kubectl exec -t voltha-infra-onos-classic-1 -- sh /root/onos/${karafHome}/bin/client cfg get > ~/voltha-infra-onos-classic-1-cfg.txt || true
+        # kubectl exec -t voltha-infra-onos-classic-2 -- sh /root/onos/${karafHome}/bin/client cfg get > ~/voltha-infra-onos-classic-2-cfg.txt || true
 
-        # kubectl exec -t voltha-infra-onos-classic-0 -- sh /root/onos/apache-karaf-4.2.9/bin/client obj-next-ids > ~/voltha-infra-onos-classic-0-next-objs.txt || true
-        # kubectl exec -t voltha-infra-onos-classic-1 -- sh /root/onos/apache-karaf-4.2.9/bin/client obj-next-ids > ~/voltha-infra-onos-classic-1-next-objs.txt || true
-        # kubectl exec -t voltha-infra-onos-classic-2 -- sh /root/onos/apache-karaf-4.2.9/bin/client obj-next-ids > ~/voltha-infra-onos-classic-2-next-objs.txt || true
+        # kubectl exec -t voltha-infra-onos-classic-0 -- sh /root/onos/${karafHome}/bin/client obj-next-ids > ~/voltha-infra-onos-classic-0-next-objs.txt || true
+        # kubectl exec -t voltha-infra-onos-classic-1 -- sh /root/onos/${karafHome}/bin/client obj-next-ids > ~/voltha-infra-onos-classic-1-next-objs.txt || true
+        # kubectl exec -t voltha-infra-onos-classic-2 -- sh /root/onos/${karafHome}/bin/client obj-next-ids > ~/voltha-infra-onos-classic-2-next-objs.txt || true
 
         # get radius logs out of the container
         kubectl cp $(kubectl get pods -l app=radius --no-headers  | awk '{print $1}'):/var/log/freeradius/radius.log $LOG_FOLDER/radius.log || true
@@ -755,6 +755,7 @@
           sshpass -e ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 volt-olts > $LOG_FOLDER/onos-olt-list.txt
           sshpass -e ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 flows -s > $LOG_FOLDER/onos-flows-list.txt
           sshpass -e ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 meters > $LOG_FOLDER/onos-meters-list.txt
+          sshpass -e ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 volt-port-status > $LOG_FOLDER/onos-volt-port-status.txt
         fi
 
         if [ ${provisionSubscribers} = true ]; then
diff --git a/jjb/software-upgrades.yaml b/jjb/software-upgrades.yaml
index ef10083..4c36562 100644
--- a/jjb/software-upgrades.yaml
+++ b/jjb/software-upgrades.yaml
@@ -11,20 +11,20 @@
           pipeline-script: 'voltha/master/software-upgrades.groovy'
           build-node: 'ubuntu18.04-basebuild-8c-15g'
           code-branch: 'master'
-          aaa-version: '2.5.0'
-          aaa-oar-url: 'https://oss.sonatype.org/content/groups/public/org/opencord/aaa-app/2.5.0/aaa-app-2.5.0.oar'
-          olt-version: '5.0.1'
-          olt-oar-url: 'https://oss.sonatype.org/content/groups/public/org/opencord/olt-app/5.0.1/olt-app-5.0.1.oar'
-          dhcpl2relay-version: '2.6.0'
-          dhcpl2relay-oar-url: 'https://oss.sonatype.org/content/groups/public/org/opencord/dhcpl2relay-app/2.6.0/dhcpl2relay-app-2.6.0.oar'
-          igmpproxy-version: '2.4.0'
-          igmpproxy-oar-url: 'https://oss.sonatype.org/content/groups/public/org/opencord/onos-app-igmpproxy-app/2.4.0/onos-app-igmpproxy-app-2.4.0.oar'
-          sadis-version: '5.5.1'
-          sadis-oar-url: 'https://oss.sonatype.org/content/groups/public/org/opencord/sadis-app/5.5.1/sadis-app-5.5.1.oar'
-          mcast-version: '2.5.0'
-          mcast-oar-url: 'https://oss.sonatype.org/content/groups/public/org/opencord/mcast-app/2.5.0/mcast-app-2.5.0.oar'
-          kafka-version: '2.8.0'
-          kafka-oar-url: 'https://oss.sonatype.org/content/groups/public/org/opencord/kafka/2.8.0/kafka-2.8.0.oar'
+          aaa-version: '2.6.0.SNAPSHOT'
+          aaa-oar-url: 'https://oss.sonatype.org/content/groups/public/org/opencord/aaa-app/2.6.0-SNAPSHOT/aaa-app-2.6.0-20211227.162925-1.oar'
+          olt-version: '5.1.0.SNAPSHOT'
+          olt-oar-url: 'https://oss.sonatype.org/content/groups/public/org/opencord/olt-app/5.1.0-SNAPSHOT/olt-app-5.1.0-20211227.175953-1.oar'
+          dhcpl2relay-version: '2.7.0.SNAPSHOT'
+          dhcpl2relay-oar-url: 'https://oss.sonatype.org/content/groups/public/org/opencord/dhcpl2relay-app/2.7.0-SNAPSHOT/dhcpl2relay-app-2.7.0-20211227.173623-1.oar'
+          igmpproxy-version: '2.5.0.SNAPSHOT'
+          igmpproxy-oar-url: 'https://oss.sonatype.org/content/groups/public/org/opencord/onos-app-igmpproxy-app/2.5.0-SNAPSHOT/onos-app-igmpproxy-app-2.5.0-20211227.182108-1.oar'
+          sadis-version: '5.6.0.SNAPSHOT'
+          sadis-oar-url: 'https://oss.sonatype.org/content/groups/public/org/opencord/sadis-app/5.6.0-SNAPSHOT/sadis-app-5.6.0-20211227.140818-1.oar'
+          mcast-version: '2.6.0.SNAPSHOT'
+          mcast-oar-url: 'https://oss.sonatype.org/content/groups/public/org/opencord/mcast-app/2.6.0-SNAPSHOT/mcast-app-2.6.0-20211227.170629-1.oar'
+          kafka-version: '2.9.0.SNAPSHOT'
+          kafka-oar-url: 'https://oss.sonatype.org/content/groups/public/org/opencord/kafka/2.9.0-SNAPSHOT/kafka-2.9.0-20211228.090937-1.oar'
           adapter-open-olt-image: 'voltha/voltha-openolt-adapter:4.1.5'
           adapter-open-onu-image: 'voltha/voltha-openonu-adapter-go:2.1.3'
           rw-core-image: 'voltha/voltha-rw-core:3.0.2'
diff --git a/jjb/verify/up4.yaml b/jjb/verify/up4.yaml
index 087b66b..5baf8e3 100644
--- a/jjb/verify/up4.yaml
+++ b/jjb/verify/up4.yaml
@@ -20,6 +20,7 @@
     jobs:
       - "up4-pr-verify"
       - "up4-postmerge"
+      - "up4-devel-nightly"
 
 - job-template:
     id: "up4-pr-verify"
@@ -132,3 +133,60 @@
           - text:
               credential-id: codecov-up4
               variable: CODECOV_TOKEN
+
+- job-template:
+    id: "up4-devel-nightly"
+    name: "up4-devel-nightly"
+    description: |
+      Created by {id} job-template from ci-management/up4.yaml<br/>
+
+    project-type: pipeline
+    concurrent: true
+
+    properties:
+      # Visibility restricted to Aether members only.
+      - cord-infra-aether-private:
+      - cord-infra-properties:
+          build-days-to-keep: "15"
+          artifact-num-to-keep: "-1"
+      - github:
+          url: "https://github.com/{github-organization}/{project}"
+
+    parameters:
+      - string:
+          name: buildNode
+          default: "{build-node}"
+          description: "Name of the Jenkins executor node to run the job on."
+      - string:
+          name: commitHash
+          default: 'origin/{stream}'
+          description: 'SHA string of the merged commit to build. Populated by Generic Webhook Trigger.'
+      - string:
+          name: up4Env
+          default: 'devel'
+          description: 'UP4 STC scenarios environment (stable or devel)'
+
+    pipeline-scm:
+      script-path: ".jenkins/Jenkinsfile"
+      scm:
+        - git:
+            url: "git@github.com:{github-organization}/{project}.git"
+            credentials-id: "github-onf-bot-ssh-key"
+            refspec: "+refs/heads/*:refs/remotes/origin/*"
+            branches:
+              - "$commitHash"
+            submodule:
+              disable: true
+            shallow-clone: true
+
+    triggers:
+      - timed: "@midnight"
+
+    wrappers:
+      - lf-infra-wrappers:
+          build-timeout: "{build-timeout}"
+          jenkins-ssh-credential: "{jenkins-ssh-credential}"
+      - credentials-binding:
+          - text:
+              credential-id: codecov-up4
+              variable: CODECOV_TOKEN
diff --git a/jjb/voltha-scale.yaml b/jjb/voltha-scale.yaml
index e3a6f05..82e9e58 100644
--- a/jjb/voltha-scale.yaml
+++ b/jjb/voltha-scale.yaml
@@ -118,6 +118,7 @@
           withEapol: false
           withDhcp: false
           withIgmp: false
+          onosImg: matteoscandolo/voltha-onos:oltapp
           extraHelmFlags: '-f /home/jenkins/voltha-scale/voltha-values.yaml --set uni=1 --set etcd.persistence.enabled=true,etcd.persistence.storageClass=longhorn'
 
       - 'voltha-scale-measurements':
@@ -134,6 +135,7 @@
             withEapol: false
             withDhcp: false
             withIgmp: false
+            onosImg: matteoscandolo/voltha-onos:oltapp
             extraHelmFlags: '-f /home/jenkins/voltha-scale/voltha-values.yaml --set uni=1 --set etcd.persistence.enabled=true,etcd.persistence.storageClass=longhorn -f /home/cord/dt-custom-values.yaml'
 
       # multi-stack jobs
@@ -222,6 +224,7 @@
           withDhcp: true
           withIgmp: false
           release: voltha-2.8
+          karaf-home: 'apache-karaf-4.2.9'
           bbsimImg: ''
           rwCoreImg: ''
           ofAgentImg: ''
@@ -247,6 +250,7 @@
           withDhcp: false
           withIgmp: false
           release: voltha-2.8
+          karaf-home: 'apache-karaf-4.2.9'
           bbsimImg: ''
           rwCoreImg: ''
           ofAgentImg: ''
@@ -272,6 +276,7 @@
           withDhcp: true
           withIgmp: true
           release: voltha-2.8
+          karaf-home: 'apache-karaf-4.2.9'
           bbsimImg: ''
           rwCoreImg: ''
           ofAgentImg: ''
@@ -301,6 +306,7 @@
           withFlows: true
           provisionSubscribers: true
           release: voltha-2.8
+          karaf-home: 'apache-karaf-4.2.9'
           workflow: att
           withEapol: true
           withDhcp: true
@@ -333,6 +339,7 @@
           withFlows: true
           provisionSubscribers: true
           release: voltha-2.8
+          karaf-home: 'apache-karaf-4.2.9'
           workflow: dt
           withEapol: false
           withDhcp: false
@@ -365,6 +372,7 @@
           withFlows: true
           provisionSubscribers: true
           release: voltha-2.8
+          karaf-home: 'apache-karaf-4.2.9'
           workflow: tt
           withEapol: false
           withDhcp: true
@@ -712,7 +720,7 @@
     volthaHelmChartsChange: ''
     kindVolthaChange: ''
     inMemoryEtcdStorage: true
-    karafHome: 'apache-karaf-4.2.9'
+    karafHome: 'apache-karaf-4.2.14'
     logLevel: 'INFO'
     dockerRegistry: 10.90.0.101:30500
     trigger-comment: vv7CBoQQYYonvaN8xcru
@@ -816,7 +824,7 @@
     volthaHelmChartsChange: ''
     kindVolthaChange: ''
     inMemoryEtcdStorage: true
-    karafHome: 'apache-karaf-4.2.9'
+    karafHome: 'apache-karaf-4.2.14'
     logLevel: 'INFO'
     dockerRegistry: 10.90.0.69:30500