diff --git a/gerrit/acls/openstack-infra/puppet-germqtt.config b/gerrit/acls/openstack-infra/puppet-germqtt.config
new file mode 100644
index 0000000000..8464f80c53
--- /dev/null
+++ b/gerrit/acls/openstack-infra/puppet-germqtt.config
@@ -0,0 +1,13 @@
+[access "refs/heads/*"]
+abandon = group puppet-germqtt-core
+label-Code-Review = -2..+2 group puppet-germqtt-core
+label-Workflow = -1..+1 group puppet-germqtt-core
+
+[access "refs/tags/*"]
+pushSignedTag = group puppet-germqtt-release
+
+[receive]
+requireChangeId = true
+
+[submit]
+mergeContent = true
diff --git a/gerrit/projects.yaml b/gerrit/projects.yaml
index 300bdeb7da..b6d49102d2 100755
--- a/gerrit/projects.yaml
+++ b/gerrit/projects.yaml
@@ -353,6 +353,12 @@
   description: Puppet module for Exim
   groups:
     - openstack-ci
+- project: openstack-infra/puppet-germqtt
+  description: Puppet module for germqtt
+  upstream: https://github.com/mtreinish/puppet-germqtt.git
+  use-storyboard: true
+  groups:
+    - openstack-ci
 - project: openstack-infra/puppet-gerrit
   use-storyboard: true
   description: Puppet module for Gerrit
diff --git a/gerritbot/channels.yaml b/gerritbot/channels.yaml
index 71ea0f7c93..ff3151c703 100755
--- a/gerritbot/channels.yaml
+++ b/gerritbot/channels.yaml
@@ -802,6 +802,7 @@ openstack-infra:
     - openstack-infra/puppet-elasticsearch
     - openstack-infra/puppet-etherpad_lite
     - openstack-infra/puppet-exim
+    - openstack-infra/puppet-germqtt
     - openstack-infra/puppet-gerrit
     - openstack-infra/puppet-gerritbot
     - openstack-infra/puppet-github
@@ -1111,6 +1112,7 @@ openstack-merges:
     - openstack-infra/puppet-elasticsearch
     - openstack-infra/puppet-etherpad_lite
     - openstack-infra/puppet-exim
+    - openstack-infra/puppet-germqtt
     - openstack-infra/puppet-gerrit
     - openstack-infra/puppet-gerritbot
     - openstack-infra/puppet-github
diff --git a/jenkins/jobs/projects.yaml b/jenkins/jobs/projects.yaml
index 9c4dc8457e..abd8e68f5e 100644
--- a/jenkins/jobs/projects.yaml
+++ b/jenkins/jobs/projects.yaml
@@ -7080,6 +7080,16 @@
           job-suffix: ''
           branch-override: default
 
+- project:
+    name: puppet-germqtt
+    tarball-site: tarballs.openstack.org
+
+    jobs:
+      - puppet-check-jobs
+      - puppet-beaker-jobs-xenial:
+          job-suffix: ''
+          branch-override: default
+
 - project:
     name: puppet-gerrit
     tarball-site: tarballs.openstack.org
diff --git a/zuul/layout.yaml b/zuul/layout.yaml
index 95926ef366..035b6f9da7 100755
--- a/zuul/layout.yaml
+++ b/zuul/layout.yaml
@@ -3858,6 +3858,12 @@ projects:
       - name: infra-puppet-apply-jobs
       - name: puppet-beaker-jobs
 
+  - name: openstack-infra/puppet-germqtt
+    template:
+      - name: merge-check
+      - name: infra-puppet-check-jobs
+      - name: infra-puppet-apply-jobs
+
   - name: openstack-infra/puppet-gerrit
     template:
       - name: merge-check