Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes #37615 - Improve help text for the PXE loader in the Host form #10232

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

stejskalleos
Copy link
Contributor

No description provided.

Copy link
Member

@ekohl ekohl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Lennonka would you mind having a look? I think the whole help text we had doesn't cover the exact use case, but the newly suggested one is also not obvious to me.

I think the use OS parameter 'pxe-loader' to override part is confusing. Why do you have a select to choose something, but tell users how they can override it at the OS level?

AFAIK this option determines how we configure the network boot environment (DHCP, TFTP) and in case of VMware also the VM configuration.

@@ -1,3 +1,7 @@
<%
help = _("DHCP filename option to use. Set to None for non-PXE method (e.g. iPXE). Auto-suggested, use OS parameter 'pxe-loader' to override.")
help2 = _("This option specifies the file to be loaded via TFTP during PXE boot. It does not affect the initial boot method (BIOS/UEFI/GRUB/PXE) but configures the file and DHCP options for the network boot.")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think the last part is true, because AFAIK at least for VMware we configure the VM (by default) based on this option. In #9965 I copied this pattern to libvirt, but that's not merged right now.

@Lennonka
Copy link

Lennonka commented Jul 1, 2024

I observe a couple of problems with this field:

  1. Auto-suggested - doesn't mean that it's suitable. Is it suggested based on the OS? But the OS cannot tell Foreman whether the future host is legacy BIOS or UEFI or anything else about the config of the host. So what's the point of suggesting it?
  2. use OS parameter 'pxe-loader' to override - I guess that the point isn't to override, but to define it on the OS level, so wording is the issue. But I don't think it's useful to propose it to the user with incomplete information: what are the allowed values of the pxe-loader parameter? And is it even a good idea to define it on the OS level? And if it is, should we provide an optional field in the OS form instead of the parameter?
  3. non-PXE booting - does the user have to set this for bootdisk or not? What about image-based provisioning? What about HTTP chainbooting? Also, I'm not sure under what conditions iPXE counts as non-PXE, that's confusing me.

IMO, this is the part where the user actually tells Foreman what network boot capabilities the host has and how Foreman should attempt to boot it. I think that should be the central information in this context help.

How about something like the following:

Configure DHCP filename to boot the host with the given firmware (BIOS/UEFI) over the network. Set to None for non-PXE booting (eg. iPXE, bootdisk).
This option specifies the bootloader file that is sent to the host via TFTP during PXE boot and DHCP options for the PXE boot.

For reference: https://docs.theforeman.org/nightly/Provisioning_Hosts/index-katello.html#DHCP_Options_provisioning

I may need to think about this a bit more too. The above suggestion isn't final.

@ekohl
Copy link
Member

ekohl commented Jul 2, 2024

This shows up in the Host form for, but also in the Host Group form. It looks like this:

image

My reading of the Foreman code is that this happens:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants