diff --git a/Makefile b/Makefile
index c36248b..e299ee2 100644
--- a/Makefile
+++ b/Makefile
@@ -1,30 +1,60 @@
 # -*- 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.
+# -----------------------------------------------------------------------
 
 # Makefile for testing JJB jobs in a virtualenv
-.PHONY: test clean
+.PHONY: all clean help test
+.DEFAULT_GOAL := all
 
-SHELL         := bash -e -o pipefail
+##-------------------##
+##---]  GLOBALS  [---##
+##-------------------##
+TOP          ?= .
+MAKEDIR      ?= $(TOP)/makefiles
+export SHELL := bash -e -o pipefail
+
+NO-LINT-MAKE  := true
+NO-LINT-SHELL := true
+
+##--------------------##
+##---]  INCLUDES  [---##
+##--------------------##
+include $(MAKEDIR)/include.mk
+
 VENV_DIR      ?= venv-jjb
-JJB_VERSION   ?= 4.1.0
+# JJB_VERSION   ?= 4.1.0
 JOBCONFIG_DIR ?= job-configs
 
-$(VENV_DIR):
-	@echo "Setting up virtualenv for JJB testing"
-	python3 -m venv $@
-	$@/bin/pip install jenkins-job-builder==$(JJB_VERSION) pipdeptree
-
 $(JOBCONFIG_DIR):
 	mkdir $@
 
-lint:
-	yamllint -c yamllint.conf jjb/
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+.PHONY: test
+test: $(venv-activate-script) $(JOBCONFIG_DIR)
+	$(activate) \
+	&& pipdeptree \
+	&& jenkins-jobs -l DEBUG test --recursive --config-xml -o "$(JOBCONFIG_DIR)" jjb/ ;
 
-test: $(VENV_DIR) $(JOBCONFIG_DIR)
-	source $(VENV_DIR)/bin/activate ; \
-	pipdeptree ; \
-	jenkins-jobs -l DEBUG test --recursive --config-xml -o $(JOBCONFIG_DIR) jjb/ ;
-
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+.PHONY: clean
 clean:
-	$(RM) -r $(VENV_DIR) $(JOBCONFIG_DIR)
+	$(RM) -r $(JOBCONFIG_DIR)
+
+include $(ONF_MAKE)/help/trailer.mk
 
 # [EOF]
diff --git a/jjb/ci-management/packer.yaml b/jjb/ci-management/packer.yaml
index 83b6d18..81c6a6e 100644
--- a/jjb/ci-management/packer.yaml
+++ b/jjb/ci-management/packer.yaml
@@ -1,3 +1,19 @@
+# -----------------------------------------------------------------------
+# Copyright 2021-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.
+# -----------------------------------------------------------------------
+---
 - project:
     archive-artifacts: '**/*.log'
     branch: 'master'
diff --git a/jjb/voltha-e2e.yaml b/jjb/voltha-e2e.yaml
index fabd0d1..d292cdf 100755
--- a/jjb/voltha-e2e.yaml
+++ b/jjb/voltha-e2e.yaml
@@ -1282,7 +1282,7 @@
     volthaSystemTestsChange: ''
     volthaHelmChartsChange: ''
     extraHelmFlags: ''
-    registry:  mirror.registry.opennetworking.org
+    registry: mirror.registry.opennetworking.org
     sandbox: true
     olts: 1
     timeout: 130
diff --git a/makefiles/consts.mk b/makefiles/consts.mk
index fed358b..95d69a2 100644
--- a/makefiles/consts.mk
+++ b/makefiles/consts.mk
@@ -1,6 +1,6 @@
 # -*- makefile -*-
 # -----------------------------------------------------------------------
-# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+# Copyright 2022 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.
@@ -13,14 +13,32 @@
 # 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.
+#
+# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
 # -----------------------------------------------------------------------
 
-null         :=#
-space        :=$(null) $(null)
-dot          :=.
-HIDE         ?=@
+$(if $(DEBUG),$(warning ENTER))
 
-# use bash for pusdh/popd and quick failures.
-export SHELL := bash -euo pipefail
+null        :=#
+space       := $(null) $(null)
+dot         ?= .
+
+HIDE        ?= @
+
+env-clean   = /usr/bin/env --ignore-environment
+xargs-n1    := xargs -0 -t -n1 --no-run-if-empty
+
+## -----------------------------------------------------------------------
+## Not recommended but support (-u)ndef-less shell for pyenv activate
+## TODO: declare a pyenv shell
+## -----------------------------------------------------------------------
+have-shell-bash := $(filter bash,$(subst /,$(space),$(SHELL)))
+$(if $(have-shell-bash),$(null),\
+  $(eval export SHELL := /bin/bash -euo pipefail))
+
+shell-pyenv := bash -eo pipefail
+
+$(if $(DEBUG),$(warning LEAVE))
 
 # [EOF]
diff --git a/makefiles/include.mk b/makefiles/include.mk
new file mode 100644
index 0000000..204281e
--- /dev/null
+++ b/makefiles/include.mk
@@ -0,0 +1,38 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022 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.
+#
+# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+ONF_MAKE ?= $(MAKEDIR)# fix this -- two distinct makefile imports needed
+ONF_MAKE ?= $(error ONF_MAKE= is required)
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+help::
+	@echo "Usage: make [options] [target] ..."
+
+include $(ONF_MAKE)/consts.mk
+include $(ONF_MAKE)/lint/include.mk
+include $(ONF_MAKE)/virtualenv.mk
+include $(ONF_MAKE)/help/variables.mk
+
+$(if $(DEBUG),$(warning LEAVE))
+
+# [EOF]
diff --git a/makefiles/lint/Makefile b/makefiles/lint/Makefile
new file mode 100644
index 0000000..2754d0f
--- /dev/null
+++ b/makefiles/lint/Makefile
@@ -0,0 +1,93 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2017-2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-FileCopyrightText: 2022-present Intel Corporation
+#
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+
+.DEFAULT_GOAL := test
+
+HIDE        ?= @
+SHELL       := bash -e -o pipefail
+
+dot         ?= .
+TOP         ?= $(dot)
+MAKEDIR     ?= $(TOP)/makefiles
+
+env-clean = /usr/bin/env --ignore-environment
+
+jq          = $(env-clean) jq
+jq-args     += --exit-status
+
+YAMLLINT      = $(shell which yamllint)
+yamllint      := $(env-clean) $(YAMLLINT)
+yamllint-args := -c .yamllint
+
+##-------------------##
+##---]  TARGETS  [---##
+##-------------------##
+all:
+
+lint += lint-json
+lint += lint-yaml
+
+lint : $(lint)
+test : lint
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+lint-yaml yaml-lint:
+ifeq ($(null),$(shell which yamllint))
+	$(error "Please install yamllint to run linting")
+endif
+	$(HIDE)$(env-clean) find . -name '*.yaml' -type f -print0 \
+	    | xargs -0 -t -n1 $(yamllint) $(yamllint-args)
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+lint-json:
+	$(HIDE)$(env-clean) find . -name '*.json' -type f -print0 \
+	    | xargs -0 -t -n1 $(jq) $(jq-args) $(dot) >/dev/null
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+pre-check:
+	@echo "[REQUIRED] Checking for linting tools"
+	$(HIDE)which jq
+	$(HIDE)which yamllint
+	@echo
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+clean:
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+todo:
+	@echo
+	@echo "USAGE: $(MAKE)"
+	@echo "[TODO]"
+	@echo "  o Update to support standard makefile target behavior:"
+	@echo "    all taget is test not default behavior for automation."
+	@echo "  o Change lint target dep from test to check -or smoke"
+	@echo "    target test sould be more involved with content validation"
+	@echo "  o Refactor lint target(s) with voltha-system-tests/makefiles"
+	@echo "  o Linting should be dependency driven,"
+	@echo "    only check when sources are modified."
+	@echo
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+help:
+	@echo
+	@echo "USAGE: $(MAKE)"
+	@echo "  lint        perform syntax checks on source"
+	@echo "  test        perform syntax checks on source"
+	@echo "  pre-check   Verify tools and deps are available for testing"
+	@echo
+	@echo "[LINT]"
+	@echo "  lint-json   Syntax check .json sources"
+	@echo "  lint-yaml   Syntax check .yaml sources"
+	@echo
+# [EOF]
diff --git a/makefiles/lint/include.mk b/makefiles/lint/include.mk
index bed7149..2a2d9ab 100644
--- a/makefiles/lint/include.mk
+++ b/makefiles/lint/include.mk
@@ -1,28 +1,24 @@
 # -*- makefile -*-
 # -----------------------------------------------------------------------
-# Copyright 2017-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.
+# Copyright 2022 Open Networking Foundation (ONF) and the ONF Contributors
 # -----------------------------------------------------------------------
 
-help::
+$(if $(DEBUG),$(warning ENTER))
+
+help ::
 	@echo
 	@echo "[LINT]"
 
-include $(MAKEDIR)/lint/json.mk
-# include $(MAKEDIR)/lint/python.mk
-# include $(MAKEDIR)/lint/robot.mk
-include $(MAKEDIR)/lint/shell.mk
-include $(MAKEDIR)/lint/yaml.mk
+include $(ONF_MAKE)/lint/makefile.mk
+include $(ONF_MAKE)/lint/python.mk
+include $(ONF_MAKE)/lint/shell.mk
+
+ifdef YAML_FILES
+  include $(ONF_MAKE)/lint/yaml/python.mk
+else
+  include $(ONF_MAKE)/lint/yaml/yamllint.mk
+endif
+
+$(if $(DEBUG),$(warning LEAVE))
 
 # [EOF]
diff --git a/makefiles/lint/makefile.mk b/makefiles/lint/makefile.mk
new file mode 100644
index 0000000..8ebe9c3
--- /dev/null
+++ b/makefiles/lint/makefile.mk
@@ -0,0 +1,45 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# -----------------------------------------------------------------------
+
+##-------------------##
+##---]  GLOBALS  [---##
+##-------------------##
+xargs-n1-local := $(subst -t,$(null),$(xargs-n1))#   inhibit cmd display
+
+# Gather sources to check
+# TODO: implement deps, only check modified files
+make-check-find := find . -name 'vendor' -prune
+make-check-find += -o \( -iname makefile -o -name '*.mk' \)
+make-check-find += -type f -print0
+
+make-check      := $(MAKE)
+
+make-check-args += --dry-run
+make-check-args += --keep-going
+make-check-args += --warn-undefined-variables
+make-check-args += --no-print-directory
+
+# Quiet internal undef vars
+make-check-args += DEBUG=
+
+##-------------------##
+##---]  TARGETS  [---##
+##-------------------##
+ifndef NO-LINT-MAKEFILE
+  lint : lint-make
+endif
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+lint-make:
+	$(HIDE)$(env-clean) $(make-check-find) \
+	    | $(xargs-n1-local) $(make-check) $(make-check-args)
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+help ::
+	@echo '  lint-make                     Syntax check [Mm]akefile and *.mk'
+
+# [EOF]
diff --git a/makefiles/lint/python.mk b/makefiles/lint/python.mk
index d8bdfe0..a3d651c 100644
--- a/makefiles/lint/python.mk
+++ b/makefiles/lint/python.mk
@@ -1,6 +1,6 @@
 # -*- makefile -*-
 # -----------------------------------------------------------------------
-# Copyright 2017-2023 Open Networking Foundation
+# Copyright 2022 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.
@@ -15,20 +15,37 @@
 # limitations under the License.
 # -----------------------------------------------------------------------
 
-PYTHON_FILES ?= $(error PYTHON_FILES= is required)
+##-------------------##
+##---]  GLOBALS  [---##
+##-------------------##
 
-.PHONY: lint-python
+# Gather sources to check
+# TODO: implement deps, only check modified files
+python-check-find := find . -name '*venv*' -prune\
+  -o \( -name '*.py' \)\
+  -type f -print0
 
-lint : lint-python
+# python-check    := $(env-clean) pylint
+python-check    := pylint
 
-# check deps for format and python3 cleanliness
-lint-python: vst_venv
-	source ./$</bin/activate \
-	    ; set -u \
-	    ; pylint --py3k $(PYTHON_FILES) \
-	    ; flake8 --max-line-length=99 --count $(PYTHON_FILES)
+# python-check-args += --dry-run
 
-help::
-	@echo "  lint-python          Syntax check using pylint and flake8"
+##-------------------##
+##---]  TARGETS  [---##
+##-------------------##
+ifndef NO-LINT-PYTHON
+  lint : lint-python
+endif
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+lint-python:
+	$(HIDE)$(env-clean) $(python-check-find) \
+	    | $(xargs-n1) $(python-check) $(python-check-args)
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+help ::
+	@echo '  lint-python                   Syntax check python sources'
 
 # [EOF]
diff --git a/makefiles/lint/robot.mk b/makefiles/lint/robot.mk
index 1c7119f..f33c4ba 100644
--- a/makefiles/lint/robot.mk
+++ b/makefiles/lint/robot.mk
@@ -28,7 +28,9 @@
 
 .PHONY: lint-robot
 
-lint : lint-robot
+ifndef NO-LINT-ROBOT
+  lint : lint-robot
+endif
 
 lint-robot: vst_venv
 	source ./$</bin/activate \
diff --git a/makefiles/lint/shell.mk b/makefiles/lint/shell.mk
index c05476e..cadc084 100644
--- a/makefiles/lint/shell.mk
+++ b/makefiles/lint/shell.mk
@@ -1,33 +1,43 @@
 # -*- makefile -*-
 # -----------------------------------------------------------------------
-# Copyright 2017-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.
+# Copyright 2022 Open Networking Foundation (ONF) and the ONF Contributors
 # -----------------------------------------------------------------------
 
-JSON_FILES ?= $(error JSON_FILES= is required)
+##-------------------##
+##---]  GLOBALS  [---##
+##-------------------##
 
-.PHONY: lint-shell
+# Gather sources to check
+# TODO: implement deps, only check modified files
+shell-check-find := find .
+# vendor scripts but they really should be lintable
+shell-check-find += -name 'vendor' -prune
+shell-check-find += -o \( -name '*.sh' \)
+shell-check-find += -type f -print0
 
-lint : lint-shell
+# shell-check    := $(env-clean) pylint
+shell-check      := shellcheck
 
+shell-check-args += -a
+
+##-------------------##
+##---]  TARGETS  [---##
+##-------------------##
+ifndef NO-LINT-SHELL
+  lint : lint-shell
+endif
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
 lint-shell:
-	shellcheck --version
-	find . \( -name 'staging' -o -name 'vst_venv' \) -prune \
-	    -o -name '*.sh' ! -name 'activate.sh' -print0 \
-	| xargs -0 -n1 shellcheck
+	$(shell-check) -V
+	@echo
+	$(HIDE)$(env-clean) $(shell-check-find) \
+	    | $(xargs-n1) $(shell-check) $(shell-check-args)
 
-help::
-	@echo "  lint-shell           Syntax check bash,bourne,etc sources"
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+help ::
+	@echo '  lint-shell                    Syntax check shell sources'
 
 # [EOF]
diff --git a/makefiles/lint/yaml/.yamllint b/makefiles/lint/yaml/.yamllint
new file mode 100644
index 0000000..6a4fc1e
--- /dev/null
+++ b/makefiles/lint/yaml/.yamllint
@@ -0,0 +1,45 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022 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.
+#
+# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+---
+
+yaml-files:
+  - '*.yaml'
+  - '*.yml'
+  - '.yamllint'
+
+rules:
+  document-start: disable
+  line-length:
+    max: 160
+
+# -----------------------------------------------------------------------
+# .. seealso: https://gerrit.opencord.org/plugins/gitiles/helm-repo-tools/+/refs/heads/master/yamllint.conf
+# -----------------------------------------------------------------------
+#
+# extends: default
+#
+#rules:
+#  empty-lines:
+#    max-end: 1
+#  line-length:
+#    max: 120
+#  braces:
+#    min-spaces-inside: 0
+#    max-spaces-inside: 1
diff --git a/makefiles/lint/yaml/python.mk b/makefiles/lint/yaml/python.mk
new file mode 100644
index 0000000..868d9b7
--- /dev/null
+++ b/makefiles/lint/yaml/python.mk
@@ -0,0 +1,41 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022 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.
+#
+# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+
+YAML_FILES ?= $(error YAML_FILES= is required)
+
+lint-yaml-dep = $(addsuffix ^lint-yaml,$(YAML_FILES))
+lint-yaml-src = $(firstword $(subst ^,$(space),$(1)))
+
+##-------------------##
+##---]  TARGETS  [---##
+##-------------------##
+.PHONY : lint-yaml
+lint   : lint-yaml
+
+lint-yaml: $(venv-activate)
+lint-yaml: $(lint-yaml-dep)
+
+$(lint-yaml-dep):
+	$(vst-env) && yamllint -s $(call lint-yaml-src,$@)
+
+help::
+	@echo "  lint-yaml            Syntax check yaml sources"
+
+# [EOF]
diff --git a/makefiles/lint/yaml/todo b/makefiles/lint/yaml/todo
new file mode 100644
index 0000000..8a9367b
--- /dev/null
+++ b/makefiles/lint/yaml/todo
@@ -0,0 +1,39 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# -----------------------------------------------------------------------
+
+##-------------------##
+##---]  GLOBALS  [---##
+##-------------------##
+env-clean = /usr/bin/env --ignore-environment
+xargs-n1      := xargs -0 -t -n1 --no-run-if-empty
+
+yamllint      := $(env-clean) $(YAMLLINT)
+yamllint-args := -c .yamllint
+
+##-------------------##
+##---]  TARGETS  [---##
+##-------------------##
+lint : lint-yaml
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+lint-yaml:
+	$(HIDE)$(env-clean) find . -name '*.yaml' -type f -print0 \
+	    | $(xargs-n1) $(yamllint) $(yamllint-args)
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+help:
+	@echo
+	@echo "USAGE: $(MAKE)"
+	@echo "  lint        perform syntax checks on source"
+	@echo "  test        perform syntax checks on source"
+	@echo "  pre-check   Verify tools and deps are available for testing"
+	@echo
+	@echo "[LINT]"
+	@echo "  lint-json   Syntax check .json sources"
+	@echo "  lint-yaml   Syntax check .yaml sources"
+	@echo
+# [EOF]
diff --git a/makefiles/lint/yaml/urls b/makefiles/lint/yaml/urls
new file mode 100644
index 0000000..8747658
--- /dev/null
+++ b/makefiles/lint/yaml/urls
@@ -0,0 +1,5 @@
+# -*- makefile -*-
+
+https://yamllint.readthedocs.io/en/stable/configuration.html
+
+# [EOF]
\ No newline at end of file
diff --git a/makefiles/lint/yaml/yamllint.helm b/makefiles/lint/yaml/yamllint.helm
new file mode 100644
index 0000000..6c7787b
--- /dev/null
+++ b/makefiles/lint/yaml/yamllint.helm
@@ -0,0 +1,32 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022 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.
+#
+# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+---
+# yamllint.conf
+
+extends: default
+
+rules:
+  empty-lines:
+    max-end: 1
+  line-length:
+    max: 120
+  braces:
+    min-spaces-inside: 0
+    max-spaces-inside: 1
diff --git a/makefiles/lint/yaml/yamllint.mk b/makefiles/lint/yaml/yamllint.mk
new file mode 100644
index 0000000..6782c74
--- /dev/null
+++ b/makefiles/lint/yaml/yamllint.mk
@@ -0,0 +1,56 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022 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.
+#
+# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+yamllint      := $(env-clean) yamllint
+
+## -------------------------------
+## Add requirement(s) for checking
+## -------------------------------
+# yamllint-cfg := .yamllint
+yamllint-cfg := yamllint.helm
+yamllint-conf = $(wildcard $(yamllint-cfg) $(MAKEDIR)/lint/yaml/$(yamllint-cfg))
+yamllint-args += $(addprefix --config-file$(space),$(yamllint-conf))
+
+# yamllint-args := --no-warnings
+# yamllint-args := --strict
+
+yamllint-find := find .
+yamllint-find += -name 'vendor' -prune
+yamllint-find += -o -name '*.yaml'
+yamllint-find += ! -name '\.\#*.yaml'
+yamllint-find += -type f
+yamllint-find += -print0
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+lint lint-yaml:
+	$(HIDE)$(env-clean) $(yamllint-find) \
+	    | xargs -0 --no-run-if-empty -t -n1 $(yamllint) $(yamllint-args)
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+help::
+	@echo "  lint-yaml                     Syntax check yaml sources"
+
+$(if $(DEBUG),$(warning ENTER))
+
+# [EOF]
diff --git a/makefiles/python/include.mk b/makefiles/python/include.mk
new file mode 100644
index 0000000..24f3426
--- /dev/null
+++ b/makefiles/python/include.mk
@@ -0,0 +1,27 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022 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.
+#
+# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+
+ifdef PYTHON_FILES
+  include $(ONF_MAKE)/python/test/include.mk
+else
+  include $(ONF_MAKE)/python/test/include.mk
+endif
+
+# [EOF]
diff --git a/makefiles/python/test/include.mk b/makefiles/python/test/include.mk
new file mode 100644
index 0000000..12afc3e
--- /dev/null
+++ b/makefiles/python/test/include.mk
@@ -0,0 +1,37 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022 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.
+#
+# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+
+.PHONY: test-python
+# test :: test-python
+test-targets += test-python
+
+## -----------------------------------------------------------------------
+## Intent: Gather and invoke available unit tests
+## -----------------------------------------------------------------------
+test-python-args += -m unittest
+test-python:
+	$(PYTHON) $(test-python-args) discover -v
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+help::
+	@echo "  test-python                   Invoke python unit tests"
+
+# [EOF]
diff --git a/makefiles/virtualenv.mk b/makefiles/virtualenv.mk
index a8625ae..8207cfc 100644
--- a/makefiles/virtualenv.mk
+++ b/makefiles/virtualenv.mk
@@ -15,19 +15,50 @@
 # limitations under the License.
 ## -----------------------------------------------------------------------
 
-## usage:   {target} : venv-req
-# venv : .venv/bin/activate requirements.txt
-venv-dep : .venv/bin/activate
-venv-req : .venv/bin/activate requirements.txt
+$(if $(DEBUG),$(warning ENTER))
 
-.venv/bin/activate:
-	virtualenv -p python3 $@
-	source ./$@/bin/activate \
-	   pip install --upgrade pip \
-	source ./$@/bin/activate \
-	   pip install --upgrade setuptools \
-	[[ -r requirements.txt ]]       \
-	    && source ./$@/bin/activate \
-	    && python -m pip install -r requirements.txt
+venv-name            ?= .venv
+venv-abs-path        := $(PWD)/$(venv-name)
+
+venv-activate-script := $(venv-name)/bin/activate#        # dependency
+activate             ?= source $(venv-activate-script)#   # cmd invocation
+
+## -----------------------------------------------------------------------
+## Intent: Activate script path dependency
+## Usage:
+##    o place on the right side of colon as a target dependency
+##    o When the script does not exist install the virtual env and display.
+## -----------------------------------------------------------------------
+$(venv-activate-script):
+	virtualenv -p python3 $(venv-name)\
+  && source $(venv-name)/bin/activate\
+  && python -m pip install --upgrade pip\
+  && pip install --upgrade setuptools\
+  && { [[ -r requirements.txt ]] && python -m pip install -r requirements.txt; }\
+  && python --version
+
+## -----------------------------------------------------------------------
+## Intent: Explicit named installer target w/o dependencies.
+##         Makefile targets should depend on venv-activate-script.
+## -----------------------------------------------------------------------
+venv: $(venv-activate-script)
+
+## -----------------------------------------------------------------------
+## Intent: Revert installation to a clean checkout
+## -----------------------------------------------------------------------
+sterile :: clean
+	$(RM) -r "$(venv-abs-path)"
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+help ::
+	@echo
+	@echo '[VIRTUAL ENV]'
+	@echo '  venv-name=          Subdir name for virtualenv install'
+	@echo '  venv-activate-script: make macro name'
+	@echo '      $$(target) dependency    : install python virtualenv'
+	@echo '      source $$(macro) && cmd  : configure env and run cmd'
+
+$(if $(DEBUG),$(warning LEAVE))
 
 # [EOF]
diff --git a/packer/provision/baseline.yaml b/packer/provision/baseline.yaml
index 2c43ecf..8aacecd 100644
--- a/packer/provision/baseline.yaml
+++ b/packer/provision/baseline.yaml
@@ -19,7 +19,7 @@
           Defaults:jenkins !requiretty
           jenkins ALL = NOPASSWD: /usr/sbin/update-alternatives, /usr/sbin/update-java-alternatives
         validate: /usr/sbin/visudo -cf %s
-      become: yes
+      become: true
 
   roles:
     - lfit.lf-recommended-tools
@@ -39,8 +39,8 @@
         path: /etc/nsswitch.conf
         regexp: '^hosts:(\s+.*)?$'
         replace: 'hosts:\1 myhostname'
-        backup: yes
-      become: yes
+        backup: true
+      become: true
 
     - name: Disable periodic updates
       block:
@@ -59,7 +59,7 @@
             path: /etc/apt/apt.conf.d/10periodic
             regexp: "^APT::Periodic::Unattended-Upgrade"
             line: 'APT::Periodic::Unattended-Upgrade "0";'
-            create: yes
+            create: true
         - name: Uninstall unattended upgrades
           apt:
             name: unattended-upgrades
@@ -71,8 +71,8 @@
         - name: Disable apt-daily.* systemd services
           systemd:
             name: "{{service}}"
-            enabled: no
-            masked: yes
+            enabled: false
+            masked: true
           with_items:
             - apt-daily.service
             - apt-daily.timer
@@ -81,7 +81,7 @@
           loop_control:
             loop_var: service
       when: ansible_distribution == 'Ubuntu'
-      become: yes
+      become: true
 
     - name: System Reseal
       script: system-reseal.sh
diff --git a/packer/provision/install-base-pkgs-Ubuntu.yaml b/packer/provision/install-base-pkgs-Ubuntu.yaml
index 2ab6308..bd603d8 100644
--- a/packer/provision/install-base-pkgs-Ubuntu.yaml
+++ b/packer/provision/install-base-pkgs-Ubuntu.yaml
@@ -12,4 +12,4 @@
       - equivs
       - gdebi
     state: latest
-  become: yes
+  become: true
diff --git a/packer/provision/onf-playbook.yaml b/packer/provision/onf-playbook.yaml
index a30a228..6114c7c 100644
--- a/packer/provision/onf-playbook.yaml
+++ b/packer/provision/onf-playbook.yaml
@@ -76,14 +76,14 @@
       unarchive:
         src: "/tmp/helm.tgz"
         dest: "/tmp"
-        remote_src: yes
+        remote_src: true
 
     - name: Install helm binary
       copy:
         src: /tmp/linux-amd64/helm
         dest: /usr/local/bin/helm
         mode: "0755"
-        remote_src: yes
+        remote_src: true
 
     - name: Download/install kubectl binary
       get_url:
@@ -131,29 +131,29 @@
     - name: Install multi python2 packages with version specifiers
       pip:
         name:
-        - Jinja2
-        - coverage
-        - certifi
-        - cryptography
-        - git+https://github.com/linkchecker/linkchecker.git@v9.4.0
-        - graphviz
-        - isort
-        - more-itertools==5.0.0
-        - mock>2.0.0<2.1.0
-        - ndg-httpsclient
-        - nose2>0.9.0<0.10.0
-        - pyopenssl
-        - pexpect
-        - pyyaml>3.10.0<3.11.0
-        - requests>2.14.0<2.15.0
-        - robotframework
-        - robotframework-httplibrary
-        - robotframework-kafkalibrary
-        - robotframework-lint
-        - robotframework-requests
-        - robotframework-sshlibrary
-        - six
-        - urllib3
+          - Jinja2
+          - coverage
+          - certifi
+          - cryptography
+          - git+https://github.com/linkchecker/linkchecker.git@v9.4.0
+          - graphviz
+          - isort
+          - more-itertools==5.0.0
+          - mock>2.0.0<2.1.0
+          - ndg-httpsclient
+          - nose2>0.9.0<0.10.0
+          - pyopenssl
+          - pexpect
+          - pyyaml>3.10.0<3.11.0
+          - requests>2.14.0<2.15.0
+          - robotframework
+          - robotframework-httplibrary
+          - robotframework-kafkalibrary
+          - robotframework-lint
+          - robotframework-requests
+          - robotframework-sshlibrary
+          - six
+          - urllib3
 
     - name: Install multi ruby packages with version specifiers
       gem:
@@ -195,7 +195,7 @@
       unarchive:
         src: "/tmp/protobuf.zip"
         dest: "/usr/local"
-        remote_src: yes
+        remote_src: true
 
     - name: Download pandoc
       get_url:
@@ -247,7 +247,7 @@
         src: /tmp/github-release
         dest: /usr/local/bin/github-release
         mode: "0755"
-        remote_src: yes
+        remote_src: true
 
     - name: Recursively remove download files and folders
       file:
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..f199722
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,2 @@
+jenkins-job-builder==4.1.0
+pipdeptree
