pxe: reload dnsmasq on host create/delete
CI / Lint + build + test (push) Successful in 1m54s
Release / release (push) Successful in 2m36s

pxe.Supervisor.Reload() was defined but never wired up. After a host
was registered in the UI or via the quick-register JSON endpoint, the
dnsmasq conf still held only the hosts that existed at orchestrator
startup. The new MAC wasn't tagged `known`, so when the host PXE'd,
dnsmasq logged "PXE(eth0) <mac> proxy-ignored" and the boot timed out
back to the BIOS.

Add an optional PXEReloader interface to api.UI, wire it from main
when pxe is enabled, and call u.reloadPXE() after successful Create
and Delete. Logs-and-continues on failure — host registration itself
has already committed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-04-18 12:31:00 -04:00
parent 157b70f536
commit bce6e08524
2 changed files with 32 additions and 0 deletions
+1
View File
@@ -157,6 +157,7 @@ func main() {
TFTPRoot: tftpRoot,
LiveDir: cfg.PXE.LiveDir,
})
ui.PXE = supervisor
}
router := httpserver.NewRouter(httpserver.Deps{