Commit Graph

64 Commits

Author SHA1 Message Date
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
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 7d4fe7380f version: bump to -dev for master
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-06-03 15:47:55 -04:00
Vincent Batts 06479209bd version: v1.0.0-rc1
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-06-03 15:47:55 -04: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
Vincent Batts eeeecb0f44 Merge pull request #485 from duglin/FixStatus
Add 'status' to state.go
2016-06-03 13:44:40 -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
Doug Davis 9cb0c7fa6c Add annotations to the state json
Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-06-02 13:31:09 -07:00
Doug Davis a93873a099 Add 'status' to state.go
Forgot to do this in previous PR.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-06-02 13:28:59 -07: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
Vincent Batts 54fba081a4 version: bump v0.6.0-dev
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-04-12 10:00:37 -04:00
Vincent Batts 78e6667ae2 version: v0.5.0
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-04-12 10:00:03 -04: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
Michael Crosby 51f8868c30 Remove ffjson because of gccgo issues
Fixes #362

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-03-31 11:21:45 -07:00
Michael Crosby 0eb138d1d6 Regenerate ffjson for Timeout field
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-03-23 16:16:13 -07:00