Commit Graph

93 Commits

Author SHA1 Message Date
zhouhao 513ab686e9 Add new architectures from libseccomp 2.3.2
Signed-off-by: zhouhao <zhouhao@cn.fujitsu.com>
2017-03-02 14:33:06 +08:00
Mrunal Patel 40474dd78c Merge pull request #704 from hqhq/use_uint64_for_memory
Set specs value the same as kernel API input
2017-03-01 14:05:37 -08:00
Qiang Huang ec9449187b Set specs value the same as kernel API input
This partially revert #648 , after a second thought, I think we
should use specs value the same as kernel API input, see:
https://github.com/opencontainers/runtime-spec/issues/692#issuecomment-281889852

For memory and hugetlb limits *.limit_in_bytes, cgroup APIs take the values
as string, but the parsed values are unsigned long, see:
https://github.com/torvalds/linux/blob/v4.10/mm/page_counter.c#L175-L193

For `cpu.cfs_quota_us` and `cpu.rt_runtime_us`, cgroup APIs take the input
value as signed long long, while `cpu.cfs_period_us` and `cpu.rt_periof_us`
take the input value as unsigned long long.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2017-03-01 09:10:43 +08:00
Michael Crosby 52461516ea Make mount type and source optional
These are optional on multiple platforms and should be left up to the
runtime/host system for validation.

Closes #470

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-02-28 13:50:18 -08:00
Mrunal Patel ae7a541930 Merge pull request #657 from GrantSeltzer/improve-seccomp-spec
config: Improve seccomp format to be more expressive
2017-02-24 18:59:49 -08:00
grantseltzer 652323cd77 improve seccomp format to be more expressive
Signed-off-by: grantseltzer <grantseltzer@gmail.com>
2017-02-22 18:17:16 -05:00
Michael Crosby eb114f0570 Add ambient and bounding capability support
Closes #668

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-02-22 14:47:51 -08:00
Vincent Batts 0d104bb63c Merge pull request #672 from vbatts/bump-version
Bump version for 1.0.0-rc4
2017-02-06 12:30:34 -05:00
Michael Crosby 5d3f1674e6 Rename bundlePath to bundle
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-02-02 13:10:54 -08:00
Vincent Batts 2a234c749b
version: master back to -dev
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-01-30 08:10:59 -05:00
Vincent Batts 339eba5240
version: release 1.0.0-rc4
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-01-30 08:10:51 -05:00
Mrunal Patel 868e631000 Remove string pointers
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2017-01-12 10:04:13 -08:00
Mrunal Patel a3dd52f583 Merge pull request #646 from q384566678/json-test
Perfect json content
2017-01-11 14:24:24 -08:00
Qiang Huang 4b42ec4480 Merge pull request #648 from hqhq/all_negative_value
Allow negative value for some resource fields
2017-01-09 21:00:19 -06:00
zhouhao 2d5e0df2f0 Perfect json content
Signed-off-by: zhouhao <zhouhao@cn.fujitsu.com>
2017-01-06 10:34:38 +08:00
Qiang Huang 082e93a2bd Allow negative value for some resource fields
Carry #499

For these values, cgroup kernal APIs accept -1 to set
them as unlimited, as docker and runc all support
update resources, we should not set drawbacks in spec.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2017-01-05 19:03:57 +08:00
W. Trevor King a78f255982 config: Explicitly list 'hooks' as optional
And make it omitempty, otherwise:

  $ ocitools generate --template <(echo '{}')
  $ cat config.json | jq -S .
  {
    "hooks": {},
    ...
  }

To provide space for the type information and 'optional', I've
shuffled the hook docs to follow our usual:

  * **`{property}`** ({type}, {when-needed}) {notes}

format.  I've kept the separate event-trigger sections (e.g. "###
Prestart") since they go into more detail on the timing, purpose, and
exit handling for the different events (and that seemed like too much
information to put into the nested lists).

I've replaced the Go reference from 48049d2 (Clarify the semantics of
hook elements, 2015-11-25, #255) with POSIX references (following the
new process docs) to address pushback against referencing Go [1,2] in
favor of POSIX links [3].  Rob Dolin had suggested
"platform-appropriate" wording [4], but it seems like Visual Studio
2015 supports execv [5], and providing an explicit
"platform-appropriate" wiggle seems like it's adding useless
complication.

[1]: https://github.com/opencontainers/runtime-spec/pull/427#discussion_r62362761
[2]: http://ircbot.wl.linuxfoundation.org/meetings/opencontainers/2016/opencontainers.2016-05-18-17.01.log.html#l-46
[3]: http://ircbot.wl.linuxfoundation.org/meetings/opencontainers/2016/opencontainers.2016-05-18-17.01.log.html#l-52
[4]: http://ircbot.wl.linuxfoundation.org/meetings/opencontainers/2016/opencontainers.2016-05-18-17.01.log.html#l-54
[5]: https://msdn.microsoft.com/en-us/library/886kc0as.aspx

Signed-off-by: W. Trevor King <wking@tremily.us>
2017-01-04 14:12:16 -08:00
Vincent Batts a6118d4f9d
version: master back to -dev
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-12-12 13:42:18 -05:00
Vincent Batts 794ca7ac88
version: release rc3
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-12-12 13:42:06 -05:00
Zhang Wei c8f5a56909 Rename `version` to `ociVersion` according to runtime.md
According to definition of [state](runtime.md#State), we should rename
`version` field in `state.go` to `ociVersion`

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-11-29 15:44:03 +08:00
Ma Shimiao f305e643dc spec-go/config: comment fix
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2016-11-14 16:14:22 +08:00
Mrunal Patel dc42b45811 Merge pull request #601 from hqhq/rewrite_idmapping
Rewrite LinuxIDMappings
2016-10-31 13:58:45 -07:00
Ma Shimiao ef9ce84cf9 specs-go/config: fix required items type
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2016-10-31 09:18:11 +08:00
Qiang Huang 621684f645 Rewrite LinuxIDMappings
Basicly make the format consistent with others, no
semantics change.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-10-27 19:00:39 +08:00
Michael Crosby a39be468c9 Merge pull request #567 from jhowardmsft/jjh/aggressivenamespacing
Aggressive namespacing
2016-09-30 09:46:08 -07:00
Vincent Batts 1c7c27d043 Merge pull request #573 from jhowardmsft/jjh/addwindows
Add support for Windows based containers
2016-09-26 16:19:32 -04:00
John Howard dc8f2c2e6e Add support for Windows-based containers
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-09-22 12:13:04 -07:00
John Howard a502caf65f config: Add consoleSize to process
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-09-20 15:19:27 -07:00
John Howard e918daac26 Aggressive namespacing
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-09-20 15:05:29 -07:00
Mrunal Patel 7bce59f225 Merge pull request #564 from jhowardmsft/jjh/processplatformtags
Platform annotations on `Process` struct
2016-09-20 14:18:47 -07:00
Vincent Batts f0ecb455b1 Merge pull request #557 from vbatts/bump-version-1.0.0-rc2
Bump version 1.0.0 rc2
2016-09-15 19:25:09 -04:00
John Howard ce3ac33d77 Platform markers on Process struct
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-09-15 10:23:45 -07:00
W. Trevor King e086a3e33c specs-go/config: Drop "this field is platform dependent" (again)
We dropped these in 47740802 (specs-go/config: Drop "this field is
platform dependent", 2016-09-14, #568) but f9e48e00 (Windows: User
struct changes, 2016-09-14, #565) was developed in parallel and
brought in a new one.

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-09-15 08:27:29 -07:00
Vincent Batts a992b1b72a Merge pull request #565 from jhowardmsft/jjh/user
Windows: User struct changes
2016-09-15 11:21:57 -04:00
W. Trevor King 47740802f8 specs-go/config: Drop "this field is platform dependent"
These comments first landed in 820131db (*: flatten platform dependent
source, 2016-03-08, #310).  But you can tell they're platform
dependent by the platform:"..." tags.  The Go comment doesn't add
any additional information.

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-09-14 16:23:45 -07:00
John Howard f9e48e0024 Windows: User struct changes
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-09-14 16:14:38 -07:00
Vincent Batts 769176bbf8
version: bump master to -dev
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-09-08 09:56:55 -04:00
Vincent Batts 7dab1a245d
version: 1.0.0-rc2
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-09-08 09:55:21 -04:00
Qiang Huang 069e8e1c16 Merge pull request #531 from wking/pointer-omitempty
specs-go/config: Make KernelTCP and ClassID omitempty
2016-08-26 09:55:28 +08:00
Mrunal Patel 90027b005b Merge pull request #525 from wking/go-comment-sync
config: Synchronize comments between Markdown and Go
2016-08-17 11:03:15 -07:00
W. Trevor King 980ed05aa5 specs-go/config: Make KernelTCP and ClassID omitempty
Found with:

  $ git grep ' \*' origin/master -- specs-go/*.go | grep -v omitempty
  origin/master:specs-go/config.go:       KernelTCP *uint64 `json:"kernelTCP"`
  origin/master:specs-go/config.go:       ClassID *uint32 `json:"classID"`

Both settings are optional:

  $ git grep '`kernelTCP`\|`classID`' origin/master
  origin/master:config-linux.md:* **`kernelTCP`** *(uint64, optional)* - ...
  origin/master:config-linux.md:* **`classID`** *(uint32, optional)* - ...

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-08-13 09:40:47 -07:00
W. Trevor King 054d2df15a config-linux: Make linux.resources.devices explicitly optional
And mark it omitempty to avoid:

  $ ocitools generate --template <(echo '{"linux": {"resources": {}}}') | jq .linux
  {
    "resources": {
      "devices": null
    }
  }

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-08-03 09:13:53 -07:00
W. Trevor King 7477fa519f config: config: Consistent Markdown/Go wording for 'annotations'
I've replaced the old OPTIONAL with our usual:

  (<type>, <optional|required>)

to get the property name first, since that translates more directly
into a Go comment that godoc will like.

The new Go comment is much shorter, dropping "unstructured" (because
the Markdown says "structured or unstructured") and "set by external
tools..." (because *everything* in the configuration JSON is set by
external-to-the-runtime tools).

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-08-03 00:18:07 -07:00
W. Trevor King 9837b6b725 config: Consistent Markdown/Go wording for 'hooks'
The new wording isn't particularly close to either of the old
wordings, but it reads more clearly to me.  I've also added our usual:

  (<type>, <required|optional>)

to the Markdown so folks can see that this is an optional object
(although see [1] for a more complete version).

[1]: https://github.com/opencontainers/runtime-spec/pull/427
     Subject: config: Explicitly list 'hooks' as optional

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-08-03 00:16:35 -07:00
W. Trevor King ad81edca26 config: Consistent Markdown/Go wording for 'mounts'
I've replaced the old MAY with our usual

  (<type>, <optional|required>)

to get the property name first, since that translates more directly
into a Go comment that godoc will like.

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-08-03 00:16:35 -07:00
W. Trevor King 1a8611644f config: Consistent Markdown/Go wording for 'hostname'
I've changed the old "as it is accessible to ..." to the more compact
"as seen by ..." language from the old Markdown version, although I
don't think it's strictly necessary.  The original "accessbile to"
language is from 77d44b10 (Update runtime.md, 2015-06-16), which
actually looked fairly similar to the language I'm using here.  That
commit's "hostname for the container" lanuage went away in 7ac41c69
(config.md: reformat into a standard style, 2015-06-30), although that
commit made too many changes to motivate them all at that level.

I've left that language out of the Go comment, because truncating for
compact Go comments is fine (the Markdown entry is canonical, and the
Go comment is just to provide some minimal context).

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-08-03 00:16:35 -07:00
W. Trevor King d7b8877547 config: Consistent Markdown/Go/JSON-Schema wording for 'root'
I've also added our usual:

  (<type>, <required|optional>)

to the Markdown so folks can see that this is a required object.

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-08-03 00:16:24 -07:00
W. Trevor King 9500be8470 Replace "container's main process" with "container process"
We use both forms, but the latter was more popular.  Before this
branch:

  $ git grep -i 'container process' origin/master | wc -l
  13
  $ git grep -i 'main process' origin/master | wc -l
  4

Also fix "process id" -> "process ID" in one of the lines I touched,
to match fork(2) [1].

[1]: http://man7.org/linux/man-pages/man2/fork.2.html

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-08-03 00:10:52 -07:00
W. Trevor King fc103cf515 config: Consistent Markdown/Go wording for 'process'
I've dropped "main process" because "container process" is currently a
much more popular way of identifying that process in this
specification.  Before this commit:

  $ git grep -i 'main process' | wc -l
  4
  $ git grep -i 'container process' | wc -l
  13

I've also added our usual:

  (<type>, <required|optional>)

to the Markdown so folks can see that this is a required object.

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-08-03 00:10:45 -07:00
W. Trevor King 57fc2ca54c config: Consistent Markdown/Go wording for 'platform'
Don't mention OS and Arch, since they're covered by the list (in
Markdown) and Platform struct (in Go).  This gives us one less place
to update if we ever change the schema for the platform object.

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-08-02 23:45:03 -07:00