Commit Graph

468 Commits

Author SHA1 Message Date
Stephen J Day
640493adbf cmd/dist: don't display undeleted images
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-06-01 16:53:55 -07:00
Volodymyr Burenin
3c76a667b6 Make Diff/Apply plugable
Signed-off-by: Volodymyr Burenin <vburenin@gmail.com>
2017-06-01 18:38:33 -05:00
Michael Crosby
35d74aa9d8 Merge pull request #803 from yuexiao-wang/fix-background
optimize for shim
2017-06-01 15:12:04 -07:00
Stephen Day
6aeeefe2b2 Merge pull request #937 from dmcgowan/client-push
Add push to client
2017-06-01 14:03:55 -07:00
Derek McGowan
dfce91854e Update travis to run make build
Ensure all packages can be built, even those not yet imported by binaries.

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-05-31 13:35:03 -07:00
Derek McGowan
126aa07ad2 Push client support
Update dist tool to use client package

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-05-31 13:07:53 -07:00
yuexiao-wang
41308ffa57 optimize for shimCreateCommand
Signed-off-by: yuexiao-wang <wang.yuexiao@zte.com.cn>
2017-05-31 13:57:36 +08:00
Michael Crosby
5e82767d9d Merge pull request #923 from dmcgowan/push-refactor-handler
Move push handler from dist to remotes
2017-05-30 12:54:57 -07:00
Derek McGowan
a7a764adfa Merge pull request #926 from stevvooe/merge-metadata-storage
metadata: merge storage into package
2017-05-30 12:26:44 -07:00
Kenfe-Mickaël Laventure
0e56c47f8c Merge pull request #928 from AkihiroSuda/oci-rc6
vendor: OCI Image Spec v1.0.0-rc6
2017-05-30 10:09:28 -07:00
Michael Crosby
f55f40eeec Merge pull request #927 from miaoyq/fix-description-for-pprof
Fix the description of cmd 'pprof threadcreate'
2017-05-30 09:13:57 -07:00
Akihiro Suda
967a4e0e5a ctr shim exec: fix cli flag
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2017-05-27 14:54:38 +00:00
Akihiro Suda
f9039092c5 vendor: OCI Image Spec v1.0.0-rc6
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2017-05-27 12:27:14 +00:00
Yanqiang Miao
5c32d3871f Fix the description of cmd 'pprof threadcreate'
Signed-off-by: Yanqiang Miao <miao.yanqiang@zte.com.cn>
2017-05-27 13:42:16 +08:00
Stephen J Day
7c14cbc091 metadata: merge storage into package
The implementations for the storage of metadata have been merged into a
single metadata package where they can share storage primitives and
techniques. The is a requisite for the addition of namespaces, which
will require a coordinated layout for records to be organized by
namespace.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-05-26 17:16:13 -07:00
Derek McGowan
7fc91b0591 Merge pull request #898 from coolljt0725/stack
Add SIGUSR1 to print the stack of containerd
2017-05-26 16:26:50 -07:00
Derek McGowan
c7317b2d00 Move push handler from dist to remotes
Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-05-26 14:38:39 -07:00
Derek McGowan
73c8847b47 Add image push to dist tool
Implements image push with progress tracking.

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-05-25 16:43:07 -07:00
Evan Hazlett
f42c762dc4 updates the execution service to include ContainerID in tasks
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2017-05-25 12:15:00 -04:00
Michael Crosby
5157a326fd Merge pull request #902 from ehazlett/ctr-env
ctr: enable specifying additional environment variables
2017-05-24 16:06:21 -07:00
Evan Hazlett
02fa534d71 ctr: enable specifying additional environment variables
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2017-05-24 18:24:31 -04:00
Stephen Day
17033dcaf2 Merge pull request #886 from dmcgowan/pusher
Add push object
2017-05-24 13:50:02 -07:00
Lei Jitang
37aa66484c Add SIGUSR1 to print the stack of containerd
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2017-05-24 13:02:09 -04:00
Ian Campbell
d7deba03a2 prepareStdio: use named return for err
This avoids issues with the various deferred error handlers in the event that
`err` is shadowed or named differently, which this function currently avoids
but which is an easy trap to fall into.

Since named return values are all or nothing we need to name the waitGroup too
and adjust the code to suite.

Thanks to Aaron Lehmann for the suggestion, see also
https://github.com/docker/swarmkit/pull/1965#discussion_r118137410

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2017-05-24 15:34:39 +01:00
Derek McGowan
40d338b12c Skip snapshot removal on windows
Windows snapshotter is not yet implemented

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-05-23 17:18:31 -07:00
Derek McGowan
e1ed4a2ea4 Add json storage for container storage
This is just a temporary storage solution to get
containers running on the new code.

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-05-23 14:22:20 -07:00
Derek McGowan
735b0e515e Add push object
Split resolver to only return a name with separate methods
for getting a fetcher and pusher. Add implementation for
push.

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-05-23 10:52:51 -07:00
Stephen J Day
539742881d api/services: define the container metadata service
Working from feedback on the existing implementation, we have now
introduced a central metadata object to represent the lifecycle and pin
the resources required to implement what people today know as
containers. This includes the runtime specification and the root
filesystem snapshots. We also allow arbitrary labeling of the container.
Such provisions will bring the containerd definition of container closer
to what is expected by users.

The objects that encompass today's ContainerService, centered around the
runtime, will be known as tasks. These tasks take on the existing
lifecycle behavior of containerd's containers, which means that they are
deleted when they exit. Largely, there are no other changes except for
naming.

The `Container` object will operate purely as a metadata object. No
runtime state will be held on `Container`. It only informs the execution
service on what is required for creating tasks and the resources in use
by that container. The resources referenced by that container will be
deleted when the container is deleted, if not in use. In this sense,
users can create, list, label and delete containers in a similar way as
they do with docker today, without the complexity of runtime locks that
plagues current implementations.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-05-22 23:27:53 -07:00
Michael Crosby
d7af92e00c Move Mount into mount pkg
This moves both the Mount type and mountinfo into a single mount
package.

This also opens up the root of the repo to hold the containerd client
implementation.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-05-22 16:41:12 -07:00
Derek McGowan
b07504c713 Merge pull request #862 from crosbymichael/checkpoint
Initial Support for Checkpoint && Restore
2017-05-22 15:51:10 -07:00
Michael Crosby
7cc1b64bd8 Add checkpoint and restore
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Update go-runc to 49b2a02ec1ed3e4ae52d30b54a291b75

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Add shim to restore creation

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Keep checkpoint path in service

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Add C/R to non-shim build

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Checkpoint rw and image

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Pause container on bind checkpoints

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Return dump.log in error on checkpoint failure

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Pause container for checkpoint

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Update runc to 639454475cb9c8b861cc599f8bcd5c8c790ae402

For checkpoint into to work you need runc version
639454475cb9c8b861cc599f8bcd5c8c790ae402 + and criu 3.0 as this is what
I have been testing with.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Move restore behind create calls

This remove the restore RPCs in favor of providing the checkpoint
information to the `Create` calls of a container.  If provided, the
container will be created/restored from the checkpoint instead of an
existing container.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Regen protos after rebase

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-05-22 15:34:45 -07:00
Evan Hazlett
ef026e83fa add --mount option to ctr
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2017-05-22 16:48:34 -04:00
Stephen J Day
cb68150a2f protos: remove need for customname on ID fields
Credit to Aaron Lehmann for the implementation from SwarmKit.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-05-18 18:50:59 -07:00
Evan Hazlett
70dd7fcc60 shim: Ps -> Processes
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2017-05-18 11:05:48 -04:00
Evan Hazlett
395d21018f PsRequest/PsResponse -> ProcessesRequest/ProcessesResponse; added Any to types.Process
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2017-05-18 11:05:48 -04:00
Evan Hazlett
ef158f8b5e add support to kill container process by pid
This adds support for signalling a container process by pid.

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

make Ps more extensible

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

ps: windows support

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2017-05-18 11:05:48 -04:00
Derek McGowan
4304da2b58 Delete rootfs when container is deleted
Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-05-16 13:48:53 -07:00
Derek McGowan
3ae69c43d8 Add diff service implementation
Add snapshot subcommand to ctr for creating diffs of RW layers.

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-05-16 13:48:53 -07:00
Kenfe-Mickaël Laventure
47718b0930 Merge pull request #861 from justincormack/go-runc-port
Portability fixes for containerd shim
2017-05-16 12:07:08 -07:00
Justin Cormack
6a571ecd40 Portability fixes for containerd shim
Update go-runc to master with portability fixes.

Subreaper only exists on Linux, and only Linux runs the shim in a
mount namespace.

With these changes the shim compiles on Darwin, which means the
whole build compiles without errors now.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-16 17:13:32 +01:00
Derek McGowan
098ff94b24 Add snapshot and diff service
Remove rootfs service in place of snapshot service. Adds
diff service for extracting and creating diffs. Diff
creation is not yet implemented. This service allows
pulling or creating images without needing root access to
mount. Additionally in the future this will allow containerd
to ensure extractions happen safely in a chroot if needed.

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-05-15 16:50:16 -07:00
Kenfe-Mickael Laventure
ac5563a809 ctr: honor rootfs argument value when generating spec
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2017-05-15 15:27:26 -07:00
Michael Crosby
ac98ef7439 Add --net-host for testing host networking
Add `--net-host` to `ctr run` to test containers running in host
networking.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-05-15 13:41:57 -07:00
Phil Estes
bd432461d3 Shorten no-btrfs build tag name
Remove the `containerd_` portion of the build tag name as it is
unnecessary.

Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
2017-05-12 09:53:57 -05:00
Daniel Dao
4b2ce72aaf remove unused import
With this `make vet` should pass

Signed-off-by: Daniel Dao <dqminh89@gmail.com>
2017-05-11 19:20:00 -05:00
Daniel, Dao Quang Minh
6df793797e Merge pull request #846 from crosbymichael/linux-container
Move container and runtime to plugin pkg
2017-05-11 19:07:58 -05:00
Michael Crosby
01b9f5ec67 Move Container and runtime to plugin pkg
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-05-11 15:24:12 -07:00
Akihiro Suda
2562aca1a3 new service: version
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2017-05-11 09:07:43 +00:00
Stephen J Day
193abed96e content: unify provider and ingester
The split between provider and ingester was a long standing division
reflecting the client-side use cases. For the most part, we were
differentiating these for the algorithms that operate them, but it made
instantation and use of the types challenging. On the server-side, this
distinction is generally less important. This change unifies these types
and in the process we get a few benefits.

The first is that we now completely access the content store over GRPC.
This was the initial intent and we have now satisfied this goal
completely. There are a few issues around listing content and getting
status, but we resolve these with simple streaming and regexp filters.
More can probably be done to polish this but the result is clean.

Several other content-oriented methods were polished in the process of
unification. We have now properly seperated out the `Abort` method to
cancel ongoing or stalled ingest processes. We have also replaced the
`Active` method with a single status method.

The transition went extremely smoothly. Once the clients were updated to
use the new methods, every thing worked as expected on the first
compile.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-05-10 17:05:53 -07:00
Michael Crosby
23b2b09d13 Update deps after move to containerd org
This updates containerd to use the latest versions of cgroups, fifo,
console, and go-runc from the containerd org.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-05-10 16:51:48 -07:00