2016-12-09 18:13:41 +00:00
|
|
|
syntax = "proto3";
|
|
|
|
|
2017-01-25 21:27:48 +00:00
|
|
|
package containerd.shim.v1;
|
2016-12-09 18:13:41 +00:00
|
|
|
|
|
|
|
import "google/protobuf/empty.proto";
|
|
|
|
import "gogoproto/gogo.proto";
|
|
|
|
|
2017-01-24 22:45:18 +00:00
|
|
|
service Shim {
|
2017-01-25 21:27:48 +00:00
|
|
|
rpc Create(CreateRequest) returns (CreateResponse);
|
|
|
|
rpc Start(StartRequest) returns (google.protobuf.Empty);
|
|
|
|
rpc Delete(DeleteRequest) returns (DeleteResponse);
|
|
|
|
rpc Exec(ExecRequest) returns (ExecResponse);
|
|
|
|
rpc Pty(PtyRequest) returns (google.protobuf.Empty);
|
|
|
|
rpc Events(EventsRequest) returns (stream Event);
|
2017-01-26 23:09:59 +00:00
|
|
|
rpc State(StateRequest) returns (StateResponse);
|
2017-02-01 21:25:28 +00:00
|
|
|
rpc Pause(PauseRequest) returns (google.protobuf.Empty);
|
|
|
|
rpc Resume(ResumeRequest) returns (google.protobuf.Empty);
|
2017-01-19 19:59:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
message CreateRequest {
|
2017-01-25 21:27:48 +00:00
|
|
|
string id = 1 [(gogoproto.customname) = "ID"];
|
|
|
|
string bundle = 2;
|
|
|
|
string runtime = 3;
|
|
|
|
bool no_pivot = 4;
|
|
|
|
bool terminal = 5;
|
|
|
|
string stdin = 6;
|
|
|
|
string stdout = 7;
|
|
|
|
string stderr = 8;
|
2017-01-19 19:59:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
message CreateResponse {
|
2017-01-25 21:27:48 +00:00
|
|
|
uint32 pid = 1;
|
2017-01-19 19:59:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
message StartRequest {
|
|
|
|
}
|
|
|
|
|
|
|
|
message DeleteRequest {
|
2017-01-26 23:09:59 +00:00
|
|
|
uint32 pid = 1;
|
2017-01-19 19:59:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
message DeleteResponse {
|
2017-01-25 21:27:48 +00:00
|
|
|
uint32 exit_status = 1;
|
2017-01-19 19:59:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
message ExecRequest {
|
2017-01-26 23:09:59 +00:00
|
|
|
bool terminal = 1;
|
|
|
|
string stdin = 2;
|
|
|
|
string stdout = 3;
|
|
|
|
string stderr = 4;
|
|
|
|
string selinux_label = 5;
|
2017-01-25 21:27:48 +00:00
|
|
|
User user = 6;
|
|
|
|
repeated string args = 7;
|
|
|
|
repeated string env = 8;
|
|
|
|
string cwd = 9;
|
|
|
|
repeated string capabilities = 10;
|
|
|
|
repeated Rlimit rlimits = 11;
|
|
|
|
bool no_new_privileges = 12;
|
|
|
|
string apparmor_profile = 13;
|
2017-01-24 22:45:18 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
message User {
|
2017-01-25 21:27:48 +00:00
|
|
|
uint32 uid = 1;
|
|
|
|
uint32 gid = 2;
|
|
|
|
repeated uint32 additional_gids = 3;
|
2017-01-24 22:45:18 +00:00
|
|
|
}
|
2017-01-19 19:59:47 +00:00
|
|
|
|
2017-01-24 22:45:18 +00:00
|
|
|
message Rlimit {
|
2017-01-25 21:27:48 +00:00
|
|
|
string type = 1;
|
|
|
|
uint64 hard = 2;
|
|
|
|
uint64 soft = 3;
|
2017-01-19 19:59:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
message ExecResponse {
|
2017-01-25 21:27:48 +00:00
|
|
|
uint32 pid = 1;
|
2016-12-09 18:13:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
message PtyRequest {
|
2017-01-25 21:27:48 +00:00
|
|
|
uint32 pid = 1;
|
|
|
|
uint32 width = 2;
|
|
|
|
uint32 height = 3;
|
|
|
|
}
|
|
|
|
|
|
|
|
message EventsRequest {
|
|
|
|
}
|
|
|
|
|
|
|
|
enum EventType {
|
|
|
|
EXIT = 0;
|
|
|
|
OOM = 1;
|
2017-02-01 21:25:28 +00:00
|
|
|
CREATE = 2;
|
|
|
|
START = 3;
|
2017-01-26 19:29:19 +00:00
|
|
|
EXEC_ADDED = 4;
|
2017-01-25 21:27:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
message Event {
|
|
|
|
string id = 1 [(gogoproto.customname) = "ID"];
|
|
|
|
EventType type = 2;
|
|
|
|
uint32 pid = 3;
|
|
|
|
uint32 exit_status = 4;
|
2016-12-09 18:13:41 +00:00
|
|
|
}
|
2017-01-26 23:09:59 +00:00
|
|
|
|
|
|
|
message StateRequest {
|
|
|
|
}
|
|
|
|
|
|
|
|
message StateResponse {
|
|
|
|
string id = 1 [(gogoproto.customname) = "ID"];
|
2017-02-01 21:25:28 +00:00
|
|
|
string bundle = 2;
|
|
|
|
repeated Process processes = 3;
|
2017-01-26 23:09:59 +00:00
|
|
|
}
|
|
|
|
|
2017-02-01 21:25:28 +00:00
|
|
|
// TODO: share core runtime types between shim and execution rpcs
|
2017-01-26 23:09:59 +00:00
|
|
|
enum State {
|
|
|
|
STOPPED = 0;
|
|
|
|
RUNNING = 1;
|
2017-02-01 21:25:28 +00:00
|
|
|
PAUSED = 2;
|
|
|
|
CREATED = 3;
|
2017-01-26 23:09:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
message Process {
|
|
|
|
uint32 pid = 1;
|
|
|
|
State state = 2;
|
|
|
|
}
|
2017-02-01 21:25:28 +00:00
|
|
|
|
|
|
|
message PauseRequest {
|
|
|
|
}
|
|
|
|
|
|
|
|
message ResumeRequest {
|
|
|
|
}
|