Repository navigation
image: add IMDS support in initrd - #320
Merged
Merged
Conversation
This makes built images work in cloud environments for passing credentials/configuration via IMDS, and keeps initrds consistent between all output formats. systemd's IMDS generator enables the imds and networkd units only on a hwdb-matched cloud, so there is no runtime impact in other environments. It still grows the disk footprint by a bit, measurements for the uncompressed boot-demo initrd: Fedora: 93.5 MB → 101.4 MB (+8.5%) Debian: 103.2 MB → 111.7 MB (+8.2%) Arch: unchanged, its systemd already ships both Signed-off-by: Martin Pitt <martin@amutable.com>
martinpitt
force-pushed
the
initrd-imds
branch
from
October 16, 2026 11:52
c2e1f1d to
c1308fd
Compare
daandemeyer
approved these changes
Oct 16, 2026
daandemeyer
left a comment
Member
There was a problem hiding this comment.
I think this is OK, networking is basic enough that we should just add it to the initrd by default.
Member
Author
|
@daandemeyer one more commit coming, I'm just running CI in between to get the arm64 checksums |
Necessary for IMDS/networkd to reach the service on AWS. It adds 90 KB to the boot-demo UKI. Clouds with `virtio_net` are covered already (Hetzner, Oracle VMs, Scaleway, Tencent, Alibaba and Vultr). Azure and GCP's gVNIC types need other drivers. We'll add them later when tine can build images for them. Signed-off-by: Martin Pitt <martin@amutable.com>
martinpitt
force-pushed
the
initrd-imds
branch
from
October 16, 2026 12:00
c1308fd to
da78ca4
Compare
martinpitt
marked this pull request as ready for review
October 16, 2026 12:00
Member
Author
|
@daandemeyer third commit (udev rule) is in now. Still needs one more round of arm64 checksums, but that's trivial. |
daandemeyer
approved these changes
Oct 16, 2026
EBS volumes are NVMe devices whose I/O can stall for longer than the kernel's 30 s timeout, which then fails the root file system. AWS recommends `nvme_core.io_timeout` on the kernel command line, but that also changes the timeout of every NVMe disk on real hardware. So ship the udev rule of `amazon-ec2-utils` instead, which matches only EBS volumes. Signed-off-by: Martin Pitt <martin@amutable.com>
martinpitt
force-pushed
the
initrd-imds
branch
from
October 16, 2026 12:18
da78ca4 to
4e02b31
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This makes built images work in cloud environments for passing credentials/configuration via IMDS, and keeps initrds consistent between all output formats.
systemd's IMDS generator enables the imds and networkd units only on a hwdb-matched cloud, so there is no runtime impact in other environments. It still grows the disk footprint by a bit, measurements for the uncompressed boot-demo initrd:
Fedora: 93.5 MB → 101.4 MB (+8.5%)
Debian: 103.2 MB → 111.7 MB (+8.2%)
Arch: unchanged, its systemd already ships both