RFC: Configurable list of PXE loaders for host provisioning

RFC: Configurable list of PXE loaders for host provisioning

Context and Problem Statement

Foreman provides several options for the PXE loader in the host creation form. For some users, many of the options are not available in their environment, or they don’t have a use for them.

Use cases

  • Allow admins to remove options that don’t work in their environment
  • Help to reduce the chance of selecting an incorrect bootloader
  • Simplify the workflow to reduce complexity.

Proposal

  • Create a new setting that will manage options available for provisioning.
  • By default, it will have all bootloaders enabled.

Alternative Designs

I don’t have any alternative design; I found the setting variant simple for usage, development, and maintenance.

Suggested by @Dirk , quote:

We could do it like with templates, assign a default to the operating system and then perhaps override it by conditions. This would require some more setup by the Foreman admin, but reducing the list to only the correct one will definitely prevent selecting an incorrect one. (And also not add another setting to the already overwhelming number.)

Decision Outcome

This proposal was discussed at Devconf 2025 with one of our users.

Impacts

  • Host creation
  • Provisioning workflow
4 Likes

+1 from my side, but also an idea for an alternative design.

We could do it like with templates, assign a default to the operating system and then perhaps override it by conditions. This would require some more setup by the Foreman admin, but reducing the list to only the correct one will definitely prevent selecting an incorrect one. (And also not add another setting to the already overwhelming number.)

2 Likes

I hadn’t thought of this approach, but it could be an alternative to the variant with the settings.

The only downside of this approach is that it adds even more complexity to the process, primarily at the beginning when the process needs to be configured.

+1 for a template approach controlled by assigning it to an operating system or architecture or some other anchor similar to how you assign boot loaders/pxe templates etc

Keeping in mind the critique I have of persistently having to re-assign templates every time a new version of the OS comes out,

Foreman already filters PXE loaders for each OS to the ones supported by the os.

The first proposal lets the Foreman Admin reduce the list of PXE loaders to the ones that site infrastructure have been configured for.
The second proposal would be better served by linking it to the subnets. Most of the PXE loaders require dhcpserver setup for the subnet. At our site that config is not the same for all subnets.

3 Likes