#!ipxe {{ if .ContainerName }} echo echo ================================================================================ echo Warewulf v4 now booting: {{.Fqdn}} ({{.Hwaddr}}) echo echo Container: {{.ContainerName}} {{if .KernelOverride }} echo Kernel: {{.KernelOverride}} {{else}} echo Kernel: {{.ContainerName}} (container 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 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 Container Image: imgextract --name container ${uri_base}&stage=container&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 || goto reboot {{if ne .KernelOverride "" -}} echo Downloading Kernel Modules: imgextract --name kmods ${uri_base}&stage=kmods&compress=gz || goto reboot {{- end}} goto imoktogo :nocompress echo echo Image extract not supported in this iPXE, using standard initrd mode echo Downloading Container Image: initrd --name container ${uri_base}&stage=container || 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 || goto reboot {{if ne .KernelOverride "" -}} echo Downloading Kernel Modules: initrd --name kmods ${uri_base}&stage=kmods || goto reboot {{- end}} goto imoktogo :noefi echo echo Use legacy initrd mode with compressed images echo Downloading Container Image: initrd --name container ${uri_base}&stage=container&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 || goto reboot {{if ne .KernelOverride "" -}} echo Downloading Kernel Modules: initrd --name kmods ${uri_base}&stage=kmods&compress=gz || goto reboot {{- end}} :imoktogo {{if ne .KernelOverride "" -}} echo boot kernel initrd=container initrd=kmods initrd=system initrd=runtime wwid={{.Hwaddr}} {{.KernelArgs}} boot kernel initrd=container initrd=kmods initrd=system initrd=runtime wwid={{.Hwaddr}} {{.KernelArgs}} || goto reboot {{- else -}} echo boot kernel initrd=container initrd=system initrd=runtime wwid={{.Hwaddr}} {{.KernelArgs}} boot kernel initrd=container initrd=system initrd=runtime wwid={{.Hwaddr}} {{.KernelArgs}} || goto reboot {{- end}} :reboot echo echo There was an error, rebooting in 15s... echo sleep 15 reboot {{ else }} echo ================================================================================ echo Warewulf v4: echo No node image/container defined for this node ({{.Fqdn}}). echo Rebooting in 30s. echo ================================================================================ sleep 30 reboot {{ end }}