-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
flatcar-postinst
does not download sysext images from URLs advertised by Nebraska
#1281
Labels
kind/bug
Something isn't working
Comments
github-project-automation
bot
moved this to 📝 Needs Triage
in Flatcar tactical, release planning, and roadmap
Dec 7, 2023
Thanks for the detailed report, good point about the possible overwriting - maybe that needs to be filtered to only be done for responses to update requests. (FYI: That doesn't happen with |
pothos
moved this from 📝 Needs Triage
to 🌱 Upcoming / Focus
in Flatcar tactical, release planning, and roadmap
Dec 7, 2023
PR in flatcar/update_engine#33 but it won't make it into the December release |
github-project-automation
bot
moved this from 🌱 Upcoming / Focus
to Implemented
in Flatcar tactical, release planning, and roadmap
Dec 13, 2023
Thank you for fixing this so quickly, @pothos 👍 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Description
(Disclaimer: This might not be a bug but just me misunderstanding how to use Nebraska to advertise URLs for sysext images.)
When Nebraska sends URLs of OEM or custom extension sysext images in response to update requests from the update engine, then
flatcar-postinst
should use those URLs to download sysext images. But for me, this does not work:flatcar-postinst
falls back to hard-coded URLs of release servers even if Nebraska advertises URLs.Impact
I cannot get Flatcar to download OEM and extension images using URLs configured in a Nebraska instance.
Environment and steps to reproduce
flatcar_production_update.gz
, and, under "extra files", add the metadata foroem-qemu.gz
. As base URL, use a locally running file server that serves those files. Write a Butane config that instructs Flatcar to pull this update package from the Nebraska instance. Then, start a Flatcar 3760.1.0 VM with QEMU using the official QEMU image.update_engine_client -check_for_update
a. Run
update_engine_client -check_for_update
.b. Observe in webserver logs that
flatcar_production_update.gz
is downloaded.c. Observe in webserver logs that
oem-qemu.gz
is not downloaded. Observe intcpdump
that the VM talks toupdate.release.flatcar-linux.net
, the fallback URL defined in theflatcar-postinst
Bash script, downloading about 2KB, which is the size ofoem-qemu.gz
.oem-qemu.gz
, so the installer terminates without error. (To provoke an error, a more complex setup can be used in which a custom extension is defined that is only present on the local file server. In that case,flatcar-postinst
will fail and report a 404 error because the fallback servers does not offer the custom extension image.)Expected behavior
oem-qemu.gz
is downloaded from the local webserver, i.e., from the URL defined in Nebraska.Additional information
Support for this feature was added in this PR.
My speculative explanation for why this happens:
oem-qemu.gz
and other files and writes the response to/var/lib/update_engine/prefs/full-response
.flatcar_production_update.gz
from the URL specified by Nebraska, i.e., the local webserver./var/lib/update_engine/prefs/full-response
. The file does not contain the URLs anymore.flatcar-postinst
.flatcar-postinst
checks the contents of/var/lib/update_engine/prefs/full-response
and can't find URLs in it. Thus,flatcar-postinst
falls back to using hard-coded URLs of public Flatcar servers.Excerpt from the journal (some URLs / names redacted):
I continuously printed the contents of
/var/lib/update_engine/prefs/full-response
, and it's visible that the response containing the URLs is not present anymore at 13:13:23, when (as far as I understand)flatcar-postinst
runs:We're very excited about this new feature! Any advice on what we are doing wrong (if it's not a bug) would be much appreciated.
The text was updated successfully, but these errors were encountered: