ironic::pxe::common::uefi_ipxe_bootfile_name is set to "snponly.efi" when IronicIPXEUefiSnpOnly is true.
In this case, ${tftp_root_real}/snponly.efi is created and ${tftp_root_real}/ipxe.efi is not created by the following source of puppet-ironic.
This causes overcloud deployment failure when UEFI is enabled and PXE is used for boot_interface.
Steps to reproduce
==================
1. install undercloud with "ipxe_enabled = true"
2. enroll overcloude node with "pm_type: ilo".
In this case, boot_interface will be "ilo-pxe"
3. enable UEFI according to document[2]
4. deploy overcloud
1. install undercloud with "ipxe_enabled = true"
2. enroll overcloude node with "pm_type: ipmi".
3. enable UEFI boot of baremetal nodes.
4. set "pxe" as boot-interface by the following command
$ openstack baremetal node set <node> --boot-interface pxe
5. deploy overcloud
Expected result
===============
Deployment succeeds.
Actual result
=============
Deployment fails due to absence of ipxe.efi
Environment
===========
this issue was found in a stable-train-based deployment (RHOSP16.2.3)
Description
===========
After the following change was merged,
https:/ /review. opendev. org/c/openstack /tripleo- heat-templates/ +/827950
ironic: :pxe::common: :uefi_ipxe_ bootfile_ name is set to "snponly.efi" when IronicIPXEUefiS npOnly is true. root_real} /snponly. efi is created and ${tftp_ root_real} /ipxe.efi is not created by the following source of puppet-ironic.
In this case, ${tftp_
https:/ /github. com/openstack/ puppet- ironic/ blob/stable/ train/manifests /pxe.pp# L193-L202
However, uefi_pxe_ bootfile_ name still refers to ipxe.efi regardless of IronicIPXEUefiS npOnly.
https:/ /github. com/openstack/ tripleo- heat-templates/ blob/stable/ train/deploymen t/ironic/ ironic- conductor- container- puppet. yaml#L368
This causes overcloud deployment failure when UEFI is enabled and PXE is used for boot_interface.
Steps to reproduce
==================
1. install undercloud with "ipxe_enabled = true"
2. enroll overcloude node with "pm_type: ilo".
In this case, boot_interface will be "ilo-pxe"
3. enable UEFI according to document[2]
4. deploy overcloud
1. install undercloud with "ipxe_enabled = true"
2. enroll overcloude node with "pm_type: ipmi".
3. enable UEFI boot of baremetal nodes.
4. set "pxe" as boot-interface by the following command
$ openstack baremetal node set <node> --boot-interface pxe
5. deploy overcloud
Expected result
===============
Deployment succeeds.
Actual result
=============
Deployment fails due to absence of ipxe.efi
Environment
===========
this issue was found in a stable-train-based deployment (RHOSP16.2.3)