diff --git a/modules/gerritbot/files/gerritbot_channel_config.yaml b/modules/gerritbot/files/gerritbot_channel_config.yaml
index d5f73c3118..ce7e2beaca 100644
--- a/modules/gerritbot/files/gerritbot_channel_config.yaml
+++ b/modules/gerritbot/files/gerritbot_channel_config.yaml
@@ -32,6 +32,7 @@ openstack-infra:
       - openstack-infra/puppet-dashboard
       - openstack-infra/puppet-vcsrepo
       - openstack-infra/pypi-mirror
+      - openstack-infra/release-tools
       - openstack-infra/releasestatus
       - openstack-infra/reviewday
       - openstack-infra/reviewstats
diff --git a/modules/openstack_project/files/gerrit/acls/openstack-infra/release-tools.config b/modules/openstack_project/files/gerrit/acls/openstack-infra/release-tools.config
new file mode 100644
index 0000000000..0ab66b8bab
--- /dev/null
+++ b/modules/openstack_project/files/gerrit/acls/openstack-infra/release-tools.config
@@ -0,0 +1,12 @@
+[access "refs/heads/*"]
+        label-Code-Review = -2..+2 group release-tools-core
+        label-Approved = +0..+1 group release-tools-core
+[access "refs/tags/*"]
+        create = group release-tools-core
+        pushTag = group release-tools-core
+[project]
+        state = active
+[receive]
+        requireChangeId = true
+[submit]
+        mergeContent = true
diff --git a/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml b/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml
index 15aaed9db5..9157c63a70 100644
--- a/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml
+++ b/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml
@@ -1809,3 +1809,12 @@
 
     jobs:
       - python-jobs
+
+- project:
+    name: release-tools
+    github-org: openstack-infra
+    node: precise
+    tarball-site: tarballs.openstack.org
+
+    jobs:
+      - python-jobs
diff --git a/modules/openstack_project/files/zuul/layout.yaml b/modules/openstack_project/files/zuul/layout.yaml
index b3233917cd..452d5d4999 100644
--- a/modules/openstack_project/files/zuul/layout.yaml
+++ b/modules/openstack_project/files/zuul/layout.yaml
@@ -3861,3 +3861,15 @@ projects:
       - gate-python-solumclient-docs
     post:
       - python-solumclient-coverage
+
+  - name: openstack-infra/release-tools
+    check:
+      - gate-release-tools-pep8
+      - gate-release-tools-python26
+      - gate-release-tools-python27
+      - gate-release-tools-pypy
+    gate:
+      - gate-release-tools-pep8
+      - gate-release-tools-python26
+      - gate-release-tools-python27
+      - gate-release-tools-pypy
diff --git a/modules/openstack_project/templates/review.projects.yaml.erb b/modules/openstack_project/templates/review.projects.yaml.erb
index cf14544f41..cdea078ff5 100644
--- a/modules/openstack_project/templates/review.projects.yaml.erb
+++ b/modules/openstack_project/templates/review.projects.yaml.erb
@@ -83,6 +83,9 @@
 - project: openstack-infra/pypi-mirror
   upstream: git://github.com/openstack-infra/jeepyb.git
   description: PyPI mirror builder
+- project: openstack-infra/release-tools
+  upstream: git://github.com/ttx/openstack-releasing.git
+  description: OpenStack Release Tools
 - project: openstack-infra/releasestatus
   upstream: git://github.com/ttx/releasestatus.git
   description: OpenStack Release Status page generator