diff --git a/makefiles/release/help.mk b/makefiles/release/help.mk
index fde2d0e..0358ed8 100644
--- a/makefiles/release/help.mk
+++ b/makefiles/release/help.mk
@@ -24,8 +24,12 @@
 	@echo
 	@echo '[RELEASE] - Create branch driven testing pipelines'
 	@echo '  create-jobs-release'
-	@echo '  create-jobs-release-nightly Nightly testing'
-	@echo '  create-jobs-release-units   Unit testing'
+	@echo '  create-jobs-release-e2e            End-to-End testing'
+	@echo '  create-jobs-release-certification  Certification testing'
+	@echo '  create-jobs-release-nightly        Nightly testing'
+	@echo '  create-jobs-release-units          Unit testing'
+
+	@echo '  sterile-create-jobs-release        Purge pipeline job content'
 
 help ::
 	@echo '  help-voltha-release Display voltha release targets'
diff --git a/makefiles/release/include.mk b/makefiles/release/include.mk
index afc03d9..3c9879e 100644
--- a/makefiles/release/include.mk
+++ b/makefiles/release/include.mk
@@ -28,7 +28,7 @@
 
 ifdef USE_VOLTHA_RELEASE_MK
   # Dynamic loading when targets are requested by name
-  include $(ONF_MAKE)/release/targets.mk
+  include $(MAKEDIR)/release/targets.mk
 endif
 
 # [EOF]
diff --git a/makefiles/release/targets.mk b/makefiles/release/targets.mk
index 44aaac7..5ed307c 100644
--- a/makefiles/release/targets.mk
+++ b/makefiles/release/targets.mk
@@ -29,17 +29,17 @@
 
 GIT	?= /usr/bin/env git
 
-# fatal to make help
-voltha-version ?= $(error $(MAKE) voltha-verison=voltha-x.yy is required)\
+##--------------------##
+##---]  INCLUDES  [---##
+##--------------------##
+include $(MAKEDIR)/release/voltha-versions.mk
+include $(MAKEDIR)/release/targets/voltha-certification.mk
+include $(MAKEDIR)/release/targets/voltha-e2e.mk
+include $(MAKEDIR)/release/targets/voltha-nightly-jobs.mk
 
-last-release  := voltha-2.11
+# last-release  := voltha-2.11
+last-release := $(voltha-release-last)
 
-## Known releases
-versions += master
-versions += voltha-2.12
-versions += voltha-2.11
-versions += voltha-2.8
-versions += playground
 
 ##-------------------##
 ##---]  TARGETS  [---##
@@ -47,12 +47,12 @@
 all: help
 
 ## ---------------------------------------------------------------------------
-## Intent: Create branch driven pipeline test jobs.
+## Intent: Build these deps to create a new branch/release area
 ## ---------------------------------------------------------------------------
-## Build these deps to create a new release area
 create-jobs-release += create-jobs-release-certification
 create-jobs-release += create-jobs-release-nightly
 create-jobs-release += create-jobs-release-units
+create-jobs-release += create-jobs-release-e2e
 
 create-jobs-release : $(create-jobs-release)
 
@@ -75,63 +75,9 @@
 
 ## ---------------------------------------------------------------------------
 ## Intent: Create branch driven nightly test jobs.
-##   o Clone config for the last nightly release
-##   o In-place edit to the latest version.
 ## ---------------------------------------------------------------------------
-## NOTE: WIP - nightly jobs have not yet migrated from the mega job config file
-## ---------------------------------------------------------------------------
-nightly-dir  := $(release-mk-top)/jjb/voltha-test/voltha-nightly-jobs
-nightly-yaml := $(nightly-dir)/$(voltha-version).yaml
-nightly-tmpl := $(nightly-dir)/$(last-release).yaml
-
-create-jobs-release-nightly : $(nightly-yaml)
-$(nightly-yaml) : $(nightly-tmpl)
-
-	@echo
-	@echo "** Create branch driven pipeline: nightly tests"
-	sed -e 's/$(last-release)/$(voltha-version)/g' $< > $@
-	$(HIDE)/bin/ls -l $(dir $@)
-
-## ---------------------------------------------------------------------------
-## Intent: Create branch driven nightly test jobs.
-## ---------------------------------------------------------------------------
-$(nightly-tmpl):
-	@echo "ERROR: Yaml template branch does not exist: $@"
-	@echo 1
-
-## ---------------------------------------------------------------------------
-## Intent: Create branch driven nightly test jobs.
-##   o Clone config for the last nightly release
-##   o In-place edit to the latest version.
-## ---------------------------------------------------------------------------
-## NOTE: WIP - nightly jobs have not yet migrated from the mega job config file
-## ---------------------------------------------------------------------------
-certification-dir  := $(release-mk-top)/jjb/voltha-test/voltha-certification
-certification-yaml := $(certification-dir)/$(voltha-version).yaml
-certification-tmpl := $(certification-dir)/$(last-release).yaml
-
-create-jobs-release-certification : $(certification-yaml)
-$(certification-yaml) : $(certification-tmpl)
-
-	@echo
-	@echo "** Create branch driven pipeline: nightly tests"
-	sed -e 's/$(last-release)/$(voltha-version)/g' $< > $@
-	$(HIDE)/bin/ls -l $(dir $@)
-
-## ---------------------------------------------------------------------------
-## Intent: Create branch driven nightly test jobs.
-## ---------------------------------------------------------------------------
-$(certification-tmpl):
-	@echo "ERROR: Yaml template branch does not exist: $@"
-	@echo 1
-
-
-## ---------------------------------------------------------------------------
-## Intent: Create branch driven nightly test jobs.
-## ---------------------------------------------------------------------------
-sterile-create-jobs-release :
-	$(RM) $(certification-yaml)
-	$(RM) $(nightly-yaml)
+sterile-create-jobs-release := $(addprefix sterile-,$(create-jobs-release))
+sterile-create-jobs-release : $(sterile-create-jobs-release)
 	$(RM) -r $(units-yaml)
 
 $(if $(DEBUG),$(warning LEAVE))
diff --git a/makefiles/release/targets/voltha-certification.mk b/makefiles/release/targets/voltha-certification.mk
new file mode 100644
index 0000000..55e4f1a
--- /dev/null
+++ b/makefiles/release/targets/voltha-certification.mk
@@ -0,0 +1,56 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+#
+# 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.
+# -----------------------------------------------------------------------
+# Intent: Helper makefile target used to setup for a release
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+## ---------------------------------------------------------------------------
+## Intent: Create branch driven nightly test jobs.
+##   o Clone config for the last nightly release
+##   o In-place edit to the latest version.
+## ---------------------------------------------------------------------------
+## NOTE: WIP - nightly jobs have not yet migrated from the mega job config file
+## ---------------------------------------------------------------------------
+certification-dir  := $(release-mk-top)/jjb/voltha-test/voltha-certification
+certification-yaml := $(certification-dir)/$(voltha-version).yaml
+certification-tmpl := $(certification-dir)/$(voltha-release-last).yaml
+
+create-jobs-release-certification : $(certification-yaml)
+$(certification-yaml) : $(certification-tmpl)
+
+	@echo
+	@echo "** Create branch driven pipeline: nightly tests"
+	sed -e 's/$(last-release)/$(voltha-version)/g' $< > $@
+	$(HIDE)/bin/ls -l $(dir $@)
+
+## ---------------------------------------------------------------------------
+## Intent: Create branch driven nightly test jobs.
+## ---------------------------------------------------------------------------
+$(certification-tmpl):
+	@echo "ERROR: Yaml template branch does not exist: $@"
+	@echo 1
+
+## ---------------------------------------------------------------------------
+## Intent: Create branch driven nightly test jobs.
+## ---------------------------------------------------------------------------
+sterile-create-jobs-release-certification :
+	$(RM) $(certification-yaml)
+
+$(if $(DEBUG),$(warning LEAVE))
+
+# [EOF]
diff --git a/makefiles/release/targets/voltha-e2e.mk b/makefiles/release/targets/voltha-e2e.mk
new file mode 100644
index 0000000..40e7c5d
--- /dev/null
+++ b/makefiles/release/targets/voltha-e2e.mk
@@ -0,0 +1,56 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+#
+# 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.
+# -----------------------------------------------------------------------
+# Intent: Helper makefile target used to setup for a release
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+## ---------------------------------------------------------------------------
+## Intent: Create branch driven nightly test jobs.
+##   o Clone config for the last nightly release
+##   o In-place edit to the latest version.
+## ---------------------------------------------------------------------------
+## NOTE: WIP - nightly jobs have not yet migrated from the mega job config file
+## ---------------------------------------------------------------------------
+voltha-e2e-dir  := $(release-mk-top)/jjb/voltha-e2e
+voltha-e2e-yaml := $(voltha-e2e-dir)/$(voltha-version).yaml
+voltha-e2e-tmpl := $(voltha-e2e-dir)/$(voltha-release-last).yaml
+
+create-jobs-release-e2e : $(voltha-e2e-yaml)
+$(voltha-e2e-yaml) : $(voltha-e2e-tmpl)
+
+	@echo
+	@echo "** Create branch driven pipeline: nightly tests"
+	sed -e 's/$(last-release)/$(voltha-version)/g' $< > $@
+	$(HIDE)/bin/ls -l $(dir $@)
+
+## ---------------------------------------------------------------------------
+## Intent: Create branch driven nightly test jobs.
+## ---------------------------------------------------------------------------
+$(voltha-e2e-tmpl):
+	@echo "ERROR: Yaml template branch does not exist: $@"
+	@echo 1
+
+## ---------------------------------------------------------------------------
+## Intent: Create branch driven nightly test jobs.
+## ---------------------------------------------------------------------------
+sterile-create-jobs-release-e2e :
+	$(RM) $(voltha-e2e-yaml)
+
+$(if $(DEBUG),$(warning LEAVE))
+
+# [EOF]
diff --git a/makefiles/release/targets/voltha-nightly-jobs.mk b/makefiles/release/targets/voltha-nightly-jobs.mk
new file mode 100644
index 0000000..20e37de
--- /dev/null
+++ b/makefiles/release/targets/voltha-nightly-jobs.mk
@@ -0,0 +1,54 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+#
+# 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.
+# -----------------------------------------------------------------------
+# Intent: Helper makefile target used to setup for a release
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+##-------------------##
+##---]  GLOBALS  [---##
+##-------------------##
+
+## ---------------------------------------------------------------------------
+## Intent: Create branch driven nightly test jobs.
+##   o Clone config for the last nightly release
+##   o In-place edit to the latest version.
+## ---------------------------------------------------------------------------
+## NOTE: WIP - nightly jobs have not yet migrated from the mega job config file
+## ---------------------------------------------------------------------------
+voltha-nightly-dir  := $(release-mk-top)/jjb/voltha-test/voltha-nightly-jobs
+voltha-nightly-yaml := $(voltha-nightly-dir)/$(voltha-version).yaml
+voltha-nightly-tmpl := $(voltha-nightly-dir)/$(voltha-release-last).yaml
+
+create-jobs-release-nightly : $(voltha-nightly-yaml)
+$(voltha-nightly-yaml) : $(voltha-nightly-tmpl)
+
+	@echo
+	@echo "** Create branch driven pipeline: nightly tests"
+	sed -e 's/$(last-release)/$(voltha-version)/g' $< > $@
+	$(HIDE)/bin/ls -l $(dir $@)
+
+## ---------------------------------------------------------------------------
+## Intent: Create branch driven nightly test jobs.
+## ---------------------------------------------------------------------------
+$(voltha-nightly-tmpl):
+	@echo "ERROR: Yaml template branch does not exist: $@"
+	@echo 1
+
+$(if $(DEBUG),$(warning LEAVE))
+
+# [EOF]
diff --git a/makefiles/release/voltha-versions.mk b/makefiles/release/voltha-versions.mk
new file mode 100644
index 0000000..a6ab7b6
--- /dev/null
+++ b/makefiles/release/voltha-versions.mk
@@ -0,0 +1,44 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+#
+# 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.
+# -----------------------------------------------------------------------
+# Intent: Helper makefile target used to setup for a release
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+##-------------------##
+##---]  GLOBALS  [---##
+##-------------------##
+voltha-versions += master
+voltha-versions += voltha-2.12
+voltha-versions += voltha-2.11
+voltha-versions += voltha-2.8
+voltha-versions += playground
+
+# VOLTHA: release
+#   active : $(words 0,$(voltha-versions))
+#     next : $(words 1,$(voltha-versions))
+#     last : $(words 2,$(voltha-versions))
+
+# fatal to make help (param is null)
+voltha-version ?= $(error $(MAKE) voltha-verison=voltha-x.yy is required)\
+
+voltha-release-this := $(word 1,$(voltha-versions)) 
+voltha-release-last := $(word 2,$(voltha-versions))
+
+$(if $(DEBUG),$(warning LEAVE))
+
+# [EOF]
