Skip to content
This repository has been archived by the owner on May 6, 2020. It is now read-only.

Add support for managing compute resources #341

Closed
mcastelino opened this issue Jul 18, 2017 · 10 comments
Closed

Add support for managing compute resources #341

mcastelino opened this issue Jul 18, 2017 · 10 comments
Assignees

Comments

@mcastelino
Copy link
Contributor

Kubernetes supports the notion of CPU resources assigned to a container

spec.containers[].resources.limits.cpu
...
Although requests and limits can only be specified on individual Containers, it is convenient to talk about Pod resource requests and limits. A Pod resource request/limit for a particular resource type is the sum of the resource requests/limits of that type for each Container in the Pod.
...
Limits and requests for CPU resources are measured in cpu units. One cpu, in Kubernetes, is equivalent to:
1 AWS vCPU
1 GCP Core
1 Azure vCore
1 Hyperthread on a bare-metal Intel processor with Hyperthreading

Similarly in docker we have

--cpus |   | Number of CPUs
--cpu-period | 0 | Limit CPU CFS (Completely Fair Scheduler) period
--cpu-quota | 0 | Limit CPU CFS (Completely Fair Scheduler) quota
--cpu-rt-period | 0 | Limit CPU real-time period in microseconds
--cpu-rt-runtime | 0 | Limit CPU real-time runtime in microseconds
--cpu-shares, -c | 0 | CPU shares (relative weight)
--cpus |   | Number of CPUs
--cpuset-cpus |   | CPUs in which to allow execution (0-3, 0,1)
--cpuset-mems |   | MEMs in which to allow execution (0-3, 0,1)

Which manifests in the config file as

// LinuxCPU for Linux cgroup 'cpu' resource management
type LinuxCPU struct {
	// CPU shares (relative weight (ratio) vs. other cgroups with cpu shares).
	Shares *uint64 `json:"shares,omitempty"`
	// CPU hardcap limit (in usecs). Allowed cpu time in a given period.
	Quota *int64 `json:"quota,omitempty"`
	// CPU period to be used for hardcapping (in usecs).
	Period *uint64 `json:"period,omitempty"`
	// How much time realtime scheduling may use (in usecs).
	RealtimeRuntime *int64 `json:"realtimeRuntime,omitempty"`
	// CPU period to be used for realtime scheduling (in usecs).
	RealtimePeriod *uint64 `json:"realtimePeriod,omitempty"`
	// CPUs to use within the cpuset. Default is to use any CPU available.
	Cpus string `json:"cpus,omitempty"`
	// List of memory nodes in the cpuset. Default is to use any available memory node.
	Mems string `json:"mems,omitempty"`
}

The clear containers runtime should support at the very least the --cpus option.

However in the case of runc the CPU's visible to the application is the full set available to the host.
In the case or runc the cpu cgroups are used to actually constrain the process.

The mimic this behavior such that the application seems very similar availability of vCPU's for threading we should

  • allocate the number of vCPU == number of physical CPU's on the host
  • constrain QEMU to limit the CPU consumption

However on systems with very large number of CPUs, hence adding up to larger memory consumption per container, we can consider limiting the number of vCPU to equal the requests CPU shares, while still applying cgroups.

/cc @dlespiau @egernst

@mcastelino
Copy link
Contributor Author

For the first cut we can skip cgroups and just make the CPU and Memory sizes passed to QEMU configurable. Adding cgroup support can come subsequently.

/cc @amyleeland

@egernst
Copy link

egernst commented Jul 18, 2017 via email

@mcastelino
Copy link
Contributor Author

@egernst #297 is not exactly this. It only sets per k8s node, not at an individual POD level. Also we need to account for the fact that in k8s POD = sum of container constraints...

@dvoytik
Copy link
Collaborator

dvoytik commented Jul 20, 2017

@mcastelino, with #297 you can setup for each new POD (== VM) default number of vCPUs. If you set -1 then runtime will set the same number as physical cores on the host.
https://github.com/clearcontainers/runtime/blob/master/config/configuration.toml.in#L9

@mcastelino
Copy link
Contributor Author

@dvoytik #297 provides us with the right degree of flexibility from a machine level default point of view.

IMO the default on non NUMA systems should be -1 so reflect more closely the behavior of a namespaced container (once we evaluate the memory footprint impact)

What we are missing is honoring the per container/POD values that come in via config.json in the case of docker. We are also missing setting up the cgroups setup to constrain QEMU itself.

So a valid configuration would be -1 and constrain the QEMU using cgroups. This will give us behavior similar to runc.

@jodh-intel
Copy link
Contributor

Related: #19.

@wcwxyz
Copy link
Contributor

wcwxyz commented Aug 10, 2017

Hi, I'd like to work on this one if it's not taken.

--cpu is a docker specific option. It is a equivalent to a combination of --cpu-quota and --cpu-period, eg. --cpu 1.5 is translated to --cpu-quota 150000 --cpu-period 100000. OCI spec defines cpu quota and period.

My idea is to get cpu quota and period from container OCI spec, and make the calculation of number of vcpus for qemu.

But obviously, --cpus 1.5 doesn't make sense from qemu point of view. That's a limitation. We should round down/up to integer.

Any ideas?

@grahamwhaley
Copy link
Contributor

Hi @wcwxyz , sure, if you want it we can assign. I think you'd work closely with @mcastelino and @dvoytik on the details of how this interacts as a whole, with k8s and pods for instance (see above).
As @mcastelino says, adding support for --cpus is a first good step, and then later for POD support it looks like we'd add support for cgroup cpu constraining within the VM itself.

We should probably open an Issue specifically for adding non-POD --cpus support to separate the discussion a little for now from the POD/cgroup stuff. Let me do that in a minute...

I was contemplating how we map say --cpus=1.5 onto QEMU -smp cpus argument last week when we were writing https://github.com/clearcontainers/runtime/blob/master/docs/limitations.md#docker-run---cpus. Indeed, it is not a nice 1:1 mapping. As you say, we should round up/down. I vote for round-up as the 'path of least surprise'. I'd be more surprised if I got less CPU than I asked for than if I got more I think.
For reference (for everybody and the future), the docker docs I believe you referenced for the --cpus=1.5 example are here:
https://docs.docker.com/engine/admin/resource_constraints/#cpu
and they say that --cpus should be used in preference to --cpu-period and --cpu-quota, so I'd currently classify those two options as potentially deprecated.

@wcwxyz
Copy link
Contributor

wcwxyz commented Aug 10, 2017

@grahamwhaley emm.. I'm not familiar with k8s. I mean to work on #393 ...

For reference (for everybody and the future), the docker docs I believe you referenced for the --cpus=1.5 example are here:
https://docs.docker.com/engine/admin/resource_constraints/#cpu
and they say that --cpus should be used in preference to --cpu-period and --cpu-quota, so I'd currently classify those two options as potentially deprecated.

Actually --cpus will be translated to CFS cpu period and quota in the OCI spec config.json. See https://github.com/opencontainers/runtime-spec/blob/master/specs-go/config.go#L292~L307. I'll quote it here:

type LinuxCPU struct {
	// CPU shares (relative weight (ratio) vs. other cgroups with cpu shares).
	Shares *uint64 `json:"shares,omitempty"`
	// CPU hardcap limit (in usecs). Allowed cpu time in a given period.
	Quota *int64 `json:"quota,omitempty"`
	// CPU period to be used for hardcapping (in usecs).
	Period *uint64 `json:"period,omitempty"`
	// How much time realtime scheduling may use (in usecs).
	RealtimeRuntime *int64 `json:"realtimeRuntime,omitempty"`
	// CPU period to be used for realtime scheduling (in usecs).
	RealtimePeriod *uint64 `json:"realtimePeriod,omitempty"`
	// CPUs to use within the cpuset. Default is to use any CPU available.
	Cpus string `json:"cpus,omitempty"`
	// List of memory nodes in the cpuset. Default is to use any available memory node.
	Mems string `json:"mems,omitempty"`
}

So when runtime supports --cpus, it naturally supports --cpu-period xxx --cpu-quota xxx combination.

Anyway #393 seems to be a better place to discuss how we handle --cpu.

jcvenegas added a commit to jcvenegas/cc-runtime that referenced this issue Sep 27, 2017
** Changes
- cc-check: Always run all tests
- build: Fix config file warning message
- list: Ensure "--cc-all" details are correct
- refactor: simplify code to return the fastpath first
- Unbreak gofmt
- process: Add github issue template
- paths: Resolve paths earlier
- scripts: Improve collect data script
- build: Show version of go
- tests: Increase unit test timeout
- build: Fix go vet issues flagged by go 1.9
- docs: developers: how to build custom kernel
- scripts: Create script to gather environment details
- readme: Update CI badges
- ci: Remove Travis and add unit testing to all CI

** Shortlog
413e2ed cc-check: Only warn if nesting not available
c761552 cc-check: Always run all tests
6ec4ecd build: Fix config file warning message
b629d80 list: Ensure "--cc-all" details are correct
1378b68 refactor: simplify code to return the fastpath first
fc87e7b tests: Fix gofmt and ineffassign issues
2212ef7 CI: Unbreak gofmt logic
651cfb3 process: Add github issue template
2c1ce71 paths: Resolve paths earlier
16b1dae scripts: Improve formatting in cc-collect-data.sh
53bd495 scripts: Simpify main function in cc-collect-data.sh
08ed990 scripts: Rename Meta heading in cc-collect-data.sh
57f2500 scripts: Use more punctuation in cc-collect-data.sh
6a7fc90 scripts: Add more patterns to cc-collect-data.sh
541fe44 scripts: Add more patterns to cc-collect-data.sh
1c7d20c build: Generate cc-collect script
ffe6ccf build: Generalise ".in" file rule
9280a6b build: Show version of go
1bde169 tests: Increase unit test timeout
d4954bc Revert: Undo "Merge pull request *587 from
mcastelino/topic/govet"
5213667 go vet: Fix issues detected by go vet in go 1.9
acecd7b Revendor: Revendor testify to fix go vet
3d07c40 docs: developers: how to build custom kernel
c8fc271 scripts: Create script to gather environment details
062522d readme: Update CI badges
fb10a0e .ci: Remove travis and add unit testing to Jenkins

** Compatibility with Docker
Clear Containers 3.0.1 is compatible with Docker v17.06-ce
** OCI Runtime Specification
Clear Containers 3.0.1 support the OCI Runtime Specification
[v1.0.0-rc5][ocispec]

** Clear Linux Containers image
Clear Containers 3.0.1 requires at least Clear Linux containers image
[17270][clearlinuximage]

** Clear Linux Containers Kernel
Clear Containers 3.0.1 requires at least Clear Linux Containers  kernel
[v4.9.47-77.container][kernel]

** Installation
- [Ubuntu][ubuntu]
- [Fedora][fedora]
- [Developers][developers]

** Issues & limitations

*** Networking
**** Adding networks dynamically
*** Resource management
**** `docker run --cpus=`
See issue [\*341](clearcontainers#341)
for more information.
**** `docker run --kernel-memory=`
See issue [\*388](clearcontainers#388)
for more information.
**** shm
**** cgroup constraints
**** Capabilities
See issue [\*51](clearcontainers#51)
for more information.
**** sysctl
**** tmpfs
*** Other
**** checkpoint and restore
**** `docker stats`
See issue [\*200](clearcontainers#200)
for more information.
*** runtime commands
**** `ps` command
See issue [\*95](clearcontainers#95)
for more information.
**** `events` command
See issue [\*379](clearcontainers#379)
for more information.
**** `update` command
See issue [\*380](clearcontainers#380)
for more information.
*** Networking
**** Support for joining an existing VM network
**** `docker --net=host`
**** `docker run --link`
*** Host resource sharing
**** `docker --device`
**** `docker -v /dev/...`
**** `docker run --privileged`
*** Other
**** Annotations
*** runtime commands
**** `init` command
**** `spec` command
More information [Limitations][limitations]

[clearlinuximage]:
https://download.clearlinux.org/releases/17270/clear/clear-17270-containers.img.xz
[kernel]:
https://github.com/clearcontainers/linux/tree/v4.9.47-77.container
[ocispec]:
https://github.com/opencontainers/runtime-spec/releases/tag/v1.0.0-rc5
[limitations]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/limitations.md
[ubuntu]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/ubuntu-installation-guide.md
[fedora]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/fedora-installation-guide.md
[developers]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/developers-clear-containers-install.md

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
jcvenegas added a commit to jcvenegas/cc-runtime that referenced this issue Sep 27, 2017
** Changes
- cc-check: Always run all tests
- build: Fix config file warning message
- list: Ensure "--cc-all" details are correct
- refactor: simplify code to return the fastpath first
- Unbreak gofmt
- process: Add github issue template
- paths: Resolve paths earlier
- scripts: Improve collect data script
- build: Show version of go
- tests: Increase unit test timeout
- build: Fix go vet issues flagged by go 1.9
- docs: developers: how to build custom kernel
- scripts: Create script to gather environment details
- readme: Update CI badges
- ci: Remove Travis and add unit testing to all CI

** Shortlog
413e2ed cc-check: Only warn if nesting not available
c761552 cc-check: Always run all tests
6ec4ecd build: Fix config file warning message
b629d80 list: Ensure "--cc-all" details are correct
1378b68 refactor: simplify code to return the fastpath first
fc87e7b tests: Fix gofmt and ineffassign issues
2212ef7 CI: Unbreak gofmt logic
651cfb3 process: Add github issue template
2c1ce71 paths: Resolve paths earlier
16b1dae scripts: Improve formatting in cc-collect-data.sh
53bd495 scripts: Simpify main function in cc-collect-data.sh
08ed990 scripts: Rename Meta heading in cc-collect-data.sh
57f2500 scripts: Use more punctuation in cc-collect-data.sh
6a7fc90 scripts: Add more patterns to cc-collect-data.sh
541fe44 scripts: Add more patterns to cc-collect-data.sh
1c7d20c build: Generate cc-collect script
ffe6ccf build: Generalise ".in" file rule
9280a6b build: Show version of go
1bde169 tests: Increase unit test timeout
d4954bc Revert: Undo "Merge pull request *587 from
mcastelino/topic/govet"
5213667 go vet: Fix issues detected by go vet in go 1.9
acecd7b Revendor: Revendor testify to fix go vet
3d07c40 docs: developers: how to build custom kernel
c8fc271 scripts: Create script to gather environment details
062522d readme: Update CI badges
fb10a0e .ci: Remove travis and add unit testing to Jenkins

** Compatibility with Docker
Clear Containers 3.0.1 is compatible with Docker v17.06-ce
** OCI Runtime Specification
Clear Containers 3.0.1 support the OCI Runtime Specification
[v1.0.0-rc5][ocispec]

** Clear Linux Containers image
Clear Containers 3.0.1 requires at least Clear Linux containers image
[17270][clearlinuximage]

** Clear Linux Containers Kernel
Clear Containers 3.0.1 requires at least Clear Linux Containers  kernel
[v4.9.47-77.container][kernel]

** Installation
- [Ubuntu][ubuntu]
- [Fedora][fedora]
- [Developers][developers]

** Issues & limitations

*** Networking
**** Adding networks dynamically
*** Resource management
**** `docker run --cpus=`
See issue [\*341](clearcontainers#341)
for more information.
**** `docker run --kernel-memory=`
See issue [\*388](clearcontainers#388)
for more information.
**** shm
**** cgroup constraints
**** Capabilities
See issue [\*51](clearcontainers#51)
for more information.
**** sysctl
**** tmpfs
*** Other
**** checkpoint and restore
**** `docker stats`
See issue [\*200](clearcontainers#200)
for more information.
*** runtime commands
**** `ps` command
See issue [\*95](clearcontainers#95)
for more information.
**** `events` command
See issue [\*379](clearcontainers#379)
for more information.
**** `update` command
See issue [\*380](clearcontainers#380)
for more information.
*** Networking
**** Support for joining an existing VM network
**** `docker --net=host`
**** `docker run --link`
*** Host resource sharing
**** `docker --device`
**** `docker -v /dev/...`
**** `docker run --privileged`
*** Other
**** Annotations
*** runtime commands
**** `init` command
**** `spec` command
More information [Limitations][limitations]

[clearlinuximage]:
https://download.clearlinux.org/releases/17270/clear/clear-17270-containers.img.xz
[kernel]:
https://github.com/clearcontainers/linux/tree/v4.9.47-77.container
[ocispec]:
https://github.com/opencontainers/runtime-spec/releases/tag/v1.0.0-rc5
[limitations]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/limitations.md
[ubuntu]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/ubuntu-installation-guide.md
[fedora]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/fedora-installation-guide.md
[developers]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/developers-clear-containers-install.md

Fixes clearcontainers#640

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
jcvenegas added a commit to jcvenegas/cc-runtime that referenced this issue Sep 27, 2017
** Changes
- cc-check: Always run all tests
- build: Fix config file warning message
- list: Ensure "--cc-all" details are correct
- refactor: simplify code to return the fastpath first
- Unbreak gofmt
- process: Add github issue template
- paths: Resolve paths earlier
- scripts: Improve collect data script
- build: Show version of go
- tests: Increase unit test timeout
- build: Fix go vet issues flagged by go 1.9
- docs: developers: how to build custom kernel
- scripts: Create script to gather environment details
- readme: Update CI badges
- ci: Remove Travis and add unit testing to all CI

** Shortlog
413e2ed cc-check: Only warn if nesting not available
c761552 cc-check: Always run all tests
6ec4ecd build: Fix config file warning message
b629d80 list: Ensure "--cc-all" details are correct
1378b68 refactor: simplify code to return the fastpath first
fc87e7b tests: Fix gofmt and ineffassign issues
2212ef7 CI: Unbreak gofmt logic
651cfb3 process: Add github issue template
2c1ce71 paths: Resolve paths earlier
16b1dae scripts: Improve formatting in cc-collect-data.sh
53bd495 scripts: Simpify main function in cc-collect-data.sh
08ed990 scripts: Rename Meta heading in cc-collect-data.sh
57f2500 scripts: Use more punctuation in cc-collect-data.sh
6a7fc90 scripts: Add more patterns to cc-collect-data.sh
541fe44 scripts: Add more patterns to cc-collect-data.sh
1c7d20c build: Generate cc-collect script
ffe6ccf build: Generalise ".in" file rule
9280a6b build: Show version of go
1bde169 tests: Increase unit test timeout
d4954bc Revert: Undo "Merge pull request *587 from
mcastelino/topic/govet"
5213667 go vet: Fix issues detected by go vet in go 1.9
acecd7b Revendor: Revendor testify to fix go vet
3d07c40 docs: developers: how to build custom kernel
c8fc271 scripts: Create script to gather environment details
062522d readme: Update CI badges
fb10a0e .ci: Remove travis and add unit testing to Jenkins

** Compatibility with Docker
Clear Containers 3.0.1 is compatible with Docker v17.06-ce
** OCI Runtime Specification
Clear Containers 3.0.1 support the OCI Runtime Specification
[v1.0.0-rc5][ocispec]

** Clear Linux Containers image
Clear Containers 3.0.1 requires at least Clear Linux containers image
[17270][clearlinuximage]

** Clear Linux Containers Kernel
Clear Containers 3.0.1 requires at least Clear Linux Containers  kernel
[v4.9.47-77.container][kernel]

** Installation
- [Ubuntu][ubuntu]
- [Fedora][fedora]
- [Developers][developers]

** Issues & limitations

*** Networking
**** Adding networks dynamically
*** Resource management
**** `docker run --cpus=`
See issue [\*341](clearcontainers#341)
for more information.
**** `docker run --kernel-memory=`
See issue [\*388](clearcontainers#388)
for more information.
**** shm
**** cgroup constraints
**** Capabilities
See issue [\*51](clearcontainers#51)
for more information.
**** sysctl
**** tmpfs
*** Other
**** checkpoint and restore
**** `docker stats`
See issue [\*200](clearcontainers#200)
for more information.
*** runtime commands
**** `ps` command
See issue [\*95](clearcontainers#95)
for more information.
**** `events` command
See issue [\*379](clearcontainers#379)
for more information.
**** `update` command
See issue [\*380](clearcontainers#380)
for more information.
*** Networking
**** Support for joining an existing VM network
**** `docker --net=host`
**** `docker run --link`
*** Host resource sharing
**** `docker --device`
**** `docker -v /dev/...`
**** `docker run --privileged`
*** Other
**** Annotations
*** runtime commands
**** `init` command
**** `spec` command
More information [Limitations][limitations]

[clearlinuximage]:
https://download.clearlinux.org/releases/17270/clear/clear-17270-containers.img.xz
[kernel]:
https://github.com/clearcontainers/linux/tree/v4.9.47-77.container
[ocispec]:
https://github.com/opencontainers/runtime-spec/releases/tag/v1.0.0-rc5
[limitations]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/limitations.md
[ubuntu]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/ubuntu-installation-guide.md
[fedora]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/fedora-installation-guide.md
[developers]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/developers-clear-containers-install.md

Fixes clearcontainers#640

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
jcvenegas added a commit to jcvenegas/cc-runtime that referenced this issue Sep 27, 2017
** Changes
- cc-check: Always run all tests
- build: Fix config file warning message
- list: Ensure "--cc-all" details are correct
- refactor: simplify code to return the fastpath first
- Unbreak gofmt
- process: Add github issue template
- paths: Resolve paths earlier
- scripts: Improve collect data script
- build: Show version of go
- tests: Increase unit test timeout
- build: Fix go vet issues flagged by go 1.9
- docs: developers: how to build custom kernel
- scripts: Create script to gather environment details
- readme: Update CI badges
- ci: Remove Travis and add unit testing to all CI

** Shortlog
413e2ed cc-check: Only warn if nesting not available
c761552 cc-check: Always run all tests
6ec4ecd build: Fix config file warning message
b629d80 list: Ensure "--cc-all" details are correct
1378b68 refactor: simplify code to return the fastpath first
fc87e7b tests: Fix gofmt and ineffassign issues
2212ef7 CI: Unbreak gofmt logic
651cfb3 process: Add github issue template
2c1ce71 paths: Resolve paths earlier
16b1dae scripts: Improve formatting in cc-collect-data.sh
53bd495 scripts: Simpify main function in cc-collect-data.sh
08ed990 scripts: Rename Meta heading in cc-collect-data.sh
57f2500 scripts: Use more punctuation in cc-collect-data.sh
6a7fc90 scripts: Add more patterns to cc-collect-data.sh
541fe44 scripts: Add more patterns to cc-collect-data.sh
1c7d20c build: Generate cc-collect script
ffe6ccf build: Generalise ".in" file rule
9280a6b build: Show version of go
1bde169 tests: Increase unit test timeout
d4954bc Revert: Undo "Merge pull request *587 from
mcastelino/topic/govet"
5213667 go vet: Fix issues detected by go vet in go 1.9
acecd7b Revendor: Revendor testify to fix go vet
3d07c40 docs: developers: how to build custom kernel
c8fc271 scripts: Create script to gather environment details
062522d readme: Update CI badges
fb10a0e .ci: Remove travis and add unit testing to Jenkins

** Compatibility with Docker
Clear Containers 3.0.1 is compatible with Docker v17.06-ce
** OCI Runtime Specification
Clear Containers 3.0.1 support the OCI Runtime Specification
[v1.0.0-rc5][ocispec]

** Clear Linux Containers image
Clear Containers 3.0.1 requires at least Clear Linux containers image
[17270][clearlinuximage]

** Clear Linux Containers Kernel
Clear Containers 3.0.1 requires at least Clear Linux Containers  kernel
[v4.9.47-77.container][kernel]

** Installation
- [Ubuntu][ubuntu]
- [Fedora][fedora]
- [Developers][developers]

** Issues & limitations

*** Networking
**** Adding networks dynamically
*** Resource management
**** `docker run --cpus=`
See issue [\*341](clearcontainers#341)
for more information.
**** `docker run --kernel-memory=`
See issue [\*388](clearcontainers#388)
for more information.
**** shm
**** cgroup constraints
**** Capabilities
See issue [\*51](clearcontainers#51)
for more information.
**** sysctl
**** tmpfs
*** Other
**** checkpoint and restore
**** `docker stats`
See issue [\*200](clearcontainers#200)
for more information.
*** runtime commands
**** `ps` command
See issue [\*95](clearcontainers#95)
for more information.
**** `events` command
See issue [\*379](clearcontainers#379)
for more information.
**** `update` command
See issue [\*380](clearcontainers#380)
for more information.
*** Networking
**** Support for joining an existing VM network
**** `docker --net=host`
**** `docker run --link`
*** Host resource sharing
**** `docker --device`
**** `docker -v /dev/...`
**** `docker run --privileged`
*** Other
**** Annotations
*** runtime commands
**** `init` command
**** `spec` command
More information [Limitations][limitations]

[clearlinuximage]:
https://download.clearlinux.org/releases/17270/clear/clear-17270-containers.img.xz
[kernel]:
https://github.com/clearcontainers/linux/tree/v4.9.47-77.container
[ocispec]:
https://github.com/opencontainers/runtime-spec/releases/tag/v1.0.0-rc5
[limitations]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/limitations.md
[ubuntu]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/ubuntu-installation-guide.md
[fedora]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/fedora-installation-guide.md
[developers]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/developers-clear-containers-install.md

Fixes clearcontainers#640

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
jcvenegas added a commit to jcvenegas/cc-runtime that referenced this issue Sep 27, 2017
** Changes

- cc-check: Always run all tests
- build: Fix config file warning message
- list: Ensure "--cc-all" details are correct
- refactor: simplify code to return the fastpath first
- Unbreak gofmt
- process: Add github issue template
- paths: Resolve paths earlier
- scripts: Improve collect data script
- build: Show version of go
- tests: Increase unit test timeout
- build: Fix go vet issues flagged by go 1.9
- docs: developers: how to build custom kernel
- scripts: Create script to gather environment details
- readme: Update CI badges
- ci: Remove Travis and add unit testing to all CI

** Shortlog
413e2ed cc-check: Only warn if nesting not available
c761552 cc-check: Always run all tests
6ec4ecd build: Fix config file warning message
b629d80 list: Ensure "--cc-all" details are correct
1378b68 refactor: simplify code to return the fastpath first
fc87e7b tests: Fix gofmt and ineffassign issues
2212ef7 CI: Unbreak gofmt logic
651cfb3 process: Add github issue template
2c1ce71 paths: Resolve paths earlier
16b1dae scripts: Improve formatting in cc-collect-data.sh
53bd495 scripts: Simpify main function in cc-collect-data.sh
08ed990 scripts: Rename Meta heading in cc-collect-data.sh
57f2500 scripts: Use more punctuation in cc-collect-data.sh
6a7fc90 scripts: Add more patterns to cc-collect-data.sh
541fe44 scripts: Add more patterns to cc-collect-data.sh
1c7d20c build: Generate cc-collect script
ffe6ccf build: Generalise ".in" file rule
9280a6b build: Show version of go
1bde169 tests: Increase unit test timeout
d4954bc Revert: Undo "Merge pull request *587 from
mcastelino/topic/govet"
5213667 go vet: Fix issues detected by go vet in go 1.9
acecd7b Revendor: Revendor testify to fix go vet
3d07c40 docs: developers: how to build custom kernel
c8fc271 scripts: Create script to gather environment details
062522d readme: Update CI badges
fb10a0e .ci: Remove travis and add unit testing to Jenkins

** Compatibility with Docker
Clear Containers 3.0.1 is compatible with Docker v17.06-ce
** OCI Runtime Specification
Clear Containers 3.0.1 support the OCI Runtime Specification
[v1.0.0-rc5][ocispec]

** Clear Linux Containers image
Clear Containers 3.0.1 requires at least Clear Linux containers image
[17270][clearlinuximage]

** Clear Linux Containers Kernel
Clear Containers 3.0.1 requires at least Clear Linux Containers  kernel
[v4.9.47-77.container][kernel]

** Installation
- [Ubuntu][ubuntu]
- [Fedora][fedora]
- [Developers][developers]

** Issues & limitations

*** Networking
**** Adding networks dynamically
*** Resource management
**** `docker run --cpus=`
See issue [\*341](clearcontainers#341)
for more information.
**** `docker run --kernel-memory=`
See issue [\*388](clearcontainers#388)
for more information.
**** shm
**** cgroup constraints
**** Capabilities
See issue [\*51](clearcontainers#51)
for more information.
**** sysctl
**** tmpfs
*** Other
**** checkpoint and restore
**** `docker stats`
See issue [\*200](clearcontainers#200)
for more information.
*** runtime commands
**** `ps` command
See issue [\*95](clearcontainers#95)
for more information.
**** `events` command
See issue [\*379](clearcontainers#379)
for more information.
**** `update` command
See issue [\*380](clearcontainers#380)
for more information.
*** Networking
**** Support for joining an existing VM network
**** `docker --net=host`
**** `docker run --link`
*** Host resource sharing
**** `docker --device`
**** `docker -v /dev/...`
**** `docker run --privileged`
*** Other
**** Annotations
*** runtime commands
**** `init` command
**** `spec` command
More information [Limitations][limitations]

[clearlinuximage]:
https://download.clearlinux.org/releases/17270/clear/clear-17270-containers.img.xz
[kernel]:
https://github.com/clearcontainers/linux/tree/v4.9.47-77.container
[ocispec]:
https://github.com/opencontainers/runtime-spec/releases/tag/v1.0.0-rc5
[limitations]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/limitations.md
[ubuntu]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/ubuntu-installation-guide.md
[fedora]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/fedora-installation-guide.md
[developers]:
https://github.com/clearcontainers/runtime/blob/f5bc403510ab2a837ba4b2115ea4c94cf51e9dea/docs/developers-clear-containers-install.md

Fixes clearcontainers#640

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
This was referenced Oct 4, 2017
This was referenced Oct 18, 2017
@jcvenegas jcvenegas mentioned this issue Nov 1, 2017
This was referenced Nov 29, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

7 participants