Bump and patch coreos-init, bootengine, and afterburn to improve early networking - #4248
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the initrd/early-boot networking stack by bumping bootengine/coreos-init/afterburn and switching early ip= handling to systemd-network-generator (aiming for better IPv6/VLAN behavior and fewer surprises around device selection).
Changes:
- Bump bootengine and coreos-init to newer upstream commits and add corresponding revisioned ebuilds/manifests.
- Add an Afterburn patch series to support systemd-network-generator (and adjust ProxmoxVE
ip=generation, including dual-stack handling). - Update build/runtime dependencies and housekeeping (kernel DEPEND tweak, remove a dracut user-patch note, add a changelog entry).
Reviewed changes
Copilot reviewed 10 out of 13 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-kernel/coreos-kernel-6.12.105.ebuild | Add gptfdisk to the kernel build dependency set. |
| sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/Manifest | Update bootengine distfile checksum/size for new pinned revision. |
| sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-9999.ebuild | Bump pinned bootengine commit hash. |
| sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-0.0.38-r49.ebuild | Add new revisioned bootengine ebuild pinned to the new commit. |
| sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-kernel/dracut/README.md | Remove documentation for a dracut iSCSI dependency patch. |
| sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-kernel/dracut/050-change-network-dep-iscsi.patch | Remove the dracut iSCSI dependency patch itself. |
| sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-init/Manifest | Update coreos-init distfile checksum/size for new pinned revision. |
| sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-init/coreos-init-9999.ebuild | Bump pinned coreos-init commit hash. |
| sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-init/coreos-init-0.0.1-r207.ebuild | Add new revisioned coreos-init ebuild pinned to the new commit (includes gptfdisk runtime dep). |
| sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/files/0004-systemd-network-generator.patch | Add patch series enabling systemd-network-generator integration and ProxmoxVE ip= adjustments. |
| sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/afterburn-9999.ebuild | Apply the new systemd-network-generator patch for live builds. |
| sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/afterburn-5.10.0-r2.ebuild | Add a release ebuild applying the same patch set. |
| changelog/bugfixes/2026-08-31-ip-kargs-parser.md | Add user-facing changelog entry documenting the ip= handling change (incl. dhcp,dhcp6 → any). |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
5d2b619 to
0767d4f
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 10 out of 13 changed files in this pull request and generated no new comments.
Suppressed comments (1)
sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/files/0004-systemd-network-generator.patch:155
- The generator env file is written as
SYSTEMD_PROC_CMDLINE={cmdline}without quoting/escaping. Since cmdlines contain spaces, systemd’s EnvironmentFile parsing will split/truncate the value (and newlines could inject extra variables). Quote and escape the value before writing it.
+ let mut env_file =
+ File::create(path).with_context(|| format!("failed to create file {path:?}"))?;
+ writeln!(env_file, "SYSTEMD_PROC_CMDLINE={cmdline}")
+ .context("failed to write network generator environment file")?;
krnowak
left a comment
There was a problem hiding this comment.
Heh, I even approved coreos/afterburn#1299 before realizing it's a coreos project, not flatcar. :)
This pulls together flatcar/init#145, flatcar/bootengine#129, and coreos/afterburn#1299 to improve early networking. systemd-network-generator is now used instead of the old custom
ip=parser. IPv6 and VLANs should work better, and it will no longer assign the given IP address to the loopback interface if you don't specify the device name.How to use
This is most effectively tested with ProxmoxVE. /run/systemd/networkd should include 20-eth0.network and 71-default.network generated from the two different mechanisms. They should be roughly similar. You can also test the VLAN setup described in flatcar/Flatcar#1708 under QEMU.
Testing done
The most recent Jenkins build (now gone) was successful. Earlier builds tested all the platforms successfully. I have also done a lot of manual testing with QEMU and ProxmoxVE.
changelog/directory (user-facing change, bug fix, security fix, update)/bootand/usrsize, packages, list files for any missing binaries, kernel modules, config files, kernel modules, etc.