Files
kubevpn/pkg/daemon/rpc/daemon.proto
2024-02-23 21:17:24 +08:00

235 lines
4.4 KiB
Protocol Buffer

syntax = "proto3";
option go_package = ".;rpc";
package rpc;
service Daemon {
rpc Connect (ConnectRequest) returns (stream ConnectResponse) {}
rpc ConnectFork (ConnectRequest) returns (stream ConnectResponse) {}
rpc Disconnect (DisconnectRequest) returns (stream DisconnectResponse) {}
rpc Proxy (ConnectRequest) returns (stream ConnectResponse) {}
rpc Leave (LeaveRequest) returns (stream LeaveResponse) {}
rpc Clone (CloneRequest) returns (stream CloneResponse) {}
rpc Remove (RemoveRequest) returns (stream RemoveResponse) {}
rpc ConfigAdd (ConfigAddRequest) returns (ConfigAddResponse) {}
rpc ConfigRemove (ConfigRemoveRequest) returns (ConfigRemoveResponse) {}
rpc SshStart (SshStartRequest) returns (SshStartResponse) {}
rpc SshStop (SshStopRequest) returns (SshStopResponse) {}
rpc SshConnect (stream SshConnectRequest) returns (stream SshConnectResponse) {}
rpc Logs (LogRequest) returns (stream LogResponse) {}
rpc List (ListRequest) returns (ListResponse) {}
rpc Get (GetRequest) returns (GetResponse) {}
rpc Upgrade (UpgradeRequest) returns (UpgradeResponse) {}
rpc Status (StatusRequest) returns (StatusResponse) {}
rpc Version (VersionRequest) returns (VersionResponse) {}
rpc Quit (QuitRequest) returns (stream QuitResponse) {}
}
message ConnectRequest {
string KubeconfigBytes = 1;
string Namespace = 2;
map<string, string> Headers = 3;
repeated string PortMap = 4;
repeated string Workloads = 5;
repeated string ExtraCIDR = 6;
repeated string ExtraDomain = 7;
bool UseLocalDNS = 8;
string Engine = 9;
// ssh jump
SshJump SshJump = 10;
// transfer image
bool TransferImage = 11;
string Image = 12;
// foreground
bool Foreground = 13;
// log level
int32 Level = 14;
string OriginKubeconfigPath = 15;
}
message ConnectResponse {
string message = 1;
}
message DisconnectRequest {
optional int32 ID = 1;
optional bool All = 2;
}
message DisconnectResponse {
string message = 1;
}
message LeaveRequest {
repeated string Workloads = 1;
}
message LeaveResponse {
string message = 1;
}
message CloneRequest {
string KubeconfigBytes = 1;
string Namespace = 2;
map<string, string> Headers = 3;
repeated string Workloads = 4;
repeated string ExtraCIDR = 5;
repeated string ExtraDomain = 6;
bool UseLocalDNS = 7;
string Engine = 8;
// ssh jump
SshJump SshJump = 9;
// target cluster info
string TargetKubeconfig = 10;
string TargetNamespace = 11;
string TargetContainer = 12;
string TargetImage = 13;
string TargetRegistry = 14;
bool IsChangeTargetRegistry = 15;
// transfer image
bool TransferImage = 16;
string Image = 17;
// log level
int32 Level = 18;
string OriginKubeconfigPath = 19;
}
message CloneResponse {
string message = 1;
}
message RemoveRequest {
repeated string Workloads = 1;
}
message RemoveResponse {
string message = 1;
}
message QuitRequest {
}
message QuitResponse {
string message = 1;
}
message StatusRequest {
string name = 1;
}
message StatusResponse {
string message = 1;
}
message VersionRequest {
}
message VersionResponse {
string version = 1;
}
message ConfigAddRequest {
string KubeconfigBytes = 1;
string Namespace = 2;
// ssh jump
SshJump SshJump = 3;
}
message SshStartRequest {
string ClientIP = 1;
}
message SshStartResponse {
string ServerIP = 1;
}
message SshStopRequest {
string ClientIP = 1;
}
message SshStopResponse {
string ServerIP = 1;
}
message SshConnectRequest {
string Stdin = 1;
SshJump SshJump = 2;
}
message SshConnectResponse {
string Stdout = 1;
string Stderr = 2;
}
message ConfigAddResponse {
string ClusterID = 1;
}
message ConfigRemoveRequest {
string ClusterID = 1;
}
message ConfigRemoveResponse {
}
message LogRequest {
bool Follow = 1;
}
message LogResponse {
string message = 1;
}
message ListRequest {
}
message ListResponse {
string message = 1;
}
message GetRequest {
string Namespace = 2;
string resource = 4;
}
message GetResponse {
repeated metadata metadata = 1;
}
message metadata {
string name = 1;
string namespace = 2;
}
message UpgradeRequest {
string ClientVersion = 1;
string ClientCommitId = 2;
}
message UpgradeResponse {
bool NeedUpgrade = 1;
}
message SshJump {
string Addr = 1;
string User = 2;
string Password = 3;
string Keyfile = 4;
string ConfigAlias = 5;
string RemoteKubeconfig = 6;
string GSSAPIKeytabConf = 7;
string GSSAPIPassword = 8;
string GSSAPICacheFile = 9;
}