diff --git a/config.md b/config.md index bc6b945ad..6f934f804 100644 --- a/config.md +++ b/config.md @@ -308,15 +308,23 @@ The semantics are the same as `Path`, `Args` and `Env` in [golang Cmd](https://g This OPTIONAL property contains arbitrary metadata for the container. This information MAY be structured or unstructured. -Annotations are key-value maps. +Annotations MUST be key-value maps where both the key and value are strings. +Keys MUST be unique, and best practice is to namespace the keys. +Keys starting with the `opencontainers.org` namespace are reserved and MUST NOT be used. +If there are no annotations then this property MAY either be absent or an empty map. +Implementations that are reading/processing this configuration file MUST NOT generate an error if they encounter an unknown annotation key. ```json "annotations": { - "key1" : "value1", - "key2" : "value2" + "example.com/gpu-cores" : "2" } ``` +## Extensibility +The `annotations` property MAY be used as an extensibility point to include additional information that is not defined as part of this specification. +Implementations that are reading/processing this configuration file MUST NOT generate an error if they encounter an unkown property. +Instead they MUST ignore unknown properties. + ## Configuration Schema Example Here is a full example `config.json` for reference.