diff --git a/jjb/pipeline/voltha-dt-physical-functional-tests.groovy b/jjb/pipeline/voltha-dt-physical-functional-tests.groovy
index a5a6ba7..0279f0a 100644
--- a/jjb/pipeline/voltha-dt-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha-dt-physical-functional-tests.groovy
@@ -120,7 +120,7 @@
     }
     stage ('Initialize') {
       steps {
-        sh returnStdout: false, script: "git clone -b master ${cordRepoUrl}/${configBaseDir}"
+        sh returnStdout: false, script: "git clone -b ${branch} ${cordRepoUrl}/${configBaseDir}"
         script {
            deployment_config = readYaml file: "${configBaseDir}/${configDeploymentDir}/${configFileName}-DT.yaml"
         }
@@ -128,9 +128,8 @@
         mkdir -p $WORKSPACE/bin
         bash <( curl -sfL https://raw.githubusercontent.com/boz/kail/master/godownloader.sh) -b "$WORKSPACE/bin"
         cd $WORKSPACE
-        if [ "${params.branch}" != "master" ]; then
-           cd $WORKSPACE/kind-voltha
-           source releases/${params.branch}
+        if [ "${params.branch}" == "voltha-2.8" ]; then
+           VOLTCTL_VERSION=1.6.10
         else
            VOLTCTL_VERSION=\$(curl -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')
         fi
diff --git a/jjb/pipeline/voltha-physical-functional-tests.groovy b/jjb/pipeline/voltha-physical-functional-tests.groovy
index 1104e21..5d7c5e7 100644
--- a/jjb/pipeline/voltha-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha-physical-functional-tests.groovy
@@ -108,7 +108,7 @@
     }
     stage ('Initialize') {
       steps {
-        sh returnStdout: false, script: "git clone -b master ${cordRepoUrl}/${configBaseDir}"
+        sh returnStdout: false, script: "git clone -b ${branch} ${cordRepoUrl}/${configBaseDir}"
         script {
           deployment_config = readYaml file: "${configBaseDir}/${configDeploymentDir}/${configFileName}.yaml"
         }
@@ -116,9 +116,8 @@
         mkdir -p $WORKSPACE/bin
         bash <( curl -sfL https://raw.githubusercontent.com/boz/kail/master/godownloader.sh) -b "$WORKSPACE/bin"
         cd $WORKSPACE
-        if [ "${params.branch}" != "master" ]; then
-           cd $WORKSPACE/kind-voltha
-           source releases/${params.branch}
+        if [ "${params.branch}" == "voltha-2.8" ]; then
+           VOLTCTL_VERSION=1.6.10
         else
            VOLTCTL_VERSION=\$(curl -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')
         fi
diff --git a/jjb/pipeline/voltha-physical-soak-dt-tests.groovy b/jjb/pipeline/voltha-physical-soak-dt-tests.groovy
index e8659cc..50fa092 100644
--- a/jjb/pipeline/voltha-physical-soak-dt-tests.groovy
+++ b/jjb/pipeline/voltha-physical-soak-dt-tests.groovy
@@ -121,7 +121,7 @@
     }
     stage ('Initialize') {
       steps {
-        sh returnStdout: false, script: "git clone -b master ${cordRepoUrl}/${configBaseDir}"
+        sh returnStdout: false, script: "git clone -b ${branch} ${cordRepoUrl}/${configBaseDir}"
         script {
            deployment_config = readYaml file: "${configBaseDir}/${configDeploymentDir}/${configFileName}-DT.yaml"
         }
@@ -129,10 +129,8 @@
         mkdir -p $WORKSPACE/bin
         bash <( curl -sfL https://raw.githubusercontent.com/boz/kail/master/godownloader.sh) -b "$WORKSPACE/bin"
         cd $WORKSPACE
-        if [ "${params.branch}" != "master" ]; then
-           cd $WORKSPACE/kind-voltha
-           source releases/${params.branch}
-           VC_VERSION=1.1.8
+        if [ "${params.branch}" == "voltha-2.8" ]; then
+           VC_VERSION=1.6.10
         else
            VC_VERSION=\$(curl -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')
         fi
diff --git a/jjb/pipeline/voltha-physical-soak-tests.groovy b/jjb/pipeline/voltha-physical-soak-tests.groovy
index 9982fc2..1ec68bd 100644
--- a/jjb/pipeline/voltha-physical-soak-tests.groovy
+++ b/jjb/pipeline/voltha-physical-soak-tests.groovy
@@ -36,7 +36,7 @@
     stage ('Initialize') {
       steps {
         step([$class: 'WsCleanup'])
-        sh returnStdout: false, script: "git clone -b master ${cordRepoUrl}/${configBaseDir}"
+        sh returnStdout: false, script: "git clone -b ${branch} ${cordRepoUrl}/${configBaseDir}"
         sh returnStdout: false, script: "git clone -b master ${cordRepoUrl}/kind-voltha"
         script {
           deployment_config = readYaml file: "${configBaseDir}/${configDeploymentDir}/${configFileName}.yaml"
@@ -61,10 +61,8 @@
         mkdir -p $WORKSPACE/bin
         bash <( curl -sfL https://raw.githubusercontent.com/boz/kail/master/godownloader.sh) -b "$WORKSPACE/bin"
         cd $WORKSPACE
-        if [ "${params.branch}" != "master" ]; then
-           cd $WORKSPACE/kind-voltha
-           source releases/${params.branch}
-           VC_VERSION=1.1.8
+        if [ "${params.branch}" == "voltha-2.8" ]; then
+           VC_VERSION=1.6.10
         else
            VC_VERSION=\$(curl -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')
         fi
diff --git a/jjb/pipeline/voltha-tt-physical-functional-tests.groovy b/jjb/pipeline/voltha-tt-physical-functional-tests.groovy
index cfc6d46..3238fcd 100644
--- a/jjb/pipeline/voltha-tt-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha-tt-physical-functional-tests.groovy
@@ -120,7 +120,7 @@
     }
     stage ('Initialize') {
       steps {
-        sh returnStdout: false, script: "git clone -b master ${cordRepoUrl}/${configBaseDir}"
+        sh returnStdout: false, script: "git clone -b ${branch} ${cordRepoUrl}/${configBaseDir}"
         script {
            deployment_config = readYaml file: "${configBaseDir}/${configDeploymentDir}/${configFileName}-TT.yaml"
         }
@@ -128,9 +128,8 @@
         mkdir -p $WORKSPACE/bin
         bash <( curl -sfL https://raw.githubusercontent.com/boz/kail/master/godownloader.sh) -b "$WORKSPACE/bin"
         cd $WORKSPACE
-        if [ "${params.branch}" != "master" ]; then
-           cd $WORKSPACE/kind-voltha
-           source releases/${params.branch}
+        if [ "${params.branch}" == "voltha-2.8" ]; then
+           VOLTCTL_VERSION=1.6.10
         else
            VOLTCTL_VERSION=\$(curl -sSL https://api.github.com/repos/opencord/voltctl/releases/latest | jq -r .tag_name | sed -e 's/^v//g')
         fi
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])
           }
         }
       }
diff --git a/vars/createKubernetesCluster.groovy b/vars/createKubernetesCluster.groovy
index a1a2bde..5ef69f9 100644
--- a/vars/createKubernetesCluster.groovy
+++ b/vars/createKubernetesCluster.groovy
@@ -3,6 +3,7 @@
 def call(Map config) {
     // note that I can't define this outside the function as there's no global scope in Groovy
     def defaultConfig = [
+      branch: "master",
       nodes: 1,
       name: "kind-ci"
     ]
@@ -58,7 +59,11 @@
       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')"
+      if [ "${cfg.branch}" == "voltha-2.8" ]; then
+          VC_VERSION="1.6.10"
+      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
 
