summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Boccassi <luca.boccassi@microsoft.com>2020-05-22 16:05:12 +0100
committerLuca Boccassi <luca.boccassi@microsoft.com>2020-06-23 12:57:05 +0100
commit34e0d56ce23fcdfd264ad5e8ada58a520c23a80f (patch)
tree0254a326366ae75d36e23669dfd878ce12535d9c
parentb3b1a08a5661df87986a504722db291fa3ccc9f5 (diff)
downloadsystemd-34e0d56ce23fcdfd264ad5e8ada58a520c23a80f.tar.gz
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.
-rw-r--r--docs/CONTAINER_INTERFACE.md10
-rw-r--r--man/os-release.xml7
2 files changed, 17 insertions, 0 deletions
diff --git a/docs/CONTAINER_INTERFACE.md b/docs/CONTAINER_INTERFACE.md
index 71f9185c58..a36d2edc72 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_<key>=<VALUE>`
+ 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 a2e3d0d8ac..675daf3ede 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:
<literal>DEBIAN_BTS="debbugs://bugs.debian.org/"</literal></para>
+
+ <para>Container and sandbox runtime managers may make the host's
+ identification data available to applications by providing the host's
+ <filename>/etc/os-release</filename> and
+ <filename>/usr/lib/os-release</filename> as respectively
+ <filename>/run/host/etc/os-release</filename> and
+ <filename>/run/host/usr/lib/os-release</filename>.</para>
</refsect1>
<refsect1>