@@ -324,15 +324,24 @@ The semantics are the same as `Path`, `Args` and `Env` in [golang Cmd](https://g
324324
325325** ` annotations ` ** (object, optional) contains arbitrary metadata for the container.
326326This information MAY be structured or unstructured.
327- Annotations are key-value maps.
327+ Annotations MUST be a key-value map where both the key and value MUST be strings.
328+ While the value MUST be present, it MAY be an empty string.
329+ Keys MUST be unique within this map, and best practice is to namespace the keys.
330+ Keys SHOULD be named using a reverse domain notation - e.g. ` com.example.myKey ` .
331+ Keys using the ` org.opencontainers ` namespace are reserved and MUST NOT be used by subsequent specifications.
332+ If there are no annotations then this property MAY either be absent or an empty map.
333+ Implementations that are reading/processing this configuration file MUST NOT generate an error if they encounter an unknown annotation key.
328334
329335``` json
330336"annotations" : {
331- "key1" : " value1" ,
332- "key2" : " value2"
337+ "com.example.gpu-cores" : " 2"
333338}
334339```
335340
341+ ## Extensibility
342+ Implementations that are reading/processing this configuration file MUST NOT generate an error if they encounter an unkown property.
343+ Instead they MUST ignore unknown properties.
344+
336345## Configuration Schema Example
337346
338347Here is a full example ` config.json ` for reference.
@@ -683,8 +692,8 @@ Here is a full example `config.json` for reference.
683692 "mountLabel" : " system_u:object_r:svirt_sandbox_file_t:s0:c715,c811"
684693 },
685694 "annotations" : {
686- "key1" : " value1" ,
687- "key2" : " value2"
695+ "com.example. key1" : " value1" ,
696+ "com.example. key2" : " value2"
688697 }
689698}
690699```
0 commit comments