187 lines
4.1 KiB
Protocol Buffer
187 lines
4.1 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package containerd.task.v2;
|
|
|
|
import "google/protobuf/any.proto";
|
|
import "google/protobuf/empty.proto";
|
|
import weak "gogoproto/gogo.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
import "github.com/containerd/containerd/api/types/mount.proto";
|
|
import "github.com/containerd/containerd/api/types/task/task.proto";
|
|
|
|
option go_package = "github.com/containerd/containerd/runtime/v2/task;task";
|
|
|
|
// Shim service is launched for each container and is responsible for owning the IO
|
|
// for the container and its additional processes. The shim is also the parent of
|
|
// each container and allows reattaching to the IO and receiving the exit status
|
|
// for the container processes.
|
|
service Task {
|
|
rpc State(StateRequest) returns (StateResponse);
|
|
rpc Create(CreateTaskRequest) returns (CreateTaskResponse);
|
|
rpc Start(StartRequest) returns (StartResponse);
|
|
rpc Delete(DeleteRequest) returns (DeleteResponse);
|
|
rpc Pids(PidsRequest) returns (PidsResponse);
|
|
rpc Pause(PauseRequest) returns (google.protobuf.Empty);
|
|
rpc Resume(ResumeRequest) returns (google.protobuf.Empty);
|
|
rpc Checkpoint(CheckpointTaskRequest) returns (google.protobuf.Empty);
|
|
rpc Kill(KillRequest) returns (google.protobuf.Empty);
|
|
rpc Exec(ExecProcessRequest) returns (google.protobuf.Empty);
|
|
rpc ResizePty(ResizePtyRequest) returns (google.protobuf.Empty);
|
|
rpc CloseIO(CloseIORequest) returns (google.protobuf.Empty);
|
|
rpc Update(UpdateTaskRequest) returns (google.protobuf.Empty);
|
|
rpc Wait(WaitRequest) returns (WaitResponse);
|
|
rpc Stats(StatsRequest) returns (StatsResponse);
|
|
rpc Connect(ConnectRequest) returns (ConnectResponse);
|
|
rpc Shutdown(ShutdownRequest) returns (google.protobuf.Empty);
|
|
}
|
|
|
|
message CreateTaskRequest {
|
|
string id = 1;
|
|
string bundle = 2;
|
|
repeated containerd.types.Mount rootfs = 3;
|
|
bool terminal = 4;
|
|
string stdin = 5;
|
|
string stdout = 6;
|
|
string stderr = 7;
|
|
string checkpoint = 8;
|
|
string parent_checkpoint = 9;
|
|
google.protobuf.Any options = 10;
|
|
}
|
|
|
|
message CreateTaskResponse {
|
|
uint32 pid = 1;
|
|
}
|
|
|
|
message DeleteRequest {
|
|
string id = 1;
|
|
string exec_id = 2;
|
|
}
|
|
|
|
message DeleteResponse {
|
|
uint32 pid = 1;
|
|
uint32 exit_status = 2;
|
|
google.protobuf.Timestamp exited_at = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
|
|
}
|
|
|
|
message ExecProcessRequest {
|
|
string id = 1;
|
|
string exec_id = 2;
|
|
bool terminal = 3;
|
|
string stdin = 4;
|
|
string stdout = 5;
|
|
string stderr = 6;
|
|
google.protobuf.Any spec = 7;
|
|
}
|
|
|
|
message ExecProcessResponse {
|
|
}
|
|
|
|
message ResizePtyRequest {
|
|
string id = 1;
|
|
string exec_id = 2;
|
|
uint32 width = 3;
|
|
uint32 height = 4;
|
|
}
|
|
|
|
message StateRequest {
|
|
string id = 1;
|
|
string exec_id = 2;
|
|
}
|
|
|
|
message StateResponse {
|
|
string id = 1;
|
|
string bundle = 2;
|
|
uint32 pid = 3;
|
|
containerd.v1.types.Status status = 4;
|
|
string stdin = 5;
|
|
string stdout = 6;
|
|
string stderr = 7;
|
|
bool terminal = 8;
|
|
uint32 exit_status = 9;
|
|
google.protobuf.Timestamp exited_at = 10 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
|
|
string exec_id = 11;
|
|
}
|
|
|
|
message KillRequest {
|
|
string id = 1;
|
|
string exec_id = 2;
|
|
uint32 signal = 3;
|
|
bool all = 4;
|
|
}
|
|
|
|
message CloseIORequest {
|
|
string id = 1;
|
|
string exec_id = 2;
|
|
bool stdin = 3;
|
|
}
|
|
|
|
message PidsRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message PidsResponse {
|
|
repeated containerd.v1.types.ProcessInfo processes = 1;
|
|
}
|
|
|
|
message CheckpointTaskRequest {
|
|
string id = 1;
|
|
string path = 2;
|
|
google.protobuf.Any options = 3;
|
|
}
|
|
|
|
message UpdateTaskRequest {
|
|
string id = 1;
|
|
google.protobuf.Any resources = 2;
|
|
map<string, string> annotations = 3;
|
|
}
|
|
|
|
message StartRequest {
|
|
string id = 1;
|
|
string exec_id = 2;
|
|
}
|
|
|
|
message StartResponse {
|
|
uint32 pid = 1;
|
|
}
|
|
|
|
message WaitRequest {
|
|
string id = 1;
|
|
string exec_id = 2;
|
|
}
|
|
|
|
message WaitResponse {
|
|
uint32 exit_status = 1;
|
|
google.protobuf.Timestamp exited_at = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
|
|
}
|
|
|
|
message StatsRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message StatsResponse {
|
|
google.protobuf.Any stats = 1;
|
|
}
|
|
|
|
message ConnectRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message ConnectResponse {
|
|
uint32 shim_pid = 1;
|
|
uint32 task_pid = 2;
|
|
string version = 3;
|
|
}
|
|
|
|
message ShutdownRequest {
|
|
string id = 1;
|
|
bool now = 2;
|
|
}
|
|
|
|
message PauseRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message ResumeRequest {
|
|
string id = 1;
|
|
}
|