- Updated `wwctl upgrade` to handle updates - Maintained `.Container` and `.ContainerName` in tstruct - Added `ContainerName()` methods to node and profile objects - Added `--container`, `-C` aliases to wwctl commands (`<node|profile> <add|set>`) - Added `wwctl container` alias - Added support for `container_exit.sh` if `image_exit.sh` is not found Signed-off-by: Jonathon Anderson <janderson@ciq.com>
95 lines
3.0 KiB
Plaintext
95 lines
3.0 KiB
Plaintext
#!ipxe
|
|
{{ if .ImageName }}
|
|
echo
|
|
echo ================================================================================
|
|
echo Warewulf v4 now booting: {{.Fqdn}} ({{.Hwaddr}})
|
|
echo
|
|
echo Image: {{.ImageName}}
|
|
{{if .KernelVersion }}
|
|
echo Kernel: {{.KernelVersion}}
|
|
{{else}}
|
|
echo Kernel: {{.ImageName}} (image default)
|
|
{{end}}
|
|
echo KernelArgs: {{.KernelArgs}}
|
|
echo
|
|
|
|
set uri_base http://{{.Ipaddr}}:{{.Port}}/provision/{{.Hwaddr}}?assetkey=${asset}&uuid=${uuid}
|
|
echo Warewulf Controller: {{.Ipaddr}}
|
|
|
|
echo Downloading Kernel Image:
|
|
kernel --name kernel ${uri_base}&stage=kernel || goto reboot
|
|
|
|
# imgextract causes RAM space problems on non-EFI systems (because of the 3GB barrier
|
|
# in 32-Bit mode).
|
|
# -> Use the old initrd method with a compressed image to save as much RAM as possible
|
|
# in this early boot stage.
|
|
# See <https://github.com/warewulf/warewulf/issues/222> for more details.
|
|
iseq ${platform} efi && goto efi || goto noefi
|
|
|
|
:efi
|
|
|
|
# try extracting compressed images first
|
|
# NOTE: system overlay tends to be the smallest, so failure here is the cheapest
|
|
echo Downloading Image:
|
|
imgextract --name image ${uri_base}&stage=image&compress=gz || goto nocompress
|
|
|
|
echo Downloading System Overlay:
|
|
imgextract --name system ${uri_base}&stage=system&compress=gz || goto reboot
|
|
|
|
echo Downloading Runtime Overlay:
|
|
imgextract --name runtime ${uri_base}&stage=runtime&compress=gz && set runtime_initrd initrd=runtime || echo Failed downloading runtime overlay.
|
|
|
|
goto imoktogo
|
|
|
|
:nocompress
|
|
|
|
echo
|
|
echo Image extract not supported in this iPXE, using standard initrd mode
|
|
|
|
echo Downloading Image:
|
|
initrd --name image ${uri_base}&stage=image || goto reboot
|
|
|
|
echo Downloading System Overlay:
|
|
initrd --name system ${uri_base}&stage=system || goto reboot
|
|
|
|
echo Downloading Runtime Overlay:
|
|
initrd --name runtime ${uri_base}&stage=runtime && set runtime_initrd initrd=runtime || echo Failed downloading runtime overlay.
|
|
|
|
goto imoktogo
|
|
|
|
:noefi
|
|
|
|
echo
|
|
echo Use legacy initrd mode with compressed images
|
|
|
|
echo Downloading Image:
|
|
initrd --name image ${uri_base}&stage=image&compress=gz || goto reboot
|
|
|
|
echo Downloading System Overlay:
|
|
initrd --name system ${uri_base}&stage=system&compress=gz || goto reboot
|
|
|
|
echo Downloading Runtime Overlay:
|
|
initrd --name runtime ${uri_base}&stage=runtime&compress=gz && set runtime_initrd initrd=runtime || echo Failed downloading runtime overlay.
|
|
|
|
|
|
:imoktogo
|
|
|
|
echo boot kernel initrd=image initrd=system ${runtime_initrd} wwid={{.Hwaddr}} {{.KernelArgs}}
|
|
boot kernel initrd=image initrd=system ${runtime_initrd} wwid={{.Hwaddr}} {{.KernelArgs}} || goto reboot
|
|
|
|
:reboot
|
|
echo
|
|
echo There was an error, rebooting in 15s...
|
|
echo
|
|
sleep 15
|
|
reboot
|
|
{{ else }}
|
|
echo ================================================================================
|
|
echo Warewulf v4:
|
|
echo No image defined for this node ({{.Fqdn}}).
|
|
echo Rebooting in 30s.
|
|
echo ================================================================================
|
|
sleep 30
|
|
reboot
|
|
{{ end }}
|