diff --git a/tools/images/ceph-config-helper/Makefile b/tools/images/ceph-config-helper/Makefile
new file mode 100644
index 0000000000..43cc2d7f68
--- /dev/null
+++ b/tools/images/ceph-config-helper/Makefile
@@ -0,0 +1,38 @@
+# Copyright 2017 The Openstack-Helm Authors.
+#
+# 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.
+
+# It's necessary to set this because some environments don't link sh -> bash.
+SHELL := /bin/bash
+
+DOCKER_REGISTRY            ?= docker.io
+IMAGE_NAME                 ?= ceph-config-helper
+IMAGE_PREFIX               ?= openstackhelm
+IMAGE_TAG                  ?= latest
+KUBE_VERSION               ?= v1.7.5
+LABEL                      ?= putlabelshere
+
+IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}
+
+# Build Deckhand Docker image for this project
+.PHONY: images
+images: build_$(IMAGE_NAME)
+
+# Make targets intended for use by the primary targets above.
+.PHONY: build_$(IMAGE_NAME)
+build_$(IMAGE_NAME):
+	docker build \
+	--build-arg KUBE_VERSION=$(KUBE_VERSION) \
+	-t $(IMAGE) \
+	--label $(LABEL) --label KUBE_VERSION=$(KUBE_VERSION) \
+	.
diff --git a/tools/images/gate-utils/Makefile b/tools/images/gate-utils/Makefile
new file mode 100644
index 0000000000..60a2e3b0ab
--- /dev/null
+++ b/tools/images/gate-utils/Makefile
@@ -0,0 +1,36 @@
+# Copyright 2017 The Openstack-Helm Authors.
+#
+# 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.
+
+# It's necessary to set this because some environments don't link sh -> bash.
+SHELL := /bin/bash
+
+DOCKER_REGISTRY            ?= docker.io
+IMAGE_NAME                 ?= gate-utils
+IMAGE_PREFIX               ?= openstackhelm
+IMAGE_TAG                  ?= v0.1.0
+LABEL                      ?= putlabelshere
+
+IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}
+
+# Build Deckhand Docker image for this project
+.PHONY: images
+images: build_$(IMAGE_NAME)
+
+# Make targets intended for use by the primary targets above.
+.PHONY: build_$(IMAGE_NAME)
+build_$(IMAGE_NAME):
+	docker build \
+	--label $(LABEL) \
+	-t $(IMAGE) \
+	.
diff --git a/tools/images/libvirt/Makefile b/tools/images/libvirt/Makefile
new file mode 100644
index 0000000000..c858828f5a
--- /dev/null
+++ b/tools/images/libvirt/Makefile
@@ -0,0 +1,48 @@
+# Copyright 2017 The Openstack-Helm Authors.
+#
+# 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.
+
+# It's necessary to set this because some environments don't link sh -> bash.
+SHELL := /bin/bash
+
+LIBVIRT_VERSION            ?= 1.3.1-1ubuntu10.18
+DISTRO                     ?= ubuntu
+DISTRO_RELEASE             ?= xenial
+CEPH_RELEASE               ?= luminous
+
+DOCKER_REGISTRY            ?= docker.io
+IMAGE_NAME                 ?= libvirt
+IMAGE_PREFIX               ?= openstackhelm
+IMAGE_TAG                  ?= ${DISTRO}-${DISTRO_RELEASE}-${LIBVIRT_VERSION%-*}
+LABEL                      ?= putlabelshere
+
+IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}
+
+# Build Deckhand Docker image for this project
+.PHONY: images
+images: build_$(IMAGE_NAME)
+
+# Make targets intended for use by the primary targets above.
+.PHONY: build_$(IMAGE_NAME)
+build_$(IMAGE_NAME):
+	docker build \
+	--network=host \
+	--force-rm \
+	--pull \
+	--no-cache \
+	--file=./Dockerfile.${DISTRO}.xenial \
+	--build-arg LIBVIRT_VERSION="${LIBVIRT_VERSION}" \
+	--build-arg CEPH_RELEASE="${CEPH_RELEASE}" \
+	--label $(LABEL) \
+	-t $(IMAGE) \
+	.
diff --git a/tools/images/openvswitch/Makefile b/tools/images/openvswitch/Makefile
new file mode 100644
index 0000000000..1157eff991
--- /dev/null
+++ b/tools/images/openvswitch/Makefile
@@ -0,0 +1,39 @@
+# Copyright 2017 The Openstack-Helm Authors.
+#
+# 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.
+
+# It's necessary to set this because some environments don't link sh -> bash.
+SHELL := /bin/bash
+
+DOCKER_REGISTRY            ?= docker.io
+IMAGE_NAME                 ?= openvswitch
+IMAGE_PREFIX               ?= openstackhelm
+OVS_VERSION                ?= 2.8.1
+IMAGE_TAG                  ?= v$(OVS_VERSION)
+LABEL                      ?= putlabelshere
+
+IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}
+
+# Build Deckhand Docker image for this project
+.PHONY: images
+images: build_$(IMAGE_NAME)
+
+# Make targets intended for use by the primary targets above.
+.PHONY: build_$(IMAGE_NAME)
+build_$(IMAGE_NAME):
+	docker build \
+	--network=host \
+	--build-arg OVS_VERSION=$(OVS_VERSION) \
+	--label $(LABEL) \
+	-t $(IMAGE) \
+	.
diff --git a/tools/images/vbmc/Makefile b/tools/images/vbmc/Makefile
new file mode 100644
index 0000000000..c5f42ad694
--- /dev/null
+++ b/tools/images/vbmc/Makefile
@@ -0,0 +1,36 @@
+# Copyright 2017 The Openstack-Helm Authors.
+#
+# 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.
+
+# It's necessary to set this because some environments don't link sh -> bash.
+SHELL := /bin/bash
+
+DOCKER_REGISTRY            ?= docker.io
+IMAGE_NAME                 ?= vbmc
+IMAGE_PREFIX               ?= openstackhelm
+IMAGE_TAG                  ?= centos
+LABEL                      ?= putlabelshere
+
+IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}
+
+# Build Deckhand Docker image for this project
+.PHONY: images
+images: build_$(IMAGE_NAME)
+
+# Make targets intended for use by the primary targets above.
+.PHONY: build_$(IMAGE_NAME)
+build_$(IMAGE_NAME):
+	docker build \
+	--label $(LABEL) \
+	-t $(IMAGE) \
+	.