diff --git a/.zuul.yaml b/.zuul.yaml
deleted file mode 100644
index 501085fb65..0000000000
--- a/.zuul.yaml
+++ /dev/null
@@ -1,186 +0,0 @@
----
-- project:
-    check:
-      jobs:
-        - kolla-ansible-centos-source
-        - kolla-ansible-ubuntu-source
-        - kolla-ansible-oraclelinux-source
-        - kolla-ansible-ubuntu-source-ceph
-        - kolla-ansible-centos-source-ceph
-        - kolla-ansible-oraclelinux-source-ceph
-        - kolla-ansible-bifrost-centos-source:
-            files: ^ansible\/roles\/bifrost\/.*
-        - openstack-tox-lower-constraints
-    gate:
-      jobs:
-        - openstack-tox-lower-constraints
-    periodic:
-      jobs:
-        - kolla-ansible-bifrost-centos-source
-
-- nodeset:
-    name: kolla-ansible-centos
-    nodes:
-      - name: primary
-        label: centos-7
-
-- nodeset:
-    name: kolla-ansible-xenial
-    nodes:
-      - name: primary
-        label: ubuntu-xenial
-
-- nodeset:
-    name: kolla-ansible-xenial-multi
-    nodes:
-      - name: primary
-        label: ubuntu-xenial
-      - name: secondary1
-        label: ubuntu-xenial
-      - name: secondary2
-        label: ubuntu-xenial
-    groups:
-      - name: switch
-        nodes:
-          - primary
-      - name: peers
-        nodes:
-          - secondary1
-          - secondary2
-
-- nodeset:
-    name: kolla-ansible-centos-multi
-    nodes:
-      - name: primary
-        label: centos-7
-      - name: secondary1
-        label: centos-7
-      - name: secondary2
-        label: centos-7
-    groups:
-      - name: switch
-        nodes:
-          - primary
-      - name: peers
-        nodes:
-          - secondary1
-          - secondary2
-
-- job:
-    name: kolla-ansible-base
-    pre-run: tests/pre.yml
-    run: tests/run.yml
-    post-run: tests/post.yml
-    attempts: 1
-    timeout: 5400
-    required-projects:
-      - openstack/kolla
-      - openstack/requirements
-    irrelevant-files:
-      - ^.*\.rst$
-      - ^doc/.*
-      - ^test-requirements.txt$
-      - ^releasenotes/.*$
-    vars:
-      scenario: aio
-    roles:
-      - zuul: openstack-infra/zuul-jobs
-
-- job:
-    name: kolla-ansible-bifrost-base
-    parent: kolla-ansible-base
-    vars:
-      scenario: bifrost
-      install_type: source
-
-- job:
-    name: kolla-ansible-centos-source
-    parent: kolla-ansible-base
-    nodeset: kolla-ansible-centos
-    voting: false
-    vars:
-      base_distro: centos
-      install_type: source
-
-- job:
-    name: kolla-ansible-ubuntu-source
-    parent: kolla-ansible-base
-    nodeset: kolla-ansible-xenial
-    voting: false
-    vars:
-      base_distro: ubuntu
-      install_type: source
-
-- job:
-    name: kolla-ansible-oraclelinux-source
-    parent: kolla-ansible-base
-    nodeset: kolla-ansible-centos
-    voting: false
-    vars:
-      base_distro: oraclelinux
-      install_type: source
-
-- job:
-    name: kolla-ansible-centos-binary
-    parent: kolla-ansible-base
-    nodeset: kolla-ansible-centos
-    voting: false
-    vars:
-      base_distro: centos
-      install_type: binary
-
-- job:
-    name: kolla-ansible-ubuntu-binary
-    parent: kolla-ansible-base
-    nodeset: kolla-ansible-xenial
-    voting: false
-    vars:
-      base_distro: ubuntu
-      install_type: binary
-
-- job:
-    name: kolla-ansible-oraclelinux-binary
-    parent: kolla-ansible-base
-    nodeset: kolla-ansible-centos
-    voting: false
-    vars:
-      base_distro: oraclelinux
-      install_type: binary
-
-- job:
-    name: kolla-ansible-ubuntu-source-ceph
-    parent: kolla-ansible-base
-    nodeset: kolla-ansible-xenial-multi
-    voting: false
-    vars:
-      base_distro: ubuntu
-      install_type: source
-      scenario: ceph
-
-- job:
-    name: kolla-ansible-centos-source-ceph
-    parent: kolla-ansible-base
-    nodeset: kolla-ansible-centos-multi
-    voting: false
-    vars:
-      base_distro: centos
-      install_type: source
-      scenario: ceph
-
-- job:
-    name: kolla-ansible-oraclelinux-source-ceph
-    parent: kolla-ansible-base
-    nodeset: kolla-ansible-centos-multi
-    voting: false
-    vars:
-      base_distro: oraclelinux
-      install_type: source
-      scenario: ceph
-
-- job:
-    name: kolla-ansible-bifrost-centos-source
-    parent: kolla-ansible-bifrost-base
-    nodeset: kolla-ansible-centos
-    voting: false
-    vars:
-      base_distro: centos
diff --git a/zuul.d/base.yaml b/zuul.d/base.yaml
new file mode 100644
index 0000000000..d0ad75a6a3
--- /dev/null
+++ b/zuul.d/base.yaml
@@ -0,0 +1,27 @@
+---
+- job:
+    name: kolla-ansible-base
+    pre-run: tests/pre.yml
+    run: tests/run.yml
+    post-run: tests/post.yml
+    attempts: 1
+    timeout: 5400
+    required-projects:
+      - openstack/kolla
+      - openstack/requirements
+    irrelevant-files:
+      - ^.*\.rst$
+      - ^doc/.*
+      - ^test-requirements.txt$
+      - ^releasenotes/.*$
+    vars:
+      scenario: aio
+    roles:
+      - zuul: openstack-infra/zuul-jobs
+
+- job:
+    name: kolla-ansible-bifrost-base
+    parent: kolla-ansible-base
+    vars:
+      scenario: bifrost
+      install_type: source
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
new file mode 100644
index 0000000000..44b6f97514
--- /dev/null
+++ b/zuul.d/jobs.yaml
@@ -0,0 +1,92 @@
+---
+- job:
+    name: kolla-ansible-centos-source
+    parent: kolla-ansible-base
+    nodeset: kolla-ansible-centos
+    voting: false
+    vars:
+      base_distro: centos
+      install_type: source
+
+- job:
+    name: kolla-ansible-ubuntu-source
+    parent: kolla-ansible-base
+    nodeset: kolla-ansible-xenial
+    voting: false
+    vars:
+      base_distro: ubuntu
+      install_type: source
+
+- job:
+    name: kolla-ansible-oraclelinux-source
+    parent: kolla-ansible-base
+    nodeset: kolla-ansible-centos
+    voting: false
+    vars:
+      base_distro: oraclelinux
+      install_type: source
+
+- job:
+    name: kolla-ansible-centos-binary
+    parent: kolla-ansible-base
+    nodeset: kolla-ansible-centos
+    voting: false
+    vars:
+      base_distro: centos
+      install_type: binary
+
+- job:
+    name: kolla-ansible-ubuntu-binary
+    parent: kolla-ansible-base
+    nodeset: kolla-ansible-xenial
+    voting: false
+    vars:
+      base_distro: ubuntu
+      install_type: binary
+
+- job:
+    name: kolla-ansible-oraclelinux-binary
+    parent: kolla-ansible-base
+    nodeset: kolla-ansible-centos
+    voting: false
+    vars:
+      base_distro: oraclelinux
+      install_type: binary
+
+- job:
+    name: kolla-ansible-ubuntu-source-ceph
+    parent: kolla-ansible-base
+    nodeset: kolla-ansible-xenial-multi
+    voting: false
+    vars:
+      base_distro: ubuntu
+      install_type: source
+      scenario: ceph
+
+- job:
+    name: kolla-ansible-centos-source-ceph
+    parent: kolla-ansible-base
+    nodeset: kolla-ansible-centos-multi
+    voting: false
+    vars:
+      base_distro: centos
+      install_type: source
+      scenario: ceph
+
+- job:
+    name: kolla-ansible-oraclelinux-source-ceph
+    parent: kolla-ansible-base
+    nodeset: kolla-ansible-centos-multi
+    voting: false
+    vars:
+      base_distro: oraclelinux
+      install_type: source
+      scenario: ceph
+
+- job:
+    name: kolla-ansible-bifrost-centos-source
+    parent: kolla-ansible-bifrost-base
+    nodeset: kolla-ansible-centos
+    voting: false
+    vars:
+      base_distro: centos
diff --git a/zuul.d/nodesets.yaml b/zuul.d/nodesets.yaml
new file mode 100644
index 0000000000..5890e8c18b
--- /dev/null
+++ b/zuul.d/nodesets.yaml
@@ -0,0 +1,48 @@
+---
+- nodeset:
+    name: kolla-ansible-centos
+    nodes:
+      - name: primary
+        label: centos-7
+
+- nodeset:
+    name: kolla-ansible-xenial
+    nodes:
+      - name: primary
+        label: ubuntu-xenial
+
+- nodeset:
+    name: kolla-ansible-xenial-multi
+    nodes:
+      - name: primary
+        label: ubuntu-xenial
+      - name: secondary1
+        label: ubuntu-xenial
+      - name: secondary2
+        label: ubuntu-xenial
+    groups:
+      - name: switch
+        nodes:
+          - primary
+      - name: peers
+        nodes:
+          - secondary1
+          - secondary2
+
+- nodeset:
+    name: kolla-ansible-centos-multi
+    nodes:
+      - name: primary
+        label: centos-7
+      - name: secondary1
+        label: centos-7
+      - name: secondary2
+        label: centos-7
+    groups:
+      - name: switch
+        nodes:
+          - primary
+      - name: peers
+        nodes:
+          - secondary1
+          - secondary2
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
new file mode 100644
index 0000000000..f9f9e5aa7b
--- /dev/null
+++ b/zuul.d/project.yaml
@@ -0,0 +1,19 @@
+---
+- project:
+    check:
+      jobs:
+        - kolla-ansible-centos-source
+        - kolla-ansible-ubuntu-source
+        - kolla-ansible-oraclelinux-source
+        - kolla-ansible-ubuntu-source-ceph
+        - kolla-ansible-centos-source-ceph
+        - kolla-ansible-oraclelinux-source-ceph
+        - kolla-ansible-bifrost-centos-source:
+            files: ^ansible\/roles\/bifrost\/.*
+        - openstack-tox-lower-constraints
+    gate:
+      jobs:
+        - openstack-tox-lower-constraints
+    periodic:
+      jobs:
+        - kolla-ansible-bifrost-centos-source