In opencontainers/runtime-tools#347, @Mashimiao was reading the platform section as a restriction on platform.os. Something like:
platform.os may have permissive SHOULD language for valid values, but you can ignore that. Valid configs MUST be using one of these…
I read the spec.md section as a list of certification tracks:
Runtime-tools will have the following certification tracks: …. platform.os allows many other values (e.g. android), and valid configs MAY use those (with questionable usefulness), but there is currently no certification track for them.
The spec should probably be updated to make it very clear which of these interpretations is intended.
With the restrictive approach (where platform.os == "android" was illegal), we should be using something like:
* **`os`** (string, REQUIRED) specifies the operating system family of the container configuration's specified [`root`](#root) file system bundle.
The runtime MUST generate an error if it does not support the specified **`os`**.
Bundles MUST use `linux`, `solaris`, or `windows`.
With the permissive approach, we should update the spec section to make it clear that it does not restrict platform.os. And we probably want some notes about what happens in cases where platform.os does not match any of the certification tracks, even if that is “these other configs are possible, but because they have no platform-specific configuration settings, we don't think they are useful enough to be worth a certification track”.
In opencontainers/runtime-tools#347, @Mashimiao was reading the platform section as a restriction on
platform.os. Something like:I read the
spec.mdsection as a list of certification tracks:The spec should probably be updated to make it very clear which of these interpretations is intended.
With the restrictive approach (where
platform.os == "android"was illegal), we should be using something like:With the permissive approach, we should update the spec section to make it clear that it does not restrict
platform.os. And we probably want some notes about what happens in cases whereplatform.osdoes not match any of the certification tracks, even if that is “these other configs are possible, but because they have no platform-specific configuration settings, we don't think they are useful enough to be worth a certification track”.