Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Invalid grub2 ignition URL variables #1317
Is this a BUG REPORT or FEATURE REQUEST?
Choose one: BUG REPORT
During the graphical installation of Tectonic-Kubernetes using matchbox 0.6.1, my grub (not ipxe) systems were unable to pull a valid http-based "configfile" via the /grub endpoint in matchbox using the installer-generated profiles placed into matchbox.
This is what was placed in /var/lib/matchbox/profiles/coreos-install.json by the installer:
but since I'm using grub and not ipxe, this is what it needs to be in order to work on my grub-booting PCs:
and this is what it needs to be in order to work on my grub-booting Mac Minis/Mac Pro:
If I edit the profile by hand and network boot one type of system that I have, that system works. If I edit that profile again, I can then network boot the other types of systems that I have successfully. I have Dells and SuperMicros (grub i386) as well as Mac Minis and a Mac Pro (grub-efi x86_64).
Matchbox's Grub handler simply renders the lines provided in the args list of the tectonic-installer provided profile into the grub.cfg served when a match is made at
Unfortunately, it appears that modifications to the profile supplied by the installer as well as the matchbox /grub and /ipxe handlers would need to be made in order to make things work seamlessly for all booting methods. e.g. The installer sends a "generic" url parameter in the coreos-install.json profile and the grub and ipxe handlers do a template/substitution to place in the proper configuration/variables to match. The downside is that there would be a hard coupling of installer and matchbox version numbers for any metal installations should this feature be made.
I can potentially contribute most (maybe all?) of this feature set if desired, but I'd prefer to get a thumbs up from the maintainers before undertaking it. I'm not a go developer, but I think the amount of logic to be edited is minimal.
What is a potential workaround?
If I give up ipxe and only use grub for booting systems, I can:
What you expected to happen?
I expected the tectonic-installer to place valid, bootable profiles into matchbox for either ipxe or grub2 boot methods.
How to reproduce it (as minimally and precisely as possible)?
After further digging and troubleshooting, another workaround that requires no code changes is to clone the coreos-install.json profile to make one for each host (making the edits to the URL params for mac address variables for that system) and modify the per-host groups to point to the new per-host profiles.
I don't know what the long term ramifications are from this in terms of future cluster scaling and runs of
So, my workaround to manually edit the profile JSONs certainly worked, but it wasn't at all a scalable solution as I had to edit and make new profiles per instance before powering on the systems. I've moved on to another solution at this point, but I hope I can pick Tectonic/Matchbox up for future use on another project.