diff --git a/etc/kolla/kolla-build.conf b/etc/kolla/kolla-build.conf
index 582318b1bb25b8e243c67d9e35a5fb878998d603..f40f5f76c2b4f986785fdb60b2e8b317006bfadc 100644
--- a/etc/kolla/kolla-build.conf
+++ b/etc/kolla/kolla-build.conf
@@ -52,6 +52,7 @@ infra = ceph,data,mariadb,haproxy,keepalived,kolla-ansible,memcached,mongodb,ope
 main = cinder,ceilometer,glance,heat,horizon,keystone,neutron,nova,swift
 aux = designate,gnocchi,ironic,magnum,zaqar
 default = data,kolla-ansible,glance,haproxy,heat,horizon,keystone,memcached,mariadb,neutron,nova,rabbitmq
+gate = ceph,cinder,data,glance,haproxy,heat,horizon,keepalived,keystone,kolla-ansible,memcached,neutron,nova,openvswitch,rabbitmq
 
 # Provide location of sources for source install builds.
 # Example:
diff --git a/tests/deploy_kolla.sh b/tests/deploy_kolla.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a5e5b2892b1d5ddac50c43dd511561012acc7394
--- /dev/null
+++ b/tests/deploy_kolla.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+set -o xtrace
+set -o errexit
+
+export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+
+function print_failure {
+    docker ps -a
+    docker logs bootstrap_keystone
+    echo "FAILED"
+    exit 1
+}
+
+# Setup ssh key as required
+ssh-keygen -f kolla-ssh -N ""
+cat kolla-ssh.pub | tee /root/.ssh/authorized_keys
+
+# Install Ansible and docker-py
+pip install "ansible<2" docker-py
+pip freeze | egrep "docker|ansible"
+
+# Setup configs
+cp -a etc/kolla /etc/
+cat << EOF > /etc/kolla/globals.yml
+---
+kolla_base_distro: "$1"
+kolla_install_type: "$2"
+kolla_internal_address: "169.254.169.10"
+docker_pull_policy: "missing"
+docker_restart_policy: "no"
+network_interface: "eth0"
+neutron_external_interface: "fake_interface"
+EOF
+
+# Create dummy interface for neutron
+ip l a fake_interface type dummy
+
+# Actually do the deployment
+tools/kolla-ansible deploy || print_failure
+
+# TODO(SamYaple): Actually validate that all containers are started
+docker ps -a
+
+# TODO(SamYaple): Actually do functional testing of OpenStack
diff --git a/tests/test_build.py b/tests/test_build.py
index 8feb98d00daf143511837948c6f15be1c5155274..948e165ac621e2e58fbec81c370388288d15cf37 100644
--- a/tests/test_build.py
+++ b/tests/test_build.py
@@ -59,8 +59,7 @@ class BuildTest(base.BaseTestCase):
                 LOG.critical(">>> Expected image '%s' to succeed!" % image)
 
         for image in unmatched_results.keys():
-            failures = failures + 1
-            LOG.critical(">>> Expected image '%s' to be matched!" % image)
+            LOG.warning(">>> Image '%s' was not matched" % image)
 
         self.assertEqual(failures, 0, "%d failure(s) occurred" % failures)
 
@@ -84,3 +83,27 @@ class BuildTestUbuntuSource(BuildTest):
         super(BuildTestUbuntuSource, self).setUp()
         self.build_args.extend(["--base", "ubuntu",
                                 "--type", "source"])
+
+
+class DeployTestCentosBinary(BuildTest):
+    def setUp(self):
+        super(BuildTestCentosBinary, self).setUp()
+        self.build_args.extend(["--base", "centos",
+                                "--type", "binary",
+                                "--profile", "gate"])
+
+
+class DeployTestCentosSource(BuildTest):
+    def setUp(self):
+        super(BuildTestCentosSource, self).setUp()
+        self.build_args.extend(["--base", "centos",
+                                "--type", "source",
+                                "--profile", "gate"])
+
+
+class DeployTestUbuntuSource(BuildTest):
+    def setUp(self):
+        super(BuildTestUbuntuSource, self).setUp()
+        self.build_args.extend(["--base", "ubuntu",
+                                "--type", "source",
+                                "--profile", "gate"])
diff --git a/tox.ini b/tox.ini
index 59dd39670d58d2322e31858f054e01f61c8c8408..7ed567b67f66354744fc52c10bb1a38ea70f99a8 100644
--- a/tox.ini
+++ b/tox.ini
@@ -35,6 +35,9 @@ commands =
 whitelist_externals = bash
 commands = bash -c tests/setup_gate.sh
 
+# These tests are duplicated because of the namechange of the jobs upstream
+# to allow continued use of the job-template. This way the gate never breaks
+# TODO(SamYaple): Remove once new gates are in place
 [testenv:images-centos-binary]
 whitelist_externals = find
                       bash
@@ -44,6 +47,7 @@ commands =
    bash -c "if [ ! -d .testrepository ]; then testr init; fi"
    sudo -g docker testr run test_build.BuildTestCentosBinary
 
+# TODO(SamYaple): Remove once new gates are in place
 [testenv:images-centos-source]
 whitelist_externals = find
                       bash
@@ -53,6 +57,7 @@ commands =
    bash -c "if [ ! -d .testrepository ]; then testr init; fi"
    sudo -g docker testr run test_build.BuildTestCentosSource
 
+# TODO(SamYaple): Remove once new gates are in place
 [testenv:images-ubuntu-source]
 whitelist_externals = find
                       bash
@@ -62,6 +67,63 @@ commands =
    bash -c "if [ ! -d .testrepository ]; then testr init; fi"
    sudo -g docker testr run test_build.BuildTestUbuntuSource
 
+[testenv:build-images-centos-binary]
+whitelist_externals = find
+                      bash
+                      sudo
+commands =
+   find . -type f -name "*.pyc" -delete
+   bash -c "if [ ! -d .testrepository ]; then testr init; fi"
+   sudo -g docker testr run test_build.BuildTestCentosBinary
+
+[testenv:build-images-centos-source]
+whitelist_externals = find
+                      bash
+                      sudo
+commands =
+   find . -type f -name "*.pyc" -delete
+   bash -c "if [ ! -d .testrepository ]; then testr init; fi"
+   sudo -g docker testr run test_build.BuildTestCentosSource
+
+[testenv:build-images-ubuntu-source]
+whitelist_externals = find
+                      bash
+                      sudo
+commands =
+   find . -type f -name "*.pyc" -delete
+   bash -c "if [ ! -d .testrepository ]; then testr init; fi"
+   sudo -g docker testr run test_build.BuildTestUbuntuSource
+
+[testenv:deploy-images-centos-binary]
+whitelist_externals = find
+                      bash
+                      sudo
+commands =
+   find . -type f -name "*.pyc" -delete
+   bash -c "if [ ! -d .testrepository ]; then testr init; fi"
+   sudo -g docker testr run test_build.DeployTestCentosBinary
+   sudo tests/deploy_kolla.sh centos binary
+
+[testenv:deploy-images-centos-source]
+whitelist_externals = find
+                      bash
+                      sudo
+commands =
+   find . -type f -name "*.pyc" -delete
+   bash -c "if [ ! -d .testrepository ]; then testr init; fi"
+   sudo -g docker testr run test_build.DeployTestCentosSource
+   sudo tests/deploy_kolla.sh centos source
+
+[testenv:deploy-images-ubuntu-source]
+whitelist_externals = find
+                      bash
+                      sudo
+commands =
+   find . -type f -name "*.pyc" -delete
+   bash -c "if [ ! -d .testrepository ]; then testr init; fi"
+   sudo -g docker testr run test_build.DeployTestUbuntuSource
+   sudo tests/deploy_kolla.sh ubuntu source
+
 [testenv:functional]
 whitelist_externals = find
                       bash