diff --git a/Dockerfile.tost b/Dockerfile.tost
index 5345b6e..984d1bb 100644
--- a/Dockerfile.tost
+++ b/Dockerfile.tost
@@ -14,9 +14,11 @@
 # limitations under the License.
 #
 
+ARG DOCKER_TAG
+
 # We start from an onos image and install the apps.
 # We need at least an onos image built with 'tost' profile
-FROM tost-onos as install
+FROM tost-onos:${DOCKER_TAG} as install
 
 ARG KARAF_VERSION
 ARG LOCAL_APPS
@@ -44,8 +46,10 @@
 RUN chmod 755 ./app-install.sh
 RUN ./app-install.sh
 
+ARG DOCKER_TAG
+
 # Create the final image coping over the installed applications from the install stage
-FROM tost-onos
+FROM tost-onos:${DOCKER_TAG}
 
 ARG KARAF_VERSION
 
diff --git a/Makefile b/Makefile
index b84e837..1ad7ec8 100644
--- a/Makefile
+++ b/Makefile
@@ -18,14 +18,14 @@
 SHELL                        := /bin/bash -e -o pipefail
 
 # General variables
-VERSION                      ?= $(shell cat ./VERSION)
 THIS_MAKE                    := $(lastword $(MAKEFILE_LIST))
 
 # Docker related
 DOCKER_REGISTRY              ?=
 DOCKER_REPOSITORY            ?=
 DOCKER_BUILD_ARGS            ?=
-DOCKER_TAG                   ?= ${VERSION}
+DOCKER_TAG                   ?= stable
+DOCKER_TAG_BUILD_DATE        ?=
 
 # Docker labels. Only set ref and commit date if committed
 DOCKER_LABEL_VCS_URL         ?= $(shell git remote get-url $(shell git remote))
@@ -38,22 +38,30 @@
   DOCKER_LABEL_VCS_REF = $(shell git rev-parse HEAD)+dirty
 endif
 
+ifeq ($(DOCKER_TAG),stable)
 # Includes the default ("working") versions of each component
-include ./Makefile.vars
+  include ./Makefile.vars.stable
+else ifeq ($(DOCKER_TAG),master)
+# Includes the master versions of each component
+  include ./Makefile.vars.master
+else
+  $(error You must define properly the DOCKER_TAG variable)
+endif
+
 
 # Shellcheck related
 SHELLCHECK_TAG=v0.7.1
 SHELLCHECK_IMAGE=koalaman/shellcheck:${SHELLCHECK_TAG}
 
 # ONOS related
-ONOS_IMAGENAME               := tost-onos
+ONOS_IMAGENAME               := tost-onos:${DOCKER_TAG}${DOCKER_TAG_BUILD_DATE}
 export ONOS_ROOT             := $(shell pwd)/onos
 ONOS_REPO                    := https://gerrit.onosproject.org/onos
 ONOS_PROFILE                 := "tost"
 KARAF_VERSION                := 4.2.9
 
 # TOST related
-TOST_IMAGENAME               := ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}tost:${DOCKER_TAG}
+TOST_IMAGENAME               := ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}tost:${DOCKER_TAG}${DOCKER_TAG_BUILD_DATE}
 export LOCAL_APPS            := local-apps
 
 # Trellis-Control related
@@ -101,7 +109,8 @@
 	@echo "KAFKA_ONOS_VERSION        : Override to use a specific branch/commit/tag/release to build the image"
 	@echo "FABRIC_TNA_VERSION        : Override to use a specific branch/commit/tag/release to build the image"
 	@echo ""
-	@echo "'Makefile.vars' defines default values for '*_VERSION' variables".
+	@echo "'Makefile.vars.stable' defines the stable values for '*_VERSION' variables".
+	@echo "'Makefile.vars.master' defines the tip values for '*_VERSION' variables".
 	@echo ""
 
 ## Make targets
@@ -290,19 +299,20 @@
 tost-build: ## : Builds the tost docker image
 	docker build $(DOCKER_BUILD_ARGS) \
     -t ${TOST_IMAGENAME} \
+    --build-arg DOCKER_TAG="${DOCKER_TAG}${DOCKER_TAG_BUILD_DATE}" \
     --build-arg LOCAL_APPS=${LOCAL_APPS} \
     --build-arg KARAF_VERSION=${KARAF_VERSION} \
-    --build-arg org_label_schema_version="${VERSION}" \
+    --build-arg org_label_schema_version="${DOCKER_TAG}${DOCKER_TAG_BUILD_DATE}" \
     --build-arg org_label_schema_vcs_url="${DOCKER_LABEL_VCS_URL}" \
     --build-arg org_label_schema_vcs_ref="${DOCKER_LABEL_VCS_REF}" \
     --build-arg org_label_schema_build_date="${DOCKER_LABEL_BUILD_DATE}" \
-    --build-arg org_onosproject_onos_version="${ONOS_VERSION}"\
-    --build-arg org_onosproject_trellis_control_version="${TRELLIS_CONTROL_VERSION}"\
-    --build-arg org_onosproject_trellis_t3_version="${TRELLIS_T3_VERSION}"\
-    --build-arg org_opencord_fabric_tofino_version="${FABRIC_TOFINO_VERSION}"\
-    --build-arg org_omecproject_up4_version="${UP4_VERSION}"\
-    --build-arg org_opencord_kafka_onos_version="${KAFKA_ONOS_VERSION}"\
-    --build-arg org_stratumproject_fabric_tna_version="${FABRIC_TNA_VERSION}"\
+    --build-arg org_onosproject_onos_version="$(shell cd ${ONOS_ROOT} && git rev-parse HEAD)"\
+    --build-arg org_onosproject_trellis_control_version="$(shell cd ${TRELLIS_CONTROL_ROOT} && git rev-parse HEAD)"\
+    --build-arg org_onosproject_trellis_t3_version="$(shell cd ${TRELLIS_T3_ROOT} && git rev-parse HEAD)"\
+    --build-arg org_opencord_fabric_tofino_version="$(shell cd ${FABRIC_TOFINO_ROOT} && git rev-parse HEAD)"\
+    --build-arg org_omecproject_up4_version="$(shell cd ${UP4_ROOT} && git rev-parse HEAD)"\
+    --build-arg org_opencord_kafka_onos_version="$(shell cd ${KAFKA_ONOS_ROOT} && git rev-parse HEAD)"\
+    --build-arg org_stratumproject_fabric_tna_version="$(shell cd ${FABRIC_TNA_ROOT} && git rev-parse HEAD)"\
     -f Dockerfile.tost .
 
 onos-push: ## : Pushes the tost-onos docker image to an external repository
diff --git a/Makefile.vars b/Makefile.vars.master
similarity index 77%
copy from Makefile.vars
copy to Makefile.vars.master
index 7525056..455f5b4 100644
--- a/Makefile.vars
+++ b/Makefile.vars.master
@@ -26,10 +26,10 @@
 # (2) Checkout Local source code (local branch not yet pushed);
 # (3) Fetch from Gerrit/Github (pending review in the form of refs/changes/... or pending pull request);
 
-export ONOS_VERSION            ?= 2.2.7-b3
-export TRELLIS_CONTROL_VERSION ?= 3.0.0
-export TRELLIS_T3_VERSION      ?= 3.0.0
-export FABRIC_TOFINO_VERSION   ?= e1cf4551b4ab74bb82a7cecf19d197698ffbc1cb
-export UP4_VERSION             ?= aeae3c4588f98ed1b863b3ee451e4bd48988716d
-export KAFKA_ONOS_VERSION      ?= 2.4.0-SNAPSHOT
-export FABRIC_TNA_VERSION      ?= 2268090aa5f973855923f8a52f4077557a90be47
+export ONOS_VERSION            ?= master
+export TRELLIS_CONTROL_VERSION ?= 3.0.1-SNAPSHOT
+export TRELLIS_T3_VERSION      ?= 4.0.0-SNAPSHOT
+export FABRIC_TOFINO_VERSION   ?= master
+export UP4_VERSION             ?= master
+export KAFKA_ONOS_VERSION      ?= 2.5.0-SNAPSHOT
+export FABRIC_TNA_VERSION      ?= master
diff --git a/Makefile.vars b/Makefile.vars.stable
similarity index 92%
rename from Makefile.vars
rename to Makefile.vars.stable
index 7525056..678dc99 100644
--- a/Makefile.vars
+++ b/Makefile.vars.stable
@@ -31,5 +31,5 @@
 export TRELLIS_T3_VERSION      ?= 3.0.0
 export FABRIC_TOFINO_VERSION   ?= e1cf4551b4ab74bb82a7cecf19d197698ffbc1cb
 export UP4_VERSION             ?= aeae3c4588f98ed1b863b3ee451e4bd48988716d
-export KAFKA_ONOS_VERSION      ?= 2.4.0-SNAPSHOT
-export FABRIC_TNA_VERSION      ?= 2268090aa5f973855923f8a52f4077557a90be47
+export KAFKA_ONOS_VERSION      ?= 2.4.0
+export FABRIC_TNA_VERSION      ?= 53e86f15024a097f24b77620bf8b6a4ed7079228
diff --git a/README.md b/README.md
index 67decdb..0895de4 100644
--- a/README.md
+++ b/README.md
@@ -4,9 +4,9 @@
 
 ## Build
 
-We provide multiple build targets for the Makefile
+We provide multiple build targets for the Makefile. Versions of the components are defined in `Makefile.vars.*` files; `stable` version points to well known stable commits and `master` branch points to **ONOS** master and to the tip of the **TOST** components. **DOCKER_TAG** is used to select which version to build, by default points to `stable`.
 
-`onos-build` is used to build a specialized **Docker** image of **ONOS** (`tost-onos`) that will contain only the apps needed by **TOST**. It depends on `onos` target, which is used to setup the `onos` workspace for the build. It clones `onos` if it does not exist in the workspace, it will try to checkout the **ONOS_VERSION** first and in case of failure will try to download the patchset from remote repository. **ONOS_VERSION** is defined in `Makefile.vars`, overriding the variable at run time it is possible to build a different version of **ONOS**.
+`onos-build` is used to build a specialized **Docker** image of **ONOS** (`tost-onos`) that will contain only the apps needed by **TOST**. It depends on `onos` target, which is used to setup the `onos` workspace for the build. It clones `onos` if it does not exist in the workspace, it will try to checkout the **ONOS_VERSION** first and in case of failure will try to download the patchset from remote repository. **ONOS_VERSION** is defined in `Makefile.vars.DOCKER_TAG` file, overriding the variable at run time it is possible to build a different version of **ONOS**.
 
 
 ```sh
@@ -26,7 +26,7 @@
 
 Makefile will build also the apps. These are the apps currently integrated in the script: **trellis-control**, **trellis-t3**, **fabric-tofino**, **up4**, **kafka-onos** and **fabric-tna**. For each one, there is a **build** target.
 
-`appname-build` builds with the version specified in the `Makefile.vars`, using the following sources in order: (1) Maven central (for released versions or snapshots); (2) Local source code (for local branch not yet pushed); (3) Gerrit/Github (for pending review in the form of refs/changes/... or pending pull request). As a prerequisite, the script prepares `mvn_settings.xml` file, creates the `local-apps` folder and checks out the code if it is not present (relies on `appname` target). **APPNAME_VERSION**, defined in `Makefile.vars`, can be overridden at runtime.
+`appname-build` builds with the version specified in the `Makefile.vars.DOCKER_TAG`, using the following sources in order: (1) Maven central (for released versions or snapshots); (2) Local source code (for local branch not yet pushed); (3) Gerrit/Github (for pending review in the form of refs/changes/... or pending pull request). As a prerequisite, the script prepares `mvn_settings.xml` file, creates the `local-apps` folder and checks out the code if it is not present (relies on `appname` target). **APPNAME_VERSION**, defined in `Makefile.vars.DOCKER_TAG` file, can be overridden at runtime.
 
 
 ```sh
diff --git a/VERSION b/VERSION
index 276823b..661235a 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1,2 @@
+# VERSION file is currently unused
 1.0.2-SNAPSHOT
