New upstream version 1.0.1
aviau
6 years ago
6 | 6 | ChengTiesheng <chengtiesheng@huawei.com> |
7 | 7 | Daniel, Dao Quang Minh <dqminh89@gmail.com> |
8 | 8 | Doug Davis <dug@us.ibm.com> <duglin@users.noreply.github.com> |
9 | James O. D. Hunt <james.o.hunt@intel.com> | |
9 | 10 | John Howard <jhoward@microsoft.com> <John.Howard@microsoft.com> |
10 | 11 | LinZhinan(Zen Lin) <linzhinan@huawei.com> |
11 | 12 | Mrunal Patel <mrunalp@gmail.com> <mrunal@Mrunals-iMac.local> |
0 | approve_by_comment: true | |
1 | approve_regex: ^LGTM | |
2 | reject_regex: ^Rejected | |
3 | reset_on_push: true | |
4 | author_approval: ignored | |
5 | signed_off_by: | |
6 | required: true | |
7 | reviewers: | |
8 | teams: | |
9 | - runtime-spec-maintainers | |
10 | name: default | |
0 | version: 2 | |
1 | ||
2 | requirements: | |
3 | signed_off_by: | |
4 | required: true | |
5 | ||
6 | group_defaults: | |
11 | 7 | required: 2 |
8 | approve_by_comment: | |
9 | enabled: true | |
10 | approve_regex: ^LGTM | |
11 | reject_regex: ^Rejected | |
12 | reset_on_push: | |
13 | enabled: true | |
14 | author_approval: | |
15 | ignored: true | |
16 | always_pending: | |
17 | title_regex: ^WIP | |
18 | explanation: 'Work in progress...' | |
19 | conditions: | |
20 | branches: | |
21 | - master | |
22 | ||
23 | groups: | |
24 | runtime-spec: | |
25 | teams: | |
26 | - runtime-spec-maintainers |
0 | 0 | OpenContainers Specifications |
1 | ||
2 | Changes with v1.0.1: | |
3 | ||
4 | Minor fixes and documentation: | |
5 | ||
6 | * spec: Expand "OCI" in spec-title reference and add "Initiative" | |
7 | (#900) | |
8 | * config: Simplify title to "Configuration" (#901) | |
9 | * config: Fix "procfs_2" -> "proc_2" link label (#906) | |
10 | * config: Fix IEEE Std 1003.1-2008 exec link markup (#913) | |
11 | * config: Add a trailing period to the "cannot be mapped" rlimits | |
12 | line (#915) | |
13 | * config-linux: RFC 2119 MUST for absolute linux.namespaces[].path | |
14 | (#925). This is technically a breaking change, because a config | |
15 | with a relative namespace path would have been compliant before, | |
16 | but will be non compliant with this change. However, the previous | |
17 | "an absolute path to namespace file" wording was clear enough that | |
18 | config authors are unlikely to be relying on relative namespace | |
19 | paths in configs. | |
20 | * config-linux: More specific documentation for weightDevice and | |
21 | throttle* (#825) | |
22 | * config-linux: Modify procfs to proc (#905) | |
23 | * config-linux: Fix "psuedo" -> "pseudo" typo (#921) | |
24 | * config-windows: Make maximum a uint16 (was a uint) (#891) | |
25 | * runtime: Change "process in the container" -> "container | |
26 | process" (#907) | |
27 | * schema/config-schema: Use ArrayOfStrings in capabilities | |
28 | properties. (#886) | |
29 | * schema/config-linux: | |
30 | s/throttleWriteIopsDevice/throttleWriteIOPSDevice/ (#899) | |
31 | * schema/config-linux: add intelRdt field (#889) | |
32 | * schema/config-solaris: Replaced refs with some fields | |
33 | (cappedCPU.ncpus, etc.) (#892) | |
1 | 34 | |
2 | 35 | Changes with v1.0.0: |
3 | 36 |
51 | 51 | Typos and grammatical errors can go straight to a pull-request. |
52 | 52 | When in doubt, start on the [mailing-list](#mailing-list). |
53 | 53 | |
54 | ### Weekly Call | |
54 | ### Meetings | |
55 | 55 | |
56 | The contributors and maintainers of all OCI projects have a weekly meeting on Wednesdays at: | |
57 | ||
58 | * 8:00 AM (USA Pacific), during [odd weeks][iso-week]. | |
59 | * 2:00 PM (USA Pacific), during [even weeks][iso-week]. | |
60 | ||
56 | The contributors and maintainers of all OCI projects have monthly meetings at 2:00 PM (USA Pacific) on the first Wednesday of every month. | |
61 | 57 | There is an [iCalendar][rfc5545] format for the meetings [here](meeting.ics). |
62 | ||
63 | 58 | Everyone is welcome to participate via [UberConference web][uberconference] or audio-only: +1 415 968 0849 (no PIN needed). |
64 | An initial agenda will be posted to the [mailing list](#mailing-list) earlier in the week, and everyone is welcome to propose additional topics or suggest other agenda alterations there. | |
59 | An initial agenda will be posted to the [mailing list](#mailing-list) in the week before each meeting, and everyone is welcome to propose additional topics or suggest other agenda alterations there. | |
65 | 60 | Minutes are posted to the [mailing list](#mailing-list) and minutes from past calls are archived [here][minutes], with minutes from especially old meetings (September 2015 and earlier) archived [here][runtime-wiki]. |
66 | 61 | |
67 | 62 | ### Mailing List |
11 | 11 | |
12 | 12 | | Path | Type | |
13 | 13 | | -------- | ------ | |
14 | | /proc | [procfs][] | | |
14 | | /proc | [proc][] | | |
15 | 15 | | /sys | [sysfs][] | |
16 | 16 | | /dev/pts | [devpts][] | |
17 | 17 | | /dev/shm | [tmpfs][] | |
34 | 34 | * **`user`** the container will be able to remap user and group IDs from the host to local users and groups within the container. |
35 | 35 | * **`cgroup`** the container will have an isolated view of the cgroup hierarchy. |
36 | 36 | |
37 | * **`path`** *(string, OPTIONAL)* - an absolute path to namespace file in the [runtime mount namespace](glossary.md#runtime-namespace). | |
37 | * **`path`** *(string, OPTIONAL)* - namespace file. | |
38 | This value MUST be an absolute path in the [runtime mount namespace](glossary.md#runtime-namespace). | |
38 | 39 | The runtime MUST place the container process in the namespace associated with that `path`. |
39 | 40 | The runtime MUST [generate an error](runtime.md#errors) if `path` is not associated with a namespace of type `type`. |
40 | 41 | |
326 | 327 | |
327 | 328 | * **`weight`** *(uint16, OPTIONAL)* - specifies per-cgroup weight. This is default weight of the group on all devices until and unless overridden by per-device rules. |
328 | 329 | * **`leafWeight`** *(uint16, OPTIONAL)* - equivalents of `weight` for the purpose of deciding how much weight tasks in the given cgroup has while competing with the cgroup's child cgroups. |
329 | * **`weightDevice`** *(array of objects, OPTIONAL)* - specifies the list of devices which will be bandwidth rate limited. The following parameters can be specified per-device: | |
330 | * **`major, minor`** *(int64, REQUIRED)* - major, minor numbers for device. More info in [mknod(1)][mknod.1] man page. | |
331 | * **`weight`** *(uint16, OPTIONAL)* - bandwidth rate for the device. | |
332 | * **`leafWeight`** *(uint16, OPTIONAL)* - bandwidth rate for the device while competing with the cgroup's child cgroups, CFQ scheduler only | |
330 | * **`weightDevice`** *(array of objects, OPTIONAL)* - an array of per-device bandwidth weights. | |
331 | Each entry has the following structure: | |
332 | * **`major, minor`** *(int64, REQUIRED)* - major, minor numbers for device. | |
333 | For more information, see the [mknod(1)][mknod.1] man page. | |
334 | * **`weight`** *(uint16, OPTIONAL)* - bandwidth weight for the device. | |
335 | * **`leafWeight`** *(uint16, OPTIONAL)* - bandwidth weight for the device while competing with the cgroup's child cgroups, CFQ scheduler only | |
333 | 336 | |
334 | 337 | You MUST specify at least one of `weight` or `leafWeight` in a given entry, and MAY specify both. |
335 | 338 | |
336 | * **`throttleReadBpsDevice`**, **`throttleWriteBpsDevice`**, **`throttleReadIOPSDevice`**, **`throttleWriteIOPSDevice`** *(array of objects, OPTIONAL)* - specify the list of devices which will be IO rate limited. | |
337 | The following parameters can be specified per-device: | |
338 | * **`major, minor`** *(int64, REQUIRED)* - major, minor numbers for device. More info in [mknod(1)][mknod.1] man page. | |
339 | * **`throttleReadBpsDevice`**, **`throttleWriteBpsDevice`** *(array of objects, OPTIONAL)* - an array of per-device bandwidth rate limits. | |
340 | Each entry has the following structure: | |
341 | * **`major, minor`** *(int64, REQUIRED)* - major, minor numbers for device. | |
342 | For more information, see the [mknod(1)][mknod.1] man page. | |
343 | * **`rate`** *(uint64, REQUIRED)* - bandwidth rate limit in bytes per second for the device | |
344 | ||
345 | * **`throttleReadIOPSDevice`**, **`throttleWriteIOPSDevice`** *(array of objects, OPTIONAL)* - an array of per-device IO rate limits. | |
346 | Each entry has the following structure: | |
347 | * **`major, minor`** *(int64, REQUIRED)* - major, minor numbers for device. | |
348 | For more information, see the [mknod(1)][mknod.1] man page. | |
339 | 349 | * **`rate`** *(uint64, REQUIRED)* - IO rate limit for the device |
340 | 350 | |
341 | 351 | #### Example |
450 | 460 | If `intelRdt` is set, the runtime MUST write the container process ID to the `<container-id>/tasks` file in a mounted `resctrl` pseudo-filesystem, using the container ID from [`start`](runtime.md#start) and creating the `<container-id>` directory if necessary. |
451 | 461 | If no mounted `resctrl` pseudo-filesystem is available in the [runtime mount namespace](glossary.md#runtime-namespace), the runtime MUST [generate an error](runtime.md#errors). |
452 | 462 | |
453 | If `intelRdt` is not set, the runtime MUST NOT manipulate any `resctrl` psuedo-filesystems. | |
463 | If `intelRdt` is not set, the runtime MUST NOT manipulate any `resctrl` pseudo-filesystems. | |
454 | 464 | |
455 | 465 | The following parameters can be specified for the container: |
456 | 466 | |
457 | 467 | * **`l3CacheSchema`** *(string, OPTIONAL)* - specifies the schema for L3 cache id and capacity bitmask (CBM). |
458 | 468 | If `l3CacheSchema` is set, runtimes MUST write the value to the `schemata` file in the `<container-id>` directory discussed in `intelRdt`. |
459 | 469 | |
460 | If `l3CacheSchema` is not set, runtimes MUST NOT write to `schemata` files in any `resctrl` psuedo-filesystems. | |
470 | If `l3CacheSchema` is not set, runtimes MUST NOT write to `schemata` files in any `resctrl` pseudo-filesystems. | |
461 | 471 | |
462 | 472 | ### Example |
463 | 473 | |
641 | 651 | [devpts]: https://www.kernel.org/doc/Documentation/filesystems/devpts.txt |
642 | 652 | [file]: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_164 |
643 | 653 | [libseccomp]: https://github.com/seccomp/libseccomp |
644 | [procfs]: https://www.kernel.org/doc/Documentation/filesystems/proc.txt | |
654 | [proc]: https://www.kernel.org/doc/Documentation/filesystems/proc.txt | |
645 | 655 | [seccomp]: https://www.kernel.org/doc/Documentation/prctl/seccomp_filter.txt |
646 | 656 | [sharedsubtree]: https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt |
647 | 657 | [sysfs]: https://www.kernel.org/doc/Documentation/filesystems/sysfs.txt |
50 | 50 | |
51 | 51 | * **`count`** *(uint64, OPTIONAL)* - specifies the number of CPUs available to the container. |
52 | 52 | * **`shares`** *(uint16, OPTIONAL)* - specifies the relative weight to other containers with CPU shares. |
53 | * **`maximum`** *(uint, OPTIONAL)* - specifies the portion of processor cycles that this container can use as a percentage times 100. | |
53 | * **`maximum`** *(uint16, OPTIONAL)* - specifies the portion of processor cycles that this container can use as a percentage times 100. | |
54 | 54 | |
55 | 55 | #### Example |
56 | 56 |
0 | # <a name="containerConfigurationFile" />Container Configuration file | |
0 | # <a name="configuration" />Configuration | |
1 | 1 | |
2 | 2 | This configuration file contains metadata necessary to implement [standard operations](runtime.md#operations) against the container. |
3 | 3 | This includes the process to run, environment variables to inject, sandboxing features to use, etc. |
13 | 13 | |
14 | 14 | ## <a name="configSpecificationVersion" />Specification version |
15 | 15 | |
16 | * **`ociVersion`** (string, REQUIRED) MUST be in [SemVer v2.0.0][semver-v2.0.0] format and specifies the version of the Open Container Runtime Specification with which the bundle complies. | |
17 | The Open Container Runtime Specification follows semantic versioning and retains forward and backward compatibility within major versions. | |
16 | * **`ociVersion`** (string, REQUIRED) MUST be in [SemVer v2.0.0][semver-v2.0.0] format and specifies the version of the Open Container Initiative Runtime Specification with which the bundle complies. | |
17 | The Open Container Initiative Runtime Specification follows semantic versioning and retains forward and backward compatibility within major versions. | |
18 | 18 | For example, if a configuration is compliant with version 1.1 of this specification, it is compatible with all runtimes that support any 1.1 or later release of this specification, but is not compatible with a runtime that supports 1.0 and not 1.1. |
19 | 19 | |
20 | 20 | ### Example |
153 | 153 | * **`cwd`** (string, REQUIRED) is the working directory that will be set for the executable. |
154 | 154 | This value MUST be an absolute path. |
155 | 155 | * **`env`** (array of strings, OPTIONAL) with the same semantics as [IEEE Std 1003.1-2008's `environ`][ieee-1003.1-2008-xbd-c8.1]. |
156 | * **`args`** (array of strings, REQUIRED) with similar semantics to [IEEE Std 1003.1-2008 `execvp`'s *argv*][ieee-1003.1-2008-xsh-exec]. | |
156 | * **`args`** (array of strings, REQUIRED) with similar semantics to [IEEE Std 1003.1-2008 `execvp`'s *argv*][ieee-1003.1-2008-functions-exec]. | |
157 | 157 | This specification extends the IEEE standard in that at least one entry is REQUIRED, and that entry is used with the same semantics as `execvp`'s *file*. |
158 | 158 | |
159 | 159 | ### <a name="configPOSIXProcess" />POSIX process |
167 | 167 | * Linux: valid values are defined in the [`getrlimit(2)`][getrlimit.2] man page, such as `RLIMIT_MSGQUEUE`. |
168 | 168 | * Solaris: valid values are defined in the [`getrlimit(3)`][getrlimit.3] man page, such as `RLIMIT_CORE`. |
169 | 169 | |
170 | The runtime MUST [generate an error](runtime.md#errors) for any values which cannot be mapped to a relevant kernel interface | |
170 | The runtime MUST [generate an error](runtime.md#errors) for any values which cannot be mapped to a relevant kernel interface. | |
171 | 171 | For each entry in `rlimits`, a [`getrlimit(3)`][getrlimit.3] on `type` MUST succeed. |
172 | 172 | For the following properties, `rlim` refers to the status returned by the `getrlimit(3)` call. |
173 | 173 | |
197 | 197 | * **`ambient`** (array of strings, OPTIONAL) the `ambient` field is an array of ambient capabilities that are kept for the process. |
198 | 198 | * **`noNewPrivileges`** (bool, OPTIONAL) setting `noNewPrivileges` to true prevents the process from gaining additional privileges. |
199 | 199 | As an example, the [`no_new_privs`][no-new-privs] article in the kernel documentation has information on how this is achieved using a `prctl` system call on Linux. |
200 | * **`oomScoreAdj`** *(int, OPTIONAL)* adjusts the oom-killer score in `[pid]/oom_score_adj` for the process's `[pid]` in a [proc pseudo-filesystem][procfs]. | |
200 | * **`oomScoreAdj`** *(int, OPTIONAL)* adjusts the oom-killer score in `[pid]/oom_score_adj` for the process's `[pid]` in a [proc pseudo-filesystem][proc_2]. | |
201 | 201 | If `oomScoreAdj` is set, the runtime MUST set `oom_score_adj` to the given value. |
202 | 202 | If `oomScoreAdj` is not set, the runtime MUST NOT change the value of `oom_score_adj`. |
203 | 203 | |
841 | 841 | [cgroup-v1-memory_2]: https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt |
842 | 842 | [selinux]:http://selinuxproject.org/page/Main_Page |
843 | 843 | [no-new-privs]: https://www.kernel.org/doc/Documentation/prctl/no_new_privs.txt |
844 | [procfs_2]: https://www.kernel.org/doc/Documentation/filesystems/proc.txt | |
844 | [proc_2]: https://www.kernel.org/doc/Documentation/filesystems/proc.txt | |
845 | 845 | [semver-v2.0.0]: http://semver.org/spec/v2.0.0.html |
846 | 846 | [ieee-1003.1-2008-xbd-c8.1]: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_01 |
847 | [ieee-1003.1-2008-xsh-exec]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/exec.html | |
847 | [ieee-1003.1-2008-functions-exec]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/exec.html | |
848 | 848 | [naming-a-volume]: https://aka.ms/nb3hqb |
849 | 849 | |
850 | 850 | [capabilities.7]: http://man7.org/linux/man-pages/man7/capabilities.7.html |
5 | 5 | ## <a name="implementationsRuntimeContainer" />Runtime (Container) |
6 | 6 | |
7 | 7 | * [opencontainers/runc][runc] - Reference implementation of OCI runtime |
8 | * [projectatomic/bwrap-oci][bwrap-oci] - Convert the OCI spec file to a command line for [bubblewrap][bubblewrap] | |
9 | * [giuseppe/crun][crun] - Runtime implementation in C | |
8 | 10 | |
9 | 11 | ## <a name="implementationsRuntimeVirtualMachine" />Runtime (Virtual Machine) |
10 | 12 | |
11 | 13 | * [hyperhq/runv][runv] - Hypervisor-based runtime for OCI |
12 | * [01org/cc-oci-runtime][cc-oci] - Hypervisor-based OCI runtime for Intel® Architecture | |
14 | * [clearcontainers/runtime][cc-runtime] - Hypervisor-based OCI runtime utilising [virtcontainers][virtcontainers] by Intel®. | |
13 | 15 | |
14 | 16 | ## <a name="implementationsTestingTools" />Testing & Tools |
15 | 17 | |
20 | 22 | |
21 | 23 | [runc]: https://github.com/opencontainers/runc |
22 | 24 | [runv]: https://github.com/hyperhq/runv |
23 | [cc-oci]: https://github.com/01org/cc-oci-runtime | |
25 | [cc-runtime]: https://github.com/clearcontainers/runtime | |
26 | [virtcontainers]: https://github.com/containers/virtcontainers | |
24 | 27 | [octool]: https://github.com/kunalkushwaha/octool |
25 | 28 | [oct]: https://github.com/huawei-openlab/oct |
26 | 29 | [runtime-tools]: https://github.com/opencontainers/runtime-tools |
30 | [bwrap-oci]: https://github.com/projectatomic/bwrap-oci | |
31 | [bubblewrap]: https://github.com/projectatomic/bubblewrap | |
32 | [crun]: https://github.com/giuseppe/crun |
19 | 19 | END:DAYLIGHT |
20 | 20 | END:VTIMEZONE |
21 | 21 | BEGIN:VEVENT |
22 | UID:tdc-meeting-1@opencontainers.org | |
23 | DTSTAMP:20170405T220000Z | |
24 | DTSTART;TZID=America/Los_Angeles:20170329T080000 | |
25 | RRULE:FREQ=WEEKLY;INTERVAL=2;BYDAY=WE | |
22 | UID:tdc-meeting@opencontainers.org | |
23 | DTSTAMP:20170821T200000Z | |
24 | DTSTART;TZID=America/Los_Angeles:20170906T140000 | |
25 | RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=1WE | |
26 | 26 | DURATION:PT1H |
27 | 27 | SUMMARY:OCI TDC Meeting |
28 | 28 | DESCRIPTION;ALTREP="https://github.com/opencontainers/runtime-spec# |
29 | weekly-call":Open Containers Initiative Developer Meeting\n | |
30 | https://github.com/opencontainers/runtime-spec#weekly-call\n | |
31 | Web: https://www.uberconference.com/opencontainers\n | |
32 | Audio-only: +1 415 968 0849 (no PIN needed) | |
33 | LOCATION:https://www.uberconference.com/opencontainers | |
34 | URL:https://github.com/opencontainers/runtime-spec/blob/master/meeting.ics | |
35 | END:VEVENT | |
36 | BEGIN:VEVENT | |
37 | UID:tdc-meeting-2@opencontainers.org | |
38 | DTSTAMP:20170517T143500Z | |
39 | DTSTART;TZID=America/Los_Angeles:20170517T140000 | |
40 | RRULE:FREQ=WEEKLY;INTERVAL=2;BYDAY=WE | |
41 | DURATION:PT1H | |
42 | SUMMARY:OCI TDC Meeting | |
43 | DESCRIPTION;ALTREP="https://github.com/opencontainers/runtime-spec# | |
44 | weekly-call":Open Containers Initiative Developer Meeting\n | |
45 | https://github.com/opencontainers/runtime-spec#weekly-call\n | |
29 | meetings":Open Containers Initiative Developer Meeting\n | |
30 | https://github.com/opencontainers/runtime-spec#meetings\n | |
46 | 31 | Web: https://www.uberconference.com/opencontainers\n |
47 | 32 | Audio-only: +1 415 968 0849 (no PIN needed) |
48 | 33 | LOCATION:https://www.uberconference.com/opencontainers |
122 | 122 | |
123 | 123 | This operation MUST [generate an error](#errors) if it is not provided the container ID. |
124 | 124 | Attempting to send a signal to a container that is neither [`created` nor `running`](#state) MUST have no effect on the container and MUST [generate an error](#errors). |
125 | This operation MUST send the specified signal to the process in the container. | |
125 | This operation MUST send the specified signal to the container process. | |
126 | 126 | |
127 | 127 | ### <a name="runtimeDelete" />Delete |
128 | 128 | `delete <container-id>` |
85 | 85 | "$ref": "defs-linux.json#/definitions/blockIODeviceThrottle" |
86 | 86 | } |
87 | 87 | }, |
88 | "throttleReadIopsDevice": { | |
89 | "id": "https://opencontainers.org/schema/bundle/linux/resources/blockIO/throttleReadIopsDevice", | |
90 | "type": "array", | |
91 | "items": { | |
92 | "$ref": "defs-linux.json#/definitions/blockIODeviceThrottle" | |
93 | } | |
94 | }, | |
95 | "throttleWriteIopsDevice": { | |
96 | "id": "https://opencontainers.org/schema/bundle/linux/resources/blockIO/throttleWriteIopsDevice", | |
88 | "throttleReadIOPSDevice": { | |
89 | "id": "https://opencontainers.org/schema/bundle/linux/resources/blockIO/throttleReadIOPSDevice", | |
90 | "type": "array", | |
91 | "items": { | |
92 | "$ref": "defs-linux.json#/definitions/blockIODeviceThrottle" | |
93 | } | |
94 | }, | |
95 | "throttleWriteIOPSDevice": { | |
96 | "id": "https://opencontainers.org/schema/bundle/linux/resources/blockIO/throttleWriteIOPSDevice", | |
97 | 97 | "type": "array", |
98 | 98 | "items": { |
99 | 99 | "$ref": "defs-linux.json#/definitions/blockIODeviceThrottle" |
264 | 264 | "mountLabel": { |
265 | 265 | "id": "https://opencontainers.org/schema/bundle/linux/mountLabel", |
266 | 266 | "type": "string" |
267 | }, | |
268 | "intelRdt": { | |
269 | "id": "https://opencontainers.org/schema/bundle/linux/intelRdt", | |
270 | "type": "object", | |
271 | "properties": { | |
272 | "l3CacheSchema": { | |
273 | "id": "https://opencontainers.org/schema/bundle/linux/intelRdt/l3CacheSchema", | |
274 | "type": "string" | |
275 | } | |
276 | } | |
267 | 277 | } |
268 | 278 | } |
269 | 279 | } |
0 | 0 | { |
1 | "description": "Open Container Runtime Specification Container Configuration Schema", | |
1 | "description": "Open Container Initiative Runtime Specification Container Configuration Schema", | |
2 | 2 | "$schema": "http://json-schema.org/draft-04/schema#", |
3 | 3 | "id": "https://opencontainers.org/schema/bundle", |
4 | 4 | "type": "object", |
124 | 124 | "properties": { |
125 | 125 | "bounding": { |
126 | 126 | "id": "https://opencontainers.org/schema/bundle/process/linux/capabilities/bounding", |
127 | "type": "array", | |
128 | "items": { | |
129 | "type": "string" | |
130 | } | |
127 | "$ref": "defs.json#/definitions/ArrayOfStrings" | |
131 | 128 | }, |
132 | 129 | "permitted": { |
133 | 130 | "id": "https://opencontainers.org/schema/bundle/process/linux/capabilities/permitted", |
134 | "type": "array", | |
135 | "items": { | |
136 | "type": "string" | |
137 | } | |
131 | "$ref": "defs.json#/definitions/ArrayOfStrings" | |
138 | 132 | }, |
139 | 133 | "effective": { |
140 | 134 | "id": "https://opencontainers.org/schema/bundle/process/linux/capabilities/effective", |
141 | "type": "array", | |
142 | "items": { | |
143 | "type": "string" | |
144 | } | |
135 | "$ref": "defs.json#/definitions/ArrayOfStrings" | |
145 | 136 | }, |
146 | 137 | "inheritable": { |
147 | 138 | "id": "https://opencontainers.org/schema/bundle/process/linux/capabilities/inheritable", |
148 | "type": "array", | |
149 | "items": { | |
150 | "type": "string" | |
151 | } | |
139 | "$ref": "defs.json#/definitions/ArrayOfStrings" | |
152 | 140 | }, |
153 | 141 | "ambient": { |
154 | 142 | "id": "https://opencontainers.org/schema/bundle/process/linux/capabilities/ambient", |
155 | "type": "array", | |
156 | "items": { | |
157 | "type": "string" | |
158 | } | |
143 | "$ref": "defs.json#/definitions/ArrayOfStrings" | |
159 | 144 | } |
160 | 145 | } |
161 | 146 | }, |
17 | 17 | }, |
18 | 18 | "cappedCPU": { |
19 | 19 | "id": "https://opencontainers.org/schema/bundle/solaris/cappedCPU", |
20 | "$ref": "defs.json#/definitions/mapStringString" | |
20 | "type": "object", | |
21 | "properties": { | |
22 | "ncpus": { | |
23 | "id": "https://opencontainers.org/schema/bundle/solaris/cappedCPU/ncpus", | |
24 | "type": "string" | |
25 | } | |
26 | } | |
21 | 27 | }, |
22 | 28 | "cappedMemory": { |
23 | 29 | "id": "https://opencontainers.org/schema/bundle/solaris/cappedMemory", |
24 | "$ref": "defs.json#/definitions/mapStringString" | |
30 | "type": "object", | |
31 | "properties": { | |
32 | "physical": { | |
33 | "id": "https://opencontainers.org/schema/bundle/solaris/cappedMemory/physical", | |
34 | "type": "string" | |
35 | }, | |
36 | "swap": { | |
37 | "id": "https://opencontainers.org/schema/bundle/solaris/cappedMemory/swap", | |
38 | "type": "string" | |
39 | } | |
40 | } | |
25 | 41 | }, |
26 | 42 | "anet": { |
27 | 43 | "id": "https://opencontainers.org/schema/bundle/solaris/anet", |
28 | 44 | "type": "array", |
29 | 45 | "items": { |
30 | "$ref": "defs.json#/definitions/mapStringString" | |
46 | "type": "object", | |
47 | "properties": { | |
48 | "linkname": { | |
49 | "type": "string" | |
50 | }, | |
51 | "lowerLink": { | |
52 | "type": "string" | |
53 | }, | |
54 | "allowedAddress": { | |
55 | "type": "string" | |
56 | }, | |
57 | "configureAllowedAddress": { | |
58 | "type": "string" | |
59 | }, | |
60 | "defrouter": { | |
61 | "type": "string" | |
62 | }, | |
63 | "macAddress": { | |
64 | "type": "string" | |
65 | }, | |
66 | "linkProtection": { | |
67 | "type": "string" | |
68 | } | |
69 | } | |
31 | 70 | } |
32 | 71 | } |
33 | 72 | } |
0 | 0 | { |
1 | "description": "Definitions used throughout the Open Container Runtime Specification", | |
1 | "description": "Definitions used throughout the Open Container Initiative Runtime Specification", | |
2 | 2 | "definitions": { |
3 | 3 | "int8": { |
4 | 4 | "type": "integer", |
144 | 144 | ] |
145 | 145 | }, |
146 | 146 | "ociVersion": { |
147 | "description": "The version of Open Container Runtime Specification that the document complies with", | |
147 | "description": "The version of Open Container Initiative Runtime Specification that the document complies with", | |
148 | 148 | "type": "string" |
149 | 149 | }, |
150 | 150 | "annotations": { |
3 | 3 | |
4 | 4 | # <a name="ociRuntimeSpecAbstract" />Abstract |
5 | 5 | |
6 | The OCI Runtime Specification aims to specify the configuration, execution environment, and lifecycle of a container. | |
6 | The Open Container Initiative Runtime Specification aims to specify the configuration, execution environment, and lifecycle of a container. | |
7 | 7 | |
8 | 8 | A container's configuration is specified as the `config.json` for the supported platforms and details the fields that enable the creation of a container. |
9 | 9 | The execution environment is specified to ensure that applications running inside a container have a consistent environment between runtimes along with common actions defined for the container's lifecycle. |
3 | 3 | |
4 | 4 | // Spec is the base configuration for the container. |
5 | 5 | type Spec struct { |
6 | // Version of the Open Container Runtime Specification with which the bundle complies. | |
6 | // Version of the Open Container Initiative Runtime Specification with which the bundle complies. | |
7 | 7 | Version string `json:"ociVersion"` |
8 | 8 | // Process configures the container process. |
9 | 9 | Process *Process `json:"process,omitempty"` |