After the libvirt VM is installed, it boots again into the PXE, which thankfully then defaults to boot from local disk.
Expected outcome:
After successful deployment/provisioning, foreman should change the boot order in libvirt for the VM to remove the NIC item.
(In my setup it has also created the VM. If one would do the "create VM, copy paste mac address into interface config, might be a different story).
(or do I expect too much. Is changing the tftp files all it does? That part is working.).
That’s not how we designed Foreman PXE workflows. Again, this is somewhere in our manuals, but:
You keep boot order 1) PXE, 2) local HDD. When Foreman finishes installing, it flips PXE configuration to “boot local” template which actually returns control to BIOS so it skips the first entry and follows up with the 2nd which is HDD. For UEFI, it’s a bit different - it uses chainloading and directly loads grub from drive and continues the same but the idea is the same.
Always boot from the network. Then you can easily reprovision servers without touching boot order.