diff --git a/modules/openstack_project/files/jenkins_job_builder/config/zuul.yaml b/modules/openstack_project/files/jenkins_job_builder/config/zuul.yaml
index 3f1d4e6764..a4e22b5d00 100644
--- a/modules/openstack_project/files/jenkins_job_builder/config/zuul.yaml
+++ b/modules/openstack_project/files/jenkins_job_builder/config/zuul.yaml
@@ -31,3 +31,29 @@
     publishers:
       - coverage-log
       - console-log
+
+- job:
+    name: 'periodic-test'
+
+    wrappers:
+      - timeout:
+          timeout: 40
+          fail: true
+      - timestamps
+
+    builders:
+      - python27:
+          github-org: 'openstack-infra'
+          project: 'zuul'
+
+    publishers:
+      - test-results
+      - console-log
+
+    scm:
+      - git:
+          url: 'git://github.com/openstack-infra/zuul.git'
+          branches:
+            - 'origin/master'
+
+    node: precise
diff --git a/modules/openstack_project/files/zuul/layout.yaml b/modules/openstack_project/files/zuul/layout.yaml
index 1b386fbf64..a7af2e6bc9 100644
--- a/modules/openstack_project/files/zuul/layout.yaml
+++ b/modules/openstack_project/files/zuul/layout.yaml
@@ -73,6 +73,14 @@ pipelines:
         - event: comment-added
           comment_filter: (?i)^\s*recheck(( (?:bug|lp)[\s#:]*(\d+))|( no bug))\s*$
 
+  - name: periodic
+    description: Jobs in this queue are triggered on a timer.
+    manager: IndependentPipelineManager
+    precedence: low
+    trigger:
+      timer:
+        - time: '*/5 * * * *'
+
 
 jobs:
   - name: ^.*$
@@ -205,6 +213,8 @@ projects:
         - zuul-pypi-upload:
           - post-mirror-python26
           - post-mirror-python27
+    periodic:
+      - periodic-test
 
   - name: openstack-infra/askbot-theme
     check: