RFE: common interface to expose host's os-release to container-like runtimes

The following was the start of a discussion regarding the possibility of establishing a common interface for exposing the host’s os-release via ~container runtimes:

We find ourselves in a situation where application running
containerized (specifically as portable services, although this issue
is general) need to either find information about the host, or alter
their behaviour depending on the host’s flavour.
At the same time, applications also need to find information about the
guest’s OS, so simply bind mounting /etc/os-release from the host is
not enough. We need both.

Reference: https://lists.freedesktop.org/archives/systemd-devel/2020-April/044378.html

The desired goal is to establish a common interface to provide this information, so that applications can rely on it without having to infer what runtime manager they are spawned by.

There are many ways to implement this, the discussion for the nspawn/portabled cases gravitated toward using prefixed environment variables - the advantage being that it’s the most convenient way for applications, since they can trivially have both sets of information at the same time (eg: source /etc/os-release and then VERSION_ID is the runtime’s version, service_host_VERSION_ID is the host’s version).

RFC patches for nspawn/portabled/flatpak:


For snaps the non auto-connected interface system-observe already lets a snap access the host os-release under /var/lib/snapd/hostfs/etc/os-release or /var/lib/snapd/hostfs/usr/lib/os-release in the snap mount namespace.

If there is some consensus with container runtimes that this information should be exposed over environment variables a new interface could be added that enables that as well.