Merge "Add pull request verification job for UP4"
diff --git a/jjb/charts.yaml b/jjb/charts.yaml
index 8ae7e38..9908e7c 100644
--- a/jjb/charts.yaml
+++ b/jjb/charts.yaml
@@ -67,7 +67,6 @@
           git clone ssh://jenkins@gerrit.opencord.org:29418/helm-repo-tools.git
 
           # Setup helm and external repos
-          helm init --client-only
           helm repo add stable https://charts.helm.sh/stable
           helm repo add rook-release https://charts.rook.io/release
           helm repo add cord https://charts.opencord.org
@@ -164,7 +163,6 @@
           set -eu -o pipefail
 
           # Setup helm and external repos
-          helm init --client-only
           helm repo add stable https://charts.helm.sh/stable
           helm repo add rook-release https://charts.rook.io/release
           helm repo add cord https://charts.opencord.org
diff --git a/jjb/cord-test/nightly-build-pipeline.yaml b/jjb/cord-test/nightly-build-pipeline.yaml
index d270b13..57cd09b 100644
--- a/jjb/cord-test/nightly-build-pipeline.yaml
+++ b/jjb/cord-test/nightly-build-pipeline.yaml
@@ -23,6 +23,8 @@
                   Created by QA (Suchitra Vemuri - suchitra@opennetworking.org ) <br />
                   Copyright (c) 2018 Open Networking Foundation (ONF)
 
+    openoltAdapterChart: onf/voltha-adapter-openolt
+
     <<: *test-pipe-job-boiler-plate
 
     parameters:
@@ -134,6 +136,12 @@
           name: NumOfAtomix
           default: '{num-of-atomix}'
           description: 'Installs the specified Number of Atomix Instances'
+
+      - string:
+          name: openoltAdapterChart
+          default: '{openoltAdapterChart}'
+          description: 'OpenOLT chart name (or location on file system)'
+
     concurrent: true
 
     pipeline-scm:
diff --git a/jjb/cord-test/voltha.yaml b/jjb/cord-test/voltha.yaml
index 77e54e6..8f7da86 100644
--- a/jjb/cord-test/voltha.yaml
+++ b/jjb/cord-test/voltha.yaml
@@ -21,6 +21,7 @@
     kindVolthaChange: ''
     cordTesterChange: ''
 
+
     jobs:
       # flex OCP pod with olt/onu - manual test job, voltha master build job
       - 'build_pod_manual':
@@ -503,68 +504,6 @@
           pipeline-script: 'voltha-physical-soak-dt-tests.groovy'
           time-trigger: "H H */3 * *"
 
-      # Infosys pod with olt/onu - Default tech profile and timer based job
-      - 'build_voltha_pod_release_timer':
-          build-node: 'infosys-test-pod'
-          config-pod: 'infosys-pod'
-          release: 'master'
-          branch: 'master'
-          test-repo: 'voltha-system-tests'
-          Jenkinsfile: 'Jenkinsfile-voltha-build'
-          configurePod: true
-          profile: 'Default'
-          time: '10'
-
-      # infosys test job - uses Default tech profile on voltha branch
-      - 'build_voltha_pod_test':
-          build-node: 'infosys-test-pod'
-          config-pod: 'infosys-pod'
-          release: 'master'
-          branch: 'master'
-          test-repo: 'voltha-system-tests'
-          profile: 'Default'
-
-     # Infosys pod with olt/onu - voltha-2.5 Default tech profile and timer based job
-      - 'build_voltha_pod_release_timer':
-          build-node: 'infosys-test-pod'
-          config-pod: 'infosys-pod'
-          release: '2.6'
-          branch: 'voltha-2.6'
-          test-repo: 'voltha-system-tests'
-          Jenkinsfile: 'Jenkinsfile-voltha-build'
-          configurePod: true
-          profile: 'Default'
-          time: '12'
-
-      # infosys test job - voltha-2.5 release job, uses Default tech profile on voltha branch
-      - 'build_voltha_pod_test':
-          build-node: 'infosys-test-pod'
-          config-pod: 'infosys-pod'
-          release: '2.6'
-          branch: 'voltha-2.6'
-          test-repo: 'voltha-system-tests'
-          profile: 'Default'
-
-
-      # Infosys pod with olt/onu - Manual BUILD/TEST job
-      - 'build_pod_manual':
-          build-node: 'infosys-test-pod'
-          config-pod: 'infosys-pod'
-          release: 'master'
-          branch: 'master'
-          num-of-openonu: '1'
-          test-repo: 'voltha-system-tests'
-          Jenkinsfile: 'Jenkinsfile-voltha-build'
-          profile: 'Default'
-      # infosys test job - Manual Job
-      - 'build_pod_test':
-          build-node: 'infosys-test-pod'
-          config-pod: 'infosys-pod'
-          branch: 'master'
-          test-repo: 'voltha-system-tests'
-          profile: 'Default'
-          Jenkinsfile: 'Jenkinsfile-voltha-test'
-
       # Berlin pod with olt/onu - master versions timer based job , two OLTs
       - 'build_voltha_pod_release_timer':
           build-node: 'dt-berlin-community-pod'
@@ -684,6 +623,39 @@
           power-switch: True
           pipeline-script: 'voltha-dt-physical-functional-tests.groovy'
 
+      # Berlin pod with adtran gpon olt/onu - master 1T8GEM tech profile and timer based job
+      - 'build_voltha_pod_release_timer':
+          build-node: 'dt-berlin-community-pod'
+          config-pod: 'dt-berlin-pod-gpon-adtran'
+          release: 'master'
+          branch: 'master'
+          num-of-openonu: '1'
+          num-of-onos: '3'
+          num-of-atomix: '3'
+          name-extension: '_DT'
+          work-flow: 'DT'
+          test-repo: 'voltha-system-tests'
+          Jenkinsfile: 'Jenkinsfile-voltha-build'
+          configurePod: true
+          profile: '1T8GEM'
+          reinstall-olt: false
+          openoltAdapterChart: '/home/community/adtran-2021-01-08/voltha-helm-chart-adapter-adtran-olt_v1.2.1/voltha-adapter-adtran-olt'
+          time: '9'
+
+
+      # Berlin POD adtran test job - master versions: uses 1T8GEM tech profile on voltha branch
+      - 'build_voltha_pod_test':
+          build-node: 'dt-berlin-community-pod'
+          config-pod: 'dt-berlin-pod-gpon-adtran'
+          name-extension: '_DT'
+          work-flow: 'DT'
+          release: 'master'
+          branch: 'master'
+          test-repo: 'voltha-system-tests'
+          profile: '1T8GEM'
+          power-switch: False
+          pipeline-script: 'voltha-dt-physical-functional-tests.groovy'
+
      # Berlin pod with gpon olt/onu - voltha-2.5 1T8GEM tech profile and timer based job
       - 'build_voltha_pod_release_timer':
           build-node: 'dt-berlin-community-pod'
diff --git a/jjb/pipeline/bbsim-scale.groovy b/jjb/pipeline/bbsim-scale.groovy
index a24d455..6a05cfd 100644
--- a/jjb/pipeline/bbsim-scale.groovy
+++ b/jjb/pipeline/bbsim-scale.groovy
@@ -1,4 +1,4 @@
-/* seba-in-a-box build+test */
+/* bbsim-scale test */
 
 pipeline {
 
diff --git a/jjb/pipeline/siab-test.groovy b/jjb/pipeline/siab-test.groovy
deleted file mode 100644
index 1ab109e..0000000
--- a/jjb/pipeline/siab-test.groovy
+++ /dev/null
@@ -1,133 +0,0 @@
-/* seba-in-a-box build+test */
-
-pipeline {
-
-  /* no label, executor is determined by JJB */
-  agent {
-    label "${params.buildNode}"
-  }
-
-  options {
-      timeout(time: 1, unit: 'HOURS')
-  }
-
-  stages {
-
-    stage ("Clean workspace") {
-      steps {
-            sh 'cd $WORKSPACE; rm -rf *'
-          }
-        }
-
-    stage('repo') {
-      steps {
-        checkout(changelog: false, \
-          poll: false,
-          scm: [$class: 'RepoScm', \
-            manifestRepositoryUrl: "https://gerrit.opencord.org/manifest.git", \
-            manifestBranch: "master", \
-            currentBranch: true, \
-            destinationDir: 'cord', \
-            forceSync: true,
-            resetFirst: true, \
-            quiet: true, \
-            jobs: 4, \
-            showAllChanges: true] \
-          )
-      }
-    }
-
-    stage('patch') {
-      steps {
-        sh """
-           pushd $WORKSPACE/cord
-           repo download helm-charts "${gerritChangeNumber}/${gerritPatchsetNumber}"
-           popd
-           """
-      }
-    }
-
-    stage ('Reset Kubeadm') {
-      steps {
-        sh """
-            pushd $WORKSPACE/cord/automation-tools/seba-in-a-box
-            make reset-kubeadm
-            popd
-            """
-            }
-        }
-
-    stage ('Install SEBA') {
-      steps {
-        sh """
-            pushd $WORKSPACE/cord/automation-tools/seba-in-a-box
-            make ${params.version}
-            popd
-            """
-            }
-        }
-
-    stage ('Run E2E Tests') {
-      steps {
-        sh """
-            pushd $WORKSPACE/cord/automation-tools/seba-in-a-box
-            make ${params.Test_Target} ${params.Test_Tags} || true
-            popd
-            """
-            }
-        }
-
-    stage ('Display Kafka Events') {
-      steps {
-        sh """
-            pushd $WORKSPACE/cord/automation-tools/seba-in-a-box
-            CORD_KAFKA_IP=\$(kubectl exec cord-kafka-0 -- ip a | grep -oE "([0-9]{1,3}\\.){3}[0-9]{1,3}\\b" | grep 192)
-            kafkacat -e -C -b \$CORD_KAFKA_IP -t onu.events -f 'Topic %t [%p] at offset %o: key %k: %s\n >0'
-            kafkacat -e -C -b \$CORD_KAFKA_IP -t authentication.events -f 'Topic %t [%p] at offset %o: key %k: %s\n >0'
-            kafkacat -e -C -b \$CORD_KAFKA_IP -t dhcp.events -f 'Topic %t [%p] at offset %o: key %k: %s\n >0'
-            popd
-            """
-            }
-        }
-
-     stage('Publish') {
-      steps {
-        sh """
-           if [ -d RobotLogs ]; then rm -r RobotLogs; fi; mkdir RobotLogs
-           cp -r $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/WorkflowValidations/*ml ./RobotLogs
-           """
-        step([$class: 'RobotPublisher',
-            disableArchiveOutput: false,
-            logFileName: 'RobotLogs/log*.html',
-            otherFiles: '',
-            outputFileName: 'RobotLogs/output*.xml',
-            outputPath: '.',
-            passThreshold: 100,
-            reportFileName: 'RobotLogs/report*.html',
-            unstableThreshold: 0]);
-      }
-    }
-
-  }
-
-    post {
-        always {
-          sh '''
-             kubectl describe pods > $WORKSPACE/kube_pods.log
-             kubectl describe pods -n voltha > $WORKSPACE/kube_voltha_pods.log
-             sudo cp /var/log/containers/*.log $WORKSPACE/
-             sudo chown cord:cord $WORKSPACE/*log
-             '''
-             archiveArtifacts artifacts: '*.log'
-             step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: "andy@opennetworking.org, kailash@opennetworking.org", sendToIndividuals: false])
-        }
-        failure {
-          sh '''
-             curl -X GET -u karaf:karaf http://127.0.0.1:30120/onos/v1/devices
-             curl -X GET -u karaf:karaf http://127.0.0.1:30120/onos/v1/devices/of:0000000000000001/ports
-             curl -X GET http://127.0.0.1:30125/api/v1/devices
-             curl -X GET http://127.0.0.1:30125/api/v1/logical_devices
-             '''
-        }
-    }
-}
diff --git a/jjb/pipeline/siab.groovy b/jjb/pipeline/siab.groovy
deleted file mode 100644
index c4ce6e8..0000000
--- a/jjb/pipeline/siab.groovy
+++ /dev/null
@@ -1,115 +0,0 @@
-/* seba-in-a-box build+test */
-
-pipeline {
-
-  /* no label, executor is determined by JJB */
-  agent {
-    label "${params.buildNode}"
-  }
-
-  options {
-      timeout(time: 1, unit: 'HOURS')
-  }
-
-  stages {
-
-    stage ("Clean workspace") {
-      steps {
-            sh 'rm -rf *'
-          }
-        }
-
-    stage ('Checkout Automation-Tools Repo') {
-      steps {
-        sh '''
-            pushd $WORKSPACE
-            git clone https://gerrit.opencord.org/automation-tools
-            popd
-            '''
-            }
-        }
-
-    stage ('Reset Kubeadm') {
-      steps {
-        sh """
-            pushd $WORKSPACE/automation-tools/seba-in-a-box
-            make reset-kubeadm
-            popd
-            """
-            }
-        }
-
-    stage ('Install SEBA') {
-      steps {
-        sh """
-            pushd $WORKSPACE/automation-tools/seba-in-a-box
-            make ${params.Test_Tags} ${params.version}
-            popd
-            """
-            }
-        }
-
-    stage ('Run E2E Tests') {
-      steps {
-        sh """
-            pushd $WORKSPACE/automation-tools/seba-in-a-box
-            make ${params.Test_Target} ${params.Test_Tags} || true
-            popd
-            """
-            }
-        }
-
-    stage ('Display Kafka Events') {
-      steps {
-        sh """
-            pushd $WORKSPACE/automation-tools/seba-in-a-box
-            CORD_KAFKA_IP=\$(kubectl get pod -l app=kafka -o json | jq -r '.items[0].status.podIP')
-            kafkacat -e -C -b \$CORD_KAFKA_IP -t onu.events -f 'Topic %t [%p] at offset %o: key %k: %s\n >0'
-            kafkacat -e -C -b \$CORD_KAFKA_IP -t authentication.events -f 'Topic %t [%p] at offset %o: key %k: %s\n >0'
-            kafkacat -e -C -b \$CORD_KAFKA_IP -t dhcp.events -f 'Topic %t [%p] at offset %o: key %k: %s\n >0'
-            popd
-            """
-            }
-        }
-
-     stage('Publish') {
-      steps {
-        sh """
-           if [ -d RobotLogs ]; then rm -r RobotLogs; fi; mkdir RobotLogs
-           cp -r $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/WorkflowValidations/*ml ./RobotLogs
-           """
-        step([$class: 'RobotPublisher',
-            disableArchiveOutput: false,
-            logFileName: 'RobotLogs/log*.html',
-            otherFiles: '',
-            outputFileName: 'RobotLogs/output*.xml',
-            outputPath: '.',
-            passThreshold: 100,
-            reportFileName: 'RobotLogs/report*.html',
-            unstableThreshold: 0]);
-      }
-    }
-
-  }
-
-    post {
-        always {
-          sh '''
-             kubectl describe pods > $WORKSPACE/kube_pods.log
-             kubectl describe pods -n voltha > $WORKSPACE/kube_voltha_pods.log
-             sudo cp /var/log/containers/*.log $WORKSPACE/
-             sudo chown cord:cord $WORKSPACE/*log
-             '''
-             archiveArtifacts artifacts: '*.log'
-             step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: "andy@opennetworking.org, kailash@opennetworking.org", sendToIndividuals: false])
-        }
-        failure {
-          sh '''
-             curl -X GET -u karaf:karaf http://127.0.0.1:30120/onos/v1/devices
-             curl -X GET -u karaf:karaf http://127.0.0.1:30120/onos/v1/devices/of:0000000000000001/ports
-             curl -X GET http://127.0.0.1:30125/api/v1/devices
-             curl -X GET http://127.0.0.1:30125/api/v1/logical_devices
-             '''
-        }
-    }
-}
diff --git a/jjb/siab.yaml b/jjb/siab.yaml
deleted file mode 100644
index bbecf55..0000000
--- a/jjb/siab.yaml
+++ /dev/null
@@ -1,228 +0,0 @@
----
-# kubespray installation validation job
-
-- project:
-    name: seba-in-a-box
-
-    project-name: '{name}'
-
-    jobs:
-      - 'siab-stable'
-      - 'siab-2.0-alpha1'
-      - 'siab-latest'
-      - 'siab-test'
-
-- job-template:
-    id: 'siab-stable'
-    name: 'seba-in-a-box-build-test-stable'
-
-    description: |
-      <!-- Managed by Jenkins Job Builder -->
-      Created by {id} job-template from ci-management/jjb/siab.yaml  <br /><br />
-      E2E Validation for Seba-in-a-Box
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: '{big-build-days-to-keep}'
-          artifact-num-to-keep: '{big-artifact-num-to-keep}'
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '{build-timeout}'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    parameters:
-      - string:
-          name: buildNode
-          default: 'qct-pod3-node1'
-          description: 'Name of the Jenkins node to run the job on'
-
-      - string:
-          name: version
-          default: 'stable'
-          description: 'Latest | Stable'
-
-      - string:
-          name: Test_Target
-          default: 'run-tests'
-          description: 'run-tests for stable and run-tests-latest for latest'
-
-      - string:
-          name: Test_Tags
-          default: ''
-          description: 'test tags or make arguments'
-
-    project-type: pipeline
-    concurrent: false
-
-    dsl: !include-raw-escape: pipeline/siab.groovy
-
-    triggers:
-      - timed: |
-                 TZ=America/Los_Angeles
-                 0 0,3,6,9,12,15,18,21 * * *
-
-- job-template:
-    id: 'siab-2.0-alpha1'
-    name: 'seba-in-a-box-build-test-2.0-alpha1'
-
-    description: |
-      <!-- Managed by Jenkins Job Builder -->
-      Created by {id} job-template from ci-management/jjb/siab.yaml, with pipeline: siab.groovy <br /><br />
-      E2E Validation for Seba-in-a-Box
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: '{big-build-days-to-keep}'
-          artifact-num-to-keep: '{big-artifact-num-to-keep}'
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '{build-timeout}'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    parameters:
-      - string:
-          name: buildNode
-          default: 'qct-pod3-node1'
-          description: 'Name of the Jenkins node to run the job on'
-
-      - string:
-          name: version
-          default: 'siab-2.0-alpha1'
-          description: 'Latest | Stable'
-
-      - string:
-          name: Test_Target
-          default: 'run-tests'
-          description: 'run-tests for stable and run-tests-latest for latest'
-
-      - string:
-          name: Test_Tags
-          default: ''
-          description: 'test tags or make arguments'
-
-    project-type: pipeline
-    concurrent: false
-
-    dsl: !include-raw-escape: pipeline/siab.groovy
-
-    triggers:
-      - timed: |
-                 TZ=America/Los_Angeles
-                 0 1,4,7,10,13,16,19,22 * * *
-
-- job-template:
-    id: 'siab-latest'
-    name: 'seba-in-a-box-build-test-latest'
-
-    description: |
-      <!-- Managed by Jenkins Job Builder -->
-      Created by {id} job-template from ci-management/jjb/siab.yaml, with pipeline: siab.groovy <br /><br />
-      E2E Validation for Seba-in-a-Box
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: '{big-build-days-to-keep}'
-          artifact-num-to-keep: '{big-artifact-num-to-keep}'
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '{build-timeout}'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    parameters:
-      - string:
-          name: buildNode
-          default: 'qct-pod3-node1'
-          description: 'Name of the Jenkins node to run the job on'
-
-      - string:
-          name: version
-          default: 'latest'
-          description: 'Latest | Stable'
-
-      - string:
-          name: Test_Target
-          default: 'run-tests-latest'
-          description: 'run-tests for stable and run-tests-latest for latest'
-
-      - string:
-          name: Test_Tags
-          default: ''
-          description: 'test tags or make arguments'
-
-    project-type: pipeline
-    concurrent: false
-
-    dsl: !include-raw-escape: pipeline/siab.groovy
-
-    triggers:
-      - timed: |
-                 TZ=America/Los_Angeles
-                 0 2,5,8,11,14,17,20,23 * * *
-
-
-- job-template:
-    id: 'siab-test'
-    name: 'seba-in-a-box-build-test'
-
-    description: |
-      <!-- Managed by Jenkins Job Builder -->
-      Created by {id} job-template from ci-management/jjb/siab.yaml, with pipeline: siab-test.groovy <br /><br />
-      E2E Validation for Seba-in-a-Box
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: '{big-build-days-to-keep}'
-          artifact-num-to-keep: '{big-artifact-num-to-keep}'
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '{build-timeout}'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    parameters:
-      - string:
-          name: buildNode
-          default: 'qct-pod1-node2'
-          description: 'Name of the Jenkins node to run the job on'
-
-
-      - string:
-          name: gerritChangeNumber
-          default: '$GERRIT_CHANGE_NUMBER'
-          description: 'Changeset number in Gerrit'
-
-      - string:
-          name: gerritPatchsetNumber
-          default: '$GERRIT_PATCHSET_NUMBER'
-          description: 'PatchSet number in Gerrit'
-
-      - string:
-          name: version
-          default: 'stable'
-          description: 'Latest | Stable'
-
-      - string:
-          name: Test_Target
-          default: 'run-tests'
-          description: 'run-tests for stable and run-tests-latest for latest'
-
-      - string:
-          name: Test_Tags
-          default: 'TESTTAGS=test1'
-          description: 'test tags or make arguments'
-
-    project-type: pipeline
-    concurrent: false
-
-    dsl: !include-raw-escape: pipeline/siab-test.groovy
-
-    triggers:
-      - cord-infra-gerrit-trigger-patchset:
-          gerrit-server-name: '{gerrit-server-name}'
-          project-regexp: 'helm-charts'
-          branch-regexp: 'master'
-          dependency-jobs: '{dependency-jobs}'
-          file-include-regexp: '{siab-projects-regexp}'
diff --git a/jjb/voltha-e2e.yaml b/jjb/voltha-e2e.yaml
index c215ab6..817e15f 100644
--- a/jjb/voltha-e2e.yaml
+++ b/jjb/voltha-e2e.yaml
@@ -154,7 +154,7 @@
           name: 'verify_physical_voltha_patchset_auto'
           build-node: 'tucson-pod'
           config-pod: 'tucson-pod'
-          oltDebVersionMaster: 'openolt_asfvolt16-3.2.0-fc10f0d035181d3125ffc6e7a60bf5328fcf5bfa-40G-NNI.deb'
+          oltDebVersionMaster: 'openolt_asfvolt16-3.3.2-f7feb4b828467ccc99104b56b29dc7a19aa2008b-40G-NNI.deb'
           oltDebVersionVoltha23: 'openolt_asfvolt16-3.2.0-fc10f0d035181d3125ffc6e7a60bf5328fcf5bfa-40G-NNI.deb'
           profile: 'Default'
 
@@ -163,7 +163,7 @@
           name: 'verify_physical_voltha_patchset_manual'
           build-node: 'tucson-pod'
           config-pod: 'tucson-pod'
-          oltDebVersionMaster: 'openolt_asfvolt16-3.2.0-fc10f0d035181d3125ffc6e7a60bf5328fcf5bfa-40G-NNI.deb'
+          oltDebVersionMaster: 'openolt_asfvolt16-3.3.2-f7feb4b828467ccc99104b56b29dc7a19aa2008b-40G-NNI.deb'
           oltDebVersionVoltha23: 'openolt_asfvolt16-3.2.0-fc10f0d035181d3125ffc6e7a60bf5328fcf5bfa-40G-NNI.deb'
           profile: 'Default'
           trigger-string: 'hardware test'
@@ -175,7 +175,7 @@
           name: 'verify_physical_voltha_patchset_manual_DT'
           build-node: 'tucson-pod'
           config-pod: 'tucson-pod-DT'
-          oltDebVersionMaster: 'openolt_asfvolt16-3.2.0-fc10f0d035181d3125ffc6e7a60bf5328fcf5bfa-40G-NNI.deb'
+          oltDebVersionMaster: 'openolt_asfvolt16-3.3.2-f7feb4b828467ccc99104b56b29dc7a19aa2008b-40G-NNI.deb'
           oltDebVersionVoltha23: 'openolt_asfvolt16-3.2.0-fc10f0d035181d3125ffc6e7a60bf5328fcf5bfa-40G-NNI.deb'
           profile: 'Default'
           pipeline-script: 'voltha-dt-physical-build-and-tests.groovy'
@@ -191,7 +191,7 @@
           build-node: 'tucson-pod'
           config-pod: 'tucson-pod'
           manualBranch: 'master'
-          oltDebVersionMaster: 'openolt_asfvolt16-3.2.0-fc10f0d035181d3125ffc6e7a60bf5328fcf5bfa-40G-NNI.deb'
+          oltDebVersionMaster: 'openolt_asfvolt16-3.3.2-f7feb4b828467ccc99104b56b29dc7a19aa2008b-40G-NNI.deb'
           oltDebVersionVoltha23: 'openolt_asfvolt16-3.2.0-fc10f0d035181d3125ffc6e7a60bf5328fcf5bfa-40G-NNI.deb'
           profile: 'Default'
 
diff --git a/packer/provision/basebuild.sh b/packer/provision/basebuild.sh
index 429ea8e..22b8953 100644
--- a/packer/provision/basebuild.sh
+++ b/packer/provision/basebuild.sh
@@ -349,10 +349,10 @@
     chmod a+x /usr/local/bin/repo
 
     # install helm
-    HELM_VERSION="2.16.10"
-    HELM_SHA256SUM="65a4857611a4e65b255ec192cbdb34d47212f041260f81a1039c05a8bb9ea041"
+    HELM_VERSION="3.4.2"
+    HELM_SHA256SUM="cacde7768420dd41111a4630e047c231afa01f67e49cc0c6429563e024da4b98"
     HELM_PLATFORM="linux-amd64"
-    curl -L -o /tmp/helm.tgz "https://storage.googleapis.com/kubernetes-helm/helm-v${HELM_VERSION}-${HELM_PLATFORM}.tar.gz"
+    curl -L -o /tmp/helm.tgz "https://get.helm.sh/helm-v${HELM_VERSION}-${HELM_PLATFORM}.tar.gz"
     echo "$HELM_SHA256SUM  /tmp/helm.tgz" | sha256sum -c -
     pushd /tmp
     tar -xzvf helm.tgz