diff --git a/jjb/pipeline/voltha-bbsim-tests.groovy b/jjb/pipeline/voltha-bbsim-tests.groovy
index a64d6ef..74e9613 100644
--- a/jjb/pipeline/voltha-bbsim-tests.groovy
+++ b/jjb/pipeline/voltha-bbsim-tests.groovy
@@ -49,7 +49,7 @@
           poll: false,
           scm: [$class: 'RepoScm', \
             manifestRepositoryUrl: "${params.manifestUrl}", \
-            manifestBranch: "${params.manifestBranch}", \
+            manifestBranch: "${params.branch}", \
             currentBranch: true, \
             destinationDir: 'voltha', \
             forceSync: true,
@@ -78,6 +78,14 @@
       steps {
         sh """
            git clone https://github.com/ciena/kind-voltha.git
+
+           if [ "${branch}" != "master" ]; then
+             echo "on branch: ${branch}, sourcing kind-voltha/releases/${branch}"
+             source "kind-voltha/releases/${branch}"
+           else
+             echo "on master, using default settings for kind-voltha"
+           fi
+
            cd kind-voltha/
            JUST_K8S=y ./voltha up
            bash <( curl -sfL https://raw.githubusercontent.com/boz/kail/master/godownloader.sh) -b "$WORKSPACE/kind-voltha/bin"
@@ -117,6 +125,13 @@
     stage('Push Images') {
       steps {
         sh '''
+           if [ "${branch}" != "master" ]; then
+             echo "on branch: ${branch}, sourcing kind-voltha/releases/${branch}"
+             source "kind-voltha/releases/${branch}"
+           else
+             echo "on master, using default settings for kind-voltha"
+           fi
+
            if ! [[ "${gerritProject}" =~ ^(voltha-helm-charts|voltha-system-tests)\$ ]]; then
              export GOROOT=/usr/local/go
              export GOPATH=\$(pwd)
@@ -129,7 +144,14 @@
     stage('Deploy Voltha') {
       steps {
         sh '''
-           export EXTRA_HELM_FLAGS="--set log_agent.enabled=False ${extraHelmFlags} "
+           if [ "${branch}" != "master" ]; then
+             echo "on branch: ${branch}, sourcing kind-voltha/releases/${branch}"
+             source "kind-voltha/releases/${branch}"
+           else
+             echo "on master, using default settings for kind-voltha"
+           fi
+
+           export EXTRA_HELM_FLAGS+="--set log_agent.enabled=False ${extraHelmFlags} "
 
            IMAGES=""
            if [ "${gerritProject}" = "voltha-go" ]; then
@@ -240,7 +262,15 @@
 
          gzip $WORKSPACE/onos-voltha-combined.log
 
+
          ## shut down kind-voltha
+         if [ "${branch}" != "master" ]; then
+           echo "on branch: ${branch}, sourcing kind-voltha/releases/${branch}"
+           source "kind-voltha/releases/${branch}"
+         else
+           echo "on master, using default settings for kind-voltha"
+         fi
+
          cd $WORKSPACE/kind-voltha
 	       WAIT_ON_DOWN=y ./voltha down
          '''
diff --git a/jjb/pipeline/voltha-physical-build-and-tests.groovy b/jjb/pipeline/voltha-physical-build-and-tests.groovy
index ffb45b6..ddcd69f 100644
--- a/jjb/pipeline/voltha-physical-build-and-tests.groovy
+++ b/jjb/pipeline/voltha-physical-build-and-tests.groovy
@@ -22,9 +22,10 @@
 localSadisConfigFile = null
 
 // The pipeline assumes these variables are always defined
-if ( ! params.withPatchset ) {
+if ( params.manualBranch != "" ) {
   GERRIT_EVENT_COMMENT_TEXT = ""
   GERRIT_PROJECT = ""
+  GERRIT_BRANCH = "${params.manualBranch}"
   GERRIT_CHANGE_NUMBER = ""
   GERRIT_PATCHSET_NUMBER = ""
 }
@@ -76,7 +77,7 @@
           poll: false,
           scm: [$class: 'RepoScm',
             manifestRepositoryUrl: "${params.manifestUrl}",
-            manifestBranch: "${params.manifestBranch}",
+            manifestBranch: "${params.branch}",
             currentBranch: true,
             destinationDir: 'voltha',
             forceSync: true,
@@ -90,7 +91,7 @@
 
     stage('Get Patch') {
       when {
-        expression { params.withPatchset }
+        expression { params.manualBranch != "" }
       }
       steps {
         sh returnStdout: false, script: """
@@ -121,6 +122,14 @@
       steps {
         sh returnStdout: false, script: """
         git clone https://github.com/ciena/kind-voltha.git
+
+        if [ "${branch}" != "master" ]; then
+          echo "on branch: ${branch}, sourcing kind-voltha/releases/${branch}"
+          source "kind-voltha/releases/${branch}"
+        else
+          echo "on master, using default settings for kind-voltha"
+        fi
+
         cd kind-voltha/
         JUST_K8S=y ./voltha up
         """
@@ -129,10 +138,18 @@
 
     stage('Build and Push Images') {
       when {
-        expression { params.withPatchset }
+        expression { params.manualBranch != "" }
       }
       steps {
         sh returnStdout: false, script: """
+
+        if [ "${branch}" != "master" ]; then
+          echo "on branch: ${branch}, sourcing kind-voltha/releases/${branch}"
+          source "kind-voltha/releases/${branch}"
+        else
+          echo "on master, using default settings for kind-voltha"
+        fi
+
         if ! [[ "${gerritProject}" =~ ^(voltha-system-tests)\$ ]]; then
           make -C $WORKSPACE/voltha/${gerritProject} DOCKER_REPOSITORY=voltha/ DOCKER_TAG=citest docker-build
           docker images | grep citest
@@ -157,7 +174,14 @@
       steps {
         script {
           sh returnStdout: false, script: """
-          export EXTRA_HELM_FLAGS='--set log_agent.enabled=False -f ${localKindVolthaValuesFile} '
+          if [ "${branch}" != "master" ]; then
+            echo "on branch: ${branch}, sourcing kind-voltha/releases/${branch}"
+            source "kind-voltha/releases/${branch}"
+          else
+            echo "on master, using default settings for kind-voltha"
+          fi
+
+          export EXTRA_HELM_FLAGS+='--set log_agent.enabled=False -f ${localKindVolthaValuesFile} '
 
           IMAGES=""
           if [ "${gerritProject}" = "voltha-go" ]; then
@@ -283,7 +307,6 @@
       steps {
         sh returnStdout: false, script: """
         cd voltha
-        git clone -b ${branch} ${cordRepoUrl}/cord-tester
         mkdir -p $WORKSPACE/RobotLogs
 
         # If the Gerrit comment contains a line with "functional tests" then run the full
@@ -301,7 +324,7 @@
 
     stage('After-Test Delay') {
       when {
-        expression { params.withPatchset }
+        expression { params.manualBranch != "" }
       }
       steps {
         sh returnStdout: false, script: """
