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.
180 lines
4.1 KiB
Protocol Buffer
180 lines
4.1 KiB
Protocol Buffer
2 years ago
|
syntax = "proto3";
|
||
|
|
||
|
package buildx.controller.v1;
|
||
|
|
||
|
import "github.com/moby/buildkit/api/services/control/control.proto";
|
||
|
|
||
|
option go_package = "pb";
|
||
|
|
||
|
service Controller {
|
||
|
rpc Build(BuildRequest) returns (BuildResponse);
|
||
|
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);
|
||
|
}
|
||
|
|
||
|
message BuildRequest {
|
||
|
string Ref = 1;
|
||
|
BuildOptions Options = 2;
|
||
|
}
|
||
|
|
||
|
message BuildOptions {
|
||
|
string ContextPath = 1;
|
||
|
string DockerfileName = 2;
|
||
|
string PrintFunc = 3;
|
||
|
|
||
|
repeated string Allow = 4;
|
||
|
repeated string Attests = 5; // TODO
|
||
|
repeated string BuildArgs = 6;
|
||
|
repeated string CacheFrom = 7;
|
||
|
repeated string CacheTo = 8;
|
||
|
string CgroupParent = 9;
|
||
|
repeated string Contexts = 10;
|
||
|
repeated string ExtraHosts = 11;
|
||
|
string ImageIDFile = 12;
|
||
|
repeated string Labels = 13;
|
||
|
string NetworkMode = 14;
|
||
|
repeated string NoCacheFilter = 15;
|
||
|
repeated string Outputs = 16;
|
||
|
repeated string Platforms = 17;
|
||
|
bool Quiet = 18;
|
||
|
repeated string Secrets = 19;
|
||
|
int64 ShmSize = 20;
|
||
|
repeated string SSH = 21;
|
||
|
repeated string Tags = 22;
|
||
|
string Target = 23;
|
||
|
UlimitOpt Ulimits = 24;
|
||
|
// string Invoke: provided via Invoke API
|
||
|
CommonOptions Opts = 25;
|
||
|
}
|
||
|
|
||
|
message UlimitOpt {
|
||
|
map<string, Ulimit> values = 1;
|
||
|
}
|
||
|
|
||
|
message Ulimit {
|
||
|
string Name = 1;
|
||
|
int64 Hard = 2;
|
||
|
int64 Soft = 3;
|
||
|
}
|
||
|
|
||
|
message CommonOptions {
|
||
|
string Builder = 1;
|
||
|
string MetadataFile = 2;
|
||
|
bool NoCache = 3;
|
||
|
// string Progress: no progress view on server side
|
||
|
bool Pull = 4;
|
||
|
bool ExportPush = 5;
|
||
|
bool ExportLoad = 6;
|
||
|
string SBOM = 7; // TODO
|
||
|
string Provenance = 8; // TODO
|
||
|
}
|
||
|
|
||
|
message BuildResponse {}
|
||
|
|
||
|
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;
|
||
|
ContainerConfig ContainerConfig = 2;
|
||
|
}
|
||
|
|
||
|
message ContainerConfig {
|
||
|
repeated string Entrypoint = 1;
|
||
|
repeated string Cmd = 2;
|
||
|
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;
|
||
|
}
|
||
|
|
||
|
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;
|
||
|
}
|