diff --git a/releases/voltha-2.7 b/releases/voltha-2.7
new file mode 100644
index 0000000..c5790d0
--- /dev/null
+++ b/releases/voltha-2.7
@@ -0,0 +1,25 @@
+# SPDX-FileCopyrightText: © 2020 kind-voltha contributors
+# SPDX-License-Identifier: Apache-2.0o
+#
+# Source this file before running ./voltha up to install the VOLTHA 2.6.0 release
+
+export VOLTHA_CHART_VERSION=2.8.3
+export VOLTHA_BBSIM_CHART_VERSION=4.2.0
+export VOLTHA_ADAPTER_OPEN_OLT_CHART_VERSION=2.8.6
+export VOLTHA_ADAPTER_OPEN_ONU_CHART_VERSION=2.7.13 # needs update once released
+export BBSIM_SADIS_SERVER_CHART_VERSION=0.1.1
+export ONOS_CLASSIC_CHART_VERSION=0.1.13
+export RADIUS_CHART_VERSION=1.0.2
+export VOLTCTL_VERSION=1.4.4
+export WITH_ONOS=classic
+export HELM_VERSION=v3.2.4
+export KIND_VERSION=v0.8.1
+
+# defaults.image_tag=null will use the image tags in the Helm charts rather than
+# kind-voltha's default which is 'master'.
+# Also we need to specify the tag for voltha/voltha-onos image since this is
+# not in the ONOS chart.
+export EXTRA_HELM_FLAGS="--set defaults.image_tag=null,images.onos.tag=master " # use the correct VOLTHA-ONOS image once merged
+
+# remove once the components have been released
+EXTRA_HELM_FLAGS+="--set images.adapter_open_onu_go.tag=master "
diff --git a/voltha b/voltha
index 34e2e8a..7210b61 100755
--- a/voltha
+++ b/voltha
@@ -2546,14 +2546,13 @@
 # therecanbeonlyone set hardcoded to true for backward compatibility
 INTERNAL_EXTRA_HELM_INSTALL_ARGS="--set therecanbeonlyone=true"
 
-if [[ $(semver_greater "$VOLTHA_CHART_VERSION" "2.6.7") == "true" ]]; then
+if [[ $(semver_greater "$RESOLVED_VOLTHA_CHART_VERSION" "2.6.7") == "true" ]]; then
   # this is past voltha-2.5, we support multiple stacks
   # customize the topics in case of multiple stacks sharing the same kafka
   INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set defaults.topics.core_topic=$NAME-rwcore,defaults.kv_store_data_prefix=service/$NAME"
-elif [[ $(semver_greater "$VOLTHA_CHART_VERSION" "2.8.0") == "true" ]]; then
-  # this is past voltha-2.6, we introduced the voltha-stack chart and
-  # "defaults" is now "global"
-  INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set global.topics.core_topic=$NAME-rwcore,global.kv_store_data_prefix=service/$NAME"
+fi
+if [[ $(semver_greater "$RESOLVED_VOLTHA_CHART_VERSION" "2.8.0") == "true" ]]; then
+  INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set rw_core.topics.core_topic=$NAME-rwcore,rw_core.kv_store_data_prefix=service/$NAME"
 fi
 
 case $WITH_ETCD in
@@ -2644,13 +2643,16 @@
 if [ "$WITH_ADAPTERS" == "yes" ]; then
     STIME="$(date +%s)"
     EXPECT=0
-    if [[ $(semver_greater "$VOLTHA_ADAPTER_OPEN_ONU_CHART_VERSION" "2.5.0") == "true" ]]; then
+    if [[ $(semver_greater "$RESOLVED_VOLTHA_ADAPTER_OPEN_ONU_CHART_VERSION" "2.5.0") == "true" ]]; then
       # this is past voltha-2.5, we support multiple stacks
       INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set defaults.topics.core_topic=$NAME-rwcore,defaults.topics.adapter_open_olt_topic=$NAME-openolt,defaults.topics.adapter_open_onu_topic=$NAME-brcm_openomci_onu,defaults.kv_store_data_prefix=service/$NAME"
-    elif [[ $(semver_greater "$VOLTHA_ADAPTER_OPEN_ONU_CHART_VERSION" "2.7.1") == "true" ]]; then
-      # this is past voltha-2.6, "defaults" is now "global"
-      INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set global.topics.core_topic=$NAME-rwcore,global.topics.adapter_open_olt_topic=$NAME-openolt,global.topics.adapter_open_onu_topic=$NAME-brcm_openomci_onu,global.kv_store_data_prefix=service/$NAME"
     fi
+    if [[ $(semver_greater "$RESOLVED_VOLTHA_ADAPTER_OPEN_ONU_CHART_VERSION" "2.7.1") == "true" ]]; then
+      INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set adapter_open_olt.topics.core_topic=$NAME-rwcore,adapter_open_onu.topics.core_topic=$NAME-rwcore "
+      INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set adapter_open_olt.topics.adapter_open_olt_topic=$NAME-openolt,adapter_open_onu.topics.adapter_open_onu_topic=$NAME-brcm_openomci_onu "
+      INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set adapter_open_onu.kv_store_data_prefix=service/$NAME,adapter_open_olt.kv_store_data_prefix=service/$NAME "
+    fi
+
     if is_in "$WITH_ETCD" "yes,external"; then
         _HOST=etcd.$INFRA_NS.svc
         _PORT=2379
