diff --git a/.gitignore b/.gitignore
index e941ef0..9e0c7ec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,14 +3,11 @@
 onos-apps
 pkg
 src
-install.log
 *.swp
 *.log
 logger/*
-voltha-debug-dump-minimal*
 voltha-system-tests
 voltha-debug-dump-*
-minimal-env.sh
-full-env.sh
+*-env.sh
 .DS_Store
 kube-config-*
diff --git a/Makefile b/Makefile
index e22fe44..ee3d79c 100644
--- a/Makefile
+++ b/Makefile
@@ -15,7 +15,7 @@
 	shellcheck --version
 	shellcheck $(SHELL_FILES)
 
-YAML_FILES ?= $(shell find . -type f \( -name '*.yaml' -o -name '*.yml' -o -name '*.cfg' \) -print )
+YAML_FILES ?= $(shell find . -type f \( -name '*.yaml' -o -name '*.yml' \) -print )
 yamllint: ## lint check YAML files with yamllint
 	yamllint --version
 	yamllint \
diff --git a/README.md b/README.md
index 9c73f9b..d7a2db2 100644
--- a/README.md
+++ b/README.md
@@ -17,28 +17,18 @@
 _NOTE: If you are deploying a KinD Kubernetes cluster using the `voltha`
 script, you must also also have Docker installed_
 
-## INSTALL TYPE
-The `voltha` script can install two variations or types of a VOLTHA deployment:
-**minimal** or **full**. The difference is characterized in the following
-table:
+## NAMING YOUR CLUSTER
 
-| RESOURCE                | MINIMAL       | FULL |
-| ----------------------- | ------------- | ------------------------- |
-| K8s Control Plane Nodes | 1             | 1 |
-| K8s Workers             | 2             | 3 |
-| EtcdOperator Components | Operator only | Operator, Backup, Restore |
-| EtcdCluster             | 1 Member      | 3 Members |
+The `voltha` script can be used to manage multiple clusters at the same time,
+thus it's important to always name your cluster.
 
-Throughout this `README.md` file deployment and configuration files are
-referenced in the form **$TYPE-cluster.cfg** and **$TYPE-values.yaml**.
-Depending on which type of deloyment you wish to install replace **$TYPE**
-with either **minimal** or **full**. If you set the environment variable `TYPE`
-to the desired deployment type, example below, then the commands can be
-executed via a simply copy and paste to your command line.
 ```bash
-export TYPE=minimal
+export NAME=minimal
 ```
 
+Throughout this `README.md` file you'll find multiple references to `$NAME`
+and that can always be replaced with the name your cluster (the default value is `local`).
+
 ## TL;DR
 OK, if you really don't care how it starts and you just want it started. After
 cloning the repository and making sure you have the prerequisites installed,
@@ -79,8 +69,7 @@
 
 | OPTION                                  | DEFAULT                                               | DESCRIPTION |
 | --------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------ |
-| `TYPE`                                  | minimal                                               | `minimal` or `full` and determines number of cluster nodes and etcd cluster members |
-| `NAME`                                  | TYPE                                                  | Name of the KinD Cluster to be created |
+| `NAME`                                  | `minimal`                                             | 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 |
@@ -152,6 +141,15 @@
 | `ELASTICSEARCH_PORT`                    | dynamic                                               | (advanced) Override dynamic port selection for port forward for elasticsearch |
 | `KIBANA_PORT`                           | dynamic                                               | (advanced) Override dynamic port selection for port forward for  kibana |
 
+### Managing the cluster(s) size
+The `voltha` script supports configuration for cluster of different sizes.
+For example you can setup an HA cluster with:
+
+```bash
+NUM_OF_WORKER_NODES=3 NUM_OF_ONOS=3 NUM_OF_KAFKA=3 NUM_OF_ETCD=3 NUM_OF_ATOMIX=3 ./voltha up
+```
+As usual one can add as many other options, for example `CONFIG_SADIS=y`.
+
 ### Custom Namespaces
 
 Separate namespaces can be specified for various components
@@ -211,18 +209,19 @@
 ### Controlling VOLTHA with an ONOS cluster
 
 To provide HA, resilinecy and failover ONOS can be configured in cluster mode.
-A 3 node ONOS deployment for example can be achieved via the `full` configuration:
+A 3 node ONOS deployment for example can be achieved via:
 ```bash
-TYPE=full WITH_ONOS=classic NUM_OF_ONOS=3 NUM_OF_ATOMIX=3 ./voltha up
+NUM_OF_WORKER_NODES=3 WITH_ONOS=classic NUM_OF_ONOS=3 NUM_OF_ATOMIX=3 ./voltha up
 ```
-Please note the `TYPE=full` that deploys a 3 worker nodes for k8s and `WITH_ONOS=classic` that uses the
+Please note the above command deploys a 3 worker nodes for k8s and `WITH_ONOS=classic` that uses the
 cluster-enabled [helm chart](https://charts.onosproject.org) for ONOS (version 2.2).
 The `NUM_OF_ONOS=3 NUM_OF_ATOMIX=3` flags set the number of Atomix nodes and ONOS nodes.
+
 As usual one can add as many other options, for example `CONFIG_SADIS=y`.
 
 ## GENERATED CONFIGURATION
 When the voltha script is run it generates a file that contains the
-configuration settings. This file will be named `$TYPE-env.sh`. The user can
+configuration settings. This file will be named `$NAME-env.sh`. The user can
 `source` this file to set the configuration as well as establish key environment
 variables in order to access VOLTHA, including:
 
@@ -235,7 +234,7 @@
 After `voltha up` is run, it is useful to source this file.
 
 ## QUICK CHECK
-After source the `$TYPE-env.sh` file, you should be able to access VOLTHA via
+After source the `$NAME-env.sh` file, you should be able to access VOLTHA via
 the control application `voltctl`. To validate this you can use the following
 command
 ```bash
@@ -267,8 +266,8 @@
 
 ## TROUBLESHOOTING
 When VOLTHA is installed the install log is written to the file
-`install-$TYPE.log`. If the install appears stalled or is not completing
+`install-$NAME.log`. If the install appears stalled or is not completing
 consulting this file may indicate the reason.
 
-Similarly, when VOLTHA is uninstalled `down-$TYPE.log` is written and should
+Similarly, when VOLTHA is uninstalled `down-$NAME.log` is written and should
 be consulted in the event of an error or unexpected result.
diff --git a/full-cluster.cfg b/full-cluster.cfg
deleted file mode 100644
index 6808558..0000000
--- a/full-cluster.cfg
+++ /dev/null
@@ -1,22 +0,0 @@
----
-# Copyright 2019 Ciena Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-kind: Cluster
-apiVersion: kind.sigs.k8s.io/v1alpha3
-nodes:
-  - role: control-plane
-  - role: worker
-  - role: worker
-  - role: worker
diff --git a/minimal-cluster.cfg b/minimal-cluster.cfg
deleted file mode 100644
index 127a19a..0000000
--- a/minimal-cluster.cfg
+++ /dev/null
@@ -1,22 +0,0 @@
----
-# Copyright 2019 Ciena Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-kind: Cluster
-apiVersion: kind.sigs.k8s.io/v1alpha3
-nodes:
-  - role: control-plane
-    extraPortMappings:
-  - role: worker
-  - role: worker
diff --git a/minimal-values.yaml b/minimal-values.yaml
deleted file mode 100644
index 3fb1e3b..0000000
--- a/minimal-values.yaml
+++ /dev/null
@@ -1,317 +0,0 @@
----
-# Copyright 2019 Ciena Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# IMAGE SELECTION
-# ---------------
-# By default no defaults are set and the image tags specified in the helm
-# charts will be used. If you would like to use the images generated from the
-# HEAD of the "master" git branches, then uncomment this below block and
-# set "<VALUE>" to "master". Similarly, if you want to use the images
-# generated from the HEAD of the "voltha-2.1" git branches, then uncomment
-# this block and replace "<VALUE>" with "voltha-2.1".
-defaults:
-  image_tag: master
-  image_pullPolicy: Always
-
-private_etcd_cluster: false
-private_kafka_cluster: false
-
-# OPENONU-ADAPTER IMPLEMENTATION
-# ------------------------------
-# There are currently two implementations of OPENONU-ADAPTER: the original
-# written in Python and the reimplementation written in Go. The variable
-# `use_openonu_adapter_go` can be used to optionally use the new Go
-# implementation. This is done by setting that value to `true`.
-#
-# Along with this change you will also may need to set the Docker image
-# information below (search for START_OPENONU_ADAPTER_GO).
-use_openonu_adapter_go: false
-
-images:
-  onos:
-    repository: voltha/voltha-onos
-    # IMAGE_SELECTION
-    # ---------------
-    # The helm chart used to deploy ONOS is the public ONOS helm chart so,
-    # there is a need to specify the exact image repository and image tag.
-    # If you would like to use the "master", "voltha-2.1", or other image
-    # just replace the "tag" value below.
-    tag: master
-
-# IMAGE_SELECTION
-# ---------------
-# Below are a list of all the images utilized by kind-voltha. This list is
-# provided as a conveinence if you would like to override on a per image
-# basis. If you are using the defaults, master, or voltha-2.1 branch there
-# is no need to utilize this list.
-#  adapter_open_olt:
-#    repository: voltha/voltha-openolt-adapter
-#    tag: 2.1.1
-#  adapter_open_onu:
-#    repository: voltha/voltha-openonu-adapter
-#    tag: 2.1.0
-#  adapter_simulated_olt:
-#    repository: voltha/voltha-adapter-simulated-olt
-#    tag: 2.1.1
-#  adapter_simulated_onu:
-#    repository: voltha/voltha-adapter-simulated-onu
-#    tag: 2.1.1
-#  bbsim:
-#    repository: voltha/bbsim
-#    tag: master
-#  ofagent:
-#    repository: voltha/voltha-ofagent-go
-#    tag: master
-#  rw_core:
-#    repository: voltha/voltha-rw-core
-#    tag: 2.1.1
-# START_OPENONU_ADAPTER_GO - Uncomment the following block to use the
-# Go implementation of the openonu-adapter
-#  adapter_open_onu_go:
-#    repository: voltha-openonu-adapter-go
-#    tag: master
-# END_OPENONU_ADAPTER_GO
-
-etcd:
-  replicas: 1
-  extraEnv:
-    - name: ETCD_AUTO_COMPACTION_RETENTION
-      value: "1"
-    - name: ETCD_SNAPSHOT_COUNT
-      value: "100000"
-    - name: ETCD_HEARTBEAT_INTERVAL
-      value: "100"
-    - name: ETCD_ELECTION_TIMEOUT
-      value: "1000"
-    - name: ETCD_MAX_SNAPSHOTS
-      value: "5"
-    - name: ETCD_QUOTA_BACKEND_BYTES
-      value: "0"
-    - name: ETCD_MAX_REQUEST_BYTES
-      value: "1572864"
-    - name: ETCD_GRPC_KEEPALIVE_MIN_TIME
-      value: "5s"
-    - name: ETCD_GRPC_KEEPALIVE_TIMEOUT
-      value: "5s"
-    - name: ETCD_DEBUG
-      value: "false"
-
-kafka:
-  zookeeper:
-    replicaCount: 1
-    persistence:
-      enabled: false
-  replicas: 1
-  persistence:
-    enabled: false
-  envOverrides:
-    KAFKA_LOG4J_ROOT_LOGLEVEL: ERROR
-    KAFKA_TOOLS_LOG4J_LOGLEVEL: ERROR
-    # yamllint disable-line rule:line-length
-    KAFKA_LOG4J.LOGGERS: "kafka.zookeeper=ERROR,state.change.logger=ERROR,kafka=ERROR,kafka.controller=ERROR"
-    KAFKA_LOG_RETENTION_HOURS: 1
-    KAFKA_DEFAULT_REPLICATION_FACTOR: 1
-    KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
-
-# voltha:
-#   fullNameOverride: voltha
-
-# open-olt:
-#   fullNameOverride: voltha-adapter-openolt
-
-# open-onu:
-#   fullNameOverride: voltha-adapter-openonu
-
-onos:
-  image:
-    repository: voltha/voltha-onos
-    tag: master
-    pullPolicy: Always
-  onos_env:
-    - name: POD_IP
-      valueFrom:
-      fieldRef:
-        fieldPath: status.podIP
-    - name: NAMESPACE
-      valueFrom:
-      fieldRef:
-        fieldPath: metadata.namespace
-    - name: ONOS_APPS
-      value: "drivers,openflow-base,hostprovider"
-  # No persistent volume in Atomix to have clean state for each re-deploy of ONOS
-  atomix:
-    persistence:
-      enabled: false
-
-# Customization for BBSIM
-bbsim:
-  nni: 1
-  pon: 1
-  onu: 1
-  sadisFormat: "att"
-  kafkaEventTopic: "bbsim"
-  enableEvents: false
-
-# Customization for BBSIM SADIS Servier
-sadis:
-  config:
-    bbsim_sadis_server:
-      sleep_time: 5s
-
-# START EFK Setup to push voltha logs
-# elasticstack config
-# ref: https://github.com/elastic/helm-charts/tree/7.7.0/elasticsearch
-elasticsearch:
-  replicas: 1
-  minimumMasterNodes: 1
-  # set cpu and memory configuration
-  resources:
-    requests:
-      cpu: "400m"
-      memory: "1Gi"
-    limits:
-      cpu: "1000m"
-      memory: "2Gi"
-  # setup persistence volume.By default persistence volumeclaim is disabled
-  volumeClaimTemplate:
-    accessModes: ["ReadWriteOnce"]
-    resources:
-      requests:
-        storage: 5Gi
-  persistence:
-    enabled: false
-  # setup cluster health status as yellow
-  clusterHealthCheckParams: "wait_for_status=yellow&timeout=1s"
-
-# kibana config
-# ref: https://github.com/elastic/helm-charts/tree/7.7.0/kibana
-kibana:
-  elasticsearchHosts: "http://elasticsearch-master:9200"
-
-# fluentd-elasticsearch config
-# ref: https://github.com/kiwigrid/helm-charts/tree/master/charts/fluentd-elasticsearch
-fluentd-elasticsearch:
-  elasticsearch:
-    # set elasticsearch host
-    hosts: ["elasticsearch-master:9200"]
-    sslVerify: false
-
-# SHOCK THE MONKEY OR LET LOSE THE DOGS OF WAR
-# The VOLTHA charts have support for adding extra labels to deployments and
-# pods. These extra labels can be used to integrate with other utilities
-# such as kube-monkey to add a bit of chaos to the cluster. Below are some
-# settings that can be uncommented to opt-in VOLTHA deployments/pods to
-# kube-monkey. For example, if you want ALL deployments and pods to opt-in
-# then uncomment the `extra_deployment_labels` and `extra_pod_label` blocks.
-# If you want to be more selected then comment the blocks that pertain to the
-# targets you care about.
-
-# extra_deployment_labels:
-#   kube-monkey/enabled: enabled
-#   kube-monkey/identifier: monkey-victim
-#   kube-monkey/mtbf: 1
-#   kube-monkey/kill-mode: fixed
-#   kube-monkey/kill-value: 1
-#
-# extra_pod_labels:
-#   kube-monkey/enabled: enabled
-#   kube-monkey/identifier: monkey-victim
-#   kube-monkey/mtbf: 1
-#   kube-monkey/kill-mode: fixed
-#   kube-monkey/kill-value: 1
-#
-# rw_core_deployment_labels:
-#   kube-monkey/enabled: enabled
-#   kube-monkey/identifier: monkey-victim
-#   kube-monkey/mtbf: 1
-#   kube-monkey/kill-mode: fixed
-#   kube-monkey/kill-value: 1
-#
-# rw_core_pod_labels:
-#   kube-monkey/enabled: enabled
-#   kube-monkey/identifier: monkey-victim
-#   kube-monkey/mtbf: 1
-#   kube-monkey/kill-mode: fixed
-#   kube-monkey/kill-value: 1
-#
-# ofagent_deployment_labels:
-#   kube-monkey/enabled: enabled
-#   kube-monkey/identifier: monkey-victim
-#   kube-monkey/mtbf: 1
-#   kube-monkey/kill-mode: fixed
-#   kube-monkey/kill-value: 1
-#
-# ofagent_pod_labels:
-#   kube-monkey/enabled: enabled
-#   kube-monkey/identifier: monkey-victim
-#   kube-monkey/mtbf: 1
-#   kube-monkey/kill-mode: fixed
-#   kube-monkey/kill-value: 1
-#
-# openolt_deployment_labels:
-#   kube-monkey/enabled: enabled
-#   kube-monkey/identifier: monkey-victim
-#   kube-monkey/mtbf: 1
-#   kube-monkey/kill-mode: fixed
-#   kube-monkey/kill-value: 1
-#
-# openolt_pod_labels:
-#   kube-monkey/enabled: enabled
-#   kube-monkey/identifier: monkey-victim
-#   kube-monkey/mtbf: 1
-#   kube-monkey/kill-mode: fixed
-#   kube-monkey/kill-value: 1
-#
-# openonu_deployment_labels:
-#   kube-monkey/enabled: enabled
-#   kube-monkey/identifier: monkey-victim
-#   kube-monkey/mtbf: 1
-#   kube-monkey/kill-mode: fixed
-#   kube-monkey/kill-value: 1
-#
-# openonu_pod_labels:
-#   kube-monkey/enabled: enabled
-#   kube-monkey/identifier: monkey-victim
-#   kube-monkey/mtbf: 1
-#   kube-monkey/kill-mode: fixed
-#   kube-monkey/kill-value: 1
-#
-# simolt_deployment_labels:
-#   kube-monkey/enabled: enabled
-#   kube-monkey/identifier: monkey-victim
-#   kube-monkey/mtbf: 1
-#   kube-monkey/kill-mode: fixed
-#   kube-monkey/kill-value: 1
-#
-# simolt_pod_labels:
-#   kube-monkey/enabled: enabled
-#   kube-monkey/identifier: monkey-victim
-#   kube-monkey/mtbf: 1
-#   kube-monkey/kill-mode: fixed
-#   kube-monkey/kill-value: 1
-#
-# simonu_deployment_labels:
-#   kube-monkey/enabled: enabled
-#   kube-monkey/identifier: monkey-victim
-#   kube-monkey/mtbf: 1
-#   kube-monkey/kill-mode: fixed
-#   kube-monkey/kill-value: 1
-#
-# simonu_pod_labels:
-#   kube-monkey/enabled: enabled
-#   kube-monkey/identifier: monkey-victim
-#   kube-monkey/mtbf: 1
-#   kube-monkey/kill-mode: fixed
-#   kube-monkey/kill-value: 1
diff --git a/full-values.yaml b/values.yaml
similarity index 99%
rename from full-values.yaml
rename to values.yaml
index 23598d7..d58069b 100644
--- a/full-values.yaml
+++ b/values.yaml
@@ -85,7 +85,6 @@
 # END_OPENONU_ADAPTER_GO
 
 etcd:
-  replicas: 3
   extraEnv:
     - name: ETCD_AUTO_COMPACTION_RETENTION
       value: "1"
@@ -110,10 +109,8 @@
 
 kafka:
   zookeeper:
-    replicaCount: 3
     persistence:
       enabled: false
-  replicas: 3
   persistence:
     enabled: false
   envOverrides:
diff --git a/voltha b/voltha
index f5c4403..cc81802 100755
--- a/voltha
+++ b/voltha
@@ -65,8 +65,7 @@
     CIVIS="$(tput civis)"
 fi
 
-TYPE=${TYPE:-minimal}
-NAME=${NAME:-$TYPE}
+NAME=${NAME:-minimal}
 
 ENABLE_ONOS_EXTRANEOUS_RULES=${ENABLE_ONOS_EXTRANEOUS_RULES:-no}
 INFRA_NS=${INFRA_NS:-default}
@@ -137,7 +136,11 @@
 EXTRA_HELM_INSTALL_ARGS=${EXTRA_HELM_INSTALL_ARGS:-}
 INTERNAL_EXTRA_HELM_INSTALL_ARGS=
 NUM_OF_BBSIM=${NUM_OF_BBSIM:-1}
+NUM_OF_WORKER_NODES=${NUM_OF_WORKER_NODES:-2}
+NUM_OF_CONTROLLER_NODES=${NUM_OF_CONTROLLER_NODES:-1}
 NUM_OF_OPENONU=${NUM_OF_OPENONU:-1}
+NUM_OF_KAFKA=${NUM_OF_KAFKA:-1}
+NUM_OF_ETCD=${NUM_OF_ETCD:-1}
 MAX_NUM_OF_BBSIM=10
 MAX_NUM_OF_OPENONU=10
 LEGACY_BBSIM_INDEX=${LEGACY_BBSIM_INDEX:-no}
@@ -151,33 +154,6 @@
 BBSIM_LABEL="-l app=bbsim"
 NO_LABEL=
 
-# check number (range) of bbsim, max bbsim must not exceed 10 instances!
-# note: instances will be numbered from 0 to 9
-if [ "$1" == "up" ]; then
-    if [ "$NUM_OF_BBSIM" -lt 1 ]; then
-        >&2 echo -e "${RED}${BOLD}${ERROR}ERROR:${NORMAL}${RED} Invalid setting of BBSIM instances. NUM_OF_BBSIM (${NUM_OF_BBSIM}) is less than 1${NORMAL}"
-        exit 1
-    fi
-    if [ "$NUM_OF_BBSIM" -gt "$MAX_NUM_OF_BBSIM" ]; then
-        >&2 echo -e "${RED}${BOLD}${ERROR}ERROR:${NORMAL}${RED} Invalid setting of BBSIM instances. NUM_OF_BBSIM (${NUM_OF_BBSIM}) is greater than $MAX_NUM_OF_BBSIM${NORMAL}"
-        exit 1
-    fi
-
-    if [ "$NUM_OF_OPENONU" -lt 1 ]; then
-        >&2 echo -e "${RED}${BOLD}${ERROR}ERROR:${NORMAL}${RED} Invalid setting of OPENONU instances. NUM_OF_OPENONU (${NUM_OF_OPENONU}) is less than 1${NORMAL}"
-        exit 1
-    fi
-    if [ "$NUM_OF_OPENONU" -gt "$MAX_NUM_OF_OPENONU" ]; then
-        >&2 echo -e "${RED}${BOLD}${ERROR}ERROR:${NORMAL}${RED} Invalid setting of OPENONU instances. NUM_OF_OPENONU (${NUM_OF_OPENONU}) is greater than $MAX_NUM_OF_OPENONU${NORMAL}"
-        exit 1
-    fi
-fi
-# Verify TYPE setting
-if [ "$(echo ":minimal:full:" | grep -ic ":$TYPE:")" -eq 0 ]; then
-    >&2 echo -e "${RED}${BOLD}${ERROR}ERROR:${NORMAL}${RED} Invalid \$TYPE value of '$TYPE'. Should be 'minimal' or 'full'${NORMAL}"
-    exit 1
-fi
-
 # checks to see if a given WORD is in the given LIST of words
 function is_in() {
     local WORD LIST
@@ -304,7 +280,6 @@
 
 ALL_OPTIONS="\
     NAME \
-    TYPE \
     $ALL_YES_NO \
     $OPT_YES_NO \
     WAIT_TIMEOUT \
@@ -316,6 +291,10 @@
     BBSIM_SADIS_SERVER_CHART \
     BBSIM_SADIS_SERVER_CHART_VERSION \
     NUM_OF_BBSIM \
+    NUM_OF_WORKER_NODES \
+    NUM_OF_CONTROLLER_NODES \
+    NUM_OF_KAFKA \
+    NUM_OF_ETCD \
     ELASTICSEARCH_CHART \
     ELASTICSEARCH_CHART_VERSION \
     KIBANA_CHART \
@@ -380,6 +359,59 @@
     eval "$VAR"="$(normalize_yes_no "$VAR")"
 done
 
+# check number (range) of bbsim, max bbsim must not exceed 10 instances!
+# note: instances will be numbered from 0 to 9
+if [ "$1" == "up" ]; then
+    if [ "$NUM_OF_BBSIM" -lt 1 ]; then
+        >&2 echo -e "${RED}${BOLD}${ERROR}ERROR:${NORMAL}${RED} Invalid setting of BBSIM instances. NUM_OF_BBSIM (${NUM_OF_BBSIM}) is less than 1${NORMAL}"
+        exit 1
+    fi
+    if [ "$NUM_OF_BBSIM" -gt "$MAX_NUM_OF_BBSIM" ]; then
+        >&2 echo -e "${RED}${BOLD}${ERROR}ERROR:${NORMAL}${RED} Invalid setting of BBSIM instances. NUM_OF_BBSIM (${NUM_OF_BBSIM}) is greater than $MAX_NUM_OF_BBSIM${NORMAL}"
+        exit 1
+    fi
+
+    if [ "$NUM_OF_OPENONU" -lt 1 ]; then
+        >&2 echo -e "${RED}${BOLD}${ERROR}ERROR:${NORMAL}${RED} Invalid setting of OPENONU instances. NUM_OF_OPENONU (${NUM_OF_OPENONU}) is less than 1${NORMAL}"
+        exit 1
+    fi
+    if [ "$NUM_OF_OPENONU" -gt "$MAX_NUM_OF_OPENONU" ]; then
+        >&2 echo -e "${RED}${BOLD}${ERROR}ERROR:${NORMAL}${RED} Invalid setting of OPENONU instances. NUM_OF_OPENONU (${NUM_OF_OPENONU}) is greater than $MAX_NUM_OF_OPENONU${NORMAL}"
+        exit 1
+    fi
+
+    # check that NUM_OF_KAFKA, NUM_OF_ONOS, NUM_OF_ATOMIX, NUM_OF_ETCD is:
+    # <= NUM_OF_WORKER_NODES + 1 if SCHEDULE_ON_CONTROL_NODES == y
+    # <= NUM_OF_WORKER_NODES if SCHEDULE_ON_CONTROL_NODES == n
+    SCHEDULABLE_NODES=$NUM_OF_WORKER_NODES
+
+    if [ "$SCHEDULE_ON_CONTROL_NODES" == "yes" ]; then
+      SCHEDULABLE_NODES=$((NUM_OF_CONTROLLER_NODES+NUM_OF_WORKER_NODES))
+    fi
+
+    NODES="SCHEDULE_ON_CONTROL_NODES: $SCHEDULE_ON_CONTROL_NODES, SCHEDULABLE_NODES: $SCHEDULABLE_NODES, NUM_OF_CONTROLLER_NODES: $NUM_OF_CONTROLLER_NODES, NUM_OF_WORKER_NODES: $NUM_OF_WORKER_NODES"
+
+    if [ ! "$NUM_OF_KAFKA" -le "$SCHEDULABLE_NODES" ]; then
+      >&2 echo -e "${RED}${BOLD}${ERROR}ERROR:${NORMAL}${RED} Invalid setting of KAFKA replicas. NUM_OF_KAFKA (${NUM_OF_KAFKA}) is greater than the available nodes ($NODES)${NORMAL}"
+      exit 1
+    fi
+
+    if [ ! "$NUM_OF_ETCD" -le "$SCHEDULABLE_NODES" ]; then
+      >&2 echo -e "${RED}${BOLD}${ERROR}ERROR:${NORMAL}${RED} Invalid setting of ETCD replicas. NUM_OF_ETCD (${NUM_OF_ETCD}) is greater than the available nodes ($NODES)${NORMAL}"
+      exit 1
+    fi
+
+    if [ ! "$NUM_OF_ATOMIX" -le "$SCHEDULABLE_NODES" ]; then
+      >&2 echo -e "${RED}${BOLD}${ERROR}ERROR:${NORMAL}${RED} Invalid setting of ATOMIX replicas. NUM_OF_ATOMIX (${NUM_OF_ATOMIX}) is greater than the available nodes ($NODES)${NORMAL}"
+      exit 1
+    fi
+
+    if [ ! "$NUM_OF_ONOS" -le "$SCHEDULABLE_NODES" ]; then
+      >&2 echo -e "${RED}${BOLD}${ERROR}ERROR:${NORMAL}${RED} Invalid setting of ONOS replicas. NUM_OF_ONOS (${NUM_OF_ONOS}) is greater than the available nodes ($NODES)${NORMAL}"
+      exit 1
+    fi
+fi
+
 # normalize non-truth value options
 if is_in "$WITH_KAFKA" "e,external"; then
     WITH_KAFKA="external"
@@ -1218,7 +1250,7 @@
             _HELM_ARGS="--create-namespace"
         fi
     fi
-    CMD=("helm $_HELM_COMMAND --debug --dry-run -f $NAME-values.yaml $CHART_ARGS $INTERNAL_EXTRA_HELM_INSTALL_ARGS $EXTRA_HELM_INSTALL_ARGS --set defaults.log_level=$VOLTHA_LOG_LEVEL --namespace $NAMESPACE $_HELM_ARGS  $CHART_VERSION $EXTRA_HELM_FLAGS $_HELM_NAME_ARG $CHART")
+    CMD=("helm $_HELM_COMMAND --debug --dry-run -f values.yaml $CHART_ARGS $INTERNAL_EXTRA_HELM_INSTALL_ARGS $EXTRA_HELM_INSTALL_ARGS --set defaults.log_level=$VOLTHA_LOG_LEVEL --namespace $NAMESPACE $_HELM_ARGS  $CHART_VERSION $EXTRA_HELM_FLAGS $_HELM_NAME_ARG $CHART")
    ${CMD[*]} 2>/dev/null | awk 'PRINT==1 {print}; /^USER-SUPPLIED VALUES:/ {PRINT = 1}; /^$/ {PRINT = 0}'
 }
 
@@ -1276,13 +1308,13 @@
 
     VALUES_FILE="$(mktemp)"
     if [ "$FILTER" == "-" ]; then
-        cp "$NAME-values.yaml" "$VALUES_FILE"
+        cp "values.yaml" "$VALUES_FILE"
     elif [ "${FILTER:0:1}" == "+" ]; then
-        cp "$NAME-values.yaml" "$VALUES_FILE"
-        yq r - "${FILTER:1}" <"$NAME-values.yaml" >>"$VALUES_FILE"
+        cp "values.yaml" "$VALUES_FILE"
+        yq r - "${FILTER:1}" <"values.yaml" >>"$VALUES_FILE"
         cat "$VALUES_FILE" >>"$LOG"
     else
-        yq r - "$FILTER" <"$NAME-values.yaml" >"$VALUES_FILE"
+        yq r - "$FILTER" <"values.yaml" >"$VALUES_FILE"
     fi
     if [ "$WITH_PPROF" == "yes" ]; then
         PPROF_ARG="--set profiler.enabled=true"
@@ -1317,7 +1349,7 @@
     espin "$INDENT" "$VERIFIED"
 }
 
-echo "INSTALL TYPE: $TYPE" >> "$LOG"
+echo "INSTALL NAME: $NAME" >> "$LOG"
 
 STIME="$(date +%s)"
 if [ "$INSTALL_KUBECTL" == "no" ]; then
@@ -1514,22 +1546,28 @@
     sspin
     if [ "$HAVE" -eq 0 ]; then
         espin "$NOT_VERIFIED"
-        bspin - "Verify cluster configuration"
-        if [ ! -r "./$NAME-cluster.cfg" ]; then
-            espin - "$NOT_VERIFIED"
-            bspin - "Download cluster configuration: $TYPE-cluster.cfg to $NAME-cluster.cfg $DOWNLOAD"
-            ERR_OUT="$(mktemp)"
-            if ! (set -x; curl --fail -o "./$NAME-cluster.cfg" -sSL "https://raw.githubusercontent.com/opencord/kind-voltha/$VK_RELEASE/$TYPE-cluster.cfg" >>"$LOG" 2>>"$ERR_OUT") >>"$LOG" 2>&1; then
-                espin - "$THEX"
-                echo -e "${RED}${BOLD}${ERROR}ERROR: $NAME-cluster.cfg${NORMAL}${RED} - $(cat "$ERR_OUT")${NORMAL}"
-                echo "ERROR: $(cat "$ERR_OUT")" >>"$LOG"
-                rm -rf "$ERR_OUT" "./$NAME-cluster.cfg"
-                exit 1
-            fi
-            rm -rf "$ERR_OUT"
-        else
-            espin - "$VERIFIED"
+        bspin - "Generating cluster configuration"
+
+        touch "$NAME-cluster.cfg"
+
+        yq w -i "$NAME-cluster.cfg" kind Cluster
+        yq w -i "$NAME-cluster.cfg" apiVersion "kind.sigs.k8s.io/v1alpha3"
+
+        if [ ! "$NUM_OF_CONTROLLER_NODES" -eq 0 ]; then
+          for instance in $(seq 1 "$NUM_OF_CONTROLLER_NODES"); do
+            yq w -i "$NAME-cluster.cfg" "nodes[+].role" "control-plane"
+          done
         fi
+
+        if [ ! "$NUM_OF_WORKER_NODES" -eq 0 ]; then
+          for instance in $(seq 1 "$NUM_OF_WORKER_NODES"); do
+            yq w -i "$NAME-cluster.cfg" "nodes[+].role" worker
+          done
+        fi
+        espin - "$VERIFIED"
+
+        cat "$NAME-cluster.cfg" >> "$LOG" 2>&1
+
         kind create cluster --name "voltha-$NAME" --config "$NAME-cluster.cfg"
      else
         espin "$VERIFIED"
@@ -1550,9 +1588,14 @@
         kube-proxy-.* \
         kube-scheduler-voltha-$NAME-control-plane"
 
-    EXPECT="$(test "$TYPE" == "minimal" && echo "12" || echo "14")"
+    EXPECT="8"
+    if [ ! "$NUM_OF_WORKER_NODES" -eq 0 ]; then
+      NUM=$((2*NUM_OF_WORKER_NODES)) # kindnet and kube-proxy are deployed on each node
+      EXPECT=$((EXPECT+NUM))
+    fi
     wait_for_pods - "kube-system" "$EXPECT" "includes" "Waiting for system PODs to start" "$NO_LABEL" "$P"
 fi
+
 if [ "$WITH_TIMINGS" == "yes" ]; then
     NOW="$(date +%s)"
     printtime $((NOW - STIME))
@@ -1692,16 +1735,16 @@
 EOV
 
 STIME="$(date +%s)"
-bspin "Verify Helm values file: $NAME-values.yaml"
-if [ ! -r "./$NAME-values.yaml" ]; then
+bspin "Verify Helm values file: values.yaml"
+if [ ! -r "./values.yaml" ]; then
     espin "$NOT_VERIFIED"
-    bspin - "Download Helm values file: $TYPE-values.yaml to $NAME-values.yaml $DOWNLOAD"
+    bspin - "Download Helm values file: values.yaml to values.yaml $DOWNLOAD"
     ERR_OUT="$(mktemp)"
-    if ! (set -x; curl --fail -o "./$NAME-values.yaml" -sSL "https://raw.githubusercontent.com/opencord/kind-voltha/$VK_RELEASE/$TYPE-values.yaml" >>"$LOG" 2>"$ERR_OUT") >>"$LOG" 2>&1; then
+    if ! (set -x; curl --fail -o "./values.yaml" -sSL "https://raw.githubusercontent.com/opencord/kind-voltha/$VK_RELEASE/values.yaml" >>"$LOG" 2>"$ERR_OUT") >>"$LOG" 2>&1; then
         espin - "$THEX"
-        echo -e "${RED}${BOLD}${ERROR}ERROR: $NAME-values.yaml${NORMAL}${RED} - $(cat "$ERR_OUT")${NORMAL}"
+        echo -e "${RED}${BOLD}${ERROR}ERROR: values.yaml${NORMAL}${RED} - $(cat "$ERR_OUT")${NORMAL}"
         echo "ERROR: $(cat "$ERR_OUT")" >>"$LOG"
-        rm -rf "$ERR_OUT" "./$NAME-values.yaml"
+        rm -rf "$ERR_OUT" "./values.yaml"
         exit 1
     fi
     rm -rf "$ERR_OUT"
@@ -1997,10 +2040,11 @@
 if is_in "$WITH_ETCD" "yes,external"; then
     STIME="$(date +%s)"
     bspin "Verify external ETCD cluster $OLD_KEY"
-    EXPECT="$(yq r - "etcd.replicas" <"$NAME-values.yaml")"
+    EXPECT=$NUM_OF_ETCD
     if [ "$HELM_USE_UPGRADE" == "yes" ] || [ "$(helm_is_deployed "$INFRA_NS" "^etcd\$")" -ne 1 ]; then
         espin "$NOT_VERIFIED"
-        helm_install - "$INFRA_NS" etcd "$ETCD_CHART" "$ETCD_CHART_VERSION" etcd "$_HELM_DESC external ETCD cluster"
+        INTERNAL_EXTRA_HELM_INSTALL_ARGS="--set replicas=$NUM_OF_ETCD" helm_install - "$INFRA_NS" etcd "$ETCD_CHART" "$ETCD_CHART_VERSION" etcd "$_HELM_DESC external ETCD cluster"
+        INTERNAL_EXTRA_HELM_INSTALL_ARGS=
     else
         espin "$VERIFIED"
     fi
@@ -2013,24 +2057,23 @@
 
 if is_in "$WITH_KAFKA" "yes,external"; then
     _TMP="$(mktemp -u)"
-    _COUNT="$(test "$TYPE" == "minimal" && echo "1" || echo "3")"
     cat << EOC > "$_TMP"
 configurationOverrides:
-  "default.replication.factor": $_COUNT
-  "offsets.topic.replication.factor": $_COUNT
+  "default.replication.factor": $NUM_OF_KAFKA
+  "offsets.topic.replication.factor": $NUM_OF_KAFKA
   "log.retention.hours": 4
   "log.message.timestamp.type": "LogAppendTime"
 persistence:
   enabled: false
 zookeeper:
-  replicaCount: 1
+  replicaCount: $NUM_OF_KAFKA
   persistence:
     enabled: false
-replicas: $_COUNT
+replicas: $NUM_OF_KAFKA
 EOC
     STIME="$(date +%s)"
     bspin "Verify external Kafka cluster $OLD_KEY"
-    EXPECT="$(test "$TYPE" == "minimal" && echo "2" || echo "4")"
+    EXPECT=$((NUM_OF_KAFKA*2))
     if [ "$HELM_USE_UPGRADE" == "yes" ] || [ "$(helm_is_deployed "$INFRA_NS" "^kafka\$")" -ne 1 ]; then
         espin "$NOT_VERIFIED"
         INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" -f $_TMP"
