Commit Graph

162 Commits

Author SHA1 Message Date
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
Michael Crosby 5db3da6c2c Change shim proto package
This is not really a service like the other rpcs that we expose so lets
change the import paths for it.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-02-17 09:55:22 -08:00
Michael Crosby ab8586b7c5 Remove bundles from API
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-02-15 13:56:41 -08:00
Stephen J Day a3120172b0
cmd/protoc-gen-gogoctrd: turn off GoString generation
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-02-15 13:37:48 -08:00
Stephen J Day 83e7610194
cmd/ctrd-protobuild: create proper command for building protos
After trying to explain the complexities of developing with protobuf, I
have now created a command that correctly calculates the import paths
for each package and runs the protobuf command.

The Makefile has been updated accordingly, expect we now no longer use
`go generate`. A new target `protos` has been defined. We alias the two,
for the lazy. We leave `go generate` in place for cases where we will
actually use `go generate`.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-02-15 12:05:27 -08:00
Akihiro Suda bf8abef70f api: introduce api/{types,services} for deduplication of API definition
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2017-02-14 02:42:13 +00:00
Stephen J Day a9edb0d230
api/types/mount: bring back the mount type
The mount type is used across common GRPC services to express a deferred
access of a filesystem. Right now, they are generated by snapshotters,
but eventually, they can be passed for containers for creation at
runtime. With this flow, we can separate the generation and use of a
root container filesystem.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-02-09 18:23:08 -08:00
Kenfe-Mickael Laventure 78d7e8b256 supervisor: implement monitoring
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2017-02-06 15:16:55 -08:00
Kenfe-Mickael Laventure 6f9eda1134 api/execution: remove ProcessID from rpc calls
Now that the shim handles all container's processes the system pid is
sufficient.

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2017-02-02 15:36:10 -08:00
Kenfe-Mickael Laventure 40b0b211b7 api/execution: add Container suffix to relevant rpc calls
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2017-02-02 14:40:23 -08:00
Michael Crosby f187da9485 Port over supervisor to use grpc shim
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-02-01 16:01:53 -08:00
Michael Crosby f431bf4ad4 Add state rpc to shim
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-01-26 15:09:59 -08:00
Michael Crosby b59bd59d8a Working tty and io support in shim
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-01-26 11:31:17 -08:00
Michael Crosby 07c81ccac4 Add events api to shim
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-01-26 11:31:17 -08:00
Michael Crosby e09b0b0c35 Add exec functionality to shim
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-01-26 11:31:17 -08:00
Michael Crosby d5d2e586cd Refactor shim terminal and io handling
This also finishes the service implementation of the shim behind GRPC

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-01-26 11:31:17 -08:00
Michael Crosby c08e0e610c Add grpc service to shim
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-01-26 11:31:17 -08:00
Michael Crosby e6de7ea4b5 Add shim proto generation
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-01-26 11:30:54 -08:00
Stephen Day 23a644de8a Merge pull request #390 from estesp/init-vendoring
Add vendoring to containerd master
2017-01-11 14:16:57 -08:00
Phil Estes f867156a38
Update protoc generation to use vendored protos
Use vendored-in protos in the project path rather
than expecting developers to have them in a local
path on the host. This made a generated change
in the FileDescriptor content, but everything else
matches and binaries are building properly.

Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
2017-01-11 16:59:20 -05:00
Davanum Srinivas 4f8a784b41 Indent proto files with tabs only
fix "make fmt" failure by switching from spaces to tabs

Signed-Off-By: Davanum Srinivas <davanum@gmail.com>
2016-12-16 17:20:41 -05:00
Antonio Murdaca a5fa2c5536
api/shim: fix indent
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-12-15 10:33:03 +01:00
Kenfe-Mickael Laventure 2ef399b315 Add event support to execution subsystem
The implementation relies on nats.io

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-12-12 09:21:29 -08:00
Kenfe-Mickael Laventure 2bee4ac5cd Only use IDs for execution RPC requests
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-12-09 11:32:45 -08:00
Michael Crosby 642ed8bb48 Add shim proto
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-12-09 10:13:57 -08:00
Kenfe-Mickael Laventure 0aad42f5cf Add exec and terminal support
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-12-09 10:00:34 -08:00
Kenfe-Mickael Laventure 5a86eae247 Merge execution and container service
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-12-07 19:44:22 -08:00
Michael Crosby 723a72bdf8 Fix execution build
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-12-05 16:18:05 -08:00
Michael Crosby 21a53c1d70 Add container start and supervisor
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-12-05 16:18:05 -08:00
Kenfe-Mickael Laventure c857213b4c move work on execution service
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-12-05 14:15:03 -08:00
Stephen J Day d9a2f40463
api/execution: use Empty well-known type
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2016-12-02 16:04:13 -08:00
Michael Crosby 32bf0f69fd Start work on Container and Process model
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-12-02 15:37:16 -08:00
Michael Crosby 6641888667 Start work on execution server implementation
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-12-02 11:33:58 -08:00
Michael Crosby d0e2f3778a Update execution and container services
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-12-02 10:28:16 -08:00
Stephen J Day f898628330 api/mount: add common mount type for services
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2016-12-01 15:27:52 -08:00
Kenfe-Mickael Laventure ef03000b27 Revert "proto: move all protos under a single root"
This reverts commit 352c6b590c.
2016-12-01 14:25:03 -08:00
Kenfe-Mickael Laventure 352c6b590c proto: move all protos under a single root
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-12-01 14:17:13 -08:00
Kenfe-Mickael Laventure 4cf40db861 proto: rename container service to execution
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-12-01 13:57:51 -08:00
Kenfe-Mickael Laventure 62ca43566e proto: rename container to execution
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-12-01 13:38:29 -08:00
Stephen J Day 8a36e1c6d1
api: use correct generation helper
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2016-12-01 13:31:57 -08:00
Stephen J Day 9f90fdbf07
api: generate protobufs using `go generate`
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2016-12-01 12:36:19 -08:00
Stephen J Day 4d1a30ff41
api: protos now pass lint checks
Generation is likely broken, but the Makefile linter now passes. Another
pass will have a fully working toolchain.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2016-12-01 12:22:05 -08:00
Kenfe-Mickael Laventure 6c7b4b4c17 proto: make container.proto compile
Replaced tags with owner. This assumes we will provide a Metadata
endpoint since we're planning on using it for distribution.

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-12-01 10:28:38 -08:00
Michael Crosby 3ef3f74878 Add ctr run functions for mocking client
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-11-29 16:52:04 -08:00
Michael Crosby 0806a0d8db Update container protos
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-11-29 15:36:25 -08:00
Michael Crosby fc577a1cbb Add protos for initial API
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-11-28 15:28:38 -08:00
Michael Crosby e115b52ce2 Remove containerd files
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-11-07 13:10:09 -08:00
Michael Crosby b6bf350a07 Merge container.protos
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-09-22 11:29:20 -07:00
Stephen J Day 32a25d5523
api: begin to define the containerkit api
This commit cuts out the structure for defining grpc services for this
project. To provide compatibility with go package generation and support
reuse, we use a single protobuf file per package and make the import
paths relative to the GOPATH.

This first pass attempts to position the Mount type as the lingua franca
of ContainerKit. The Images service will provide paths prepared for use
as a set of mounts of the container service.

We'll need to merge the container service in place with new file defined
here.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2016-09-20 20:22:23 -07:00