Revision: Rename to 'maglevd'; Refactor config structure
This commit is contained in:
120
proto/maglev.proto
Normal file
120
proto/maglev.proto
Normal file
@@ -0,0 +1,120 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package maglev;
|
||||
|
||||
option go_package = "git.ipng.ch/ipng/vpp-maglev/internal/grpcapi";
|
||||
|
||||
// Maglev exposes the state of backend health for all frontends.
|
||||
service Maglev {
|
||||
rpc ListFrontends(ListFrontendsRequest) returns (ListFrontendsResponse);
|
||||
rpc GetFrontend(GetFrontendRequest) returns (FrontendInfo);
|
||||
rpc ListBackends(ListBackendsRequest) returns (ListBackendsResponse);
|
||||
rpc GetBackend(GetBackendRequest) returns (BackendInfo);
|
||||
rpc PauseBackend(PauseResumeRequest) returns (BackendInfo);
|
||||
rpc ResumeBackend(PauseResumeRequest) returns (BackendInfo);
|
||||
rpc ListHealthChecks(ListHealthChecksRequest) returns (ListHealthChecksResponse);
|
||||
rpc GetHealthCheck(GetHealthCheckRequest) returns (HealthCheckInfo);
|
||||
rpc WatchBackendEvents(WatchRequest) returns (stream BackendEvent);
|
||||
}
|
||||
|
||||
// ---- requests ---------------------------------------------------------------
|
||||
|
||||
message ListFrontendsRequest {}
|
||||
|
||||
message GetFrontendRequest {
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
message ListBackendsRequest {}
|
||||
|
||||
message GetBackendRequest {
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
message PauseResumeRequest {
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
message ListHealthChecksRequest {}
|
||||
|
||||
message GetHealthCheckRequest {
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
message WatchRequest {}
|
||||
|
||||
// ---- responses --------------------------------------------------------------
|
||||
|
||||
message ListFrontendsResponse {
|
||||
repeated string frontend_names = 1;
|
||||
}
|
||||
|
||||
message FrontendInfo {
|
||||
string name = 1;
|
||||
string address = 2;
|
||||
string protocol = 3;
|
||||
uint32 port = 4;
|
||||
repeated string backend_names = 5;
|
||||
string description = 6;
|
||||
}
|
||||
|
||||
message ListBackendsResponse {
|
||||
repeated string backend_names = 1;
|
||||
}
|
||||
|
||||
message ListHealthChecksResponse {
|
||||
repeated string names = 1;
|
||||
}
|
||||
|
||||
message HTTPCheckParams {
|
||||
string path = 1;
|
||||
string host = 2;
|
||||
int32 response_code_min = 3;
|
||||
int32 response_code_max = 4;
|
||||
string response_regexp = 5;
|
||||
string server_name = 6;
|
||||
bool insecure_skip_verify = 7;
|
||||
}
|
||||
|
||||
message TCPCheckParams {
|
||||
bool ssl = 1;
|
||||
string server_name = 2;
|
||||
bool insecure_skip_verify = 3;
|
||||
}
|
||||
|
||||
message HealthCheckInfo {
|
||||
string name = 1;
|
||||
string type = 2;
|
||||
uint32 port = 3;
|
||||
string probe_ipv4_src = 4;
|
||||
string probe_ipv6_src = 5;
|
||||
int64 interval_ns = 6;
|
||||
int64 fast_interval_ns = 7;
|
||||
int64 down_interval_ns = 8;
|
||||
int64 timeout_ns = 9;
|
||||
int32 rise = 10;
|
||||
int32 fall = 11;
|
||||
HTTPCheckParams http = 12;
|
||||
TCPCheckParams tcp = 13;
|
||||
}
|
||||
|
||||
message BackendInfo {
|
||||
string name = 1;
|
||||
string address = 2;
|
||||
string state = 3;
|
||||
repeated TransitionRecord transitions = 4;
|
||||
bool enabled = 5;
|
||||
int32 weight = 6;
|
||||
string healthcheck = 7;
|
||||
}
|
||||
|
||||
message TransitionRecord {
|
||||
string from = 1;
|
||||
string to = 2;
|
||||
int64 at_unix_ns = 3;
|
||||
}
|
||||
|
||||
message BackendEvent {
|
||||
string backend_name = 1;
|
||||
TransitionRecord transition = 2;
|
||||
}
|
||||
Reference in New Issue
Block a user