diff --git a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa/post.yaml
deleted file mode 100644
index e07f5510ae..0000000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-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/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa/run.yaml
deleted file mode 100644
index de348aefa5..0000000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa/run.yaml
+++ /dev/null
@@ -1,157 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa
-    from old job gate-tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa-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-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 "" ] ; 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-ipa-partition-bios-pxe_ipmitool-tinyipa/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa/post.yaml
deleted file mode 100644
index e07f5510ae..0000000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-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/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa/run.yaml
deleted file mode 100644
index b7b11416c6..0000000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa/run.yaml
+++ /dev/null
@@ -1,157 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa
-    from old job gate-tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa-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-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 "" ] ; 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-ipa-wholedisk-bios-pxe_ipmitool-tinyipa/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa/post.yaml
deleted file mode 100644
index e07f5510ae..0000000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-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/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa/run.yaml
deleted file mode 100644
index 6784b7f57d..0000000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa/run.yaml
+++ /dev/null
@@ -1,157 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa
-    from old job gate-tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa-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-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 "" ] ; 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-multitenant-network/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-multitenant-network/post.yaml
deleted file mode 100644
index e07f5510ae..0000000000
--- a/playbooks/legacy/tempest-dsvm-ironic-multitenant-network/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-multitenant-network/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-multitenant-network/run.yaml
deleted file mode 100644
index 18581e21b4..0000000000
--- a/playbooks/legacy/tempest-dsvm-ironic-multitenant-network/run.yaml
+++ /dev/null
@@ -1,183 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-multitenant-network from old
-    job gate-tempest-dsvm-ironic-multitenant-network-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="baremetal_multitenancy"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_OS_TEST_TIMEOUT=2400
-          # networking-generic-switch requires sudo to execute ovs-vsctl commands
-          export DEVSTACK_GATE_REMOVE_STACK_SUDO=0
-          export PROJECTS="openstack/networking-generic-switch $PROJECTS"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin networking-generic-switch git://git.openstack.org/openstack/networking-generic-switch"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_USE_LINK_LOCAL=True"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"OVS_PHYSICAL_BRIDGE=brbm"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"PHYSICAL_NETWORK=mynetwork"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_NETWORK_NAME=ironic-provision"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_SUBNET_PREFIX=10.0.5.0/24"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_SUBNET_GATEWAY=10.0.5.1"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_PLUGIN=ml2"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_USE_PROVIDERNET_FOR_PUBLIC=False"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"ENABLE_TENANT_VLANS=True"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_ML2_TENANT_NETWORK_TYPE=vlan"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"TENANT_VLAN_RANGE=100:150"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_NETWORK_INTERFACES=flat,neutron"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_NETWORK_INTERFACE=neutron"
-
-          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 "" ] ; 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=3"
-
-          # 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/legacy-ironic-jobs.yaml b/zuul.d/legacy-ironic-jobs.yaml
index 4ea39788f2..8b82b56d52 100644
--- a/zuul.d/legacy-ironic-jobs.yaml
+++ b/zuul.d/legacy-ironic-jobs.yaml
@@ -63,13 +63,6 @@
     post-run: playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa/post.yaml
     timeout: 5400
 
-- job:
-    name: ironic-tempest-dsvm-ipa-wholedisk-bios-pxe_ipmitool-tinyipa
-    parent: legacy-ironic-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa/run.yaml
-    post-run: playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa/post.yaml
-    timeout: 5400
-
 - job:
     name: ironic-tempest-dsvm-ipa-wholedisk-bios-pxe_snmp-tinyipa
     parent: legacy-ironic-dsvm-base
@@ -77,20 +70,6 @@
     post-run: playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_snmp-tinyipa/post.yaml
     timeout: 5400
 
-- job:
-    name: ironic-tempest-dsvm-ipa-partition-bios-agent_ipmitool-tinyipa
-    parent: legacy-ironic-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa/run.yaml
-    post-run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa/post.yaml
-    timeout: 5400
-
-- job:
-    name: ironic-tempest-dsvm-ipa-partition-bios-pxe_ipmitool-tinyipa
-    parent: legacy-ironic-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa/run.yaml
-    post-run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa/post.yaml
-    timeout: 5400
-
 - job:
     name: ironic-tempest-dsvm-ipa-partition-uefi-pxe_ipmitool-tinyipa
     parent: legacy-ironic-dsvm-base
@@ -192,23 +171,6 @@
       - openstack/virtualbmc
     nodeset: legacy-ubuntu-xenial-2-node
 
-- job:
-    name: ironic-tempest-dsvm-multitenant-network
-    parent: legacy-ironic-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-multitenant-network/run.yaml
-    post-run: playbooks/legacy/tempest-dsvm-ironic-multitenant-network/post.yaml
-    timeout: 10800
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/ironic
-      - openstack/ironic-lib
-      - openstack/ironic-python-agent
-      - openstack/pyghmi
-      - openstack/python-ironicclient
-      - openstack/tempest
-      - openstack/virtualbmc
-      - openstack/networking-generic-switch
-
 - job:
     name: ironic-dsvm-functional
     parent: legacy-ironic-dsvm-base
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index c4bf5dfddd..56e7e1ddf4 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -5,71 +5,35 @@
         - ironic-tempest-dsvm-pxe_ipmitool-postgres:
             voting: false
         - ironic-tempest-dsvm-ipa-wholedisk-bios-agent_ipmitool-tinyipa
-        - ironic-tempest-dsvm-ipa-wholedisk-bios-pxe_ipmitool-tinyipa:
-            branches: ^stable/(newton|ocata).*$
         - ironic-tempest-dsvm-ipa-wholedisk-bios-pxe_snmp-tinyipa:
             voting: false
-            branches: ^(?!stable/newton).*$
-        - ironic-tempest-dsvm-ipa-partition-bios-agent_ipmitool-tinyipa:
-            branches: ^stable/(newton|ocata).*$
-        - ironic-tempest-dsvm-ipa-partition-bios-pxe_ipmitool-tinyipa:
-            branches: ^stable/(newton|ocata).*$
         - ironic-tempest-dsvm-ipa-partition-uefi-pxe_ipmitool-tinyipa
         - ironic-tempest-dsvm-ipa-partition-pxe_ipmitool-tinyipa-python3:
             voting: false
-            branches: ^(?!stable/(newton|ocata)).*$
-        - ironic-tempest-dsvm-ipa-wholedisk-agent_ipmitool-tinyipa-multinode:
-            branches: ^stable/(newton|ocata).*$
-            voting: false
-        # NOTE(sambetts) multinode job is voting starting from Pike
-        - ironic-tempest-dsvm-ipa-wholedisk-agent_ipmitool-tinyipa-multinode:
-            branches: ^(?!stable/(newton|ocata)).*$
-        - ironic-tempest-dsvm-ipa-partition-redfish-tinyipa:
-            branches: ^(?!stable/(newton|ocata)).*$
-        - ironic-tempest-dsvm-bfv:
-            branches: ^(?!stable/(newton|ocata)).*$
-        - ironic-dsvm-standalone:
-            branches: ^(?!stable/(newton|ocata)).*$
+        - ironic-tempest-dsvm-ipa-wholedisk-agent_ipmitool-tinyipa-multinode
+        - ironic-tempest-dsvm-ipa-partition-redfish-tinyipa
+        - ironic-tempest-dsvm-bfv
+        - ironic-dsvm-standalone
         - ironic-tempest-dsvm-ironic-inspector:
             voting: false
-        - ironic-grenade-dsvm:
-            branches: ^(?!(driverfixes|stable/(mitaka|newton))).*$
-        - ironic-grenade-dsvm-multinode-multitenant:
-            branches: ^(?!stable/(newton|ocata)).*$
-        - ironic-tempest-dsvm-multitenant-network:
-            branches: ^stable/(newton|ocata).*$
+        - ironic-grenade-dsvm
+        - ironic-grenade-dsvm-multinode-multitenant
     gate:
       queue: ironic
       jobs:
-        - ironic-tempest-dsvm-ipa-partition-bios-pxe_ipmitool-tinyipa:
-            branches: ^stable/(newton|ocata).*$
         - ironic-tempest-dsvm-ipa-partition-uefi-pxe_ipmitool-tinyipa
-        - ironic-tempest-dsvm-ipa-partition-bios-agent_ipmitool-tinyipa:
-            branches: ^stable/(newton|ocata).*$
-        - ironic-tempest-dsvm-ipa-wholedisk-bios-pxe_ipmitool-tinyipa:
-            branches: ^stable/(newton|ocata).*$
         - ironic-tempest-dsvm-ipa-wholedisk-bios-agent_ipmitool-tinyipa
-        - ironic-tempest-dsvm-ipa-partition-redfish-tinyipa:
-            branches: ^(?!stable/(newton|ocata)).*$
-        - ironic-tempest-dsvm-bfv:
-            branches: ^(?!stable/(newton|ocata)).*$
-        - ironic-dsvm-standalone:
-            branches: ^(?!stable/(newton|ocata)).*$
-        - ironic-grenade-dsvm:
-            branches: ^(?!(driverfixes|stable/(mitaka|newton))).*$
-        - ironic-grenade-dsvm-multinode-multitenant:
-            branches: ^(?!stable/(newton|ocata)).*$
-        - ironic-tempest-dsvm-multitenant-network:
-            branches: ^stable/(newton|ocata).*$
-        # NOTE(sambetts) multinode job is voting starting from Pike
-        - ironic-tempest-dsvm-ipa-wholedisk-agent_ipmitool-tinyipa-multinode:
-            branches: ^(?!stable/(newton|ocata)).*$
+        - ironic-tempest-dsvm-ipa-partition-redfish-tinyipa
+        - ironic-tempest-dsvm-bfv
+        - ironic-dsvm-standalone
+        - ironic-grenade-dsvm
+        - ironic-grenade-dsvm-multinode-multitenant
+        - ironic-tempest-dsvm-ipa-wholedisk-agent_ipmitool-tinyipa-multinode
     experimental:
       jobs:
         - ironic-dsvm-functional
         - ironic-tempest-dsvm-parallel:
             voting: false
-            branches: ^(?!stable)
         - ironic-tempest-dsvm-pxe_ipa-full:
             voting: false
         - ironic-tempest-dsvm-ipa-resourceclasses-partition-pxe_ipmitool-tinyipa: