Skip to content

Conversation

@pothos
Copy link
Member

@pothos pothos commented Dec 10, 2025

For A/B-updated /etc contents we used a custom overlay mount that
provides the default files through a lowerdir loaded from /usr. Since
then we upstreamed mutable systemd-confext support and now we can switch
to it.
This pulls in flatcar/init#138 and
flatcar/bootengine#115 together with backported
systemd patches that have opened or merged upstream PRs to fix --root=
issues and add a refresh skip check to prevent boot disruptions due to
the multiple daemon reloads and - more important - the missing atomic
remount that would mean /etc is gone for a few milliseconds during boot.
The skip logic works best with verity hashes and thus the default
confext must be a verity extension image.
User-provided confext don't work well yet unless they use verity due to
the missing atomic remount and reliance on the skipping logic. We also
need to look into stacking order and other mutabiliy settings.

This includes a systemd update to 258.2 to have a smaller diff for the backports.

How to use

Update git refs before merging.

Testing done

We should also add a mantle kola test for "Skipping extension refresh because no change was found" for sysext and confext because we never want to have a refresh during boot on an unmodified Flatcar image.

TODO: CI and Jenkins.

  • 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.

From 7f0d7d0eb24afe14cd62bfa78cb9e139b9f824d1

Signed-off-by: Kai Lueke <kailuke@microsoft.com>
From d45a090cf70ae75de9e22b54016b049a90f7abc8

Signed-off-by: Kai Lueke <kailuke@microsoft.com>
@pothos pothos requested a review from a team as a code owner December 10, 2025 17:24
@pothos pothos force-pushed the kai/default-confext branch from 57b08de to 18bda4e Compare December 12, 2025 06:46
@pothos pothos deployed to development December 12, 2025 06:47 — with GitHub Actions Active
For A/B-updated /etc contents we used a custom overlay mount that
provides the default files through a lowerdir loaded from /usr. Since
then we upstreamed mutable systemd-confext support and now we can switch
to it.
This pulls in flatcar/init#138 and
flatcar/bootengine#115 together with backported
systemd patches that have opened or merged upstream PRs to fix --root=
issues and add a refresh skip check to prevent boot disruptions due to
the multiple daemon reloads and - more important - the missing atomic
remount that would mean /etc is gone for a few milliseconds during boot.
The skip logic works best with verity hashes and thus the default
confext must be a verity extension image.
User-provided confext don't work well yet unless they use verity due to
the missing atomic remount and reliance on the skipping logic. We also
need to look into stacking order and other mutabiliy settings.

Signed-off-by: Kai Lueke <kailuke@microsoft.com>
@pothos pothos force-pushed the kai/default-confext branch from 18bda4e to 1d9a0d8 Compare December 12, 2025 13:33
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