diff --git a/.zuul.yaml b/.zuul.yaml
index 89e0257476..040cbbe1b3 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -41,49 +41,26 @@
 
 - job:
     name: system-config-build-image
-    description: |
-      Build a docker image.
-
-      See the `role documentation
-      <https://zuul-ci.org/docs/zuul-jobs/roles.html#role-build-docker-image>`_
-      for details.
+    parent: build-docker-image
     abstract: true
-    allowed-projects: openstack-infra/system-config
-    pre-run: playbooks/zuul/build-image/pre.yaml
-    run: playbooks/zuul/build-image/run.yaml
 
 - job:
     name: system-config-upload-image
-    parent: system-config-build-image
-    description: |
-      Build and upload a docker image.
-
-      See the `role documentation
-      <https://zuul-ci.org/docs/zuul-jobs/roles.html#role-upload-docker-image>`_
-      for details.
+    parent: upload-docker-image
     abstract: true
-    allowed-projects: openstack-infra/system-config
-    post-run: playbooks/zuul/build-image/upload.yaml
     secrets:
       name: docker_credentials
       secret: system-config-dockerhub
+      pass-to-parent: true
 
 - job:
     name: system-config-promote-image
-    description: |
-      Retag a previously-uploaded docker image.
-
-      See the `role documentation
-      <https://zuul-ci.org/docs/zuul-jobs/roles.html#role-promote-docker-image>`_
-      for details.
+    parent: promote-docker-image
     abstract: true
-    allowed-projects: openstack-infra/system-config
-    run: playbooks/zuul/build-image/promote.yaml
     secrets:
       name: docker_credentials
       secret: system-config-dockerhub
-    nodeset:
-      nodes: []
+      pass-to-parent: true
 
 # Jinja-init jobs
 - job:
diff --git a/playbooks/zuul/build-image/pre.yaml b/playbooks/zuul/build-image/pre.yaml
deleted file mode 100644
index 52f5b5b268..0000000000
--- a/playbooks/zuul/build-image/pre.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-- hosts: all
-  roles:
-    - install-docker
diff --git a/playbooks/zuul/build-image/promote.yaml b/playbooks/zuul/build-image/promote.yaml
deleted file mode 100644
index 8160bf438f..0000000000
--- a/playbooks/zuul/build-image/promote.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-- hosts: localhost
-  roles:
-    - promote-docker-image
diff --git a/playbooks/zuul/build-image/run.yaml b/playbooks/zuul/build-image/run.yaml
deleted file mode 100644
index d3525ad850..0000000000
--- a/playbooks/zuul/build-image/run.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-- hosts: all
-  roles:
-    - build-docker-image
diff --git a/playbooks/zuul/build-image/upload.yaml b/playbooks/zuul/build-image/upload.yaml
deleted file mode 100644
index 712f7261fb..0000000000
--- a/playbooks/zuul/build-image/upload.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-- hosts: all
-  roles:
-    - upload-docker-image