Codebase list golang-github-opencontainers-specs / b35906f
New upstream version 1.0.1 aviau 6 years ago
17 changed file(s) with 181 addition(s) and 102 deletion(s). Raw diff Collapse all Expand all
66 ChengTiesheng <chengtiesheng@huawei.com>
77 Daniel, Dao Quang Minh <dqminh89@gmail.com>
88 Doug Davis <dug@us.ibm.com> <duglin@users.noreply.github.com>
9 James O. D. Hunt <james.o.hunt@intel.com>
910 John Howard <jhoward@microsoft.com> <John.Howard@microsoft.com>
1011 LinZhinan(Zen Lin) <linzhinan@huawei.com>
1112 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:
117 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
00 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)
134
235 Changes with v1.0.0:
336
5151 Typos and grammatical errors can go straight to a pull-request.
5252 When in doubt, start on the [mailing-list](#mailing-list).
5353
54 ### Weekly Call
54 ### Meetings
5555
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.
6157 There is an [iCalendar][rfc5545] format for the meetings [here](meeting.ics).
62
6358 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.
6560 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].
6661
6762 ### Mailing List
1111
1212 | Path | Type |
1313 | -------- | ------ |
14 | /proc | [procfs][] |
14 | /proc | [proc][] |
1515 | /sys | [sysfs][] |
1616 | /dev/pts | [devpts][] |
1717 | /dev/shm | [tmpfs][] |
3434 * **`user`** the container will be able to remap user and group IDs from the host to local users and groups within the container.
3535 * **`cgroup`** the container will have an isolated view of the cgroup hierarchy.
3636
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).
3839 The runtime MUST place the container process in the namespace associated with that `path`.
3940 The runtime MUST [generate an error](runtime.md#errors) if `path` is not associated with a namespace of type `type`.
4041
326327
327328 * **`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.
328329 * **`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
333336
334337 You MUST specify at least one of `weight` or `leafWeight` in a given entry, and MAY specify both.
335338
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.
339349 * **`rate`** *(uint64, REQUIRED)* - IO rate limit for the device
340350
341351 #### Example
450460 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.
451461 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).
452462
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.
454464
455465 The following parameters can be specified for the container:
456466
457467 * **`l3CacheSchema`** *(string, OPTIONAL)* - specifies the schema for L3 cache id and capacity bitmask (CBM).
458468 If `l3CacheSchema` is set, runtimes MUST write the value to the `schemata` file in the `<container-id>` directory discussed in `intelRdt`.
459469
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.
461471
462472 ### Example
463473
641651 [devpts]: https://www.kernel.org/doc/Documentation/filesystems/devpts.txt
642652 [file]: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_164
643653 [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
645655 [seccomp]: https://www.kernel.org/doc/Documentation/prctl/seccomp_filter.txt
646656 [sharedsubtree]: https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt
647657 [sysfs]: https://www.kernel.org/doc/Documentation/filesystems/sysfs.txt
5050
5151 * **`count`** *(uint64, OPTIONAL)* - specifies the number of CPUs available to the container.
5252 * **`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.
5454
5555 #### Example
5656
0 # <a name="containerConfigurationFile" />Container Configuration file
0 # <a name="configuration" />Configuration
11
22 This configuration file contains metadata necessary to implement [standard operations](runtime.md#operations) against the container.
33 This includes the process to run, environment variables to inject, sandboxing features to use, etc.
1313
1414 ## <a name="configSpecificationVersion" />Specification version
1515
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.
1818 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.
1919
2020 ### Example
153153 * **`cwd`** (string, REQUIRED) is the working directory that will be set for the executable.
154154 This value MUST be an absolute path.
155155 * **`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].
157157 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*.
158158
159159 ### <a name="configPOSIXProcess" />POSIX process
167167 * Linux: valid values are defined in the [`getrlimit(2)`][getrlimit.2] man page, such as `RLIMIT_MSGQUEUE`.
168168 * Solaris: valid values are defined in the [`getrlimit(3)`][getrlimit.3] man page, such as `RLIMIT_CORE`.
169169
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.
171171 For each entry in `rlimits`, a [`getrlimit(3)`][getrlimit.3] on `type` MUST succeed.
172172 For the following properties, `rlim` refers to the status returned by the `getrlimit(3)` call.
173173
197197 * **`ambient`** (array of strings, OPTIONAL) the `ambient` field is an array of ambient capabilities that are kept for the process.
198198 * **`noNewPrivileges`** (bool, OPTIONAL) setting `noNewPrivileges` to true prevents the process from gaining additional privileges.
199199 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].
201201 If `oomScoreAdj` is set, the runtime MUST set `oom_score_adj` to the given value.
202202 If `oomScoreAdj` is not set, the runtime MUST NOT change the value of `oom_score_adj`.
203203
841841 [cgroup-v1-memory_2]: https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt
842842 [selinux]:http://selinuxproject.org/page/Main_Page
843843 [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
845845 [semver-v2.0.0]: http://semver.org/spec/v2.0.0.html
846846 [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
848848 [naming-a-volume]: https://aka.ms/nb3hqb
849849
850850 [capabilities.7]: http://man7.org/linux/man-pages/man7/capabilities.7.html
55 ## <a name="implementationsRuntimeContainer" />Runtime (Container)
66
77 * [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
810
911 ## <a name="implementationsRuntimeVirtualMachine" />Runtime (Virtual Machine)
1012
1113 * [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®.
1315
1416 ## <a name="implementationsTestingTools" />Testing & Tools
1517
2022
2123 [runc]: https://github.com/opencontainers/runc
2224 [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
2427 [octool]: https://github.com/kunalkushwaha/octool
2528 [oct]: https://github.com/huawei-openlab/oct
2629 [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
1919 END:DAYLIGHT
2020 END:VTIMEZONE
2121 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
2626 DURATION:PT1H
2727 SUMMARY:OCI TDC Meeting
2828 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
4631 Web: https://www.uberconference.com/opencontainers\n
4732 Audio-only: +1 415 968 0849 (no PIN needed)
4833 LOCATION:https://www.uberconference.com/opencontainers
122122
123123 This operation MUST [generate an error](#errors) if it is not provided the container ID.
124124 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.
126126
127127 ### <a name="runtimeDelete" />Delete
128128 `delete <container-id>`
8585 "$ref": "defs-linux.json#/definitions/blockIODeviceThrottle"
8686 }
8787 },
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",
9797 "type": "array",
9898 "items": {
9999 "$ref": "defs-linux.json#/definitions/blockIODeviceThrottle"
264264 "mountLabel": {
265265 "id": "https://opencontainers.org/schema/bundle/linux/mountLabel",
266266 "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 }
267277 }
268278 }
269279 }
00 {
1 "description": "Open Container Runtime Specification Container Configuration Schema",
1 "description": "Open Container Initiative Runtime Specification Container Configuration Schema",
22 "$schema": "http://json-schema.org/draft-04/schema#",
33 "id": "https://opencontainers.org/schema/bundle",
44 "type": "object",
124124 "properties": {
125125 "bounding": {
126126 "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"
131128 },
132129 "permitted": {
133130 "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"
138132 },
139133 "effective": {
140134 "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"
145136 },
146137 "inheritable": {
147138 "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"
152140 },
153141 "ambient": {
154142 "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"
159144 }
160145 }
161146 },
1717 },
1818 "cappedCPU": {
1919 "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 }
2127 },
2228 "cappedMemory": {
2329 "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 }
2541 },
2642 "anet": {
2743 "id": "https://opencontainers.org/schema/bundle/solaris/anet",
2844 "type": "array",
2945 "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 }
3170 }
3271 }
3372 }
00 {
1 "description": "Definitions used throughout the Open Container Runtime Specification",
1 "description": "Definitions used throughout the Open Container Initiative Runtime Specification",
22 "definitions": {
33 "int8": {
44 "type": "integer",
144144 ]
145145 },
146146 "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",
148148 "type": "string"
149149 },
150150 "annotations": {
33
44 # <a name="ociRuntimeSpecAbstract" />Abstract
55
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.
77
88 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.
99 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.
33
44 // Spec is the base configuration for the container.
55 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.
77 Version string `json:"ociVersion"`
88 // Process configures the container process.
99 Process *Process `json:"process,omitempty"`
77 // VersionMinor is for functionality in a backwards-compatible manner
88 VersionMinor = 0
99 // VersionPatch is for backwards-compatible bug fixes
10 VersionPatch = 0
10 VersionPatch = 1
1111
1212 // VersionDev indicates development branch. Releases will be empty string.
1313 VersionDev = ""