diff --git a/README.md b/README.md
index 143c2e1..a59b713 100644
--- a/README.md
+++ b/README.md
@@ -83,6 +83,7 @@
 | `NAME`                                  | TYPE                                                  | Name of the KinD Cluster to be created |
 | `DEPLOY_K8S`                            | yes                                                   | Should the KinD Kubernetes cluster be deployed? |
 | `JUST_K8S`                              | no                                                    | Should just the KinD Kubernetes cluster be depoyed? (i.e. no VOLTHA) |
+| `SCHEDULE_ON_CONTROL_NODES`             | no                                                    | Untaint the control plane (master) K8s nodes so that PODs may be scheduled on them |
 | `VOLTHA_NS`                             | `voltha`                                              | K8s namespace into which to deploy voltha PODs |
 | `INFRA_NS`                              | `default`                                             | K8s namespace into which to deploy infrastructure PODs |
 | `BBSIM_NS`                              | `voltha`                                              | K8s namespace into which to deploy BBSIM PODs |
diff --git a/scripts/monitor.sh b/scripts/monitor.sh
index 24a5319..76f9650 100755
--- a/scripts/monitor.sh
+++ b/scripts/monitor.sh
@@ -23,6 +23,6 @@
 fi
 
 kubectl get --all-namespaces pods,svc && echo "" \
-    &&  kubectl  describe --all-namespaces  pods | grep Image: | grep voltha | sed -e "s/^ *//g" -e "s/: */: /g"  && echo "" \
+    &&  kubectl  describe --all-namespaces  pods | grep Image: | grep '\(voltha\|bbsim\)' | sed -e "s/^ *//g" -e "s/: */: /g"  && echo "" \
     && echo "DB SIZE: $($SCRIPTPATH/etcd-db-size.sh)" && echo "" \
     && echo "RSS SIZE: $(ps -eo rss,pid,$CMD_KEY | grep /usr/local/bin/etcd | grep -v grep | cut -d\  -f1 | numfmt --to=iec | tr '\n' ' ' )"
diff --git a/voltha b/voltha
index b070229..c11912a 100755
--- a/voltha
+++ b/voltha
@@ -88,6 +88,7 @@
 WITH_ETCD=${WITH_ETCD:-yes}
 WITH_PPROF=${WITH_PPROF:-no}
 ONLY_ONE=${ONLY_ONE:-yes}
+SCHEDULE_ON_CONTROL_NODES=${SCHEDULE_ON_CONTROL_NODES:-no}
 CONFIG_SADIS=${CONFIG_SADIS:-no} # yes | no | file | bbsim | external | URL
 SADIS_SUBSCRIBERS=${SADIS_SUBSCRIBERS:-http://bbsim.$VOLTHA_NS.svc:50074/v2/subscribers/%s}
 SADIS_BANDWIDTH_PROFILES=${SADIS_BANDWIDTH_PROFILES:-http://bbsim.$VOLTHA_NS.svc:50074/v2/bandwidthprofiles/%s}
@@ -276,6 +277,7 @@
     ONLY_ONE \
     VOLTHA_DOWN_ON_TIMEOUT \
     LEGACY_BBSIM_INDEX \
+    SCHEDULE_ON_CONTROL_NODES \
     "
 
 OPT_YES_NO="\
@@ -591,7 +593,7 @@
     exit
 fi
 
-if [ $# -ne 1 ] || ! is_in "$1" "up,down,dump"; then
+if [ $# -ne 1 ] || ! is_in "$1" "up,down,dump,clean"; then
     >&2 echo "What wouild you like to do today:"
     >&2 echo "  up   - bring up voltha"
     >&2 echo "  down - tear down voltha"
@@ -818,7 +820,10 @@
 
 kill_port_forward() {
     local TAG P_IDS PARENTS KIDS UNKNOWN PP_ID
-    TAG="$1-$NAME"
+    TAG=
+    if [ "$1" != "__ALL__" ]; then
+        TAG="$1-$NAME"
+    fi
     # shellcheck disable=SC2009
     P_IDS="$(ps e -ww -A | grep "_TAG=$TAG" | grep -v grep | awk '{print $1}')"
     if [ -n "$P_IDS" ]; then
@@ -834,7 +839,7 @@
                 UNKNOWN="$UNKNOWN $P_ID"
             fi
         done
-        (set -x; kill -9 "$PARENTS" "$KIDS" "$UNKNOWN" >>"$LOG" 2>&1) >>"$LOG" 2>&1
+        (set -x; eval "kill -9 $PARENTS $KIDS $UNKNOWN" >>"$LOG" 2>&1) >>"$LOG" 2>&1
     fi
 }
 
@@ -1054,6 +1059,14 @@
     fi
 done
 
+# Force remove any existing k8s port-forward processes. This will
+# remove them for all kind clusters.
+# DKB
+if [ "$1" == "clean" ]; then
+    kill_port_forward __ALL__
+    exit
+fi
+
 helm_values() {
     local NAMESPACE=$1; shift
     local INAME=$1; shift
@@ -1379,6 +1392,15 @@
     printtime $((NOW - STIME))
 fi
 
+if [ "$SCHEDULE_ON_CONTROL_NODES" == "yes" ]; then
+    bspin "Untaint control nodes to allow scheduling $LOCK"
+    for MNODE in $(kubectl get node --selector='node-role.kubernetes.io/master' -o json | jq -r '.items[].metadata.name'); do
+        (set -x; kubectl taint node "$MNODE" node-role.kubernetes.io/master:NoSchedule- >>"$LOG" 2>&1) >>"$LOG" 2>&1
+        sspin
+    done
+    espin "$VERIFIED"
+fi
+
 STIME="$(date +%s)"
 COUNT="$(count_pods "kube-system" ":Running:" "$NO_LABEL" "tiller-deploy-.*")"
 bspin "Verify Helm"
@@ -1945,7 +1967,9 @@
 compare_versions "$RESOLVED_VOLTHA_CHART_VERSION" 2.4.2
 if [ "$?" == "1" ]; then
     # voltha chart > 2.4.2 uses list of controllers
-    INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set services.controller[0].service=$_HOST --set services.controller[0].port=$_PORT"
+    for NUM in $(seq 0 $((NUM_OF_ONOS-1))); do
+        INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set services.controller[$NUM].service=onos-onos-classic-$NUM.onos-onos-classic-hs.$INFRA_NS.svc.cluster.local --set services.controller[$NUM].port=6653"
+    done
 else
     # voltha chart <= 2.4.2 uses single controller
     INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set services.controller.service=$_HOST --set services.controller.port=$_PORT"
