You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
246 lines
5.5 KiB
Protocol Buffer
246 lines
5.5 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package buildx.controller.v1;
|
|
|
|
import "github.com/moby/buildkit/api/services/control/control.proto";
|
|
import "github.com/moby/buildkit/sourcepolicy/pb/policy.proto";
|
|
|
|
option go_package = "pb";
|
|
|
|
service Controller {
|
|
rpc Build(BuildRequest) returns (BuildResponse);
|
|
rpc Inspect(InspectRequest) returns (InspectResponse);
|
|
rpc Status(StatusRequest) returns (stream StatusResponse);
|
|
rpc Input(stream InputMessage) returns (InputResponse);
|
|
rpc Invoke(stream Message) returns (stream Message);
|
|
rpc List(ListRequest) returns (ListResponse);
|
|
rpc Disconnect(DisconnectRequest) returns (DisconnectResponse);
|
|
rpc Info(InfoRequest) returns (InfoResponse);
|
|
rpc ListProcesses(ListProcessesRequest) returns (ListProcessesResponse);
|
|
rpc DisconnectProcess(DisconnectProcessRequest) returns (DisconnectProcessResponse);
|
|
}
|
|
|
|
message ListProcessesRequest {
|
|
string Ref = 1;
|
|
}
|
|
|
|
message ListProcessesResponse {
|
|
repeated ProcessInfo Infos = 1;
|
|
}
|
|
|
|
message ProcessInfo {
|
|
string ProcessID = 1;
|
|
InvokeConfig InvokeConfig = 2;
|
|
}
|
|
|
|
message DisconnectProcessRequest {
|
|
string Ref = 1;
|
|
string ProcessID = 2;
|
|
}
|
|
|
|
message DisconnectProcessResponse {
|
|
}
|
|
|
|
message BuildRequest {
|
|
string Ref = 1;
|
|
BuildOptions Options = 2;
|
|
}
|
|
|
|
message BuildOptions {
|
|
string ContextPath = 1;
|
|
string DockerfileName = 2;
|
|
PrintFunc PrintFunc = 3;
|
|
map<string, string> NamedContexts = 4;
|
|
|
|
repeated string Allow = 5;
|
|
repeated Attest Attests = 6;
|
|
map<string, string> BuildArgs = 7;
|
|
repeated CacheOptionsEntry CacheFrom = 8;
|
|
repeated CacheOptionsEntry CacheTo = 9;
|
|
string CgroupParent = 10;
|
|
repeated ExportEntry Exports = 11;
|
|
repeated string ExtraHosts = 12;
|
|
map<string, string> Labels = 13;
|
|
string NetworkMode = 14;
|
|
repeated string NoCacheFilter = 15;
|
|
repeated string Platforms = 16;
|
|
repeated Secret Secrets = 17;
|
|
int64 ShmSize = 18;
|
|
repeated SSH SSH = 19;
|
|
repeated string Tags = 20;
|
|
string Target = 21;
|
|
UlimitOpt Ulimits = 22;
|
|
|
|
string Builder = 23;
|
|
bool NoCache = 24;
|
|
bool Pull = 25;
|
|
bool ExportPush = 26;
|
|
bool ExportLoad = 27;
|
|
moby.buildkit.v1.sourcepolicy.Policy SourcePolicy = 28;
|
|
}
|
|
|
|
message ExportEntry {
|
|
string Type = 1;
|
|
map<string, string> Attrs = 2;
|
|
string Destination = 3;
|
|
}
|
|
|
|
message CacheOptionsEntry {
|
|
string Type = 1;
|
|
map<string, string> Attrs = 2;
|
|
}
|
|
|
|
message Attest {
|
|
string Type = 1;
|
|
bool Disabled = 2;
|
|
string Attrs = 3;
|
|
}
|
|
|
|
message SSH {
|
|
string ID = 1;
|
|
repeated string Paths = 2;
|
|
}
|
|
|
|
message Secret {
|
|
string ID = 1;
|
|
string FilePath = 2;
|
|
string Env = 3;
|
|
}
|
|
|
|
message PrintFunc {
|
|
string Name = 1;
|
|
string Format = 2;
|
|
}
|
|
|
|
message InspectRequest {
|
|
string Ref = 1;
|
|
}
|
|
|
|
message InspectResponse {
|
|
BuildOptions Options = 1;
|
|
}
|
|
|
|
message UlimitOpt {
|
|
map<string, Ulimit> values = 1;
|
|
}
|
|
|
|
message Ulimit {
|
|
string Name = 1;
|
|
int64 Hard = 2;
|
|
int64 Soft = 3;
|
|
}
|
|
|
|
message BuildResponse {
|
|
map<string, string> ExporterResponse = 1;
|
|
}
|
|
|
|
message DisconnectRequest {
|
|
string Ref = 1;
|
|
}
|
|
|
|
message DisconnectResponse {}
|
|
|
|
message ListRequest {
|
|
string Ref = 1;
|
|
}
|
|
|
|
message ListResponse {
|
|
repeated string keys = 1;
|
|
}
|
|
|
|
message InputMessage {
|
|
oneof Input {
|
|
InputInitMessage Init = 1;
|
|
DataMessage Data = 2;
|
|
}
|
|
}
|
|
|
|
message InputInitMessage {
|
|
string Ref = 1;
|
|
}
|
|
|
|
message DataMessage {
|
|
bool EOF = 1; // true if eof was reached
|
|
bytes Data = 2; // should be chunked smaller than 4MB:
|
|
// https://pkg.go.dev/google.golang.org/grpc#MaxRecvMsgSize
|
|
}
|
|
|
|
message InputResponse {}
|
|
|
|
message Message {
|
|
oneof Input {
|
|
InitMessage Init = 1;
|
|
// FdMessage used from client to server for input (stdin) and
|
|
// from server to client for output (stdout, stderr)
|
|
FdMessage File = 2;
|
|
// ResizeMessage used from client to server for terminal resize events
|
|
ResizeMessage Resize = 3;
|
|
// SignalMessage is used from client to server to send signal events
|
|
SignalMessage Signal = 4;
|
|
}
|
|
}
|
|
|
|
message InitMessage {
|
|
string Ref = 1;
|
|
|
|
// If ProcessID already exists in the server, it tries to connect to it
|
|
// instead of invoking the new one. In this case, InvokeConfig will be ignored.
|
|
string ProcessID = 2;
|
|
InvokeConfig InvokeConfig = 3;
|
|
}
|
|
|
|
message InvokeConfig {
|
|
repeated string Entrypoint = 1;
|
|
repeated string Cmd = 2;
|
|
bool NoCmd = 11; // Do not set cmd but use the image's default
|
|
repeated string Env = 3;
|
|
string User = 4;
|
|
bool NoUser = 5; // Do not set user but use the image's default
|
|
string Cwd = 6;
|
|
bool NoCwd = 7; // Do not set cwd but use the image's default
|
|
bool Tty = 8;
|
|
bool Rollback = 9; // Kill all process in the container and recreate it.
|
|
bool Initial = 10; // Run container from the initial state of that stage (supported only on the failed step)
|
|
}
|
|
|
|
message FdMessage {
|
|
uint32 Fd = 1; // what fd the data was from
|
|
bool EOF = 2; // true if eof was reached
|
|
bytes Data = 3; // should be chunked smaller than 4MB:
|
|
// https://pkg.go.dev/google.golang.org/grpc#MaxRecvMsgSize
|
|
}
|
|
|
|
message ResizeMessage {
|
|
uint32 Rows = 1;
|
|
uint32 Cols = 2;
|
|
}
|
|
|
|
message SignalMessage {
|
|
// we only send name (ie HUP, INT) because the int values
|
|
// are platform dependent.
|
|
string Name = 1;
|
|
}
|
|
|
|
message StatusRequest {
|
|
string Ref = 1;
|
|
}
|
|
|
|
message StatusResponse {
|
|
repeated moby.buildkit.v1.Vertex vertexes = 1;
|
|
repeated moby.buildkit.v1.VertexStatus statuses = 2;
|
|
repeated moby.buildkit.v1.VertexLog logs = 3;
|
|
repeated moby.buildkit.v1.VertexWarning warnings = 4;
|
|
}
|
|
|
|
message InfoRequest {}
|
|
|
|
message InfoResponse {
|
|
BuildxVersion buildxVersion = 1;
|
|
}
|
|
|
|
message BuildxVersion {
|
|
string package = 1;
|
|
string version = 2;
|
|
string revision = 3;
|
|
}
|