os.ReadFile on the ISO was OOM-killing the container. Switch to 8MB
chunked reads with overlap to handle matches spanning chunk boundaries.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The modified config was 75 bytes larger than the original (5798 vs 5723),
causing the in-place write to be rejected. Strip comment lines and trailing
whitespace to reclaim space for the added auto-installer kernel parameters.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Two fixes: (1) Search entire ISO for grub.cfg content instead of only at
2048-byte sector boundaries — catches the copy inside the EFI boot
partition image that UEFI firmware actually reads. (2) Match kernel lines
by GRUB 'linux' command prefix instead of requiring '/boot/linux' path.
Added detailed logging of original and modified grub.cfg content.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Modifies uploaded ISO's GRUB config in-place to set timeout=0 and inject
proxmox-start-auto-installer + answer-url kernel params, enabling fully
hands-off installation. Adds /api/boot/auto-answer endpoint that identifies
hosts by ARP-resolving the requester's IP to MAC address.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>