diff --git a/CHANGELOG.md b/CHANGELOG.md index 11e3e09f..d85febf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). on unused/unmanaged network interfaces. - Systems with no SMBIOS (Raspberry Pi) will create a UUID from `/sys/firmware/devicetree/base/serial-number` +- Grub chainload and main configs correctly extract smbios asset key + for node authentication - Replace slice in templates with sprig substr. #1093 - Fix an invalid format issue for the GitHub nightly build action. #1258 - Return non-zero exit code on overlay build failure #1393 diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index cfa9774f..b804d818 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -37,4 +37,4 @@ * Tobias Ribizel * Tobias Poschwatta * Josh Burks -* Elmar Pruessee +* Elmar Pruesse @epruesse diff --git a/etc/grub/chainload.ww b/etc/grub/chainload.ww index dc3c51d8..7622a1b7 100644 --- a/etc/grub/chainload.ww +++ b/etc/grub/chainload.ww @@ -5,14 +5,15 @@ echo "================================================================================" echo "Warewulf v4 now iXPE booting with grub" echo "================================================================================" +smbios --type 3 --get-string 8 --set assetkey set timeout=2 # Must chainload in order to get kernel args for specific node menuentry "Load specific configfile" { - conf="(http,{{.Ipaddr}}:{{.Warewulf.Port}})/efiboot/grub.cfg" + conf="(http,{{.Ipaddr}}:{{.Warewulf.Port}})/efiboot/grub.cfg?assetkey=${assetkey}" configfile $conf } menuentry "Chainload shim of container" { - shim="(http,{{.Ipaddr}}:{{.Warewulf.Port}})/efiboot/shim.efi" + shim="(http,{{.Ipaddr}}:{{.Warewulf.Port}})/efiboot/shim.efi?assetkey=${assetkey}" chainloader ${shim} } menuentry "UEFI Firmware Settings" --id "uefi-firmware" { diff --git a/etc/grub/grub.cfg.ww b/etc/grub/grub.cfg.ww index aff280a9..2a38c87e 100644 --- a/etc/grub/grub.cfg.ww +++ b/etc/grub/grub.cfg.ww @@ -6,7 +6,7 @@ echo echo "Warewulf Controller: {{.Ipaddr}}" echo sleep 1 -smbios --type1 --get-string 8 --set assetkey +smbios --type 3 --get-string 8 --set assetkey uri="(http,{{.Ipaddr}}:{{.Port}})/provision/${net_default_mac}?assetkey=${assetkey}" kernel="${uri}&stage=kernel" @@ -70,7 +70,7 @@ menuentry "Network boot node with dracut: {{.Id}}" --id dracut { } menuentry "Chainload specific configfile" { - conf="(http,{{.Ipaddr}}:{{.Port}})/efiboot/grub.cfg" + conf="(http,{{.Ipaddr}}:{{.Port}})/efiboot/grub.cfg?assetkey=${assetkey}" configfile $conf }