set_lsb_release: define Flatcar sysext level#252
Conversation
|
Ouch, when testing I realized that |
works when using an additional symlink in the sysext itself |
Joaquim ran into his when initially playing with sysext on Flatcar, we discussed it with Lennart and he agreed it's a bug that should be fixed. Not sure if they are tracking it though. |
Sysext images have a compatibility matching mechanism that searches for the matching OS version or custom sysext level setting. On Flatcar there is just the OS version set in /etc/os-release until now which means that sysext images can't easily be used together with autoupdates that change the OS version. Define a sysext level for Flatcar so that users can refer to it instead of the OS version when they have images that don't rely on a particular Flatcar version. Here an example of the now possible metadata: /etc/extensions/NAME/usr/lib64/extension-release.d/extension-release.NAME ID=flatcar SYSEXT_LEVEL=1.0 and a symlink /etc/extensions/NAME/usr/lib → /etc/extensions/NAME/usr/lib64 to work around the problem that using lib/ as path destroys Flatcar's lib → lib64 symlink. In the future the matching logic hopefully gets more flexible because now it is just a string comparison. Also, the architecture is not matched either for now - we should work with upstream to improve this. Closes: flatcar/Flatcar#643
f0547c1 to
7fafef2
Compare
|
Just a note - it probably won't be a symlink when we finally switch to the 17.1 profile portage is moaning about forever. |
|
its also not a symlink on arm64, so we need to fix this to get sysext ready. |
Does this mean We have to solve this first or the sysext images get breaking changes later… |
From news page about the profile: So IIUC that means that
|
Sysext images have a compatibility matching mechanism that searches for
the matching OS version or custom sysext level setting. On Flatcar
there is just the OS version set in /etc/os-release until now which
means that sysext images can't easily be used together with autoupdates
that change the OS version.
Define a sysext level for Flatcar so that users can refer to it instead
of the OS version when they have images that don't rely on a particular
Flatcar version.
Here an example of the now possible metadata:
/etc/extensions/NAME/usr/lib64/extension-release.d/extension-release.NAME
ID=flatcar
SYSEXT_LEVEL=1.0
and a symlink
/etc/extensions/NAME/usr/lib→/etc/extensions/NAME/usr/lib64In the future the matching logic hopefully gets more flexible because
now it is just a string comparison. Also, the architecture is not
matched either for now - we should work with upstream to improve this.
Closes: flatcar/Flatcar#643
How to use
Check that the above example works with
systemd-sysext mergeorsystemctl enable --now systemd-sysextTesting done
started
changelog/directory (user-facing change, bug fix, security fix, update)