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>
This commit is contained in:
@@ -7,6 +7,7 @@ import "google/protobuf/any.proto";
|
||||
import "gogoproto/gogo.proto";
|
||||
import "github.com/containerd/containerd/api/types/mount/mount.proto";
|
||||
import "github.com/containerd/containerd/api/types/container/container.proto";
|
||||
import "github.com/containerd/containerd/api/types/descriptor/descriptor.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
service ContainerService {
|
||||
@@ -23,6 +24,7 @@ service ContainerService {
|
||||
rpc Pause(PauseRequest) returns (google.protobuf.Empty);
|
||||
rpc Resume(ResumeRequest) returns (google.protobuf.Empty);
|
||||
rpc Processes(ProcessesRequest) returns (ProcessesResponse);
|
||||
rpc Checkpoint(CheckpointRequest) returns (CheckpointResponse);
|
||||
}
|
||||
|
||||
message CreateRequest {
|
||||
@@ -34,6 +36,7 @@ message CreateRequest {
|
||||
string stdout = 6;
|
||||
string stderr = 7;
|
||||
bool terminal = 8;
|
||||
types.Descriptor checkpoint = 9;
|
||||
}
|
||||
|
||||
message CreateResponse {
|
||||
@@ -118,3 +121,18 @@ message ProcessesRequest {
|
||||
message ProcessesResponse{
|
||||
repeated containerd.v1.types.Process processes = 1;
|
||||
}
|
||||
|
||||
message CheckpointRequest {
|
||||
string id = 1;
|
||||
bool allow_tcp = 2;
|
||||
bool allow_unix_sockets = 3;
|
||||
bool allow_terminal = 4;
|
||||
bool file_locks = 5;
|
||||
repeated string empty_namespaces = 6;
|
||||
string parent_checkpoint = 7 [(gogoproto.customtype) = "github.com/opencontainers/go-digest.Digest", (gogoproto.nullable) = false];
|
||||
bool exit = 8;
|
||||
}
|
||||
|
||||
message CheckpointResponse {
|
||||
repeated types.Descriptor descriptors = 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user