package xds
import "google.golang.org/grpc/internal/xds"
Package xds contains functions, structs, and utilities for working with handshake cluster names, as well as shared components used by xds balancers and resolvers. It is separated from the top-level /internal package to avoid circular dependencies.
Index ¶
- Variables
- func GetLocalityID(addr resolver.Address) clients.Locality
- func GetXDSHandshakeClusterName(attr *attributes.Attributes) (string, bool)
- func IsLocalityEqual(l clients.Locality, o any) bool
- func LocalityFromString(s string) (ret clients.Locality, _ error)
- func LocalityIDFromEndpoint(ep resolver.Endpoint) clients.Locality
- func LocalityString(l clients.Locality) string
- func SetLocalityID(addr resolver.Address, l clients.Locality) resolver.Address
- func SetLocalityIDInEndpoint(endpoint resolver.Endpoint, l clients.Locality) resolver.Endpoint
- func SetXDSHandshakeClusterName(addr resolver.Address, clusterName string) resolver.Address
Variables ¶
var UnknownCSMLabels = map[string]string{ "csm.service_name": "unknown", "csm.service_namespace_name": "unknown", }
UnknownCSMLabels are TelemetryLabels emitted from CDS if CSM Telemetry Label data is not present in the CDS Resource.
Functions ¶
func GetLocalityID ¶
GetLocalityID returns the locality ID of addr.
func GetXDSHandshakeClusterName ¶
func GetXDSHandshakeClusterName(attr *attributes.Attributes) (string, bool)
GetXDSHandshakeClusterName returns cluster name stored in attr.
func IsLocalityEqual ¶
IsLocalityEqual allows the values to be compared by Attributes.Equal.
func LocalityFromString ¶
LocalityFromString converts a string representation of clients.locality as specified in gRFC A76, into a LocalityID struct.
func LocalityIDFromEndpoint ¶
LocalityIDFromEndpoint returns the locality ID of ep.
func LocalityString ¶
LocalityString generates a string representation of clients.Locality in the format specified in gRFC A76.
func SetLocalityID ¶
SetLocalityID sets locality ID in addr to l.
func SetLocalityIDInEndpoint ¶
SetLocalityIDInEndpoint sets locality ID in endpoint to l.
func SetXDSHandshakeClusterName ¶
SetXDSHandshakeClusterName returns a copy of addr in which the Attributes field is updated with the cluster name.
Source Files ¶
xds.go
Directories ¶
| Path | Synopsis |
|---|---|
| internal/xds/balancer | Package balancer installs all the xds balancers. |
| internal/xds/balancer/cdsbalancer | Package cdsbalancer implements a balancer to handle CDS responses. |
| internal/xds/balancer/cdsbalancer/e2e_test | |
| internal/xds/balancer/clusterimpl | Package clusterimpl implements the xds_cluster_impl balancing policy. |
| internal/xds/balancer/clusterimpl/tests | |
| internal/xds/balancer/clustermanager | Package clustermanager implements the cluster manager LB policy for xds. |
| internal/xds/balancer/clustermanager/e2e_test | |
| internal/xds/balancer/clusterresolver | Package clusterresolver contains the implementation of the cluster_resolver_experimental LB policy which resolves endpoint addresses using a list of one or more discovery mechanisms. |
| internal/xds/balancer/loadstore | Package loadstore contains the loadStoreWrapper shared by the balancers. |
| internal/xds/balancer/outlierdetection | Package outlierdetection provides an implementation of the outlier detection LB policy, as defined in https://github.com/grpc/proposal/blob/master/A50-xds-outlier-detection.md. |
| internal/xds/balancer/outlierdetection/e2e_test | |
| internal/xds/balancer/priority | Package priority implements the priority balancer. |
| internal/xds/balancer/wrrlocality | Package wrrlocality provides an implementation of the wrr locality LB policy, as defined in [A52 - xDS Custom LB Policies]. |
| internal/xds/bootstrap | Package bootstrap provides the functionality to initialize certain aspects of an xDS client by reading a bootstrap file. |
| internal/xds/bootstrap/jwtcreds | Package jwtcreds implements JWT CallCredentials for XDS, configured via xDS Bootstrap File. |
| internal/xds/bootstrap/tlscreds | Package tlscreds implements mTLS Credentials in xDS Bootstrap File. |
| internal/xds/clients | Package clients provides implementations of the clients to interact with xDS and LRS servers. |
| internal/xds/clients/grpctransport | Package grpctransport provides an implementation of the clients.TransportBuilder interface using gRPC. |
| internal/xds/clients/internal | Package internal contains helpers for xDS and LRS clients. |
| internal/xds/clients/internal/backoff | Package backoff implements the backoff strategy for clients. |
| internal/xds/clients/internal/buffer | Package buffer provides an implementation of an unbounded buffer. |
| internal/xds/clients/internal/pretty | Package pretty defines helper functions to pretty-print structs for logging. |
| internal/xds/clients/internal/syncutil | Package syncutil implements additional synchronization primitives built upon the sync package. |
| internal/xds/clients/internal/testutils | Package testutils contains testing helpers for xDS and LRS clients. |
| internal/xds/clients/internal/testutils/e2e | Package e2e provides utilities for end2end testing of xDS and LRS clients functionalities. |
| internal/xds/clients/internal/testutils/fakeserver | Package fakeserver provides a fake implementation of the management server. |
| internal/xds/clients/lrsclient | Package lrsclient provides an LRS (Load Reporting Service) client. |
| internal/xds/clients/lrsclient/internal | Package internal contains functionality internal to the lrsclient package. |
| internal/xds/clients/xdsclient | Package xdsclient provides an xDS (* Discovery Service) client. |
| internal/xds/clients/xdsclient/internal | Package internal contains functionality internal to the xdsclient package. |
| internal/xds/clients/xdsclient/internal/xdsresource | Package xdsresource defines constants to distinguish between supported xDS API versions. |
| internal/xds/clients/xdsclient/metrics | Package metrics defines all metrics that can be produced by an xDS client. |
| internal/xds/clients/xdsclient/test | |
| internal/xds/clusterspecifier | Package clusterspecifier contains the ClusterSpecifier interface and a registry for storing and retrieving their implementations. |
| internal/xds/clusterspecifier/rls | Package rls implements the RLS cluster specifier plugin. |
| internal/xds/httpfilter | Package httpfilter contains the HTTPFilter interface and a registry for storing and retrieving their implementations. |
| internal/xds/httpfilter/fault | Package fault implements the Envoy Fault Injection HTTP filter. |
| internal/xds/httpfilter/rbac | Package rbac implements the Envoy RBAC HTTP filter. |
| internal/xds/httpfilter/router | Package router implements the Envoy Router HTTP filter. |
| internal/xds/matcher | Package matcher contains types that need to be shared between code under google.golang.org/grpc/xds/... |
| internal/xds/rbac | Package rbac provides service-level and method-level access control for a service. |
| internal/xds/resolver | Package resolver implements the xds resolver, that does LDS and RDS to find the cluster to use. |
| internal/xds/resolver/internal | Package internal contains functionality internal to the xDS resolver. |
| internal/xds/server | Package server contains internal server-side functionality used by the public facing xds package. |
| internal/xds/test | |
| internal/xds/test/e2e | Package e2e implements xds e2e tests using go-control-plane. |
| internal/xds/testutils | Package testutils provides utility types, for use in xds tests. |
| internal/xds/testutils/fakeclient | Package fakeclient provides a fake implementation of an xDS client. |
| internal/xds/xdsclient | Package xdsclient implements a full fledged gRPC client for the xDS API used by the xds resolver and balancer implementations. |
| internal/xds/xdsclient/internal | Package internal contains functionality internal to the xdsclient package. |
| internal/xds/xdsclient/pool | |
| internal/xds/xdsclient/tests | |
| internal/xds/xdsclient/tests/fallback | |
| internal/xds/xdsclient/xdslbregistry | Package xdslbregistry provides a registry of converters that convert proto from load balancing configuration, defined by the xDS API spec, to JSON load balancing configuration. |
| internal/xds/xdsclient/xdslbregistry/converter | Package converter provides converters to convert proto load balancing configuration, defined by the xDS API spec, to JSON load balancing configuration. |
| internal/xds/xdsclient/xdsresource | Package xdsresource implements the xDS data model layer. |
| internal/xds/xdsclient/xdsresource/tests | |
| internal/xds/xdsclient/xdsresource/version | Package version defines constants to distinguish between supported xDS API versions. |
| internal/xds/xdsdepmgr | Package xdsdepmgr provides the implementation of the xDS dependency manager that manages all the xDS watches and resources as described in gRFC A74. |
- Version
- v1.80.0-dev
- Published
- Jan 21, 2026
- Platform
- js/wasm
- Imports
- 5 packages
- Last checked
- 1 hour ago –
Tools for package owners.