Commit Graph

55 Commits

Author SHA1 Message Date
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
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
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
W. Trevor King f2cc9fdb60 config: Update 'OpenContainer specification' wording
Catch up with the spec title from faad7e0f (README: title rename,
2016-04-04, #365).

Also make the Go comment consistent with the Markdown spec (no need to
maintain two phrasings for the same idea).  The only difference
between the phrasings is now some shuffling at the beginning to start
off with the property name (to keep godoc happy).

The JSON Schema entry (in defs.json) is different too, because it has
to apply to both the configuration and state JSON, so mentioning
"bundle" makes less sense than mentioning "document".

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-08-02 23:41:05 -07:00
Michael Crosby b45aa77484 Merge pull request #502 from wking/optional-linux-solaris
specs-go/config: Make Linux and Solaris omitempty (again)
2016-06-24 15:39:51 -07:00
John Howard c601539f01 Typo in apparmorprofile comment
Signed-off-by: John Howard <John.Howard@microsoft.com>
2016-06-21 13:53:58 -07:00
W. Trevor King 63231576ec specs-go/config: Make Linux and Solaris omitempty (again)
I'd added some omitempties in 5c2193f3 (specs-go/config: Make Linux
and Solaris omitempty, 2016-05-06, #431), but it turns out to not have
the intended effect unless the field is also a pointer type (even
after I shifted the 'omitempty' from the platform tag to the json
tag).  Before this commit:

  $ ./ocitools generate --template <(echo '{}')
  $ jq . config.json
  {
    "ociVersion": "1.0.0-rc1-dev",
    "platform": {
      "os": "linux",
      "arch": "amd64"
    },
    "process": {
      "user": {
        "uid": 0,
        "gid": 0
      },
      "args": [],
      "cwd": "/"
    },
    "root": {
      "path": "rootfs"
    },
    "hooks": {},
    "linux": {
      "cgroupsPath": ""
    },
    "solaris": {
      "cappedCPU": {},
      "cappedMemory": {}
    }
  }

And after this commit:

  $ ./ocitools generate --template <(echo '{}')
  $ jq . config.json
  {
    "ociVersion": "1.0.0-rc1-dev",
    "platform": {
      "os": "linux",
      "arch": "amd64"
    },
    "process": {
      "user": {
        "uid": 0,
        "gid": 0
      },
      "args": [],
      "cwd": "/"
    },
    "root": {
      "path": "rootfs"
    },
    "hooks": {},
  }

The remaining useless properties are addressed by other in-flight pull
requests:

* 5ca74df (config: Make 'process.args' optional, 2016-06-04, #489)
* ad33f9c (config: Explicitly list 'hooks' as optional, 2016-05-06,
  #427)

So I've left them alone here.

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-06-17 22:14:48 -07:00
Abhijeeth Nuthan 2c41403b86 Correction to User struct in specs-go/config.json
Signed-off-by: Abhijeeth Nuthan <abhijeeth.nuthan@oracle.com>
2016-06-09 11:42:30 -07:00
Vincent Batts 831d961964 Merge pull request #397 from cyphar/add-cgroup-namespace
*: add support for cgroup namespace
2016-06-03 13:45:27 -04:00
Aleksa Sarai ce19b8d167 *: add support for cgroup namespace
The cgroup namespace is a new kernel feature available in 4.6+ that
allows a container to isolate its cgroup hierarchy. This currently only
allows for hiding information from /proc/self/cgroup, and mounting
cgroupfs as an unprivileged user. In the future, this namespace may
allow for subtree management by a container.

Signed-off-by: Aleksa Sarai <asarai@suse.de>
2016-06-04 00:14:39 +10:00
Michael Holzheu bb287dd5d7 seccomp: Add ppc and s390x to specs-go/config.go
Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
2016-06-01 11:52:31 -04:00
W. Trevor King 1fa80d2ca6 specs-go/config: Drop platform-independent comment
This has been stale since cb2da543 (config: Single, unified config
file, 2015-12-28, #284), when we dropped the attempt to distinguish
between platform-independent and platform-dependent configuration.

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-05-24 14:18:53 -07:00
Qiang Huang be7676409b Merge pull request #429 from wking/terminal-omitempty
specs-go/config.go: Make Process.Terminal omitempty
2016-05-10 17:23:43 +08:00
Qiang Huang d33a8e17cb Merge pull request #430 from wking/readonly-omitempty
specs-go/config.go: Make Root.Readonly omitempty
2016-05-10 17:21:30 +08:00
W. Trevor King 5c2193f357 specs-go/config: Make Linux and Solaris omitempty
Both fields are optional, so you could conceivably have neither.
However, in most cases folks will populate the one corresponding to
their platform.  The one that *doesn't* match their platform must not
show up, in order to avoid violating the:

  This should only be set if **`platform.os`** is ...

phrasing.

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-05-06 23:58:09 -07:00
W. Trevor King f307cfc939 specs-go/config.go: Make Root.Readonly omitempty
It's an optional setting, and this change will fix the wordy:

  $ ocitools generate --template <(echo '{}')
  $ grep readonly config.json
      "readonly": false,

Instead, config.json will not contain a 'readonly' entry at all.

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-05-06 22:16:10 -07:00
W. Trevor King 41e94ae3d5 specs-go/config.go: Make Process.Terminal omitempty
It's an optional setting, and this change will fix the wordy:

  $ ocitools generate --template <(echo '{}')
  $ grep terminal config.json
      "terminal": false,

Instead, config.json will not contain a 'terminal' entry at all.

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-05-06 21:38:23 -07:00
Amit Saha 815ce4e2eb UID and GID for the main process are not optional
The spec requires UID and GID to be specified, so we shouldn't
ignore if they are not specified.

Signed-off-by: Amit Saha <amitsaha.in@gmail.com>
2016-05-06 10:41:51 +10:00
Abhijeeth Nuthan 7c9daebaa7 Introducing Solaris in OCI
Signed-off-by: Abhijeeth Nuthan <abhijeeth.nuthan@oracle.com>
2016-05-04 12:19:27 -07:00
W. Trevor King 440fc5b36e specs-go/config: Make Spec.Mounts omitempty (#408)
* specs-go/config: Make Spec.Mounts omitempty

Otherwise:

  $ ocitools generate --mount-cgroups=no --template <(echo {})
  $ grep mounts config.json
          "mounts": null,

The language in config.md#Mounts is:

> You can add array of mount points...

which I think means 'MAY'.

Signed-off-by: W. Trevor King <wking@tremily.us>

* config: Use 'MAY' (RFC 2119) for mounts

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-04-28 09:46:54 -04:00
Mrunal Patel e87d7d2ba9 Fix remnants from SelinuxProcessLabel to SelinuxLabel rename
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2016-04-22 13:51:31 -07:00
Mrunal Patel 7350d5e1f1 Add support for Selinux mount context labels
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2016-04-22 13:40:49 -07:00
Michael Crosby adcbe530a9 Add masked and readonly paths
Fixes #320

This adds the maskedPaths and readonlyPaths fields to the spec so that
proper masking and setting of files in /proc can be configured.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-04-01 10:46:41 -07:00
Mrunal Patel e23fbbb408 Merge pull request #346 from crosbymichael/hook-timeout
Add timeout field to hooks
2016-03-18 10:21:31 -07:00
Michael Crosby 5a3b1816b2 Add timeout field to hooks
So that runtimes don't lock up forever waiting on a hook to return I
added a timeout field.  This allows the author to specify the timeout in
seconds that they want the hook to run before aborting the hook and
container execution.

I think the hook is the proper place to specify a timeouot like this
because any type of overall timeout in the runtime will probably not
work for all hooks and will not be flexable enough.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-03-16 16:51:29 -07:00
Vincent Batts 4d4a07952e Merge pull request #340 from liangchenye/master
add omitempty to 'Devices
2016-03-16 13:27:20 -04:00