github.com/containerd/Containerd@v1.4.13/runtime/v2/task/shim.proto (about)

     1  syntax = "proto3";
     2  
     3  package containerd.task.v2;
     4  
     5  import "google/protobuf/any.proto";
     6  import "google/protobuf/empty.proto";
     7  import weak "gogoproto/gogo.proto";
     8  import "google/protobuf/timestamp.proto";
     9  import "github.com/containerd/containerd/api/types/mount.proto";
    10  import "github.com/containerd/containerd/api/types/task/task.proto";
    11  
    12  option go_package = "github.com/containerd/containerd/runtime/v2/task;task";
    13  
    14  // Shim service is launched for each container and is responsible for owning the IO
    15  // for the container and its additional processes.  The shim is also the parent of
    16  // each container and allows reattaching to the IO and receiving the exit status
    17  // for the container processes.
    18  service Task {
    19  	rpc State(StateRequest) returns (StateResponse);
    20  	rpc Create(CreateTaskRequest) returns (CreateTaskResponse);
    21  	rpc Start(StartRequest) returns (StartResponse);
    22  	rpc Delete(DeleteRequest) returns (DeleteResponse);
    23  	rpc Pids(PidsRequest) returns (PidsResponse);
    24  	rpc Pause(PauseRequest) returns (google.protobuf.Empty);
    25  	rpc Resume(ResumeRequest) returns (google.protobuf.Empty);
    26  	rpc Checkpoint(CheckpointTaskRequest) returns (google.protobuf.Empty);
    27  	rpc Kill(KillRequest) returns (google.protobuf.Empty);
    28  	rpc Exec(ExecProcessRequest) returns (google.protobuf.Empty);
    29  	rpc ResizePty(ResizePtyRequest) returns (google.protobuf.Empty);
    30  	rpc CloseIO(CloseIORequest) returns (google.protobuf.Empty);
    31  	rpc Update(UpdateTaskRequest) returns (google.protobuf.Empty);
    32  	rpc Wait(WaitRequest) returns (WaitResponse);
    33  	rpc Stats(StatsRequest) returns (StatsResponse);
    34  	rpc Connect(ConnectRequest) returns (ConnectResponse);
    35  	rpc Shutdown(ShutdownRequest) returns (google.protobuf.Empty);
    36  }
    37  
    38  message CreateTaskRequest {
    39  	string id = 1;
    40  	string bundle = 2;
    41  	repeated containerd.types.Mount rootfs = 3;
    42  	bool terminal = 4;
    43  	string stdin = 5;
    44  	string stdout = 6;
    45  	string stderr = 7;
    46  	string checkpoint = 8;
    47  	string parent_checkpoint = 9;
    48  	google.protobuf.Any options = 10;
    49  }
    50  
    51  message CreateTaskResponse {
    52  	uint32 pid = 1;
    53  }
    54  
    55  message DeleteRequest {
    56  	string id = 1;
    57  	string exec_id = 2;
    58  }
    59  
    60  message DeleteResponse {
    61  	uint32 pid = 1;
    62  	uint32 exit_status = 2;
    63  	google.protobuf.Timestamp exited_at = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
    64  }
    65  
    66  message ExecProcessRequest {
    67  	string id = 1;
    68  	string exec_id = 2;
    69  	bool terminal = 3;
    70  	string stdin = 4;
    71  	string stdout = 5;
    72  	string stderr = 6;
    73  	google.protobuf.Any spec = 7;
    74  }
    75  
    76  message ExecProcessResponse {
    77  }
    78  
    79  message ResizePtyRequest {
    80  	string id = 1;
    81  	string exec_id = 2;
    82  	uint32 width = 3;
    83  	uint32 height = 4;
    84  }
    85  
    86  message StateRequest {
    87  	string id = 1;
    88  	string exec_id = 2;
    89  }
    90  
    91  message StateResponse {
    92  	string id = 1;
    93  	string bundle = 2;
    94  	uint32 pid = 3;
    95  	containerd.v1.types.Status status = 4;
    96  	string stdin = 5;
    97  	string stdout = 6;
    98  	string stderr = 7;
    99  	bool terminal = 8;
   100  	uint32 exit_status = 9;
   101  	google.protobuf.Timestamp exited_at = 10 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
   102  	string exec_id = 11;
   103  }
   104  
   105  message KillRequest {
   106  	string id = 1;
   107  	string exec_id = 2;
   108  	uint32 signal = 3;
   109  	bool all = 4;
   110  }
   111  
   112  message CloseIORequest {
   113  	string id = 1;
   114  	string exec_id = 2;
   115  	bool stdin = 3;
   116  }
   117  
   118  message PidsRequest {
   119  	string id = 1;
   120  }
   121  
   122  message PidsResponse {
   123  	repeated containerd.v1.types.ProcessInfo processes = 1;
   124  }
   125  
   126  message CheckpointTaskRequest {
   127  	string id = 1;
   128  	string path = 2;
   129  	google.protobuf.Any options = 3;
   130  }
   131  
   132  message UpdateTaskRequest {
   133  	string id = 1;
   134  	google.protobuf.Any resources = 2;
   135  }
   136  
   137  message StartRequest {
   138  	string id = 1;
   139  	string exec_id = 2;
   140  }
   141  
   142  message StartResponse {
   143  	uint32 pid = 1;
   144  }
   145  
   146  message WaitRequest {
   147  	string id = 1;
   148  	string exec_id = 2;
   149  }
   150  
   151  message WaitResponse {
   152  	uint32 exit_status = 1;
   153  	google.protobuf.Timestamp exited_at = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
   154  }
   155  
   156  message StatsRequest {
   157  	string id = 1;
   158  }
   159  
   160  message StatsResponse {
   161  	google.protobuf.Any stats = 1;
   162  }
   163  
   164  message ConnectRequest {
   165  	string id = 1;
   166  }
   167  
   168  message ConnectResponse {
   169  	uint32 shim_pid = 1;
   170  	uint32 task_pid = 2;
   171  	string version = 3;
   172  }
   173  
   174  message ShutdownRequest {
   175  	string id = 1;
   176  	bool now = 2;
   177  }
   178  
   179  message PauseRequest {
   180  	string id = 1;
   181  }
   182  
   183  message ResumeRequest {
   184  	string id = 1;
   185  }