Skip to content

Bump and patch coreos-init, bootengine, and afterburn to improve early networking - #4248

Open
chewi wants to merge 4 commits into
mainfrom
chewi/dracut-upstream-network
Open

Bump and patch coreos-init, bootengine, and afterburn to improve early networking#4248
chewi wants to merge 4 commits into
mainfrom
chewi/dracut-upstream-network

Conversation

@chewi

@chewi chewi commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

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 entries added in the respective changelog/ directory (user-facing change, bug fix, security fix, update)
  • Inspected CI output for image differences: /boot and /usr size, packages, list files for any missing binaries, kernel modules, config files, kernel modules, etc.

@chewi chewi self-assigned this Aug 31, 2026
Copilot AI lite review requested due to automatic review settings August 31, 2026 12:41
@chewi
chewi requested a review from a team as a code owner August 31, 2026 12:41

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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,dhcp6any).

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

chewi added 4 commits August 31, 2026 13:51
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>
Copilot AI review requested due to automatic review settings August 31, 2026 12:51
@chewi
chewi force-pushed the chewi/dracut-upstream-network branch from 5d2b619 to 0767d4f Compare August 31, 2026 12:51

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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")?;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants