Minimizing boot time by reducing interface boot attempts in the ipxedust script
mpanduru opened this issue · comments
When provisioning hardware with Tinkerbell, if multiple interfaces are present, the boot process triggered by the ipxe script attempts to boot from each interface in their MAC order until it reaches the correct one, leading to unnecessary delays.
Expected Behaviour
When the hardware gets provisioned, when multiple interfaces are detected, the boot process should prioritize booting from the interface that has received an IP address from DHCP. This approach aims to enhance efficiency by avoiding time-consuming attempts on irrelevant interfaces.
Current Behaviour
The current implementation involves iterating through all PC interfaces before selecting the interface with the assigned IP address, causing delays and inefficiencies.
Possible Solution
Modify the ipxe script to identify and autoboot from the interface that has successfully obtained an IP address through DHCP.
Steps to Reproduce (for bugs)
Context
Your Environment
-
Operating System and version (e.g. Linux, Windows, MacOS):
Ubuntu 22.04 -
How are you running Tinkerbell? Using Vagrant & VirtualBox, Vagrant & Libvirt, on Packet using Terraform, or give details:
I have 2 Hyper-V virtual machines, one that is the provisioner and another one that is provisioned using tinkerbell. The provisioned vm has multiple interfaces and tinkerbell is configured on its 3rd interface (in their mac order). -
Link to your project or a code example to reproduce issue: