From: Luca Boccassi Date: Fri, 22 May 2020 15:05:12 +0000 (+0100) Subject: Container interface: document exposing the host's os-release X-Git-Tag: v246-rc1~4^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=34e0d56ce23fcdfd264ad5e8ada58a520c23a80f;p=thirdparty%2Fsystemd.git Container interface: document exposing the host's os-release In order to allow applications to detect the host OS version or other metadata, ask container managers to expose the os-release files as read-only bind mounts. For systemd-nspawn, we will also expose ID, BUILD_ID, VERSION_ID and VARIANT_ID as lowercase environment variables prefixed by the container_host_ string. --- diff --git a/docs/CONTAINER_INTERFACE.md b/docs/CONTAINER_INTERFACE.md index 71f9185c585..a36d2edc72a 100644 --- a/docs/CONTAINER_INTERFACE.md +++ b/docs/CONTAINER_INTERFACE.md @@ -121,6 +121,16 @@ manager, please consider supporting the following interfaces. `container_ttys=pts/7 pts/8 pts/14` it will spawn three additional login gettys on ptys 7, 8, and 14. +4. To allow applications to detect the OS version and other metadata of the host + running the container manager, if this is considered desirable, please parse + the host's `/etc/os-release` and set a `$container_host_=` + environment variable for the ID fields described by the [os-release + interface](https://www.freedesktop.org/software/systemd/man/os-release.html), eg: + `$container_host_id=debian` + `$container_host_build_id=2020-06-15` + `$container_host_variant_id=server` + `$container_host_version_id=10` + ## Advanced Integration 1. Consider syncing `/etc/localtime` from the host file system into the diff --git a/man/os-release.xml b/man/os-release.xml index a2e3d0d8ac5..675daf3ede5 100644 --- a/man/os-release.xml +++ b/man/os-release.xml @@ -339,6 +339,13 @@ name in order to avoid name clashes. Applications reading this file must ignore unknown fields. Example: DEBIAN_BTS="debbugs://bugs.debian.org/" + + Container and sandbox runtime managers may make the host's + identification data available to applications by providing the host's + /etc/os-release and + /usr/lib/os-release as respectively + /run/host/etc/os-release and + /run/host/usr/lib/os-release.