Fix iPXE chainload loop by excluding iPXE from pxe-service
build-and-push / test (push) Successful in 37s
build-and-push / build-and-push (push) Successful in 1m12s

iPXE was stuck in a loop: boot iPXE -> DHCP -> get ipxe.0 again ->
boot iPXE -> repeat. Add tag:!ipxe to pxe-service directives so
iPXE clients get the HTTP script URL via dhcp-boot instead of being
served the bootloader again.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-14 10:23:49 -04:00
parent 78a20770dd
commit 5ff1cff7d4
+8 -6
View File
@@ -204,13 +204,15 @@ dhcp-ignore=tag:!known
enable-tftp enable-tftp
tftp-root={{.TFTPRoot}} tftp-root={{.TFTPRoot}}
# PXE boot menu (timeout 0 = boot immediately) # Detect iPXE (user-class "iPXE") to break chainload loop
pxe-prompt="Provisioning",0
pxe-service=x86PC,"Provisioning",undionly
pxe-service=X86-64_EFI,"Provisioning",ipxe
# iPXE chainload: once iPXE boots, serve HTTP script
dhcp-userclass=set:ipxe,iPXE dhcp-userclass=set:ipxe,iPXE
# Initial PXE firmware: serve iPXE bootloader (skip if already iPXE)
pxe-prompt="Provisioning",0
pxe-service=tag:!ipxe,x86PC,"Provisioning",undionly
pxe-service=tag:!ipxe,X86-64_EFI,"Provisioning",ipxe
# iPXE: serve HTTP boot script
dhcp-boot=tag:ipxe,{{.PublicURL}}/ipxe/${mac:hexhyp} dhcp-boot=tag:ipxe,{{.PublicURL}}/ipxe/${mac:hexhyp}
log-dhcp log-dhcp