tinkerbell / ipxedust

TFTP, HTTP library, and CLI server for serving iPXE binaries

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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: