diff --git a/playbooks/legacy/tempest-dsvm-ironic-lib-partition-agent_ipmitool/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-lib-partition-agent_ipmitool/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-lib-partition-agent_ipmitool/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/tempest-dsvm-ironic-lib-partition-agent_ipmitool/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-lib-partition-agent_ipmitool/run.yaml
deleted file mode 100644
index 4b1b70e9..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-lib-partition-agent_ipmitool/run.yaml
+++ /dev/null
@@ -1,166 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-lib-partition-agent_ipmitool
-    from old job gate-tempest-dsvm-ironic-lib-partition-agent_ipmitool-ubuntu-xenial
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          cat > clonemap.yaml << EOF
-          clonemap:
-            - name: openstack-infra/devstack-gate
-              dest: devstack-gate
-          EOF
-          /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
-              git://git.openstack.org \
-              openstack-infra/devstack-gate
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
-          # Standardize VM size for each supported ramdisk
-          case "tinyipa" in
-              'tinyipa')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'tinyipa256')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'coreos')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
-                  ;;
-          # if using a ramdisk without a known good value, use the devstack
-          # default by not exporting any value for IRONIC_VM_SPECS_RAM
-          esac
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_TEMPEST_REGEX="ironic"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_PROJECT_FROM_GIT="ironic-lib,$DEVSTACK_PROJECT_FROM_GIT"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-vars-early
-            # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic'"
-          else
-            # on master, use the local change, so we can pick up any changes to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic'"
-          fi
-          export TEMPEST_CONCURRENCY=1
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          export PROJECTS="openstack/ironic $PROJECTS"
-          export PROJECTS="openstack/ironic-lib $PROJECTS"
-          export PROJECTS="openstack/ironic-python-agent $PROJECTS"
-          export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
-          export PROJECTS="openstack/virtualbmc $PROJECTS"
-          export PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_TEMPEST=1
-          export DEVSTACK_GATE_IRONIC=1
-          export DEVSTACK_GATE_NEUTRON=1
-          export DEVSTACK_GATE_VIRT_DRIVER=ironic
-          export DEVSTACK_GATE_CONFIGDRIVE=1
-          export DEVSTACK_GATE_IRONIC_DRIVER=agent_ipmitool
-          export BRANCH_OVERRIDE=default
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-
-          if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then
-              export DEVSTACK_GATE_TLSPROXY=1
-          fi
-
-          if [ "agent_ipmitool" == "pxe_snmp" ] ; then
-              # explicitly enable pxe_snmp driver
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
-          fi
-
-          if [ "agent_ipmitool" == "redfish" ] ; then
-              # When deploying with redfish we need to enable the "redfish"
-              # hardware type
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_HARDWARE_TYPES=redfish"
-          fi
-
-          if [ "partition" == "wholedisk" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-          else
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1"
-          fi
-
-          if [ -n "yes" ] ; then
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=1
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"USE_SUBNETPOOL=False"
-          else
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-          fi
-
-          if [ "bios" == "uefi" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BOOT_MODE=uefi"
-          fi
-
-          export DEVSTACK_PROJECT_FROM_GIT=""
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
-          # Ensure the ironic-vars-EARLY file exists
-          touch ironic-vars-early
-          # Pull in the EARLY variables injected by the optional builders
-          source ironic-vars-early
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
-
-          # Ensure the ironic-EXTRA-vars file exists
-          touch ironic-extra-vars
-          # Pull in the EXTRA variables injected by the optional builders
-          source ironic-extra-vars
-
-          cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
-          ./safe-devstack-vm-gate-wrap.sh
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/tempest-dsvm-ironic-lib-partition-pxe_ipmitool/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-lib-partition-pxe_ipmitool/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-lib-partition-pxe_ipmitool/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/tempest-dsvm-ironic-lib-partition-pxe_ipmitool/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-lib-partition-pxe_ipmitool/run.yaml
deleted file mode 100644
index df99047d..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-lib-partition-pxe_ipmitool/run.yaml
+++ /dev/null
@@ -1,166 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-lib-partition-pxe_ipmitool from
-    old job gate-tempest-dsvm-ironic-lib-partition-pxe_ipmitool-ubuntu-xenial
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          cat > clonemap.yaml << EOF
-          clonemap:
-            - name: openstack-infra/devstack-gate
-              dest: devstack-gate
-          EOF
-          /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
-              git://git.openstack.org \
-              openstack-infra/devstack-gate
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
-          # Standardize VM size for each supported ramdisk
-          case "tinyipa" in
-              'tinyipa')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'tinyipa256')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'coreos')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
-                  ;;
-          # if using a ramdisk without a known good value, use the devstack
-          # default by not exporting any value for IRONIC_VM_SPECS_RAM
-          esac
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_TEMPEST_REGEX="ironic"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_PROJECT_FROM_GIT="ironic-lib,$DEVSTACK_PROJECT_FROM_GIT"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-vars-early
-            # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic'"
-          else
-            # on master, use the local change, so we can pick up any changes to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic'"
-          fi
-          export TEMPEST_CONCURRENCY=1
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          export PROJECTS="openstack/ironic $PROJECTS"
-          export PROJECTS="openstack/ironic-lib $PROJECTS"
-          export PROJECTS="openstack/ironic-python-agent $PROJECTS"
-          export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
-          export PROJECTS="openstack/virtualbmc $PROJECTS"
-          export PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_TEMPEST=1
-          export DEVSTACK_GATE_IRONIC=1
-          export DEVSTACK_GATE_NEUTRON=1
-          export DEVSTACK_GATE_VIRT_DRIVER=ironic
-          export DEVSTACK_GATE_CONFIGDRIVE=1
-          export DEVSTACK_GATE_IRONIC_DRIVER=pxe_ipmitool
-          export BRANCH_OVERRIDE=default
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-
-          if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then
-              export DEVSTACK_GATE_TLSPROXY=1
-          fi
-
-          if [ "pxe_ipmitool" == "pxe_snmp" ] ; then
-              # explicitly enable pxe_snmp driver
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
-          fi
-
-          if [ "pxe_ipmitool" == "redfish" ] ; then
-              # When deploying with redfish we need to enable the "redfish"
-              # hardware type
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_HARDWARE_TYPES=redfish"
-          fi
-
-          if [ "partition" == "wholedisk" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-          else
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1"
-          fi
-
-          if [ -n "yes" ] ; then
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=1
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"USE_SUBNETPOOL=False"
-          else
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-          fi
-
-          if [ "bios" == "uefi" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BOOT_MODE=uefi"
-          fi
-
-          export DEVSTACK_PROJECT_FROM_GIT=""
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
-          # Ensure the ironic-vars-EARLY file exists
-          touch ironic-vars-early
-          # Pull in the EARLY variables injected by the optional builders
-          source ironic-vars-early
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
-
-          # Ensure the ironic-EXTRA-vars file exists
-          touch ironic-extra-vars
-          # Pull in the EXTRA variables injected by the optional builders
-          source ironic-extra-vars
-
-          cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
-          ./safe-devstack-vm-gate-wrap.sh
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/tempest-dsvm-ironic-lib-wholedisk-agent_ipmitool/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-lib-wholedisk-agent_ipmitool/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-lib-wholedisk-agent_ipmitool/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/tempest-dsvm-ironic-lib-wholedisk-agent_ipmitool/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-lib-wholedisk-agent_ipmitool/run.yaml
deleted file mode 100644
index f5c31893..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-lib-wholedisk-agent_ipmitool/run.yaml
+++ /dev/null
@@ -1,166 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-lib-wholedisk-agent_ipmitool
-    from old job gate-tempest-dsvm-ironic-lib-wholedisk-agent_ipmitool-ubuntu-xenial
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          cat > clonemap.yaml << EOF
-          clonemap:
-            - name: openstack-infra/devstack-gate
-              dest: devstack-gate
-          EOF
-          /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
-              git://git.openstack.org \
-              openstack-infra/devstack-gate
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
-          # Standardize VM size for each supported ramdisk
-          case "tinyipa" in
-              'tinyipa')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'tinyipa256')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'coreos')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
-                  ;;
-          # if using a ramdisk without a known good value, use the devstack
-          # default by not exporting any value for IRONIC_VM_SPECS_RAM
-          esac
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_TEMPEST_REGEX="ironic"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_PROJECT_FROM_GIT="ironic-lib,$DEVSTACK_PROJECT_FROM_GIT"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-vars-early
-            # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic'"
-          else
-            # on master, use the local change, so we can pick up any changes to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic'"
-          fi
-          export TEMPEST_CONCURRENCY=1
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          export PROJECTS="openstack/ironic $PROJECTS"
-          export PROJECTS="openstack/ironic-lib $PROJECTS"
-          export PROJECTS="openstack/ironic-python-agent $PROJECTS"
-          export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
-          export PROJECTS="openstack/virtualbmc $PROJECTS"
-          export PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_TEMPEST=1
-          export DEVSTACK_GATE_IRONIC=1
-          export DEVSTACK_GATE_NEUTRON=1
-          export DEVSTACK_GATE_VIRT_DRIVER=ironic
-          export DEVSTACK_GATE_CONFIGDRIVE=1
-          export DEVSTACK_GATE_IRONIC_DRIVER=agent_ipmitool
-          export BRANCH_OVERRIDE=default
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-
-          if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then
-              export DEVSTACK_GATE_TLSPROXY=1
-          fi
-
-          if [ "agent_ipmitool" == "pxe_snmp" ] ; then
-              # explicitly enable pxe_snmp driver
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
-          fi
-
-          if [ "agent_ipmitool" == "redfish" ] ; then
-              # When deploying with redfish we need to enable the "redfish"
-              # hardware type
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_HARDWARE_TYPES=redfish"
-          fi
-
-          if [ "wholedisk" == "wholedisk" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-          else
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1"
-          fi
-
-          if [ -n "yes" ] ; then
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=1
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"USE_SUBNETPOOL=False"
-          else
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-          fi
-
-          if [ "bios" == "uefi" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BOOT_MODE=uefi"
-          fi
-
-          export DEVSTACK_PROJECT_FROM_GIT=""
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
-          # Ensure the ironic-vars-EARLY file exists
-          touch ironic-vars-early
-          # Pull in the EARLY variables injected by the optional builders
-          source ironic-vars-early
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
-
-          # Ensure the ironic-EXTRA-vars file exists
-          touch ironic-extra-vars
-          # Pull in the EXTRA variables injected by the optional builders
-          source ironic-extra-vars
-
-          cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
-          ./safe-devstack-vm-gate-wrap.sh
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/tempest-dsvm-ironic-lib-wholedisk-pxe_ipmitool/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-lib-wholedisk-pxe_ipmitool/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-lib-wholedisk-pxe_ipmitool/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/tempest-dsvm-ironic-lib-wholedisk-pxe_ipmitool/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-lib-wholedisk-pxe_ipmitool/run.yaml
deleted file mode 100644
index bd892364..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-lib-wholedisk-pxe_ipmitool/run.yaml
+++ /dev/null
@@ -1,166 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-lib-wholedisk-pxe_ipmitool from
-    old job gate-tempest-dsvm-ironic-lib-wholedisk-pxe_ipmitool-ubuntu-xenial
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          cat > clonemap.yaml << EOF
-          clonemap:
-            - name: openstack-infra/devstack-gate
-              dest: devstack-gate
-          EOF
-          /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
-              git://git.openstack.org \
-              openstack-infra/devstack-gate
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
-          # Standardize VM size for each supported ramdisk
-          case "tinyipa" in
-              'tinyipa')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'tinyipa256')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'coreos')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
-                  ;;
-          # if using a ramdisk without a known good value, use the devstack
-          # default by not exporting any value for IRONIC_VM_SPECS_RAM
-          esac
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_TEMPEST_REGEX="ironic"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_PROJECT_FROM_GIT="ironic-lib,$DEVSTACK_PROJECT_FROM_GIT"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-vars-early
-            # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic'"
-          else
-            # on master, use the local change, so we can pick up any changes to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic'"
-          fi
-          export TEMPEST_CONCURRENCY=1
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          export PROJECTS="openstack/ironic $PROJECTS"
-          export PROJECTS="openstack/ironic-lib $PROJECTS"
-          export PROJECTS="openstack/ironic-python-agent $PROJECTS"
-          export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
-          export PROJECTS="openstack/virtualbmc $PROJECTS"
-          export PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_TEMPEST=1
-          export DEVSTACK_GATE_IRONIC=1
-          export DEVSTACK_GATE_NEUTRON=1
-          export DEVSTACK_GATE_VIRT_DRIVER=ironic
-          export DEVSTACK_GATE_CONFIGDRIVE=1
-          export DEVSTACK_GATE_IRONIC_DRIVER=pxe_ipmitool
-          export BRANCH_OVERRIDE=default
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-
-          if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then
-              export DEVSTACK_GATE_TLSPROXY=1
-          fi
-
-          if [ "pxe_ipmitool" == "pxe_snmp" ] ; then
-              # explicitly enable pxe_snmp driver
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
-          fi
-
-          if [ "pxe_ipmitool" == "redfish" ] ; then
-              # When deploying with redfish we need to enable the "redfish"
-              # hardware type
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_HARDWARE_TYPES=redfish"
-          fi
-
-          if [ "wholedisk" == "wholedisk" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-          else
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1"
-          fi
-
-          if [ -n "yes" ] ; then
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=1
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"USE_SUBNETPOOL=False"
-          else
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-          fi
-
-          if [ "bios" == "uefi" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BOOT_MODE=uefi"
-          fi
-
-          export DEVSTACK_PROJECT_FROM_GIT=""
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
-          # Ensure the ironic-vars-EARLY file exists
-          touch ironic-vars-early
-          # Pull in the EARLY variables injected by the optional builders
-          source ironic-vars-early
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
-
-          # Ensure the ironic-EXTRA-vars file exists
-          touch ironic-extra-vars
-          # Pull in the EXTRA variables injected by the optional builders
-          source ironic-extra-vars
-
-          cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
-          ./safe-devstack-vm-gate-wrap.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 60ba91b9..d7563d8e 100644
--- a/zuul.d/zuul-legacy-jobs.yaml
+++ b/zuul.d/zuul-legacy-jobs.yaml
@@ -8279,70 +8279,6 @@
       - openstack/tempest
       - openstack/virtualbmc
 
-- job:
-    name: legacy-tempest-dsvm-ironic-lib-partition-agent_ipmitool
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-lib-partition-agent_ipmitool/run
-    post-run: playbooks/legacy/tempest-dsvm-ironic-lib-partition-agent_ipmitool/post
-    timeout: 5400
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/ironic
-      - openstack/ironic-lib
-      - openstack/ironic-python-agent
-      - openstack/pyghmi
-      - openstack/python-ironicclient
-      - openstack/tempest
-      - openstack/virtualbmc
-
-- job:
-    name: legacy-tempest-dsvm-ironic-lib-partition-pxe_ipmitool
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-lib-partition-pxe_ipmitool/run
-    post-run: playbooks/legacy/tempest-dsvm-ironic-lib-partition-pxe_ipmitool/post
-    timeout: 5400
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/ironic
-      - openstack/ironic-lib
-      - openstack/ironic-python-agent
-      - openstack/pyghmi
-      - openstack/python-ironicclient
-      - openstack/tempest
-      - openstack/virtualbmc
-
-- job:
-    name: legacy-tempest-dsvm-ironic-lib-wholedisk-agent_ipmitool
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-lib-wholedisk-agent_ipmitool/run
-    post-run: playbooks/legacy/tempest-dsvm-ironic-lib-wholedisk-agent_ipmitool/post
-    timeout: 5400
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/ironic
-      - openstack/ironic-lib
-      - openstack/ironic-python-agent
-      - openstack/pyghmi
-      - openstack/python-ironicclient
-      - openstack/tempest
-      - openstack/virtualbmc
-
-- job:
-    name: legacy-tempest-dsvm-ironic-lib-wholedisk-pxe_ipmitool
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-lib-wholedisk-pxe_ipmitool/run
-    post-run: playbooks/legacy/tempest-dsvm-ironic-lib-wholedisk-pxe_ipmitool/post
-    timeout: 5400
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/ironic
-      - openstack/ironic-lib
-      - openstack/ironic-python-agent
-      - openstack/pyghmi
-      - openstack/python-ironicclient
-      - openstack/tempest
-      - openstack/virtualbmc
-
 - job:
     name: legacy-tempest-dsvm-ironic-pxe_ipmitool-virtualbmc-src
     parent: legacy-dsvm-base