809344a6f5
- Add endpoints related to peering: read, list, generate token, initiate peering - Update node/service/check table indexing to account for peers - Foundational changes for pushing service updates to a peer - Plumb peer name through Health.ServiceNodes path see: ENT-1765, ENT-1280, ENT-1283, ENT-1283, ENT-1756, ENT-1739, ENT-1750, ENT-1679, ENT-1709, ENT-1704, ENT-1690, ENT-1689, ENT-1702, ENT-1701, ENT-1683, ENT-1663, ENT-1650, ENT-1678, ENT-1628, ENT-1658, ENT-1640, ENT-1637, ENT-1597, ENT-1634, ENT-1613, ENT-1616, ENT-1617, ENT-1591, ENT-1588, ENT-1596, ENT-1572, ENT-1555 Co-authored-by: R.B. Boyer <rb@hashicorp.com> Co-authored-by: freddygv <freddy@hashicorp.com> Co-authored-by: Chris S. Kim <ckim@hashicorp.com> Co-authored-by: Evan Culver <eculver@hashicorp.com> Co-authored-by: Nitya Dhanushkodi <nitya@hashicorp.com>
155 lines
5.1 KiB
Protocol Buffer
155 lines
5.1 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package pbservice;
|
|
|
|
option go_package = "github.com/hashicorp/consul/proto/pbservice";
|
|
|
|
import "google/protobuf/duration.proto";
|
|
import "proto/pbcommon/common.proto";
|
|
|
|
// HealthCheck represents a single check on a given node
|
|
//
|
|
// mog annotation:
|
|
//
|
|
// target=github.com/hashicorp/consul/agent/structs.HealthCheck
|
|
// output=healthcheck.gen.go
|
|
// name=Structs
|
|
message HealthCheck {
|
|
string Node = 1;
|
|
// mog: func-to=CheckIDType func-from=string
|
|
string CheckID = 2;
|
|
string Name = 3;
|
|
string Status = 4; // The current check status
|
|
string Notes = 5; // Additional notes with the status
|
|
string Output = 6; // Holds output of script runs
|
|
string ServiceID = 7; // optional associated service
|
|
string ServiceName = 8; // optional service name
|
|
repeated string ServiceTags = 9; // optional service tags
|
|
string Type = 12; // Check type: http/ttl/tcp/etc
|
|
|
|
HealthCheckDefinition Definition = 10;
|
|
|
|
// mog: func-to=RaftIndexToStructs func-from=NewRaftIndexFromStructs
|
|
common.RaftIndex RaftIndex = 11;
|
|
|
|
// mog: func-to=EnterpriseMetaToStructs func-from=NewEnterpriseMetaFromStructs
|
|
common.EnterpriseMeta EnterpriseMeta = 13;
|
|
|
|
// mog: func-to=int func-from=int32
|
|
int32 ExposedPort = 14;
|
|
|
|
string Interval = 15;
|
|
string Timeout = 16;
|
|
string PeerName = 17;
|
|
}
|
|
|
|
message HeaderValue {
|
|
repeated string Value = 1;
|
|
}
|
|
|
|
// HealthCheckDefinition of a single HealthCheck.
|
|
//
|
|
// mog annotation:
|
|
//
|
|
// target=github.com/hashicorp/consul/agent/structs.HealthCheckDefinition
|
|
// output=healthcheck.gen.go
|
|
// name=Structs
|
|
message HealthCheckDefinition {
|
|
string HTTP = 1;
|
|
string TLSServerName = 19;
|
|
bool TLSSkipVerify = 2;
|
|
|
|
// mog: func-to=MapHeadersToStructs func-from=NewMapHeadersFromStructs
|
|
map<string, HeaderValue> Header = 3;
|
|
string Method = 4;
|
|
string Body = 18;
|
|
bool DisableRedirects = 22;
|
|
string TCP = 5;
|
|
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
|
|
google.protobuf.Duration Interval = 6;
|
|
|
|
// mog: func-to=uint func-from=uint32
|
|
uint32 OutputMaxSize = 9;
|
|
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
|
|
google.protobuf.Duration Timeout = 7;
|
|
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
|
|
google.protobuf.Duration DeregisterCriticalServiceAfter = 8;
|
|
repeated string ScriptArgs = 10;
|
|
string DockerContainerID = 11;
|
|
string Shell = 12;
|
|
string H2PING = 20;
|
|
bool H2PingUseTLS = 21;
|
|
string GRPC = 13;
|
|
bool GRPCUseTLS = 14;
|
|
string AliasNode = 15;
|
|
string AliasService = 16;
|
|
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
|
|
google.protobuf.Duration TTL = 17;
|
|
}
|
|
|
|
// CheckType is used to create either the CheckMonitor or the CheckTTL.
|
|
// The following types are supported: Script, HTTP, TCP, Docker, TTL, GRPC,
|
|
// Alias. Script, H2PING,
|
|
// HTTP, Docker, TCP, H2PING and GRPC all require Interval. Only one of the types may
|
|
// to be provided: TTL or Script/Interval or HTTP/Interval or TCP/Interval or
|
|
// Docker/Interval or GRPC/Interval or H2PING/Interval or AliasService.
|
|
//
|
|
// mog annotation:
|
|
//
|
|
// target=github.com/hashicorp/consul/agent/structs.CheckType
|
|
// output=healthcheck.gen.go
|
|
// name=Structs
|
|
message CheckType {
|
|
// mog: func-to=CheckIDType func-from=string
|
|
string CheckID = 1;
|
|
string Name = 2;
|
|
string Status = 3;
|
|
string Notes = 4;
|
|
|
|
repeated string ScriptArgs = 5;
|
|
string HTTP = 6;
|
|
// mog: func-to=MapHeadersToStructs func-from=NewMapHeadersFromStructs
|
|
map<string, HeaderValue> Header = 20;
|
|
string Method = 7;
|
|
string Body = 26;
|
|
bool DisableRedirects = 31;
|
|
string TCP = 8;
|
|
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
|
|
google.protobuf.Duration Interval = 9;
|
|
|
|
string AliasNode = 10;
|
|
string AliasService = 11;
|
|
string DockerContainerID = 12;
|
|
string Shell = 13;
|
|
string H2PING = 28;
|
|
bool H2PingUseTLS = 30;
|
|
string GRPC = 14;
|
|
bool GRPCUseTLS = 15;
|
|
string TLSServerName = 27;
|
|
bool TLSSkipVerify = 16;
|
|
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
|
|
google.protobuf.Duration Timeout = 17;
|
|
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
|
|
google.protobuf.Duration TTL = 18;
|
|
|
|
// mog: func-to=int func-from=int32
|
|
int32 SuccessBeforePassing = 21;
|
|
// mog: func-to=int func-from=int32
|
|
int32 FailuresBeforeWarning = 29;
|
|
// mog: func-to=int func-from=int32
|
|
int32 FailuresBeforeCritical = 22;
|
|
|
|
// Definition fields used when exposing checks through a proxy
|
|
string ProxyHTTP = 23;
|
|
string ProxyGRPC = 24;
|
|
|
|
// DeregisterCriticalServiceAfter, if >0, will cause the associated
|
|
// service, if any, to be deregistered if this check is critical for
|
|
// longer than this duration.
|
|
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
|
|
google.protobuf.Duration DeregisterCriticalServiceAfter = 19;
|
|
|
|
// mog: func-to=int func-from=int32
|
|
int32 OutputMaxSize = 25;
|
|
}
|