diff --git a/playbooks/legacy/bifrost-integration-dhcp-centos-7/post.yaml b/playbooks/legacy/bifrost-integration-dhcp-centos-7/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/bifrost-integration-dhcp-centos-7/post.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/logs/**
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/bifrost-integration-dhcp-centos-7/run.yaml b/playbooks/legacy/bifrost-integration-dhcp-centos-7/run.yaml
deleted file mode 100644
index cb494277..00000000
--- a/playbooks/legacy/bifrost-integration-dhcp-centos-7/run.yaml
+++ /dev/null
@@ -1,73 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-bifrost-integration-dhcp-centos-7 from old job gate-bifrost-integration-dhcp-centos-7-nv
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          CLONEMAP=`mktemp`
-          REQS_DIR=`mktemp -d`
-          function cleanup {
-              mkdir -p $WORKSPACE
-              rm -rf $CLONEMAP $REQS_DIR
-          }
-          trap cleanup EXIT
-          cat > $CLONEMAP << EOF
-          clonemap:
-            - name: $ZUUL_PROJECT
-              dest: .
-          EOF
-          # zuul cloner works poorly if there are 2 names that are the
-          # same in here.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-          cat >> $CLONEMAP << EOF
-            - name: openstack/requirements
-              dest: $REQS_DIR
-          EOF
-          fi
-          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
-              git://git.openstack.org $ZUUL_PROJECT openstack/requirements
-          # REQS_DIR is not set for openstack/requirements and there is also
-          # no need to copy in this case.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-              cp $REQS_DIR/upper-constraints.txt ./
-          fi
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -u
-          set -e
-          set -x
-          cd $WORKSPACE
-
-          /usr/zuul-env/bin/zuul-cloner --cache-dir /opt/git \
-            git://git.openstack.org \
-            openstack/bifrost \
-            openstack/diskimage-builder \
-            openstack/ironic \
-            openstack/python-ironicclient \
-            openstack-infra/shade \
-            openstack/ironic-inspector \
-            openstack/python-ironic-inspector-client \
-            openstack/requirements
-          export GIT_BASE=$(pwd)
-          export UPPER_CONSTRAINTS_FILE=$WORKSPACE/upper-constraints.txt
-          cd openstack/bifrost
-          scripts/test-bifrost-inventory-dhcp.sh
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/bifrost-integration-dhcp-opensuse-423/post.yaml b/playbooks/legacy/bifrost-integration-dhcp-opensuse-423/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/bifrost-integration-dhcp-opensuse-423/post.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/logs/**
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/bifrost-integration-dhcp-opensuse-423/run.yaml b/playbooks/legacy/bifrost-integration-dhcp-opensuse-423/run.yaml
deleted file mode 100644
index 2cf8ddff..00000000
--- a/playbooks/legacy/bifrost-integration-dhcp-opensuse-423/run.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-bifrost-integration-dhcp-opensuse-423 from old job
-    gate-bifrost-integration-dhcp-opensuse-423-nv
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          CLONEMAP=`mktemp`
-          REQS_DIR=`mktemp -d`
-          function cleanup {
-              mkdir -p $WORKSPACE
-              rm -rf $CLONEMAP $REQS_DIR
-          }
-          trap cleanup EXIT
-          cat > $CLONEMAP << EOF
-          clonemap:
-            - name: $ZUUL_PROJECT
-              dest: .
-          EOF
-          # zuul cloner works poorly if there are 2 names that are the
-          # same in here.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-          cat >> $CLONEMAP << EOF
-            - name: openstack/requirements
-              dest: $REQS_DIR
-          EOF
-          fi
-          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
-              git://git.openstack.org $ZUUL_PROJECT openstack/requirements
-          # REQS_DIR is not set for openstack/requirements and there is also
-          # no need to copy in this case.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-              cp $REQS_DIR/upper-constraints.txt ./
-          fi
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -u
-          set -e
-          set -x
-          cd $WORKSPACE
-
-          /usr/zuul-env/bin/zuul-cloner --cache-dir /opt/git \
-            git://git.openstack.org \
-            openstack/bifrost \
-            openstack/diskimage-builder \
-            openstack/ironic \
-            openstack/python-ironicclient \
-            openstack-infra/shade \
-            openstack/ironic-inspector \
-            openstack/python-ironic-inspector-client \
-            openstack/requirements
-          export GIT_BASE=$(pwd)
-          export UPPER_CONSTRAINTS_FILE=$WORKSPACE/upper-constraints.txt
-          cd openstack/bifrost
-          scripts/test-bifrost-inventory-dhcp.sh
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/bifrost-integration-dhcp/post.yaml b/playbooks/legacy/bifrost-integration-dhcp/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/bifrost-integration-dhcp/post.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/logs/**
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/bifrost-integration-dhcp/run.yaml b/playbooks/legacy/bifrost-integration-dhcp/run.yaml
deleted file mode 100644
index 6b001306..00000000
--- a/playbooks/legacy/bifrost-integration-dhcp/run.yaml
+++ /dev/null
@@ -1,73 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-bifrost-integration-dhcp from old job gate-bifrost-integration-dhcp-ubuntu-xenial-nv
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          CLONEMAP=`mktemp`
-          REQS_DIR=`mktemp -d`
-          function cleanup {
-              mkdir -p $WORKSPACE
-              rm -rf $CLONEMAP $REQS_DIR
-          }
-          trap cleanup EXIT
-          cat > $CLONEMAP << EOF
-          clonemap:
-            - name: $ZUUL_PROJECT
-              dest: .
-          EOF
-          # zuul cloner works poorly if there are 2 names that are the
-          # same in here.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-          cat >> $CLONEMAP << EOF
-            - name: openstack/requirements
-              dest: $REQS_DIR
-          EOF
-          fi
-          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
-              git://git.openstack.org $ZUUL_PROJECT openstack/requirements
-          # REQS_DIR is not set for openstack/requirements and there is also
-          # no need to copy in this case.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-              cp $REQS_DIR/upper-constraints.txt ./
-          fi
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -u
-          set -e
-          set -x
-          cd $WORKSPACE
-
-          /usr/zuul-env/bin/zuul-cloner --cache-dir /opt/git \
-            git://git.openstack.org \
-            openstack/bifrost \
-            openstack/diskimage-builder \
-            openstack/ironic \
-            openstack/python-ironicclient \
-            openstack-infra/shade \
-            openstack/ironic-inspector \
-            openstack/python-ironic-inspector-client \
-            openstack/requirements
-          export GIT_BASE=$(pwd)
-          export UPPER_CONSTRAINTS_FILE=$WORKSPACE/upper-constraints.txt
-          cd openstack/bifrost
-          scripts/test-bifrost-inventory-dhcp.sh
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/bifrost-integration-dibipa-debian-centos-7/post.yaml b/playbooks/legacy/bifrost-integration-dibipa-debian-centos-7/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/bifrost-integration-dibipa-debian-centos-7/post.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/logs/**
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/bifrost-integration-dibipa-debian-centos-7/run.yaml b/playbooks/legacy/bifrost-integration-dibipa-debian-centos-7/run.yaml
deleted file mode 100644
index 74f9aed9..00000000
--- a/playbooks/legacy/bifrost-integration-dibipa-debian-centos-7/run.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-bifrost-integration-dibipa-debian-centos-7 from old
-    job gate-bifrost-integration-dibipa-debian-centos-7-nv
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          CLONEMAP=`mktemp`
-          REQS_DIR=`mktemp -d`
-          function cleanup {
-              mkdir -p $WORKSPACE
-              rm -rf $CLONEMAP $REQS_DIR
-          }
-          trap cleanup EXIT
-          cat > $CLONEMAP << EOF
-          clonemap:
-            - name: $ZUUL_PROJECT
-              dest: .
-          EOF
-          # zuul cloner works poorly if there are 2 names that are the
-          # same in here.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-          cat >> $CLONEMAP << EOF
-            - name: openstack/requirements
-              dest: $REQS_DIR
-          EOF
-          fi
-          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
-              git://git.openstack.org $ZUUL_PROJECT openstack/requirements
-          # REQS_DIR is not set for openstack/requirements and there is also
-          # no need to copy in this case.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-              cp $REQS_DIR/upper-constraints.txt ./
-          fi
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -u
-          set -e
-          set -x
-          cd $WORKSPACE
-
-          /usr/zuul-env/bin/zuul-cloner --cache-dir /opt/git \
-            git://git.openstack.org \
-            openstack/bifrost \
-            openstack/diskimage-builder \
-            openstack/ironic \
-            openstack/python-ironicclient \
-            openstack-infra/shade \
-            openstack/ironic-inspector \
-            openstack/python-ironic-inspector-client \
-            openstack/requirements
-          export GIT_BASE=$(pwd)
-          export UPPER_CONSTRAINTS_FILE=$WORKSPACE/upper-constraints.txt
-          cd openstack/bifrost
-          scripts/test-bifrost-build-images.sh
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/bifrost-integration-dibipa-debian-opensuse-423/post.yaml b/playbooks/legacy/bifrost-integration-dibipa-debian-opensuse-423/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/bifrost-integration-dibipa-debian-opensuse-423/post.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/logs/**
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/bifrost-integration-dibipa-debian-opensuse-423/run.yaml b/playbooks/legacy/bifrost-integration-dibipa-debian-opensuse-423/run.yaml
deleted file mode 100644
index 24d73c48..00000000
--- a/playbooks/legacy/bifrost-integration-dibipa-debian-opensuse-423/run.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-bifrost-integration-dibipa-debian-opensuse-423 from
-    old job gate-bifrost-integration-dibipa-debian-opensuse-423-nv
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          CLONEMAP=`mktemp`
-          REQS_DIR=`mktemp -d`
-          function cleanup {
-              mkdir -p $WORKSPACE
-              rm -rf $CLONEMAP $REQS_DIR
-          }
-          trap cleanup EXIT
-          cat > $CLONEMAP << EOF
-          clonemap:
-            - name: $ZUUL_PROJECT
-              dest: .
-          EOF
-          # zuul cloner works poorly if there are 2 names that are the
-          # same in here.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-          cat >> $CLONEMAP << EOF
-            - name: openstack/requirements
-              dest: $REQS_DIR
-          EOF
-          fi
-          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
-              git://git.openstack.org $ZUUL_PROJECT openstack/requirements
-          # REQS_DIR is not set for openstack/requirements and there is also
-          # no need to copy in this case.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-              cp $REQS_DIR/upper-constraints.txt ./
-          fi
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -u
-          set -e
-          set -x
-          cd $WORKSPACE
-
-          /usr/zuul-env/bin/zuul-cloner --cache-dir /opt/git \
-            git://git.openstack.org \
-            openstack/bifrost \
-            openstack/diskimage-builder \
-            openstack/ironic \
-            openstack/python-ironicclient \
-            openstack-infra/shade \
-            openstack/ironic-inspector \
-            openstack/python-ironic-inspector-client \
-            openstack/requirements
-          export GIT_BASE=$(pwd)
-          export UPPER_CONSTRAINTS_FILE=$WORKSPACE/upper-constraints.txt
-          cd openstack/bifrost
-          scripts/test-bifrost-build-images.sh
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/bifrost-integration-dibipa-debian/post.yaml b/playbooks/legacy/bifrost-integration-dibipa-debian/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/bifrost-integration-dibipa-debian/post.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/logs/**
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/bifrost-integration-dibipa-debian/run.yaml b/playbooks/legacy/bifrost-integration-dibipa-debian/run.yaml
deleted file mode 100644
index 819d9ed7..00000000
--- a/playbooks/legacy/bifrost-integration-dibipa-debian/run.yaml
+++ /dev/null
@@ -1,73 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-bifrost-integration-dibipa-debian from old job gate-bifrost-integration-dibipa-debian-ubuntu-xenial-nv
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          CLONEMAP=`mktemp`
-          REQS_DIR=`mktemp -d`
-          function cleanup {
-              mkdir -p $WORKSPACE
-              rm -rf $CLONEMAP $REQS_DIR
-          }
-          trap cleanup EXIT
-          cat > $CLONEMAP << EOF
-          clonemap:
-            - name: $ZUUL_PROJECT
-              dest: .
-          EOF
-          # zuul cloner works poorly if there are 2 names that are the
-          # same in here.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-          cat >> $CLONEMAP << EOF
-            - name: openstack/requirements
-              dest: $REQS_DIR
-          EOF
-          fi
-          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
-              git://git.openstack.org $ZUUL_PROJECT openstack/requirements
-          # REQS_DIR is not set for openstack/requirements and there is also
-          # no need to copy in this case.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-              cp $REQS_DIR/upper-constraints.txt ./
-          fi
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -u
-          set -e
-          set -x
-          cd $WORKSPACE
-
-          /usr/zuul-env/bin/zuul-cloner --cache-dir /opt/git \
-            git://git.openstack.org \
-            openstack/bifrost \
-            openstack/diskimage-builder \
-            openstack/ironic \
-            openstack/python-ironicclient \
-            openstack-infra/shade \
-            openstack/ironic-inspector \
-            openstack/python-ironic-inspector-client \
-            openstack/requirements
-          export GIT_BASE=$(pwd)
-          export UPPER_CONSTRAINTS_FILE=$WORKSPACE/upper-constraints.txt
-          cd openstack/bifrost
-          scripts/test-bifrost-build-images.sh
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/bifrost-integration-tinyipa-centos-7/post.yaml b/playbooks/legacy/bifrost-integration-tinyipa-centos-7/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/bifrost-integration-tinyipa-centos-7/post.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/logs/**
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/bifrost-integration-tinyipa-centos-7/run.yaml b/playbooks/legacy/bifrost-integration-tinyipa-centos-7/run.yaml
deleted file mode 100644
index 6203afca..00000000
--- a/playbooks/legacy/bifrost-integration-tinyipa-centos-7/run.yaml
+++ /dev/null
@@ -1,73 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-bifrost-integration-tinyipa-centos-7 from old job
-    gate-bifrost-integration-tinyipa-centos-7
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          CLONEMAP=`mktemp`
-          REQS_DIR=`mktemp -d`
-          function cleanup {
-              mkdir -p $WORKSPACE
-              rm -rf $CLONEMAP $REQS_DIR
-          }
-          trap cleanup EXIT
-          cat > $CLONEMAP << EOF
-          clonemap:
-            - name: $ZUUL_PROJECT
-              dest: .
-          EOF
-          # zuul cloner works poorly if there are 2 names that are the
-          # same in here.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-          cat >> $CLONEMAP << EOF
-            - name: openstack/requirements
-              dest: $REQS_DIR
-          EOF
-          fi
-          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
-              git://git.openstack.org $ZUUL_PROJECT openstack/requirements
-          # REQS_DIR is not set for openstack/requirements and there is also
-          # no need to copy in this case.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-              cp $REQS_DIR/upper-constraints.txt ./
-          fi
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -u
-          set -e
-          set -x
-          cd $WORKSPACE
-
-          /usr/zuul-env/bin/zuul-cloner --cache-dir /opt/git \
-            git://git.openstack.org \
-            openstack/bifrost \
-            openstack/ironic \
-            openstack/python-ironicclient \
-            openstack-infra/shade \
-            openstack/ironic-inspector \
-            openstack/python-ironic-inspector-client \
-            openstack/requirements
-          export GIT_BASE=$(pwd)
-          export UPPER_CONSTRAINTS_FILE=$WORKSPACE/upper-constraints.txt
-          cd openstack/bifrost
-          scripts/test-bifrost.sh
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/bifrost-integration-tinyipa-opensuse-423/post.yaml b/playbooks/legacy/bifrost-integration-tinyipa-opensuse-423/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/bifrost-integration-tinyipa-opensuse-423/post.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/logs/**
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/bifrost-integration-tinyipa-opensuse-423/run.yaml b/playbooks/legacy/bifrost-integration-tinyipa-opensuse-423/run.yaml
deleted file mode 100644
index 03f51d44..00000000
--- a/playbooks/legacy/bifrost-integration-tinyipa-opensuse-423/run.yaml
+++ /dev/null
@@ -1,73 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-bifrost-integration-tinyipa-opensuse-423 from old
-    job gate-bifrost-integration-tinyipa-opensuse-423
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          CLONEMAP=`mktemp`
-          REQS_DIR=`mktemp -d`
-          function cleanup {
-              mkdir -p $WORKSPACE
-              rm -rf $CLONEMAP $REQS_DIR
-          }
-          trap cleanup EXIT
-          cat > $CLONEMAP << EOF
-          clonemap:
-            - name: $ZUUL_PROJECT
-              dest: .
-          EOF
-          # zuul cloner works poorly if there are 2 names that are the
-          # same in here.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-          cat >> $CLONEMAP << EOF
-            - name: openstack/requirements
-              dest: $REQS_DIR
-          EOF
-          fi
-          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
-              git://git.openstack.org $ZUUL_PROJECT openstack/requirements
-          # REQS_DIR is not set for openstack/requirements and there is also
-          # no need to copy in this case.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-              cp $REQS_DIR/upper-constraints.txt ./
-          fi
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -u
-          set -e
-          set -x
-          cd $WORKSPACE
-
-          /usr/zuul-env/bin/zuul-cloner --cache-dir /opt/git \
-            git://git.openstack.org \
-            openstack/bifrost \
-            openstack/ironic \
-            openstack/python-ironicclient \
-            openstack-infra/shade \
-            openstack/ironic-inspector \
-            openstack/python-ironic-inspector-client \
-            openstack/requirements
-          export GIT_BASE=$(pwd)
-          export UPPER_CONSTRAINTS_FILE=$WORKSPACE/upper-constraints.txt
-          cd openstack/bifrost
-          scripts/test-bifrost.sh
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/bifrost-integration-tinyipa/post.yaml b/playbooks/legacy/bifrost-integration-tinyipa/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/bifrost-integration-tinyipa/post.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/logs/**
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/bifrost-integration-tinyipa/run.yaml b/playbooks/legacy/bifrost-integration-tinyipa/run.yaml
deleted file mode 100644
index 3d4e4282..00000000
--- a/playbooks/legacy/bifrost-integration-tinyipa/run.yaml
+++ /dev/null
@@ -1,72 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-bifrost-integration-tinyipa from old job gate-bifrost-integration-tinyipa-ubuntu-xenial
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          CLONEMAP=`mktemp`
-          REQS_DIR=`mktemp -d`
-          function cleanup {
-              mkdir -p $WORKSPACE
-              rm -rf $CLONEMAP $REQS_DIR
-          }
-          trap cleanup EXIT
-          cat > $CLONEMAP << EOF
-          clonemap:
-            - name: $ZUUL_PROJECT
-              dest: .
-          EOF
-          # zuul cloner works poorly if there are 2 names that are the
-          # same in here.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-          cat >> $CLONEMAP << EOF
-            - name: openstack/requirements
-              dest: $REQS_DIR
-          EOF
-          fi
-          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
-              git://git.openstack.org $ZUUL_PROJECT openstack/requirements
-          # REQS_DIR is not set for openstack/requirements and there is also
-          # no need to copy in this case.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-              cp $REQS_DIR/upper-constraints.txt ./
-          fi
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -u
-          set -e
-          set -x
-          cd $WORKSPACE
-
-          /usr/zuul-env/bin/zuul-cloner --cache-dir /opt/git \
-            git://git.openstack.org \
-            openstack/bifrost \
-            openstack/ironic \
-            openstack/python-ironicclient \
-            openstack-infra/shade \
-            openstack/ironic-inspector \
-            openstack/python-ironic-inspector-client \
-            openstack/requirements
-          export GIT_BASE=$(pwd)
-          export UPPER_CONSTRAINTS_FILE=$WORKSPACE/upper-constraints.txt
-          cd openstack/bifrost
-          scripts/test-bifrost.sh
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/zuul.d/zuul-legacy-jobs.yaml b/zuul.d/zuul-legacy-jobs.yaml
index 0d252c3e..dc6b638f 100644
--- a/zuul.d/zuul-legacy-jobs.yaml
+++ b/zuul.d/zuul-legacy-jobs.yaml
@@ -507,153 +507,6 @@
     post-run: playbooks/legacy/beaker-nodepool-rake/post.yaml
     timeout: 1800
 
-- job:
-    name: legacy-bifrost-integration-dhcp
-    parent: legacy-base
-    run: playbooks/legacy/bifrost-integration-dhcp/run.yaml
-    post-run: playbooks/legacy/bifrost-integration-dhcp/post.yaml
-    timeout: 7200
-    required-projects:
-      - openstack/bifrost
-      - openstack/diskimage-builder
-      - openstack/ironic
-      - openstack/ironic-inspector
-      - openstack/python-ironic-inspector-client
-      - openstack/python-ironicclient
-      - openstack/requirements
-      - openstack-infra/shade
-
-- job:
-    name: legacy-bifrost-integration-dhcp-centos-7
-    parent: legacy-base
-    run: playbooks/legacy/bifrost-integration-dhcp-centos-7/run.yaml
-    post-run: playbooks/legacy/bifrost-integration-dhcp-centos-7/post.yaml
-    timeout: 7200
-    nodeset: legacy-centos-7
-    required-projects:
-      - openstack/bifrost
-      - openstack/diskimage-builder
-      - openstack/ironic
-      - openstack/ironic-inspector
-      - openstack/python-ironic-inspector-client
-      - openstack/python-ironicclient
-      - openstack/requirements
-      - openstack-infra/shade
-
-- job:
-    name: legacy-bifrost-integration-dhcp-opensuse-423
-    parent: legacy-base
-    run: playbooks/legacy/bifrost-integration-dhcp-opensuse-423/run.yaml
-    post-run: playbooks/legacy/bifrost-integration-dhcp-opensuse-423/post.yaml
-    timeout: 7200
-    nodeset: legacy-opensuse-423
-    required-projects:
-      - openstack/bifrost
-      - openstack/diskimage-builder
-      - openstack/ironic
-      - openstack/ironic-inspector
-      - openstack/python-ironic-inspector-client
-      - openstack/python-ironicclient
-      - openstack/requirements
-      - openstack-infra/shade
-
-- job:
-    name: legacy-bifrost-integration-dibipa-debian
-    parent: legacy-base
-    run: playbooks/legacy/bifrost-integration-dibipa-debian/run.yaml
-    post-run: playbooks/legacy/bifrost-integration-dibipa-debian/post.yaml
-    timeout: 7200
-    required-projects:
-      - openstack/bifrost
-      - openstack/diskimage-builder
-      - openstack/ironic
-      - openstack/ironic-inspector
-      - openstack/python-ironic-inspector-client
-      - openstack/python-ironicclient
-      - openstack/requirements
-      - openstack-infra/shade
-
-- job:
-    name: legacy-bifrost-integration-dibipa-debian-centos-7
-    parent: legacy-base
-    run: playbooks/legacy/bifrost-integration-dibipa-debian-centos-7/run.yaml
-    post-run: playbooks/legacy/bifrost-integration-dibipa-debian-centos-7/post.yaml
-    timeout: 7200
-    nodeset: legacy-centos-7
-    required-projects:
-      - openstack/bifrost
-      - openstack/diskimage-builder
-      - openstack/ironic
-      - openstack/ironic-inspector
-      - openstack/python-ironic-inspector-client
-      - openstack/python-ironicclient
-      - openstack/requirements
-      - openstack-infra/shade
-
-- job:
-    name: legacy-bifrost-integration-dibipa-debian-opensuse-423
-    parent: legacy-base
-    run: playbooks/legacy/bifrost-integration-dibipa-debian-opensuse-423/run.yaml
-    post-run: playbooks/legacy/bifrost-integration-dibipa-debian-opensuse-423/post.yaml
-    timeout: 7200
-    nodeset: legacy-opensuse-423
-    required-projects:
-      - openstack/bifrost
-      - openstack/diskimage-builder
-      - openstack/ironic
-      - openstack/ironic-inspector
-      - openstack/python-ironic-inspector-client
-      - openstack/python-ironicclient
-      - openstack/requirements
-      - openstack-infra/shade
-
-- job:
-    name: legacy-bifrost-integration-tinyipa
-    parent: legacy-base
-    run: playbooks/legacy/bifrost-integration-tinyipa/run.yaml
-    post-run: playbooks/legacy/bifrost-integration-tinyipa/post.yaml
-    timeout: 3600
-    required-projects:
-      - openstack/bifrost
-      - openstack/ironic
-      - openstack/ironic-inspector
-      - openstack/python-ironic-inspector-client
-      - openstack/python-ironicclient
-      - openstack/requirements
-      - openstack-infra/shade
-
-- job:
-    name: legacy-bifrost-integration-tinyipa-centos-7
-    parent: legacy-base
-    run: playbooks/legacy/bifrost-integration-tinyipa-centos-7/run.yaml
-    post-run: playbooks/legacy/bifrost-integration-tinyipa-centos-7/post.yaml
-    timeout: 3600
-    nodeset: legacy-centos-7
-    required-projects:
-      - openstack/bifrost
-      - openstack/ironic
-      - openstack/ironic-inspector
-      - openstack/python-ironic-inspector-client
-      - openstack/python-ironicclient
-      - openstack/requirements
-      - openstack-infra/shade
-
-- job:
-    name: legacy-bifrost-integration-tinyipa-opensuse-423
-    parent: legacy-base
-    run: playbooks/legacy/bifrost-integration-tinyipa-opensuse-423/run.yaml
-    post-run: playbooks/legacy/bifrost-integration-tinyipa-opensuse-423/post.yaml
-    timeout: 3600
-    nodeset: legacy-opensuse-423
-    required-projects:
-      - openstack/bifrost
-      - openstack/ironic
-      - openstack/ironic-inspector
-      - openstack/python-ironic-inspector-client
-      - openstack/python-ironicclient
-      - openstack/requirements
-      - openstack-infra/shade
-
 - job:
     name: legacy-bindep-fallback
     parent: legacy-base