Project

General

Profile

Actions

Feature #12634

closed

New HW Model flag pxe_loader in UI/API

Added by Lukas Zapletal over 8 years ago. Updated about 6 years ago.

Status:
Closed
Priority:
High
Category:
Orchestration
Target version:

Description

Hardware model will be enhanced with two new flags: PXE template specifies
PXE template kind and variant pair to use. Until today, this was hardcoded to
PXELinux or PXEGrub by selected operating system. Optionally, template variant
flag from OS could be simply dropped because PXE template implies variant to
use and there are no variants which share the same configuration syntax (this
is an open item).

Orchestration TFTP code must be modified to use multiple "KIND LOADER default
local boot" and "KIND LOADER global default" templates. Local and global boot
templates must be added for Grub2 new kind. Naming convention will be:

  • PXELinux BIOS default local boot
  • PXELinux UEFI default local boot
  • PXEGrub BIOS default local boot
  • PXEGrub UEFI default local boot
  • etc. (the same for global default templates)

But only kind/variant is not enough, users need to select BIOS or UEFI booting
method. This is where Loader flag comes in - selection of three constants:
BIOS, UEFI and SecureBoot UEFI. The first two are obvious causing selection of
the correct DHCP filename when deploying TFTP configuration, the third one
select "shim.efi" chain loading capability for secure booting.

Hardware model fact importing will be enhanced - it will be possible to import
the loader flag from an extra custom fact (defined via global settings).


Related issues 11 (1 open10 closed)

Related to Foreman - Tracker #431: [TRACKER] UEFI PXE supportResolvedLukas Zapletal

Actions
Related to Foreman - Bug #6539: When provisioning a new host, missing templates error is not descriptiveClosedLukas Zapletal07/09/2014Actions
Related to Foreman - Bug #16093: DHCP deletion is scheduled twice on MAC changeNew08/12/2016Actions
Related to Foreman - Feature #12434: Allow override of filename options in DHCP host entryRejectedLukas Zapletal11/10/2015Actions
Related to Foreman - Bug #16318: PXE templates do not work in safemodeClosedLukas Zapletal08/26/2016Actions
Related to Foreman - Bug #16475: Provisioning fails when proxy is not updatedRejected09/07/2016Actions
Related to Foreman - Bug #16532: Selecting architecture in hostgroup doesn't update operating systemClosedLukas Zapletal09/13/2016Actions
Related to Foreman - Bug #16819: TFTP Rebuild failed for hostClosedTimo Goebel10/06/2016Actions
Related to Foreman - Feature #17297: GRUB 2 PXE loader entries for Debian OS familyClosedLukas Zapletal11/09/2016Actions
Related to Foreman - Bug #17503: Host model load causes unnecessary loads on instantiationClosedTomer Brisker11/28/2016Actions
Related to Foreman - Bug #18381: PXE loader attribute does not work with host group inheritanceClosedSwapnil Abnave02/02/2017Actions
Actions #1

Updated by Lukas Zapletal over 8 years ago

Actions #2

Updated by Lukas Zapletal about 8 years ago

  • Subject changed from Changes in orchestration code to support both PXELinux and Grub2 to Changes in orchestration code to support multiple kinds

We need to actually support up to three kinds: PXELinux, Grub1, Grub2 for one OS.

Actions #3

Updated by Mathieu Parent about 8 years ago

Lukas Zapletal wrote:

We need to actually support up to three kinds: PXELinux, Grub1, Grub2 for one OS.

PXELinux and Grub2 exists as BIOS (Legacy) and UEFI. Is this 5 kinds or 3 kinds x 2 flavors?

Actions #4

Updated by Lukas Zapletal about 8 years ago

PXELinux and Grub2 exists as BIOS (Legacy) and UEFI. Is this 5 kinds or 3 kinds x 2 flavors?

The latter, we aim to support both BIOS and EFI systems with either PXELinux and Grub (becaue of RHEL6 support) or PXELinux and Grub2. The goal is to deploy PXE files simultaneously so both systems can be booted up.

Actions #5

Updated by Lukas Zapletal about 8 years ago

I mean, Foreman will be able to deploy all three at once, but only two of the three will be likely used for one deployment. Grub1 is legacy, the PXE configuration will be present, but DHCP will hand over usually PXELinux and/or Grub2 on modern systems (RHEL7+).

Actions #6

Updated by Lukas Zapletal about 8 years ago

  • Subject changed from Changes in orchestration code to support multiple kinds to New host/hostgroup flags pxe_template and loader

Host and hostgroups must be enhanced with two new flags: PXE template specifies PXE template kind and variant pair to use. Until today, this was hardcoded to PXELinux or PXEGrub by selected operating system. Optionally, template variant flag from OS could be simply dropped because PXE template implies variant to use and there are no variants which share the same configuration syntax (this is an open item).

But only kind/variant is not enough, users need to select BIOS or UEFI booting method. This is where Loader flag comes in - selection of three constants: BIOS, UEFI and SecureBoot UEFI. The first two are obvious causing selection of the correct DHCP filename when deploying TFTP configuration, the third one select "shim.efi" chain loading capability for secure booting.

Similarly to root password, a global setting could be provided for one or both flags for missing values (open item).

Actions #7

Updated by Lukas Zapletal about 8 years ago

  • Description updated (diff)
Actions #8

Updated by Lukas Zapletal about 8 years ago

  • Description updated (diff)
Actions #9

Updated by Mathieu Parent about 8 years ago

Lukas Zapletal wrote:
[...]

But only kind/variant is not enough, users need to select BIOS or UEFI booting method. This is where Loader flag comes in - selection of three constants: BIOS, UEFI and SecureBoot UEFI. The first two are obvious causing selection of the correct DHCP filename when deploying TFTP configuration, the third one select "shim.efi" chain loading capability for secure booting.

I'm not sure "booting method" is needed. At least, BIOS or UEFI can be differentiated from DHCP options. See "if option arch" at <https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-netboot-pxe-config-efi.html&gt;.

Actions #10

Updated by Lukas Zapletal about 8 years ago

  • Related to Bug #6539: When provisioning a new host, missing templates error is not descriptive added
Actions #11

Updated by Lukas Zapletal about 8 years ago

  • Subject changed from New host/hostgroup flags pxe_template and loader to New HW Model flags pxe_template and loader
  • Description updated (diff)
Actions #12

Updated by The Foreman Bot almost 8 years ago

  • Status changed from New to Ready For Testing
  • Pull request https://github.com/theforeman/foreman/pull/3679 added
Actions #13

Updated by The Foreman Bot almost 8 years ago

  • Pull request https://github.com/theforeman/community-templates/pull/291 added
Actions #14

Updated by The Foreman Bot almost 8 years ago

  • Pull request https://github.com/theforeman/foreman_discovery/pull/292 added
Actions #15

Updated by Daniel Lobato Garcia almost 8 years ago

  • Target version set to 1.7.1
Actions #16

Updated by Daniel Lobato Garcia almost 8 years ago

  • Target version changed from 1.7.1 to 117
Actions #17

Updated by Lukas Zapletal almost 8 years ago

  • Status changed from Ready For Testing to Duplicate
  • Pull request deleted (https://github.com/theforeman/foreman_discovery/pull/292, https://github.com/theforeman/community-templates/pull/291, https://github.com/theforeman/foreman/pull/3679)

This ticket is actually part of #431.

Actions #18

Updated by Lukas Zapletal almost 8 years ago

  • Status changed from Duplicate to Assigned
  • Priority changed from Normal to High
  • Target version changed from 117 to 1.6.2
  • Pull request https://github.com/theforeman/foreman/pull/3679 added

Sorry for the noise, I misassigned the PR to the TRACKER issue.

Actions #19

Updated by The Foreman Bot almost 8 years ago

  • Status changed from Assigned to Ready For Testing
Actions #20

Updated by Lukas Zapletal almost 8 years ago

  • Subject changed from New HW Model flags pxe_template and loader to New HW Model flag pxe_loader in UI/API
Actions #21

Updated by Lukas Zapletal almost 8 years ago

  • Related to Bug #16093: DHCP deletion is scheduled twice on MAC change added
Actions #22

Updated by The Foreman Bot almost 8 years ago

  • Pull request https://github.com/theforeman/foreman_discovery/pull/292 added
Actions #23

Updated by The Foreman Bot almost 8 years ago

  • Pull request https://github.com/theforeman/community-templates/pull/291 added
Actions #24

Updated by Lukas Zapletal almost 8 years ago

  • Related to Feature #12434: Allow override of filename options in DHCP host entry added
Actions #25

Updated by Jeff Sparrow almost 8 years ago

Lukas Zapletal wrote:

We need to actually support up to three kinds: PXELinux, Grub1, Grub2 for one OS.

Would be nice if there was a custom option added to this so people who want to bypass pxelinux, can. We do not use pxelinux, we load undionly (or whatever we need based on the host, undionly.pxe/kpxe/kkpxe, ipxe.lkrn, etc) and then chain right into iPXE. If I understand correctly, even with this change we will still end up manually editing foreman source code to suit our needs.

What about a custom option that accepts a string so people can load their own pxe images?

Actions #26

Updated by Lukas Zapletal almost 8 years ago

  • Status changed from Ready For Testing to Closed
  • % Done changed from 0 to 100
Actions #27

Updated by Dominic Cleal almost 8 years ago

  • Translation missing: en.field_release set to 160
Actions #28

Updated by Lukas Zapletal almost 8 years ago

We currently implemented that as a fixed list with "None" option.

What about a custom option that accepts a string so people can load their own pxe images?

I'd rather see a patch that will allow loading one or more custom entries from foreman.yaml file (name and filename pairs). Free form is little bit dangerous (e.g. security considerations etc). Feel free to provide a patch, should be easy to do.

Actions #29

Updated by The Foreman Bot almost 8 years ago

  • Pull request https://github.com/theforeman/foreman/pull/3778 added
Actions #30

Updated by Dominic Cleal almost 8 years ago

  • Related to Bug #16318: PXE templates do not work in safemode added
Actions #31

Updated by Dominic Cleal almost 8 years ago

  • Related to Bug #16475: Provisioning fails when proxy is not updated added
Actions #32

Updated by Ivan Necas almost 8 years ago

  • Related to Bug #16532: Selecting architecture in hostgroup doesn't update operating system added
Actions #33

Updated by Dominic Cleal almost 8 years ago

  • Related to Bug #16819: TFTP Rebuild failed for host added
Actions #34

Updated by Dominic Cleal over 7 years ago

  • Related to Feature #17297: GRUB 2 PXE loader entries for Debian OS family added
Actions #35

Updated by Tomer Brisker over 7 years ago

  • Related to Bug #17503: Host model load causes unnecessary loads on instantiation added
Actions #36

Updated by Marek Hulán over 7 years ago

  • Related to Bug #18381: PXE loader attribute does not work with host group inheritance added
Actions

Also available in: Atom PDF