1
0
mirror of https://github.com/opencontainers/runtime-spec.git synced 2026-02-05 18:45:18 +01:00

43 Commits

Author SHA1 Message Date
Akihiro Suda
689874fc76 Add features.md to formalize the runc features JSON
Add `features.md` and `features-linux.md`, to formalize the `runc features` JSON that was introduced in runc v1.1.0.

A runtime caller MAY use this JSON to detect the features implemented by the runtime.

The spec corresponds to https://github.com/opencontainers/runc/blob/v1.1.0/types/features/features.go
(opencontainers/runc PR 3296, opencontainers/runc PR 3310)

Differences since runc v1.1.0:
- Add `.linux.intelRdt.enabled` field
- Add `.linux.cgroup.rdma` field
- Add `.linux.seccomp.knownFlags` and `.linux.seccomp.supportedFlags` fields (Implemented in runc PR 3588)

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2023-03-22 04:04:57 +09:00
Austin Vazquez
167ffb42e3 Add Go 1.20 support to CI
Adds a Go compiler matrix to CI for testing of latest Go versions.
Updates and pins to major version GitHub actions packages.

Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2023-03-16 18:12:37 +00:00
Austin Vazquez
15d2a5a2ed Switch Go linting to use golangci-lint
Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2023-03-16 18:07:48 +00:00
Josh Dolitsky
0608c1f5b8 Switch to GitHub Actions, CODEOWNERS, etc.
Signed-off-by: Josh Dolitsky <josh@dolit.ski>
2021-10-29 17:53:56 -04:00
Rodrigo Campos
e9429bb642 Makefile: Fix golint URL used in go get
Otherwise, commands like "make install.tools" fail with:

	$ make install.tools
	go get -u github.com/golang/lint/golint
	code in directory /<path>/github.com/golang/lint/golint expects import "golang.org/x/lint/golint"

The github repository says this URL should be used for go get. After
this patch, make install.tools works just fine.

Signed-off-by: Rodrigo Campos <rodrigo@kinvolk.io>
2020-11-05 19:31:43 +01:00
Vincent Batts
5ef5c780de Makefile: avoid SELinux for making docs
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2020-03-24 12:44:00 -04:00
Vincent Batts
a87fe24391 Makefile: no DCO with git-validation on travis
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2020-02-03 09:59:32 -05:00
W. Trevor King
692abcbce8 .travis: Bump minimum Go version to 1.9
Go 1.10 was released on 2018-02-16 [1] and Go only supports the last
two major releases [2] (so currently 1.9 and 1.10).  Besides ensuring
that we are compatible with the currently-maintained releases, this
will avoid our current test failure now that golint has dropped
support for Go 1.6 [3]:

  $ make install.tools
  go get -u github.com/golang/lint/golint
  # golang.org/x/tools/go/internal/gcimporter
  ../../../golang.org/x/tools/go/internal/gcimporter/iimport.go:77: undefined: io.SeekCurrent
  ../../../golang.org/x/tools/go/internal/gcimporter/iimport.go:80: undefined: io.SeekCurrent
  ../../../golang.org/x/tools/go/internal/gcimporter/iimport.go:156: undefined: io.SeekCurrent
  ../../../golang.org/x/tools/go/internal/gcimporter/iimport.go:187: r.declReader.Reset undefined (type bytes.Reader has no field or method Reset)
  ../../../golang.org/x/tools/go/internal/gcimporter/iimport.go:226: r.declReader.Reset undefined (type bytes.Reader has no field or method Reset)
  make: *** [.install.golint] Error 2

Quoting the versions in the Travis YAML is recommended to avoid them
being interpreted as floating point numbers [4].

[1]: https://golang.org/doc/devel/release.html#go1.10
[2]: https://golang.org/doc/devel/release.html#policy
[3]: https://travis-ci.org/opencontainers/runtime-spec/jobs/376692151#L469
[4]: https://docs.travis-ci.com/user/languages/go/#Specifying-a-Go-version-to-use

Signed-off-by: W. Trevor King <wking@tremily.us>
2018-05-09 12:44:45 -07:00
W. Trevor King
327a6367f0 Makefile: Remove unnecessary .PHONY entries
The only .PHONY entry we *need* is for schema/validate, since that's a
real file but we haven't told Make about its real dependencies (which
involve complicated Go lookups).  I'm personally in favor of using
.PHONY for all targets that aren't on-disk files, because it hints to
readers that the rule is not generating a file at the target.  But
there has been resistance to adding .PHONY entries to all such cases
(e.g. [1,2]), so this commit brings us around to a
internally-consistent "only use .PHONY when you always need it"
position.

That means that, for example, users who create files named 'clean'
will turn 'clean' the target into a no-op, but runtime-spec
maintainers are ok with that.

[1]: https://github.com/opencontainers/runtime-spec/pull/791#issuecomment-300369882
[2]: https://github.com/opencontainers/runtime-spec/pull/791#issuecomment-300612827

Signed-off-by: W. Trevor King <wking@tremily.us>
2017-05-10 16:54:53 -07:00
W. Trevor King
dd40abea2e Makefile: Use 'ifdef TRAVIS_COMMIT_RANGE' for git-validation
Only use the auto-ranging when Travis tells us what the range is.  Use
our EPOCH_TEST_COMMIT-based range in all other cases.

ifdef is described in [1].

[1]: https://www.gnu.org/software/make/manual/html_node/Conditional-Syntax.html

Signed-off-by: W. Trevor King <wking@tremily.us>
2017-01-23 15:59:05 -08:00
Mrunal Patel
7839cbb5dc Merge pull request #626 from duglin/specCleanup
Cleanup the spec a bit to remove WG/git text that's not really part of the spec
2016-11-16 10:47:59 -08:00
Doug Davis
e7be40f0c3 Cleanup the spec a bit to remove WG/git text that's not really part of the spec
renamed an href to "container-namespace2" to avoid a dup-warning msg from
the PDF generator

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-11-16 09:50:03 -08:00
W. Trevor King
5a035d534c Makefile: Remove trailing slash from OUTPUT_DIRNAME value
This slash gets added back on (e.g. $(OUTPUT_DIRNAME)/) in all the
places where a trailing slash matters.

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-11-10 21:48:58 -08:00
W. Trevor King
a9c0235304 Makefile: Require Go >= 1.6 for golint
golint dropped support for Go 1.5 [1].

[1]: a428635c58
     Drop support for Go 1.5, 2016-09-15

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-10-12 21:45:55 -07:00
Tianon Gravi
7a36e7ed86 Merge pull request #547 from vbatts/go_vet
ci-tools: versions of golang
2016-09-08 13:44:13 -07:00
Vincent Batts
d4ede0d364 ci-tools: versions of golang
Add and update golang versions. Also fix install.tools target for
installing govet

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-09-08 09:52:46 -04:00
W. Trevor King
ad9d643c3d Makefile: Use a POSIX-compatible test ('==' -> '=')
With dash 0.5.7:

  # make docs
  /bin/sh: 1: test: 1.3.3: unexpected operator
  /bin/sh: 1: test: 1.3.3: unexpected operator
  /bin/sh: 1: test: 1.3.3: unexpected operator
  Makefile:47: *** cannot build output//oci-runtime-spec.pdf without either pandoc or docker.  Stop.
  # command -V test
  test is a shell builtin

POSIX defines '=' for string comparison [1]; the '==' form is a
Bashism.

SHELL was added in f3fdf03 (Makefile: prefer bash, 2016-05-25, #455)
to avoid these "unexpected operator" errors, but there's no reason to
require Bash when we can make the comparison's POSIX compliant.

[1]: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-08-26 08:15:55 -07:00
Qiang Huang
c57a0238b0 Remove code-of-conduct.md and version.md when clean
So we can use latest files after make clean.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-08-26 15:37:04 +08:00
Vincent Batts
f656de6a56 Makefile: filename docs.* -> oci-runtime-spec.*
When this repo was only 'specs', then the generic name was not so bad.
But now there is also the oci-image-spec, so this lines up it's unique
name as well.

This also variablizes the output filename so it will be easier for
release specific names.

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-06-01 13:26:54 -04:00
Vincent Batts
f3fdf03a59 Makefile: prefer bash
https://github.com/opencontainers/runtime-spec/issues/454

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-05-25 08:20:03 -04:00
W. Trevor King
2e2073b362 Makefile: Fix native pandoc invocation
In dc9daf9 (Makefile: Replace vbatts/pandoc with a PANDOC variable
2016-05-06, #428) I'd misunderstood vbatts/pandoc as a call to a
locally-installed pandoc, when it's actually the name of a Docker
image [1,2].  With this commit, we prefer a local pandoc if one
exists, fall back to Docker and vbatts/pandoc if a local 'docker'
exists, and raise an error if neither 'pandoc' nor 'docker' exist.

[1]: https://github.com/opencontainers/runtime-spec/pull/440
[2]: https://github.com/opencontainers/runtime-spec/pull/428#discussion_r63987603

Reported-by: Qiang Huang <h.huangqiang@huawei.com>
Reported-by: Lai Jiangshan <jiangshanlai@gmail.com>
Signed-off-by: W. Trevor King <wking@tremily.us>
2016-05-23 22:34:04 -07:00
W. Trevor King
633f7cf957 Makefile: Hide stderr for 'command -v' calls
Don't spam people with:

  make: command: Command not found

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-05-23 22:31:42 -07:00
W. Trevor King
dc9daf9e58 Makefile: Replace vbatts/pandoc with a PANDOC variable
Defaulting to whichever PANDOC is first in your path.  This mirrors
the existing DOCKER handling.  Folks who want to use the old path can
run:

  $ make PANDOC=vbatts/pandoc ...

I'm not sure why 4ee036fc (*: printable documents, 2015-12-09, #263)
went with a variable for 'docker' but a hard-coded path for 'pandoc'.
I expect it was just oversight.

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-05-06 14:51:06 -07:00
W. Trevor King
1ac46cbd9f Makefile: Use 'command -v' instead of 'which'
The former is in POSIX [1], but the latter is not [2].

[1]: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html
[2]: http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-05-06 14:48:40 -07:00
Vincent Batts
bf58a8f544 Merge pull request #411 from anuthan/solarisSpec
Introducing Solaris in OCI
2016-05-04 16:17:37 -04: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
Vincent Batts
e65fe55686 travis: have make target be travis sensitive
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-05-03 15:25:31 -04:00
Vincent Batts
4941dba4a8 version: include version in produced docs (#406)
Fixes #398

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-05-02 14:10:02 -04:00
Vincent Batts
3db55ea3ba *: fetch code-of-conduct.md from tob (#413)
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-05-02 14:04:54 -04:00
Vincent Batts
c4b846c442 travis: use the Makefile targets
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-04-27 13:16:20 -04:00
Vincent Batts
cc89c12b31 Makefile: add target for tools
As we have several tools used in the Makefile, might as well make them
easier to install.

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-04-27 13:11:59 -04:00
Qiang Huang
fb230df326 Add project.md to table of contents
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-04-12 15:16:10 +08: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
Vincent Batts
54cd96d2fb travis: add go1.6 and work around golint
closes #350

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-03-21 14:29:37 -04:00
Michael Crosby
cfec788d67 Add makefile target for ffjson
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-03-16 11:30:16 -07:00
W. Trevor King
cb2da5430a config: Single, unified config file
Reverting 7232e4b1 (specs: introduce the concept of a runtime.json,
2015-07-30, #88) after discussion on the mailing list [1].  The main
reason is that it's hard to draw a clear line around "inherently
runtime-specific" or "non-portable", so we shouldn't try to do that in
the spec.  Folks who want to flag settings as non-portable for their
own system are welcome to do so (e.g. "we will clobber 'hooks' in
bundles we run") are welcome to do so, but we don't have to have
to split the config into multiple files to do that.

There have been a number of additional changes since #88, so this
isn't a pure Git reversion.  Besides copy-pasting and the associated
link-target updates, I've:

* Restored path -> destination, now that the mount type contains both
  source and target paths again.  I'd prefer 'target' to 'destination'
  to match mount(2), but the pre-7232e4b1 phrasing was 'destination'
  (possibly due to Windows using 'target' for the source?).

* Restored the Windows mount example to its pre-7232e4b1 content.

* Removed required mounts from the config example (requirements landed
  in 3848a238, config-linux: specify the default devices/filesystems
  available, 2015-09-09, #164), because specifying those mounts in the
  config is now redundant.

* Used headers (vs. bold paragraphs) to set off mount examples so we
  get link anchors in the rendered Markdown.

* Replaced references to runtime.json with references to config.json.

[1]: https://groups.google.com/a/opencontainers.org/forum/#!topic/dev/0QbyJDM9fWY
     Subject: Single, unified config file (i.e. rolling back specs#88)
     Date: Wed, 4 Nov 2015 09:53:20 -0800
     Message-ID: <20151104175320.GC24652@odin.tremily.us>

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-01-27 09:51:54 -08:00
Vincent Batts
0cd1ca4d1d Makefile: git-validation from an arbitrary epoch
Since we can't go from the first commit, choosing an arbitrary epoch commit

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-01-14 10:31:40 -05:00
Vincent Batts
70e725cedd Makefile: add a target to run tests
For now, just vet and lint. But would like to include the commit
validator, once a good range is selectable.

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-01-13 18:54:58 -05:00
Mrunal Patel
6aa53edc9b Merge pull request #287 from wking/policy
style: Collect established conventions in a discoverable location
2016-01-08 10:12:27 -08:00
W. Trevor King
408412ba80 style: Collect established styles in a discoverable location
So we have something to cite to avoid rehashing established decisions.
Provide some motivation and links to the backing discussion so folks
can re-open these if they have new information that wasn't covered in
the original decision.

Like the glossary (18734986, glossary: Provide a quick overview of
important terms, 2015-08-11, #107), I've used subsection titles for
each entry to get link anchors.

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-01-05 13:31:29 -08:00
W. Trevor King
d7acd86e0e Makefile: Add glossary to DOC_FILES
At the end of the list, to match its position in the README.  This
catches #107 up with #263, which I'd missed during one of the #107
rebases.

Signed-off-by: W. Trevor King <wking@tremily.us>
2015-12-29 20:45:53 -08:00
Vincent Batts
4ee036fcd2 *: printable documents
I do not like having this build step of printable documentation
depending on pulling a container, but the pandoc+latex combo is a big
bundle. This is the minimal and cleanest approach for using these tools,
for now.

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2015-12-09 13:23:03 -05:00