Commit graph

1055 commits

Author SHA1 Message Date
Stephen J Day
c062a85782
content: cleanup service and interfaces
After implementing pull, a few changes are required to the content store
interface to make sure that the implementation works smoothly.
Specifically, we work to make sure the predeclaration path for digests
works the same between remote and local writers. Before, we were
hesitent to require the the size and digest up front, but it became
clear that having this provided significant benefit.

There are also several cleanups related to naming. We now call the
expected digest `Expected` consistently across the board and `Total` is
used to mark the expected size.

This whole effort comes together to provide a very smooth status
reporting workflow for image pull and push. This will be more obvious
when the bulk of pull code lands.

There are a few other changes to make `content.WriteBlob` more broadly
useful. In accordance with addition for predeclaring expected size when
getting a `Writer`, `WriteBlob` now supports this fully. It will also
resume downloads if provided an `io.Seeker` or `io.ReaderAt`. Coupled
with the `httpReadSeeker` from `docker/distribution`, we should only be
a lines of code away from resumable downloads.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-02-22 13:30:01 -08:00
Stephen J Day
935144fadd
version: finish version setup
This setup will now correctly set the version number from the git tag.
When using `--version`, we will see the binary name, the package it was
built from and a git hash based on the tag:

```console
$./bin/dist -v
./bin/dist github.com/docker/containerd 0b45d91.m
```

Note that in the above example, if we set a tag of `v1.0.0-dev`, that
will show up in the version number, as follows:

```console
$./bin/dist -v
./bin/dist github.com/docker/containerd v1.0.0-dev
```

Once commits are made past that tag, the version number will be
expressed relative to that tag and include a git hash:

```console
$./bin/dist -v
./bin/dist github.com/docker/containerd v1.0.0-dev-1-g7953e96.m
```

Some these examples include a `.m` postfix. This indicates that the
binary was build from a source tree with local modifications.

We can add a dev tag to start getting 1.0 version numbers for test
builds.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-02-22 13:16:06 -08:00
Kenfe-Mickaël Laventure
0a5544d8c4 Merge pull request #556 from crosbymichael/plugins
Use go 1.8 plugins for extending core functionality
2017-02-22 13:12:08 -08:00
Stephen Day
0b45d91340 Merge pull request #560 from stevvooe/update-image-spec
vendor: update oci image spec dependency
2017-02-22 11:23:02 -08:00
Michael Crosby
fceafeb4d6 Remvoe go1.7 from travis
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-02-22 10:28:05 -08:00
Michael Crosby
401edf5728 Merge pull request #557 from estesp/snapshot-edits
Some language cleanup in snapshots design doc
2017-02-22 09:37:18 -08:00
Stephen J Day
24397e7169
vendor: update oci image spec dependency
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-02-22 00:52:35 -08:00
Phil Estes
25f66bd21f
Some language cleanup in snapshots design doc
Mostly minor changes for readability and a few corrections to words or
word use.

Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
2017-02-21 23:09:33 -05:00
fate-grand-order
08405824ad Use errors.New() directly to output the error message
Signed-off-by: fate-grand-order <chenjg@harmonycloud.cn>
2017-02-22 10:53:16 +08:00
Michael Crosby
3101be93bc Load runtimes dynamically via go1.8 plugins
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Add registration for more subsystems via plugins

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

Move content service to separate package

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-02-21 16:29:46 -08:00
Stephen Day
b7805198b1 Merge pull request #555 from stevvooe/remove-cli-dependence-content-store-main
cmd/containerd: remove cli.Context dependence for content.Store
2017-02-21 16:13:10 -08:00
Stephen J Day
baa307cd4b
cmd/containerd: remove cli.Context dependence for content.Store
We've moved to using the config, directly. This removes the argument and
gets rid of a few extra lines of code.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-02-21 15:27:12 -08:00
Michael Crosby
8ae905b92b Merge pull request #520 from stevvooe/content-service
api/services/content: define the content service
2017-02-21 15:03:13 -08:00
Stephen J Day
e6efb397cf
cmd/dist: port commands over to use GRPC content store
Following from the rest of the work in this branch, we now are porting
the dist command to work directly against the containerd content API.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-02-21 13:10:31 -08:00
Stephen J Day
621164bc84
content: refactor content store for API
After iterating on the GRPC API, the changes required for the actual
implementation are now included in the content store. The begin change
is the move to a single, atomic `Ingester.Writer` method for locking
content ingestion on a key. From this, comes several new interface
definitions.

The main benefit here is the clarification between `Status` and `Info`
that came out of the GPRC API. `Status` tells the status of a write,
whereas `Info` is for querying metadata about various blobs.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-02-21 13:10:22 -08:00
Stephen J Day
baaf7543dc
api/services/content: define the content service
Bring the content service into the containerd API. This allows the
content store to be coordinated in the containerd daemon with minimal
effort. For the most part, this API follows the conventions and behavior
of the existing content store implementation with a few caveats.
Specifically, we remove the object oriented transaction mechanism in
favor of a very rich `Write` call.

Pains are taken to reduce race conditions around when having multiple
writers to a single piece of content. Clients should be able to race
towards getting a write lock on a reference, then wait on each other.

For the most part, this should be generically pluggable to allow
implementations of the content store to be swapped out.

We'll follow this up with an implementation to validate the model.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-02-21 13:10:10 -08:00
Stephen J Day
4cb31d9615
vendor: update gogo/protobuf dependency
Updates to the gogo/protobuf dependency are required to correctly
generate time types. We also remove an unused windows dependency.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-02-21 13:09:58 -08:00
Stephen Day
3fdd1a688d Merge pull request #554 from alexellis/http_to_https_readme
Update short url http url to https.
2017-02-21 11:54:23 -08:00
Michael Crosby
f01434283c Merge pull request #553 from crosbymichael/config
Add config file
2017-02-21 11:52:08 -08:00
Alex Ellis
598cad1bb8 Update short url http url to https.
Signed-off-by: Alex Ellis <alexellis2@gmail.com>
2017-02-21 19:51:41 +00:00
Michael Crosby
23d3818060 Merge pull request #552 from hqhq/defer_f_close
Close shim file when cmd.Start fail
2017-02-21 11:25:28 -08:00
Michael Crosby
a9950aedcf Add config file
This adds a config file for containerd configuration.  It is hard to
have structure data on cli flags and the config file should be used for
the majority of fields when configuring containerd.

There are still a few flags on the daemon that override config file
values but flags should take a back seat going forward and should be
kept at a minimum.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-02-21 11:22:08 -08:00
Michael Crosby
1d08c7bc5c Merge pull request #549 from fate-grand-order/typo
correct misspell in cmd/dist/fetch.go and events/transaction.go
2017-02-21 11:14:15 -08:00
Michael Crosby
559a3c1d3c Merge pull request #550 from hqhq/fix_interceptor_ctx
Fix interceptor handler parameter
2017-02-21 11:13:55 -08:00
Michael Crosby
e17e9216ef Merge pull request #551 from hqhq/defer_io_wait
Ensure to read all io in error cases
2017-02-21 11:13:26 -08:00
Qiang Huang
a717d4dc2d Close shim file when cmd.Start fail
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2017-02-21 08:51:40 -08:00
Qiang Huang
f83652dbf1 Ensure to read all io in error cases
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2017-02-21 08:46:04 -08:00
Qiang Huang
7206427df4 Fix interceptor handler parameter
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2017-02-21 08:41:31 -08:00
Phil Estes
da8f4bb904 Merge pull request #534 from alexellis/dockrly_meetup_url
Add the short/quick/memorable URL for Slack Community from Victor Coisne
2017-02-21 10:31:04 -05:00
Phil Estes
c9ca3efe08 Merge pull request #539 from AkihiroSuda/spec
ctr: add --runtime-config
2017-02-21 10:09:54 -05:00
Qiang Huang
7fc3ee7a32 Merge pull request #543 from xulike666/fight-for-readability
fix some typos
2017-02-21 06:46:47 -08:00
fate-grand-order
3626ee7b77 correct misspell in cmd/dist/fetch.go and events/transaction.go
Signed-off-by: fate-grand-order <chenjg@harmonycloud.cn>
2017-02-21 20:24:04 +08:00
Alex Ellis
4c9e74e948 Add the short/quick/memorable URL for Slack Community from Victor Coisne.
Signed-off-by: Alex Ellis <alexellis2@gmail.com>
2017-02-21 11:53:28 +00:00
Alex Ellis
f3367c9b89 Add the short/quick/memorable URL for Slack Community from Victor Coisne.
Signed-off-by: Alex Ellis <alexellis2@gmail.com>
2017-02-21 11:52:41 +00:00
Aaron.L.Xu
a3cae915c3 fix some typos
Signed-off-by: Aaron.L.Xu <likexu@harmonycloud.cn>
2017-02-21 15:02:36 +08:00
Akihiro Suda
5f6f04742c ctr: add --runtime-config
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2017-02-21 05:04:18 +00:00
Daniel, Dao Quang Minh
e0b1736aa4 Merge pull request #540 from samuelkarp/go18
travis: Use 1.7.x and 1.8.x
2017-02-20 18:09:45 +00:00
Kenfe-Mickaël Laventure
0644f51094 Merge pull request #538 from AkihiroSuda/nits
multiple trivial fixes
2017-02-20 10:04:48 -08:00
Samuel Karp
31166dc3e1 travis: Use 1.7.x and 1.8.x
Signed-off-by: Samuel Karp <skarp@amazon.com>
2017-02-20 09:59:53 -08:00
Daniel, Dao Quang Minh
a40ba05cf9 Merge pull request #537 from samuelkarp/go18
travis: Add Go 1.8
2017-02-20 17:31:48 +00:00
Akihiro Suda
2836fbeed1 ctr: fix Sprintf
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2017-02-20 05:28:09 +00:00
Akihiro Suda
40d966f00e clean up unused nats code
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2017-02-20 05:28:09 +00:00
Samuel Karp
713900ae15 travis: Add Go 1.8
Signed-off-by: Samuel Karp <skarp@amazon.com>
2017-02-19 19:21:38 -08:00
Michael Crosby
56460b93e4 Merge pull request #527 from hqhq/del_def_log_level
Delete default log-level value
2017-02-18 16:11:07 -08:00
Qiang Huang
d42dfcba23 Delete default log-level value
It's duplicate with --log-level, and since --log-level
takes advantage of --debug and it has default value,
--debug never works now.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2017-02-18 21:14:58 +08:00
Stephen Day
54b804c601 Merge pull request #533 from stevvooe/simplify-btrfs-test-setup
snapshot/btrfs: simplify test setup
2017-02-17 17:24:55 -08:00
Stephen J Day
5922756d8b
snapshot/btrfs: simplify test setup
After reviewing this closer, we removed a few buffers in favor
`(*exec.Command).Output` and simplified the loop file creation method to
just use `(*os.File).Truncate`.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-02-17 16:53:11 -08:00
Stephen Day
ae5ebeb237 Merge pull request #502 from dmcgowan/diff-archive
Add archive package
2017-02-17 15:26:14 -08:00
Derek McGowan
3c94bf814e Add deletion test
Test deleting multiple files, directories, and creating
the equivalent of an opaque directory.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2017-02-17 13:58:48 -08:00
Derek McGowan
6443891a7d Update log lines to use containerd log package
Removed unused requires root test function and updated
tar requires function to use lookup method.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2017-02-17 11:50:49 -08:00