Commit graph

1228 commits

Author SHA1 Message Date
Michael Crosby
ffbe36e118 Merge pull request #638 from stevvooe/refactor-fetch
cmd/dist, image, remotes: introduce image handlers
2017-03-17 16:07:25 -07:00
Stephen J Day
5a3151eefc
cmd/dist, image, remotes: introduce image handlers
With this PR, we introduce the concept of image handlers. They support
walking a tree of image resource descriptors for doing various tasks
related to processing them. Handlers can be dispatched sequentially or
in parallel and can be stacked for various effects.

The main functionality we introduce here is parameterized fetch without
coupling format resolution to the process itself. Two important
handlers, `remotes.FetchHandler` and `image.ChildrenHandler` can be
composed to implement recursive fetch with full status reporting. The
approach can also be modified to filter based on platform or other
constraints, unlocking a lot of possibilities.

This also includes some light refactoring in the fetch command, in
preparation for submission of end to end pull.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-03-17 15:47:50 -07:00
Patrick Chanezon
06d5068055 removed unused images
Signed-off-by: Patrick Chanezon <patlist@chanezon.com>
2017-03-17 12:09:03 -07:00
Derek McGowan
f95ba7c5ea Merge pull request #637 from fate-grand-order/typo
fix misspell "resources" in content/store.go
2017-03-16 23:42:13 -07:00
fate-grand-order
680e191c91 fix misspell "resources" in content/store.go
Signed-off-by: fate-grand-order <chenjg@harmonycloud.cn>
2017-03-17 10:41:24 +08:00
Michael Crosby
e8622f970d Merge pull request #636 from stevvooe/rootfs-alreadyexists
services/rootfs: return grpc code on existence
2017-03-16 15:02:10 -07:00
Stephen J Day
0b65031e90
services/rootfs: return grpc code on existence
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-03-16 14:16:29 -07:00
Stephen Day
bb3fbded9c Merge pull request #632 from dmcgowan/rootfs-fixes
Fix rootfs digest computation
2017-03-16 12:04:49 -07:00
Derek McGowan
0481a984b1 Merge pull request #542 from AkihiroSuda/compress
new package: compression (ported from docker/pkg/archive)
2017-03-15 22:46:59 -07:00
Akihiro Suda
6089c1525b new package: compression (ported from docker/pkg/archive)
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2017-03-16 05:29:27 +00:00
Derek McGowan
4492a2cee3
Fix rootfs digest computation
Compute digest from uncompressed archive.
Properly propagate error on unpack.
Rename dist cmd commands to match command name.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2017-03-15 17:17:25 -07:00
Stephen Day
82a2d766ec Merge pull request #614 from dmcgowan/rootfs-service
Rootfs service
2017-03-15 16:44:03 -07:00
Derek McGowan
212efa578a
Remove get function from rootfs
The service can use the snapshotter directly to get the rootfs.
Removed debug line for mount response.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2017-03-15 16:32:21 -07:00
Derek McGowan
b1bc82726f
Rename prepare to unpack and init to prepare
Unpack and prepare better map to the actions done by rootfs.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2017-03-15 16:32:21 -07:00
Derek McGowan
340e56ecd0
Update comments in rootfs and for desciptor
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2017-03-15 16:32:21 -07:00
Derek McGowan
3a20dd41d5
Add init subcommand to rootfs
Init command gets the mounts for a given chain id and
outputs a mount command.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2017-03-15 16:32:21 -07:00
Derek McGowan
5d4577534a
Add init and get mounts to rootfs service
Update rootfs package to add mount initializer function.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2017-03-15 16:32:21 -07:00
Derek McGowan
38a6f90f2b
Add rootfs command to dist
Commands allows preparing a rootfs from a manifest hash

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2017-03-15 16:32:21 -07:00
Derek McGowan
ead425f426
Add rootfs service
Add rootfs service to allow creation of rootfs from layer array

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2017-03-15 16:32:21 -07:00
Stephen Day
5c69a7fd6d Merge pull request #624 from crosbymichael/grpc-metrics
Add grpc prometheus metrics
2017-03-15 16:30:56 -07:00
Patrick Chanezon
ecc0cc14c6 added website code for containerd.io
Signed-off-by: Patrick Chanezon <patlist@chanezon.com>
2017-03-15 13:14:10 -07:00
Phil Estes
92c7ed08b4 Merge pull request #628 from chchliang/containerdanalyz
Closed stream in store.go Active()
2017-03-15 10:45:27 -04:00
chchliang
4465e493fc Closed stream in store.go Active()
Signed-off-by: chchliang <chen.chuanliang@zte.com.cn>
2017-03-15 16:53:30 +08:00
Michael Crosby
f9212348e4 Add grpc prometheus metrics
This provideds generic grpc metrics via prometheus

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-03-14 16:16:49 -07:00
Michael Crosby
a85c28d248 Merge pull request #623 from hqhq/add_healthcheck_service
Add grpc health check service
2017-03-14 11:28:56 -07:00
Qiang Huang
e663cbddf5 Add grpc health check service
Fixes: #615

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2017-03-14 15:39:29 +08:00
Phil Estes
a132a884fa Merge pull request #601 from kunalkushwaha/testsuite-CommitView
Testcase for multiple Prepare/View on same key.
2017-03-13 16:05:55 -04:00
Derek McGowan
a7734b060d Merge pull request #620 from crosbymichael/report-mar10
Add development report for Mar 10
2017-03-13 11:18:39 -07:00
Michael Crosby
51bf1896a0 Add report for Mar 10
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-03-13 11:05:06 -07:00
Michael Crosby
1d7fa45403 Add no_shim config for not running with a shim
This reuses the exiting shim code and services to let containerd run as
the reaper for all container processes without the use of a shim.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-03-10 15:28:21 -08:00
Kenfe-Mickaël Laventure
a160a6a068 Merge pull request #618 from crosbymichael/summit2
Add link to signup form
2017-03-10 11:43:31 -08:00
Michael Crosby
1f15b058d2 Add link to signup form
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-03-10 11:40:27 -08:00
Phil Estes
7b06baa1f2 Merge pull request #616 from crosbymichael/runtime-opts
Runtime configs and global reaper
2017-03-10 14:25:19 -05:00
Kenfe-Mickaël Laventure
85f11a0bf2 Merge pull request #617 from crosbymichael/summit
Add dockercon summit discussion points
2017-03-10 11:07:00 -08:00
Michael Crosby
ee2d005984 Add dockercon summit discussion points
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-03-10 10:51:53 -08:00
Michael Crosby
fe53956044 Add missing monitor file
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-03-10 09:30:03 -08:00
Michael Crosby
61263bd77e Set containerd as subreaper
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-03-09 16:26:14 -08:00
Michael Crosby
6d3a70eb58 Make ctr --rootfs an absolute path
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-03-09 16:13:23 -08:00
Michael Crosby
9f3240364f Implement reaper with runc support in shim
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-03-09 16:11:57 -08:00
Michael Crosby
df48983fe7 Add reaper code for daemon
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-03-09 16:07:35 -08:00
Michael Crosby
4fd2478513 Update go-runc to bd9aef7cf4402a3a8728e3ef83dcca6a5a1be899
Also remove the comment fields in the vndr script, they are too hard to
keep up to date and add little value when we have the git commit
timestamps

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-03-09 13:47:49 -08:00
Michael Crosby
0e0ae74b82 Merge pull request #612 from stevvooe/simplify-resolution-flow
cmd/dist, remotes: simplify resolution flow
2017-03-09 12:41:12 -08:00
Stephen J Day
831f68fd71
cmd/dist, remotes: simplify resolution flow
After receiving feedback during containerd summit walk through of the
pull POC, we found that the resolution flow for names was out of place.
We could see this present in awkward places where we were trying to
re-resolve whether something was a digest or a tag and extra retries to
various endpoints.

By centering this problem around, "what do we write in the metadata
store?", the following interface comes about:

```
Resolve(ctx context.Context, ref string) (name string, desc ocispec.Descriptor, fetcher Fetcher, err error)
```

The above takes an "opaque" reference (we'll get to this later) and
returns the canonical name for the object, a content description of the
object and a `Fetcher` that can be used to retrieve the object and its
child resources. We can write `name` into the metadata store, pointing
at the descriptor. Descisions about discovery, trust, provenance,
distribution are completely abstracted away from the pulling code.

A first response to such a monstrosity is "that is a lot of return
arguments". When we look at the actual, we can see that in practice, the
usage pattern works well, albeit we don't quite demonstrate the utility
of `name`, which will be more apparent later. Designs that allowed
separate resolution of the `Fetcher` and the return of a collected
object were considered. Let's give this a chance before we go
refactoring this further.

With this change, we introduce a reference package with helps for
remotes to decompose "docker-esque" references into consituent
components, without arbitrarily enforcing those opinions on the backend.
Utlimately, the name and the reference used to qualify that name are
completely opaque to containerd. Obviously, implementors will need to
show some candor in following some conventions, but the possibilities
are fairly wide. Structurally, we still maintain the concept of the
locator and object but the interpretation is up to the resolver.

For the most part, the `dist` tool operates exactly the same, except
objects can be fetched with a reference:

```
dist fetch docker.io/library/redis:latest
```

The above should work well with a running containerd instance. I
recommend giving this a try with `fetch-object`, as well. With
`fetch-object`, it is easy for one to better understand the intricacies
of the OCI/Docker image formats.

Ultimately, this serves the main purpose of the elusive "metadata
store".

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-03-08 16:46:13 -08:00
Michael Crosby
fc45d9c119 Chown grpc socket based on config
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-03-08 11:42:36 -08:00
Kunal Kushwaha
8f13b160b1 Testcase for multiple Prepare/View on same key.
Signed-off-by: Kunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>
2017-03-08 11:16:12 +09:00
Michael Crosby
e1731d2e5e Add linux runtime config
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-03-07 16:46:09 -08:00
Michael Crosby
27a99400e8 Merge pull request #610 from dmcgowan/snapshot-move-testsuite
snapshot: move testsuite to sub-package
2017-03-07 16:45:04 -08:00
Michael Crosby
2fb3b73b95 Merge pull request #611 from dmcgowan/snapshot-plugins
Add snapshot plugin type
2017-03-07 16:44:35 -08:00
Derek McGowan
a4247e2aa9 Add snapshot plugin type
Update existing snapshot drivers to register as plugins.
Load snapshot driver at containerd startup.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2017-03-07 14:55:36 -08:00
Derek McGowan
66bbf5c449 Move snapshot testsuite to sub package
Prevents imports of snapshot to require importing test packages.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2017-03-07 09:16:45 -08:00