diff --git a/jjb/pipeline/voltha/master/physical-build.groovy b/jjb/pipeline/voltha/master/physical-build.groovy
index 0f91422..ee49e55 100644
--- a/jjb/pipeline/voltha/master/physical-build.groovy
+++ b/jjb/pipeline/voltha/master/physical-build.groovy
@@ -52,7 +52,7 @@
     stage ("Parse deployment configuration file") {
       steps {
         sh returnStdout: true, script: "rm -rf ${configBaseDir}"
-        sh returnStdout: true, script: "git clone -b master ${cordRepoUrl}/${configBaseDir}"
+        sh returnStdout: true, script: "git clone -b ${branch} ${cordRepoUrl}/${configBaseDir}"
         script {
           if ( params.workFlow == "DT" ) {
             deployment_config = readYaml file: "${configBaseDir}/${configDeploymentDir}/${configFileName}-DT.yaml"
diff --git a/jjb/pipeline/voltha/master/software-upgrades.groovy b/jjb/pipeline/voltha/master/software-upgrades.groovy
index 83ee47b..ffc4be6 100644
--- a/jjb/pipeline/voltha/master/software-upgrades.groovy
+++ b/jjb/pipeline/voltha/master/software-upgrades.groovy
@@ -184,22 +184,6 @@
         helmTeardown(['infra', 'voltha'])
       }
     }
-    stage('Install latest voltctl') {
-      steps {
-        sh """
-          mkdir -p $WORKSPACE/bin || true
-          # install voltctl
-          HOSTOS="\$(uname -s | tr "[:upper:]" "[:lower:"])"
-          HOSTARCH="\$(uname -m | tr "[:upper:]" "[:lower:"])"
-          if [ "\$HOSTARCH" == "x86_64" ]; then
-              HOSTARCH="amd64"
-          fi
-          VC_VERSION="\$(curl --fail -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')"
-          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
-        """
-      }
-    }
     stage('Create K8s Cluster') {
       steps {
         createKubernetesCluster([nodes: 3])
diff --git a/jjb/pipeline/voltha/master/tucson-build-and-test.groovy b/jjb/pipeline/voltha/master/tucson-build-and-test.groovy
index b644705..e8c9382 100644
--- a/jjb/pipeline/voltha/master/tucson-build-and-test.groovy
+++ b/jjb/pipeline/voltha/master/tucson-build-and-test.groovy
@@ -54,7 +54,7 @@
     stage ("Parse deployment configuration file") {
       steps {
         sh returnStdout: true, script: "rm -rf ${configBaseDir}"
-        sh returnStdout: true, script: "git clone -b master ${cordRepoUrl}/${configBaseDir}"
+        sh returnStdout: true, script: "git clone -b ${branch} ${cordRepoUrl}/${configBaseDir}"
         script {
 
           if (params.workflow.toUpperCase() == "TT") {
diff --git a/jjb/pipeline/voltha/voltha-2.8/bbsim-tests.groovy b/jjb/pipeline/voltha/voltha-2.8/bbsim-tests.groovy
index 8649916..0f1002e 100755
--- a/jjb/pipeline/voltha/voltha-2.8/bbsim-tests.groovy
+++ b/jjb/pipeline/voltha/voltha-2.8/bbsim-tests.groovy
@@ -211,7 +211,7 @@
           kind get clusters | grep ${clusterName} | wc -l
           """
           if (clusterExists.trim() == "0") {
-            createKubernetesCluster([nodes: 3, name: clusterName])
+            createKubernetesCluster([branch: "${branch}", nodes: 3, name: clusterName])
           }
         }
       }
diff --git a/jjb/pipeline/voltha/voltha-2.8/device-management-mock-tests.groovy b/jjb/pipeline/voltha/voltha-2.8/device-management-mock-tests.groovy
index 8a15ac6..10263dd 100644
--- a/jjb/pipeline/voltha/voltha-2.8/device-management-mock-tests.groovy
+++ b/jjb/pipeline/voltha/voltha-2.8/device-management-mock-tests.groovy
@@ -73,7 +73,7 @@
     }
     stage('Create K8s Cluster') {
       steps {
-        createKubernetesCluster([nodes: 3])
+        createKubernetesCluster([branch: "${branch}", nodes: 3])
       }
     }
     stage('Load image in kind nodes') {
diff --git a/jjb/pipeline/voltha/voltha-2.8/physical-build.groovy b/jjb/pipeline/voltha/voltha-2.8/physical-build.groovy
index 9ea7387..f26fd4a 100644
--- a/jjb/pipeline/voltha/voltha-2.8/physical-build.groovy
+++ b/jjb/pipeline/voltha/voltha-2.8/physical-build.groovy
@@ -52,7 +52,7 @@
     stage ("Parse deployment configuration file") {
       steps {
         sh returnStdout: true, script: "rm -rf ${configBaseDir}"
-        sh returnStdout: true, script: "git clone -b master ${cordRepoUrl}/${configBaseDir}"
+        sh returnStdout: true, script: "git clone -b ${branch} ${cordRepoUrl}/${configBaseDir}"
         script {
           if ( params.workFlow == "DT" ) {
             deployment_config = readYaml file: "${configBaseDir}/${configDeploymentDir}/${configFileName}-DT.yaml"
diff --git a/jjb/pipeline/voltha/voltha-2.8/software-upgrades.groovy b/jjb/pipeline/voltha/voltha-2.8/software-upgrades.groovy
index 285fac1..665ef57 100644
--- a/jjb/pipeline/voltha/voltha-2.8/software-upgrades.groovy
+++ b/jjb/pipeline/voltha/voltha-2.8/software-upgrades.groovy
@@ -187,25 +187,9 @@
         helmTeardown(['infra', 'voltha'])
       }
     }
-    stage('Install latest voltctl') {
-      steps {
-        sh """
-          mkdir -p $WORKSPACE/bin || true
-          # install voltctl
-          HOSTOS="\$(uname -s | tr "[:upper:]" "[:lower:"])"
-          HOSTARCH="\$(uname -m | tr "[:upper:]" "[:lower:"])"
-          if [ "\$HOSTARCH" == "x86_64" ]; then
-              HOSTARCH="amd64"
-          fi
-          VC_VERSION="\$(curl --fail -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')"
-          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
-        """
-      }
-    }
     stage('Create K8s Cluster') {
       steps {
-        createKubernetesCluster([nodes: 3])
+        createKubernetesCluster([branch: "${branch}", nodes: 3])
       }
     }
     stage('Run Test') {
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 629ed74..78a0f5e 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
@@ -54,7 +54,7 @@
     stage ("Parse deployment configuration file") {
       steps {
         sh returnStdout: true, script: "rm -rf ${configBaseDir}"
-        sh returnStdout: true, script: "git clone -b master ${cordRepoUrl}/${configBaseDir}"
+        sh returnStdout: true, script: "git clone -b ${branch} ${cordRepoUrl}/${configBaseDir}"
         script {
 
           if (params.workflow.toUpperCase() == "TT") {
@@ -102,7 +102,7 @@
           kind get clusters | grep ${clusterName} | wc -l
           """
           if (clusterExists.trim() == "0") {
-            createKubernetesCluster([nodes: 3, name: clusterName])
+            createKubernetesCluster([branch: "${branch}", nodes: 3, name: clusterName])
           }
         }
       }
