discoveryv2

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 8, 2024 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AggregatedDiscoveryService_StreamAggregatedResources_FullMethodName = "/envoy.service.discovery.v2.AggregatedDiscoveryService/StreamAggregatedResources"
	AggregatedDiscoveryService_DeltaAggregatedResources_FullMethodName  = "/envoy.service.discovery.v2.AggregatedDiscoveryService/DeltaAggregatedResources"
)
View Source
const (
	HealthDiscoveryService_StreamHealthCheck_FullMethodName = "/envoy.service.discovery.v2.HealthDiscoveryService/StreamHealthCheck"
	HealthDiscoveryService_FetchHealthCheck_FullMethodName  = "/envoy.service.discovery.v2.HealthDiscoveryService/FetchHealthCheck"
)
View Source
const (
	RuntimeDiscoveryService_StreamRuntime_FullMethodName = "/envoy.service.discovery.v2.RuntimeDiscoveryService/StreamRuntime"
	RuntimeDiscoveryService_DeltaRuntime_FullMethodName  = "/envoy.service.discovery.v2.RuntimeDiscoveryService/DeltaRuntime"
	RuntimeDiscoveryService_FetchRuntime_FullMethodName  = "/envoy.service.discovery.v2.RuntimeDiscoveryService/FetchRuntime"
)
View Source
const (
	SecretDiscoveryService_DeltaSecrets_FullMethodName  = "/envoy.service.discovery.v2.SecretDiscoveryService/DeltaSecrets"
	SecretDiscoveryService_StreamSecrets_FullMethodName = "/envoy.service.discovery.v2.SecretDiscoveryService/StreamSecrets"
	SecretDiscoveryService_FetchSecrets_FullMethodName  = "/envoy.service.discovery.v2.SecretDiscoveryService/FetchSecrets"
)

Variables

View Source
var (
	Capability_Protocol_name = map[int32]string{
		0: "HTTP",
		1: "TCP",
		2: "REDIS",
	}
	Capability_Protocol_value = map[string]int32{
		"HTTP":  0,
		"TCP":   1,
		"REDIS": 2,
	}
)

Enum value maps for Capability_Protocol.

View Source
var AggregatedDiscoveryService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "envoy.service.discovery.v2.AggregatedDiscoveryService",
	HandlerType: (*AggregatedDiscoveryServiceServer)(nil),
	Methods:     []grpc.MethodDesc{},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "StreamAggregatedResources",
			Handler:       _AggregatedDiscoveryService_StreamAggregatedResources_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
		{
			StreamName:    "DeltaAggregatedResources",
			Handler:       _AggregatedDiscoveryService_DeltaAggregatedResources_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
	},
	Metadata: "envoy/service/discovery/v2/ads.proto",
}

AggregatedDiscoveryService_ServiceDesc is the grpc.ServiceDesc for AggregatedDiscoveryService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var File_envoy_service_discovery_v2_ads_proto protoreflect.FileDescriptor
View Source
var File_envoy_service_discovery_v2_hds_proto protoreflect.FileDescriptor
View Source
var File_envoy_service_discovery_v2_rtds_proto protoreflect.FileDescriptor
View Source
var File_envoy_service_discovery_v2_sds_proto protoreflect.FileDescriptor
View Source
var HealthDiscoveryService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "envoy.service.discovery.v2.HealthDiscoveryService",
	HandlerType: (*HealthDiscoveryServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "FetchHealthCheck",
			Handler:    _HealthDiscoveryService_FetchHealthCheck_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "StreamHealthCheck",
			Handler:       _HealthDiscoveryService_StreamHealthCheck_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
	},
	Metadata: "envoy/service/discovery/v2/hds.proto",
}

HealthDiscoveryService_ServiceDesc is the grpc.ServiceDesc for HealthDiscoveryService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var RuntimeDiscoveryService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "envoy.service.discovery.v2.RuntimeDiscoveryService",
	HandlerType: (*RuntimeDiscoveryServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "FetchRuntime",
			Handler:    _RuntimeDiscoveryService_FetchRuntime_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "StreamRuntime",
			Handler:       _RuntimeDiscoveryService_StreamRuntime_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
		{
			StreamName:    "DeltaRuntime",
			Handler:       _RuntimeDiscoveryService_DeltaRuntime_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
	},
	Metadata: "envoy/service/discovery/v2/rtds.proto",
}

RuntimeDiscoveryService_ServiceDesc is the grpc.ServiceDesc for RuntimeDiscoveryService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var SecretDiscoveryService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "envoy.service.discovery.v2.SecretDiscoveryService",
	HandlerType: (*SecretDiscoveryServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "FetchSecrets",
			Handler:    _SecretDiscoveryService_FetchSecrets_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "DeltaSecrets",
			Handler:       _SecretDiscoveryService_DeltaSecrets_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
		{
			StreamName:    "StreamSecrets",
			Handler:       _SecretDiscoveryService_StreamSecrets_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
	},
	Metadata: "envoy/service/discovery/v2/sds.proto",
}

SecretDiscoveryService_ServiceDesc is the grpc.ServiceDesc for SecretDiscoveryService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func RegisterAggregatedDiscoveryServiceServer

func RegisterAggregatedDiscoveryServiceServer(s grpc.ServiceRegistrar, srv AggregatedDiscoveryServiceServer)

func RegisterHealthDiscoveryServiceServer

func RegisterHealthDiscoveryServiceServer(s grpc.ServiceRegistrar, srv HealthDiscoveryServiceServer)

func RegisterRuntimeDiscoveryServiceServer

func RegisterRuntimeDiscoveryServiceServer(s grpc.ServiceRegistrar, srv RuntimeDiscoveryServiceServer)

func RegisterSecretDiscoveryServiceServer

func RegisterSecretDiscoveryServiceServer(s grpc.ServiceRegistrar, srv SecretDiscoveryServiceServer)

Types

type AdsDummy

type AdsDummy struct {
	// contains filtered or unexported fields
}

[#not-implemented-hide:] Not configuration. Workaround c++ protobuf issue with importing services: https://github.com/google/protobuf/issues/4221

func (*AdsDummy) Descriptor deprecated

func (*AdsDummy) Descriptor() ([]byte, []int)

Deprecated: Use AdsDummy.ProtoReflect.Descriptor instead.

func (*AdsDummy) ProtoMessage

func (*AdsDummy) ProtoMessage()

func (*AdsDummy) ProtoReflect

func (x *AdsDummy) ProtoReflect() protoreflect.Message

func (*AdsDummy) Reset

func (x *AdsDummy) Reset()

func (*AdsDummy) String

func (x *AdsDummy) String() string

type AggregatedDiscoveryServiceClient

type AggregatedDiscoveryServiceClient interface {
	// This is a gRPC-only API.
	StreamAggregatedResources(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[v2.DiscoveryRequest, v2.DiscoveryResponse], error)
	DeltaAggregatedResources(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse], error)
}

AggregatedDiscoveryServiceClient is the client API for AggregatedDiscoveryService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

See https://github.com/envoyproxy/envoy-api#apis for a description of the role of ADS and how it is intended to be used by a management server. ADS requests have the same structure as their singleton xDS counterparts, but can multiplex many resource types on a single stream. The type_url in the DiscoveryRequest/DiscoveryResponse provides sufficient information to recover the multiplexed singleton APIs at the Envoy instance and management server.

type AggregatedDiscoveryServiceServer

type AggregatedDiscoveryServiceServer interface {
	// This is a gRPC-only API.
	StreamAggregatedResources(grpc.BidiStreamingServer[v2.DiscoveryRequest, v2.DiscoveryResponse]) error
	DeltaAggregatedResources(grpc.BidiStreamingServer[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse]) error
	// contains filtered or unexported methods
}

AggregatedDiscoveryServiceServer is the server API for AggregatedDiscoveryService service. All implementations must embed UnimplementedAggregatedDiscoveryServiceServer for forward compatibility.

See https://github.com/envoyproxy/envoy-api#apis for a description of the role of ADS and how it is intended to be used by a management server. ADS requests have the same structure as their singleton xDS counterparts, but can multiplex many resource types on a single stream. The type_url in the DiscoveryRequest/DiscoveryResponse provides sufficient information to recover the multiplexed singleton APIs at the Envoy instance and management server.

type AggregatedDiscoveryService_DeltaAggregatedResourcesClient

type AggregatedDiscoveryService_DeltaAggregatedResourcesClient = grpc.BidiStreamingClient[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type AggregatedDiscoveryService_DeltaAggregatedResourcesServer

type AggregatedDiscoveryService_DeltaAggregatedResourcesServer = grpc.BidiStreamingServer[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type AggregatedDiscoveryService_StreamAggregatedResourcesClient

type AggregatedDiscoveryService_StreamAggregatedResourcesClient = grpc.BidiStreamingClient[v2.DiscoveryRequest, v2.DiscoveryResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type AggregatedDiscoveryService_StreamAggregatedResourcesServer

type AggregatedDiscoveryService_StreamAggregatedResourcesServer = grpc.BidiStreamingServer[v2.DiscoveryRequest, v2.DiscoveryResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type Capability

type Capability struct {
	HealthCheckProtocols []Capability_Protocol `` /* 183-byte string literal not displayed */
	// contains filtered or unexported fields
}

Defines supported protocols etc, so the management server can assign proper endpoints to healthcheck.

func (*Capability) Descriptor deprecated

func (*Capability) Descriptor() ([]byte, []int)

Deprecated: Use Capability.ProtoReflect.Descriptor instead.

func (*Capability) GetHealthCheckProtocols

func (x *Capability) GetHealthCheckProtocols() []Capability_Protocol

func (*Capability) ProtoMessage

func (*Capability) ProtoMessage()

func (*Capability) ProtoReflect

func (x *Capability) ProtoReflect() protoreflect.Message

func (*Capability) Reset

func (x *Capability) Reset()

func (*Capability) String

func (x *Capability) String() string

type Capability_Protocol

type Capability_Protocol int32

Different Envoy instances may have different capabilities (e.g. Redis) and/or have ports enabled for different protocols.

const (
	Capability_HTTP  Capability_Protocol = 0
	Capability_TCP   Capability_Protocol = 1
	Capability_REDIS Capability_Protocol = 2
)

func (Capability_Protocol) Descriptor

func (Capability_Protocol) Enum

func (Capability_Protocol) EnumDescriptor deprecated

func (Capability_Protocol) EnumDescriptor() ([]byte, []int)

Deprecated: Use Capability_Protocol.Descriptor instead.

func (Capability_Protocol) Number

func (Capability_Protocol) String

func (x Capability_Protocol) String() string

func (Capability_Protocol) Type

type ClusterHealthCheck

type ClusterHealthCheck struct {
	ClusterName       string               `protobuf:"bytes,1,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
	HealthChecks      []*core.HealthCheck  `protobuf:"bytes,2,rep,name=health_checks,json=healthChecks,proto3" json:"health_checks,omitempty"`
	LocalityEndpoints []*LocalityEndpoints `protobuf:"bytes,3,rep,name=locality_endpoints,json=localityEndpoints,proto3" json:"locality_endpoints,omitempty"`
	// contains filtered or unexported fields
}

The cluster name and locality is provided to Envoy for the endpoints that it health checks to support statistics reporting, logging and debugging by the Envoy instance (outside of HDS). For maximum usefulness, it should match the same cluster structure as that provided by EDS.

func (*ClusterHealthCheck) Descriptor deprecated

func (*ClusterHealthCheck) Descriptor() ([]byte, []int)

Deprecated: Use ClusterHealthCheck.ProtoReflect.Descriptor instead.

func (*ClusterHealthCheck) GetClusterName

func (x *ClusterHealthCheck) GetClusterName() string

func (*ClusterHealthCheck) GetHealthChecks

func (x *ClusterHealthCheck) GetHealthChecks() []*core.HealthCheck

func (*ClusterHealthCheck) GetLocalityEndpoints

func (x *ClusterHealthCheck) GetLocalityEndpoints() []*LocalityEndpoints

func (*ClusterHealthCheck) ProtoMessage

func (*ClusterHealthCheck) ProtoMessage()

func (*ClusterHealthCheck) ProtoReflect

func (x *ClusterHealthCheck) ProtoReflect() protoreflect.Message

func (*ClusterHealthCheck) Reset

func (x *ClusterHealthCheck) Reset()

func (*ClusterHealthCheck) String

func (x *ClusterHealthCheck) String() string

type EndpointHealth

type EndpointHealth struct {
	Endpoint     *endpoint.Endpoint `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	HealthStatus core.HealthStatus  `` /* 134-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*EndpointHealth) Descriptor deprecated

func (*EndpointHealth) Descriptor() ([]byte, []int)

Deprecated: Use EndpointHealth.ProtoReflect.Descriptor instead.

func (*EndpointHealth) GetEndpoint

func (x *EndpointHealth) GetEndpoint() *endpoint.Endpoint

func (*EndpointHealth) GetHealthStatus

func (x *EndpointHealth) GetHealthStatus() core.HealthStatus

func (*EndpointHealth) ProtoMessage

func (*EndpointHealth) ProtoMessage()

func (*EndpointHealth) ProtoReflect

func (x *EndpointHealth) ProtoReflect() protoreflect.Message

func (*EndpointHealth) Reset

func (x *EndpointHealth) Reset()

func (*EndpointHealth) String

func (x *EndpointHealth) String() string

type EndpointHealthResponse

type EndpointHealthResponse struct {
	EndpointsHealth []*EndpointHealth `protobuf:"bytes,1,rep,name=endpoints_health,json=endpointsHealth,proto3" json:"endpoints_health,omitempty"`
	// contains filtered or unexported fields
}

func (*EndpointHealthResponse) Descriptor deprecated

func (*EndpointHealthResponse) Descriptor() ([]byte, []int)

Deprecated: Use EndpointHealthResponse.ProtoReflect.Descriptor instead.

func (*EndpointHealthResponse) GetEndpointsHealth

func (x *EndpointHealthResponse) GetEndpointsHealth() []*EndpointHealth

func (*EndpointHealthResponse) ProtoMessage

func (*EndpointHealthResponse) ProtoMessage()

func (*EndpointHealthResponse) ProtoReflect

func (x *EndpointHealthResponse) ProtoReflect() protoreflect.Message

func (*EndpointHealthResponse) Reset

func (x *EndpointHealthResponse) Reset()

func (*EndpointHealthResponse) String

func (x *EndpointHealthResponse) String() string

type HealthCheckRequest

type HealthCheckRequest struct {
	Node       *core.Node  `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
	Capability *Capability `protobuf:"bytes,2,opt,name=capability,proto3" json:"capability,omitempty"`
	// contains filtered or unexported fields
}

func (*HealthCheckRequest) Descriptor deprecated

func (*HealthCheckRequest) Descriptor() ([]byte, []int)

Deprecated: Use HealthCheckRequest.ProtoReflect.Descriptor instead.

func (*HealthCheckRequest) GetCapability

func (x *HealthCheckRequest) GetCapability() *Capability

func (*HealthCheckRequest) GetNode

func (x *HealthCheckRequest) GetNode() *core.Node

func (*HealthCheckRequest) ProtoMessage

func (*HealthCheckRequest) ProtoMessage()

func (*HealthCheckRequest) ProtoReflect

func (x *HealthCheckRequest) ProtoReflect() protoreflect.Message

func (*HealthCheckRequest) Reset

func (x *HealthCheckRequest) Reset()

func (*HealthCheckRequest) String

func (x *HealthCheckRequest) String() string

type HealthCheckRequestOrEndpointHealthResponse

type HealthCheckRequestOrEndpointHealthResponse struct {

	// Types that are assignable to RequestType:
	//
	//	*HealthCheckRequestOrEndpointHealthResponse_HealthCheckRequest
	//	*HealthCheckRequestOrEndpointHealthResponse_EndpointHealthResponse
	RequestType isHealthCheckRequestOrEndpointHealthResponse_RequestType `protobuf_oneof:"request_type"`
	// contains filtered or unexported fields
}

func (*HealthCheckRequestOrEndpointHealthResponse) Descriptor deprecated

Deprecated: Use HealthCheckRequestOrEndpointHealthResponse.ProtoReflect.Descriptor instead.

func (*HealthCheckRequestOrEndpointHealthResponse) GetEndpointHealthResponse

func (*HealthCheckRequestOrEndpointHealthResponse) GetHealthCheckRequest

func (*HealthCheckRequestOrEndpointHealthResponse) GetRequestType

func (m *HealthCheckRequestOrEndpointHealthResponse) GetRequestType() isHealthCheckRequestOrEndpointHealthResponse_RequestType

func (*HealthCheckRequestOrEndpointHealthResponse) ProtoMessage

func (*HealthCheckRequestOrEndpointHealthResponse) ProtoReflect

func (*HealthCheckRequestOrEndpointHealthResponse) Reset

func (*HealthCheckRequestOrEndpointHealthResponse) String

type HealthCheckRequestOrEndpointHealthResponse_EndpointHealthResponse

type HealthCheckRequestOrEndpointHealthResponse_EndpointHealthResponse struct {
	EndpointHealthResponse *EndpointHealthResponse `protobuf:"bytes,2,opt,name=endpoint_health_response,json=endpointHealthResponse,proto3,oneof"`
}

type HealthCheckRequestOrEndpointHealthResponse_HealthCheckRequest

type HealthCheckRequestOrEndpointHealthResponse_HealthCheckRequest struct {
	HealthCheckRequest *HealthCheckRequest `protobuf:"bytes,1,opt,name=health_check_request,json=healthCheckRequest,proto3,oneof"`
}

type HealthCheckSpecifier

type HealthCheckSpecifier struct {
	ClusterHealthChecks []*ClusterHealthCheck `protobuf:"bytes,1,rep,name=cluster_health_checks,json=clusterHealthChecks,proto3" json:"cluster_health_checks,omitempty"`
	// The default is 1 second.
	Interval *durationpb.Duration `protobuf:"bytes,2,opt,name=interval,proto3" json:"interval,omitempty"`
	// contains filtered or unexported fields
}

func (*HealthCheckSpecifier) Descriptor deprecated

func (*HealthCheckSpecifier) Descriptor() ([]byte, []int)

Deprecated: Use HealthCheckSpecifier.ProtoReflect.Descriptor instead.

func (*HealthCheckSpecifier) GetClusterHealthChecks

func (x *HealthCheckSpecifier) GetClusterHealthChecks() []*ClusterHealthCheck

func (*HealthCheckSpecifier) GetInterval

func (x *HealthCheckSpecifier) GetInterval() *durationpb.Duration

func (*HealthCheckSpecifier) ProtoMessage

func (*HealthCheckSpecifier) ProtoMessage()

func (*HealthCheckSpecifier) ProtoReflect

func (x *HealthCheckSpecifier) ProtoReflect() protoreflect.Message

func (*HealthCheckSpecifier) Reset

func (x *HealthCheckSpecifier) Reset()

func (*HealthCheckSpecifier) String

func (x *HealthCheckSpecifier) String() string

type HealthDiscoveryServiceClient

type HealthDiscoveryServiceClient interface {
	//  1. Envoy starts up and if its can_healthcheck option in the static
	//     bootstrap config is enabled, sends HealthCheckRequest to the management
	//     server. It supplies its capabilities (which protocol it can health check
	//     with, what zone it resides in, etc.).
	//  2. In response to (1), the management server designates this Envoy as a
	//     healthchecker to health check a subset of all upstream hosts for a given
	//     cluster (for example upstream Host 1 and Host 2). It streams
	//     HealthCheckSpecifier messages with cluster related configuration for all
	//     clusters this Envoy is designated to health check. Subsequent
	//     HealthCheckSpecifier message will be sent on changes to:
	//     a. Endpoints to health checks
	//     b. Per cluster configuration change
	//  3. Envoy creates a health probe based on the HealthCheck config and sends
	//     it to endpoint(ip:port) of Host 1 and 2. Based on the HealthCheck
	//     configuration Envoy waits upon the arrival of the probe response and
	//     looks at the content of the response to decide whether the endpoint is
	//     healthy or not. If a response hasn't been received within the timeout
	//     interval, the endpoint health status is considered TIMEOUT.
	//  4. Envoy reports results back in an EndpointHealthResponse message.
	//     Envoy streams responses as often as the interval configured by the
	//     management server in HealthCheckSpecifier.
	//  5. The management Server collects health statuses for all endpoints in the
	//     cluster (for all clusters) and uses this information to construct
	//     EndpointDiscoveryResponse messages.
	//  6. Once Envoy has a list of upstream endpoints to send traffic to, it load
	//     balances traffic to them without additional health checking. It may
	//     use inline healthcheck (i.e. consider endpoint UNHEALTHY if connection
	//     failed to a particular endpoint to account for health status propagation
	//     delay between HDS and EDS).
	//
	// By default, can_healthcheck is true. If can_healthcheck is false, Cluster
	// configuration may not contain HealthCheck message.
	// TODO(htuch): How is can_healthcheck communicated to CDS to ensure the above
	// invariant?
	// TODO(htuch): Add @amb67's diagram.
	StreamHealthCheck(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[HealthCheckRequestOrEndpointHealthResponse, HealthCheckSpecifier], error)
	// TODO(htuch): Unlike the gRPC version, there is no stream-based binding of
	// request/response. Should we add an identifier to the HealthCheckSpecifier
	// to bind with the response?
	FetchHealthCheck(ctx context.Context, in *HealthCheckRequestOrEndpointHealthResponse, opts ...grpc.CallOption) (*HealthCheckSpecifier, error)
}

HealthDiscoveryServiceClient is the client API for HealthDiscoveryService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

HDS is Health Discovery Service. It compliments Envoy’s health checking service by designating this Envoy to be a healthchecker for a subset of hosts in the cluster. The status of these health checks will be reported to the management server, where it can be aggregated etc and redistributed back to Envoy through EDS.

type HealthDiscoveryServiceServer

type HealthDiscoveryServiceServer interface {
	//  1. Envoy starts up and if its can_healthcheck option in the static
	//     bootstrap config is enabled, sends HealthCheckRequest to the management
	//     server. It supplies its capabilities (which protocol it can health check
	//     with, what zone it resides in, etc.).
	//  2. In response to (1), the management server designates this Envoy as a
	//     healthchecker to health check a subset of all upstream hosts for a given
	//     cluster (for example upstream Host 1 and Host 2). It streams
	//     HealthCheckSpecifier messages with cluster related configuration for all
	//     clusters this Envoy is designated to health check. Subsequent
	//     HealthCheckSpecifier message will be sent on changes to:
	//     a. Endpoints to health checks
	//     b. Per cluster configuration change
	//  3. Envoy creates a health probe based on the HealthCheck config and sends
	//     it to endpoint(ip:port) of Host 1 and 2. Based on the HealthCheck
	//     configuration Envoy waits upon the arrival of the probe response and
	//     looks at the content of the response to decide whether the endpoint is
	//     healthy or not. If a response hasn't been received within the timeout
	//     interval, the endpoint health status is considered TIMEOUT.
	//  4. Envoy reports results back in an EndpointHealthResponse message.
	//     Envoy streams responses as often as the interval configured by the
	//     management server in HealthCheckSpecifier.
	//  5. The management Server collects health statuses for all endpoints in the
	//     cluster (for all clusters) and uses this information to construct
	//     EndpointDiscoveryResponse messages.
	//  6. Once Envoy has a list of upstream endpoints to send traffic to, it load
	//     balances traffic to them without additional health checking. It may
	//     use inline healthcheck (i.e. consider endpoint UNHEALTHY if connection
	//     failed to a particular endpoint to account for health status propagation
	//     delay between HDS and EDS).
	//
	// By default, can_healthcheck is true. If can_healthcheck is false, Cluster
	// configuration may not contain HealthCheck message.
	// TODO(htuch): How is can_healthcheck communicated to CDS to ensure the above
	// invariant?
	// TODO(htuch): Add @amb67's diagram.
	StreamHealthCheck(grpc.BidiStreamingServer[HealthCheckRequestOrEndpointHealthResponse, HealthCheckSpecifier]) error
	// TODO(htuch): Unlike the gRPC version, there is no stream-based binding of
	// request/response. Should we add an identifier to the HealthCheckSpecifier
	// to bind with the response?
	FetchHealthCheck(context.Context, *HealthCheckRequestOrEndpointHealthResponse) (*HealthCheckSpecifier, error)
	// contains filtered or unexported methods
}

HealthDiscoveryServiceServer is the server API for HealthDiscoveryService service. All implementations must embed UnimplementedHealthDiscoveryServiceServer for forward compatibility.

HDS is Health Discovery Service. It compliments Envoy’s health checking service by designating this Envoy to be a healthchecker for a subset of hosts in the cluster. The status of these health checks will be reported to the management server, where it can be aggregated etc and redistributed back to Envoy through EDS.

type HealthDiscoveryService_StreamHealthCheckClient

type HealthDiscoveryService_StreamHealthCheckClient = grpc.BidiStreamingClient[HealthCheckRequestOrEndpointHealthResponse, HealthCheckSpecifier]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type HealthDiscoveryService_StreamHealthCheckServer

type HealthDiscoveryService_StreamHealthCheckServer = grpc.BidiStreamingServer[HealthCheckRequestOrEndpointHealthResponse, HealthCheckSpecifier]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type LocalityEndpoints

type LocalityEndpoints struct {
	Locality  *core.Locality       `protobuf:"bytes,1,opt,name=locality,proto3" json:"locality,omitempty"`
	Endpoints []*endpoint.Endpoint `protobuf:"bytes,2,rep,name=endpoints,proto3" json:"endpoints,omitempty"`
	// contains filtered or unexported fields
}

func (*LocalityEndpoints) Descriptor deprecated

func (*LocalityEndpoints) Descriptor() ([]byte, []int)

Deprecated: Use LocalityEndpoints.ProtoReflect.Descriptor instead.

func (*LocalityEndpoints) GetEndpoints

func (x *LocalityEndpoints) GetEndpoints() []*endpoint.Endpoint

func (*LocalityEndpoints) GetLocality

func (x *LocalityEndpoints) GetLocality() *core.Locality

func (*LocalityEndpoints) ProtoMessage

func (*LocalityEndpoints) ProtoMessage()

func (*LocalityEndpoints) ProtoReflect

func (x *LocalityEndpoints) ProtoReflect() protoreflect.Message

func (*LocalityEndpoints) Reset

func (x *LocalityEndpoints) Reset()

func (*LocalityEndpoints) String

func (x *LocalityEndpoints) String() string

type RtdsDummy

type RtdsDummy struct {
	// contains filtered or unexported fields
}

[#not-implemented-hide:] Not configuration. Workaround c++ protobuf issue with importing services: https://github.com/google/protobuf/issues/4221

func (*RtdsDummy) Descriptor deprecated

func (*RtdsDummy) Descriptor() ([]byte, []int)

Deprecated: Use RtdsDummy.ProtoReflect.Descriptor instead.

func (*RtdsDummy) ProtoMessage

func (*RtdsDummy) ProtoMessage()

func (*RtdsDummy) ProtoReflect

func (x *RtdsDummy) ProtoReflect() protoreflect.Message

func (*RtdsDummy) Reset

func (x *RtdsDummy) Reset()

func (*RtdsDummy) String

func (x *RtdsDummy) String() string

type Runtime

type Runtime struct {

	// Runtime resource name. This makes the Runtime a self-describing xDS
	// resource.
	Name  string           `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Layer *structpb.Struct `protobuf:"bytes,2,opt,name=layer,proto3" json:"layer,omitempty"`
	// contains filtered or unexported fields
}

RTDS resource type. This describes a layer in the runtime virtual filesystem.

func (*Runtime) Descriptor deprecated

func (*Runtime) Descriptor() ([]byte, []int)

Deprecated: Use Runtime.ProtoReflect.Descriptor instead.

func (*Runtime) GetLayer

func (x *Runtime) GetLayer() *structpb.Struct

func (*Runtime) GetName

func (x *Runtime) GetName() string

func (*Runtime) ProtoMessage

func (*Runtime) ProtoMessage()

func (*Runtime) ProtoReflect

func (x *Runtime) ProtoReflect() protoreflect.Message

func (*Runtime) Reset

func (x *Runtime) Reset()

func (*Runtime) String

func (x *Runtime) String() string

type RuntimeDiscoveryServiceClient

type RuntimeDiscoveryServiceClient interface {
	StreamRuntime(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[v2.DiscoveryRequest, v2.DiscoveryResponse], error)
	DeltaRuntime(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse], error)
	FetchRuntime(ctx context.Context, in *v2.DiscoveryRequest, opts ...grpc.CallOption) (*v2.DiscoveryResponse, error)
}

RuntimeDiscoveryServiceClient is the client API for RuntimeDiscoveryService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

Discovery service for Runtime resources.

type RuntimeDiscoveryServiceServer

type RuntimeDiscoveryServiceServer interface {
	StreamRuntime(grpc.BidiStreamingServer[v2.DiscoveryRequest, v2.DiscoveryResponse]) error
	DeltaRuntime(grpc.BidiStreamingServer[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse]) error
	FetchRuntime(context.Context, *v2.DiscoveryRequest) (*v2.DiscoveryResponse, error)
	// contains filtered or unexported methods
}

RuntimeDiscoveryServiceServer is the server API for RuntimeDiscoveryService service. All implementations must embed UnimplementedRuntimeDiscoveryServiceServer for forward compatibility.

Discovery service for Runtime resources.

type RuntimeDiscoveryService_DeltaRuntimeClient

type RuntimeDiscoveryService_DeltaRuntimeClient = grpc.BidiStreamingClient[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type RuntimeDiscoveryService_DeltaRuntimeServer

type RuntimeDiscoveryService_DeltaRuntimeServer = grpc.BidiStreamingServer[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type RuntimeDiscoveryService_StreamRuntimeClient

type RuntimeDiscoveryService_StreamRuntimeClient = grpc.BidiStreamingClient[v2.DiscoveryRequest, v2.DiscoveryResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type RuntimeDiscoveryService_StreamRuntimeServer

type RuntimeDiscoveryService_StreamRuntimeServer = grpc.BidiStreamingServer[v2.DiscoveryRequest, v2.DiscoveryResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type SdsDummy

type SdsDummy struct {
	// contains filtered or unexported fields
}

[#not-implemented-hide:] Not configuration. Workaround c++ protobuf issue with importing services: https://github.com/google/protobuf/issues/4221

func (*SdsDummy) Descriptor deprecated

func (*SdsDummy) Descriptor() ([]byte, []int)

Deprecated: Use SdsDummy.ProtoReflect.Descriptor instead.

func (*SdsDummy) ProtoMessage

func (*SdsDummy) ProtoMessage()

func (*SdsDummy) ProtoReflect

func (x *SdsDummy) ProtoReflect() protoreflect.Message

func (*SdsDummy) Reset

func (x *SdsDummy) Reset()

func (*SdsDummy) String

func (x *SdsDummy) String() string

type SecretDiscoveryServiceClient

type SecretDiscoveryServiceClient interface {
	DeltaSecrets(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse], error)
	StreamSecrets(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[v2.DiscoveryRequest, v2.DiscoveryResponse], error)
	FetchSecrets(ctx context.Context, in *v2.DiscoveryRequest, opts ...grpc.CallOption) (*v2.DiscoveryResponse, error)
}

SecretDiscoveryServiceClient is the client API for SecretDiscoveryService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

type SecretDiscoveryServiceServer

type SecretDiscoveryServiceServer interface {
	DeltaSecrets(grpc.BidiStreamingServer[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse]) error
	StreamSecrets(grpc.BidiStreamingServer[v2.DiscoveryRequest, v2.DiscoveryResponse]) error
	FetchSecrets(context.Context, *v2.DiscoveryRequest) (*v2.DiscoveryResponse, error)
	// contains filtered or unexported methods
}

SecretDiscoveryServiceServer is the server API for SecretDiscoveryService service. All implementations must embed UnimplementedSecretDiscoveryServiceServer for forward compatibility.

type SecretDiscoveryService_DeltaSecretsClient

type SecretDiscoveryService_DeltaSecretsClient = grpc.BidiStreamingClient[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type SecretDiscoveryService_DeltaSecretsServer

type SecretDiscoveryService_DeltaSecretsServer = grpc.BidiStreamingServer[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type SecretDiscoveryService_StreamSecretsClient

type SecretDiscoveryService_StreamSecretsClient = grpc.BidiStreamingClient[v2.DiscoveryRequest, v2.DiscoveryResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type SecretDiscoveryService_StreamSecretsServer

type SecretDiscoveryService_StreamSecretsServer = grpc.BidiStreamingServer[v2.DiscoveryRequest, v2.DiscoveryResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type UnimplementedAggregatedDiscoveryServiceServer

type UnimplementedAggregatedDiscoveryServiceServer struct{}

UnimplementedAggregatedDiscoveryServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedAggregatedDiscoveryServiceServer) DeltaAggregatedResources

func (UnimplementedAggregatedDiscoveryServiceServer) StreamAggregatedResources

type UnimplementedHealthDiscoveryServiceServer

type UnimplementedHealthDiscoveryServiceServer struct{}

UnimplementedHealthDiscoveryServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

type UnimplementedRuntimeDiscoveryServiceServer

type UnimplementedRuntimeDiscoveryServiceServer struct{}

UnimplementedRuntimeDiscoveryServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedRuntimeDiscoveryServiceServer) FetchRuntime

func (UnimplementedRuntimeDiscoveryServiceServer) StreamRuntime

type UnimplementedSecretDiscoveryServiceServer

type UnimplementedSecretDiscoveryServiceServer struct{}

UnimplementedSecretDiscoveryServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedSecretDiscoveryServiceServer) FetchSecrets

func (UnimplementedSecretDiscoveryServiceServer) StreamSecrets

type UnsafeAggregatedDiscoveryServiceServer

type UnsafeAggregatedDiscoveryServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeAggregatedDiscoveryServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to AggregatedDiscoveryServiceServer will result in compilation errors.

type UnsafeHealthDiscoveryServiceServer

type UnsafeHealthDiscoveryServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeHealthDiscoveryServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to HealthDiscoveryServiceServer will result in compilation errors.

type UnsafeRuntimeDiscoveryServiceServer

type UnsafeRuntimeDiscoveryServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeRuntimeDiscoveryServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to RuntimeDiscoveryServiceServer will result in compilation errors.

type UnsafeSecretDiscoveryServiceServer

type UnsafeSecretDiscoveryServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeSecretDiscoveryServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to SecretDiscoveryServiceServer will result in compilation errors.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL