xds

package
v1.12.0-beta3 Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2022 License: Apache-2.0 Imports: 28 Imported by: 8

Documentation

Overview

Package server provides an implementation of a streaming xDS server.

Package server provides an implementation of a streaming xDS server.

Index

Constants

View Source
const FallbackNodeKey = "misconfigured-node"

used to let nodes know they have a bad config we assign a "fix me" snapshot for bad nodes

Variables

This section is empty.

Functions

func GetValidKeys added in v1.3.20

func GetValidKeys(proxies v1.ProxyList, extensionKeys map[string]struct{}) []string

Called in Syncer when a new set of proxies arrive used to trim snapshots whose proxies have been deleted

func NewEndpointsSnapshotFromResources added in v1.6.16

func NewEndpointsSnapshotFromResources(
	endpoints cache.Resources,
	clusters cache.Resources,
) cache.Snapshot

func NewSnapshotFromResources

func NewSnapshotFromResources(
	endpoints cache.Resources,
	clusters cache.Resources,
	routes cache.Resources,
	listeners cache.Resources,
) cache.Snapshot

func SetEdsOnCluster added in v0.13.16

func SetEdsOnCluster(out *envoy_config_cluster_v3.Cluster, settings *v1.Settings)

func SetupEnvoyXds

func SetupEnvoyXds(grpcServer *grpc.Server, xdsServer envoyserver.Server, envoyCache envoycache.SnapshotCache)

register xDS methods with GRPC server

func SnapshotKey

func SnapshotKey(proxy *v1.Proxy) string

SnapshotKey of Proxy == Role in Envoy Configmap == "Node" in Envoy semantics

Types

type EnvoyServerV3 added in v1.6.0

Server is a collection of handlers for streaming discovery requests.

func NewEnvoyServerV3 added in v1.6.0

func NewEnvoyServerV3(genericServer server.Server) EnvoyServerV3

NewServer creates handlers from a config watcher and an optional logger.

type EnvoySnapshot

type EnvoySnapshot struct {
	// Endpoints are items in the EDS V3 response payload.
	Endpoints cache.Resources

	// Clusters are items in the CDS response payload.
	Clusters cache.Resources

	// Routes are items in the RDS response payload.
	Routes cache.Resources

	// Listeners are items in the LDS response payload.
	Listeners cache.Resources
}

Snapshot is an internally consistent snapshot of xDS resources. Consistently is important for the convergence as different resource types from the snapshot may be delivered to the proxy in arbitrary order.

func NewSnapshot

func NewSnapshot(
	version string,
	endpoints []cache.Resource,
	clusters []cache.Resource,
	routes []cache.Resource,
	listeners []cache.Resource,
) *EnvoySnapshot

NewSnapshot creates a snapshot from response types and a version.

func (*EnvoySnapshot) Clone added in v0.15.0

func (s *EnvoySnapshot) Clone() cache.Snapshot

func (*EnvoySnapshot) Consistent

func (s *EnvoySnapshot) Consistent() error

Consistent check verifies that the dependent resources are exactly listed in the snapshot: - all EDS resources are listed by name in CDS resources - all RDS resources are listed by name in LDS resources

Note that clusters and listeners are requested without name references, so Envoy will accept the snapshot list of clusters as-is even if it does not match all references found in xDS.

func (*EnvoySnapshot) Equal added in v1.6.0

func (this *EnvoySnapshot) Equal(that *EnvoySnapshot) bool

Equal checks is 2 snapshots are equal, important since reflect.DeepEqual no longer works with proto4

func (*EnvoySnapshot) GetResources

func (s *EnvoySnapshot) GetResources(typ string) cache.Resources

GetResources selects snapshot resources by type.

func (*EnvoySnapshot) MakeConsistent added in v1.9.25

func (s *EnvoySnapshot) MakeConsistent()

MakeConsistent removes any items that fail to link to parent resources in the snapshot. It will also add placeholder routes for listeners referencing non-existent routes.

type GlooXdsServer added in v1.8.0

type GlooXdsServer interface {
	discovery_service.SoloDiscoveryServiceServer
}

Server includes handlers for streaming aggregate discovery requests via the SoloDiscoveryService.

func NewGlooXdsServer added in v1.8.0

func NewGlooXdsServer(genericServer server.Server) GlooXdsServer

type ProxyKeyHasher

type ProxyKeyHasher struct{}

Returns the node.metadata.role from the envoy bootstrap config if not found, it returns a key for the Fallback snapshot which alerts the user their Envoy is missing the required role key.

func NewNodeHasher added in v0.19.0

func NewNodeHasher() *ProxyKeyHasher

func (*ProxyKeyHasher) ID

Jump to

Keyboard shortcuts

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