diff --git a/voltha b/voltha
index fcd1d1a..6a1123f 100755
--- a/voltha
+++ b/voltha
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/bin/bash
 # Copyright 2019 Ciena Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -29,8 +29,23 @@
 _VOLTCTL_VERSION=$(echo $VOLTCTL_VERSION | sed -e 's/-/_/g')
 
 TYPE=${TYPE:-minimal}
-# Only minimal cluster works in this script currently
-TYPE=minimal
+
+if [ "$TYPE" == "full" ]; then
+   ONOS_API_PORT=${ONOS_API_PORT:-8182}
+   ONOS_SSH_PORT=${ONOS_SSH_PORT:-8102}
+   VOLTHA_API_PORT=${VOLTHA_API_PORT:-55556}
+   VOLTHA_SSH_PORT=${VOLTHA_SSH_PORT:-5023}
+else
+    ONOS_API_PORT=${ONOS_API_PORT:-8181}
+    ONOS_SSH_PORT=${ONOS_SSH_PORT:-8101}
+    VOLTHA_API_PORT=${VOLTHA_API_PORT:-55555}
+    VOLTHA_SSH_PORT=${VOLTHA_SSH_PORT:-5022}
+fi
+
+if [ "$1" == "get" -a "$2" == "voltconfig" ]; then
+    echo "$HOME/.volt/config-$TYPE"
+    exit
+fi
 
 if [ $# -ne 1 -o $(echo ":up:down:" | grep -c ":$1:") -ne 1 ]; then 
     >&2 echo "up or down?"
@@ -46,7 +61,7 @@
     exit 
 fi
 
-LOG="install.log"
+LOG="install-$TYPE.log"
 date > $LOG
 
 spin() {
@@ -266,7 +281,8 @@
     kube-proxy-.* \
     kube-scheduler-voltha-$TYPE-control-plane"
 
-wait_for_pods - "kube-system" 12 -1 "Waiting for system PODs to start..." $P
+EXPECT=$(test "$TYPE" == "minimal" && echo "12" || echo "14")
+wait_for_pods - "kube-system" $EXPECT -1 "Waiting for system PODs to start..." $P
 
 COUNT=$(count_pods "kube-system" "tiller-deploy-.*")
 bspin "Verify Helm"
@@ -312,7 +328,8 @@
 else
     espin $VERIFIED
 fi
-wait_for_pods - "voltha" 1 -1 "Waiting for ETCD Operator to start..." "etcd-operator-.*"
+EXPECT=$(test "$TYPE" == "minimal" && echo "1" || echo "3")
+wait_for_pods - "voltha" $EXPECT -1 "Waiting for ETCD Operator to start..." "etcd-operator-.*"
 
 bspin "Verify ONOS installed"
 if [ $(helm list onos | grep -c DEPLOYED) -ne 1 ]; then
@@ -324,12 +341,12 @@
 wait_for_pods - "default" 1 -1 "Waiting for ONOS to start..." "onos-.*"
 
 bspin - "Forward ONOS API port"
-(set -x; screen -p 0 -X -S onos-ui  stuff $'\003' >>$LOG 2>&1) >>$LOG 2>&1
-(set -x; screen -dmS onos-ui kubectl port-forward service/onos-ui 8181:8181 >>$LOG 2>&1) >>$LOG 2>&1
+(set -x; screen -p 0 -X -S onos-ui-$TYPE  stuff $'\003' >>$LOG 2>&1) >>$LOG 2>&1
+(set -x; screen -dmS onos-ui-$TYPE kubectl port-forward service/onos-ui $ONOS_API_PORT:8181 >>$LOG 2>&1) >>$LOG 2>&1
 espin - $VERIFIED
 bspin - "Forward ONOS SSH port"
-(set -x; screen -p 0 -X -S onos-ssh  stuff $'\003' >>$LOG 2>&1) >>$LOG 2>&1
-(set -x; screen -dmS onos-ssh kubectl port-forward service/onos-ssh 8101:8101 >>$LOG 2>&1) >>$LOG 2>&1
+(set -x; screen -p 0 -X -S onos-ssh-$TYPE  stuff $'\003' >>$LOG 2>&1) >>$LOG 2>&1
+(set -x; screen -dmS onos-ssh-$TYPE kubectl port-forward service/onos-ssh $ONOS_SSH_PORT:8101 >>$LOG 2>&1) >>$LOG 2>&1
 espin - $VERIFIED
 bspin - "Install required ONOS applications"
 (set -x; ./onos-files/install-onos-applications.sh >>$LOG 2>&1) >>$LOG 2>&1
@@ -350,7 +367,8 @@
     voltha-etcd-cluster-.* \
     voltha-kafka-.* \
     voltha-zookeeper-.*"
-wait_for_pods - "voltha" 9 -1 "Waiting for VOLTHA Core to start..." $VOLTHA
+EXPECT=$(test "$TYPE" == "minimal" && echo "9" || echo "11")
+wait_for_pods - "voltha" $EXPECT -1 "Waiting for VOLTHA Core to start..." $VOLTHA
 
 echo "Verify Adapters"
 bspin - "Verify Simulated Adapters installed"
@@ -387,17 +405,17 @@
 wait_for_pods - "voltha" 2 -1 "Wait for API to re-start ..." $API
 
 bspin - "Forward VOLTHA API port"
-(set -x; screen -p 0 -X -S voltha-api  stuff $'\003' >>$LOG 2>&1) >>$LOG 2>&1
-(set -x; screen -dmS voltha-api kubectl port-forward -n voltha service/voltha-api 55555:55555 >>$LOG 2>&1) >>$LOG 2>&1
+(set -x; screen -p 0 -X -S voltha-api-$TYPE  stuff $'\003' >>$LOG 2>&1) >>$LOG 2>&1
+(set -x; screen -dmS voltha-api-$TYPE kubectl port-forward -n voltha service/voltha-api $VOLTHA_API_PORT:55555 >>$LOG 2>&1) >>$LOG 2>&1
 espin - $VERIFIED
 bspin - "Forward VOLTHA SSH port"
-(set -x; screen -p 0 -X -S voltha-ssh  stuff $'\003' 2>/dev/null >/dev/null >>$LOG 2>&1) >>$LOG 2>&1
-(set -x; screen -dmS voltha-ssh kubectl port-forward -n voltha service/voltha-cli 5022:5022 >>$LOG 2>&1) >>$LOG 2>&1
+(set -x; screen -p 0 -X -S voltha-ssh-$TYPE stuff $'\003' 2>/dev/null >/dev/null >>$LOG 2>&1) >>$LOG 2>&1
+(set -x; screen -dmS voltha-ssh-$TYPE kubectl port-forward -n voltha service/voltha-cli $VOLTHA_SSH_PORT:5022 >>$LOG 2>&1) >>$LOG 2>&1
 espin - $VERIFIED
 
 bspin - "Create voltctl configuration file"
 (set -x; mkdir -p $HOME/.volt >>$LOG 2>&1) >>$LOG 2>&1
-(set -x; voltctl -a v2 -s localhost:55555 config > $HOME/.volt/config 2>>$LOG) >>$LOG 2>&1
+(set -x; voltctl -a v2 -s localhost:$VOLTHA_API_PORT config > $HOME/.volt/config-$TYPE 2>>$LOG) >>$LOG 2>&1
 espin - $VERIFIED
 
 echo "Please issue the following commands in your terminal to ensure that you" | tee -a $LOG
@@ -405,6 +423,7 @@
 echo "tools required by VOLTHA in your command path.                         " | tee -a $LOG
 echo "" | tee -a $LOG
 echo "export KUBECONFIG=\"\$(./bin/kind get kubeconfig-path --name=\"voltha-$TYPE\")\"" | tee -a $LOG
+echo "export VOLTCONFIG=\"$HOME/.volt/config-$TYPE\""
 echo 'export PATH=$GOPATH/bin:$PATH' | tee -a $LOG
 echo "" | tee -a $LOG
 echo "Thank you for choosing kind-voltha for you quick cluster needs." | tee -a $LOG
