proxy_syncer

package
v1.18.0-beta34 Latest Latest
Warning

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

Go to latest
Published: Nov 13, 2024 License: Apache-2.0 Imports: 73 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApplyDestRulesForUpstream added in v1.18.0

func ApplyDestRulesForUpstream(destrule *DestinationRuleWrapper, u *gloov1.Upstream) (*gloov1.Upstream, string)

func LbPriority added in v1.18.0

func LbPriority(proxyLocality, endpointsLocality *envoy_config_core_v3.Locality) int

func SetupCollectionDynamic added in v1.18.0

func SetupCollectionDynamic[T any](
	ctx context.Context,
	client kube.Client,
	gvr schema.GroupVersionResource,
	opts ...krt.CollectionOption,
) krt.Collection[*T]

SetupCollectionDynamic uses the dynamic client to setup an informer for a resource and then uses an intermediate krt collection to type the unstructured resource. This is a temporary workaround until we update to the latest istio version and can uncomment the code below for registering types. HACK: we don't want to use this long term, but it's letting me push forward with deveopment

Types

type DestinationRuleIndex added in v1.18.0

type DestinationRuleIndex struct {
	Destrules  krt.Collection[DestinationRuleWrapper]
	ByHostname krt.Index[NsWithHostname, DestinationRuleWrapper]
}

func NewDestRuleIndex added in v1.18.0

func NewDestRuleIndex(istioClient kube.Client, dbg *krt.DebugHandler) DestinationRuleIndex

func NewEmptyDestRuleIndex added in v1.18.0

func NewEmptyDestRuleIndex() DestinationRuleIndex

func (*DestinationRuleIndex) FetchDestRulesFor added in v1.18.0

func (d *DestinationRuleIndex) FetchDestRulesFor(kctx krt.HandlerContext, proxyNs string, hostname string, podLabels map[string]string) *DestinationRuleWrapper

type DestinationRuleWrapper added in v1.18.0

type DestinationRuleWrapper struct {
	*networkingclient.DestinationRule
}

func (DestinationRuleWrapper) Equals added in v1.18.0

func (DestinationRuleWrapper) GetLabelSelector added in v1.18.0

func (s DestinationRuleWrapper) GetLabelSelector() map[string]string

important for FilterSelects below

func (DestinationRuleWrapper) ResourceName added in v1.18.0

func (c DestinationRuleWrapper) ResourceName() string

func (DestinationRuleWrapper) String added in v1.18.0

func (c DestinationRuleWrapper) String() string

type EndpointResources added in v1.18.0

type EndpointResources struct {
	Endpoints        envoycache.Resource
	EndpointsVersion uint64
	UpstreamRef      types.NamespacedName
}

func TransformEndpointToResources added in v1.18.0

func TransformEndpointToResources(ep krtcollections.EndpointsForUpstream) *EndpointResources

func (EndpointResources) Equals added in v1.18.0

func (EndpointResources) ResourceName added in v1.18.0

func (c EndpointResources) ResourceName() string

type GatewayInputChannels

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

func NewGatewayInputChannels

func NewGatewayInputChannels() *GatewayInputChannels

func (*GatewayInputChannels) Kick

func (x *GatewayInputChannels) Kick(ctx context.Context)

type LoadBalancingInfo added in v1.18.0

type LoadBalancingInfo struct {

	// Augmented proxy pod labels
	PodLabels map[string]string
	// locality info for proxy pod
	PodLocality krtcollections.PodLocality

	// dest rule info:
	PriorityInfo *PriorityInfo
}

type NsWithHostname added in v1.18.0

type NsWithHostname struct {
	Ns       string
	Hostname string
}

func (NsWithHostname) String added in v1.18.0

func (n NsWithHostname) String() string

needed as index key..

type PerClientEnvoyClusters added in v1.18.0

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

func (*PerClientEnvoyClusters) FetchClustersForClient added in v1.18.0

func (iu *PerClientEnvoyClusters) FetchClustersForClient(kctx krt.HandlerContext, ucc krtcollections.UniqlyConnectedClient) []uccWithCluster

type PerClientEnvoyEndpoints added in v1.18.0

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

func NewPerClientEnvoyEndpoints added in v1.18.0

func NewPerClientEnvoyEndpoints(logger *zap.Logger, dbg *krt.DebugHandler, uccs krt.Collection[krtcollections.UniqlyConnectedClient],
	glooEndpoints krt.Collection[krtcollections.EndpointsForUpstream],
	destinationRulesIndex DestinationRuleIndex,
) PerClientEnvoyEndpoints

func (*PerClientEnvoyEndpoints) FetchEndpointsForClient added in v1.18.0

type Prioritizer added in v1.18.0

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

func NewPriorities added in v1.18.0

func NewPriorities(failoverPriority []string) *Prioritizer

func (*Prioritizer) GetPriority added in v1.18.0

func (p *Prioritizer) GetPriority(proxyLabels, upstreamEndpointLabels map[string]string) int

type PriorityInfo added in v1.18.0

type PriorityInfo struct {
	FailoverPriority *Prioritizer
	Failover         []*v1alpha3.LocalityLoadBalancerSetting_Failover
}

type ProxySyncer

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

ProxySyncer is responsible for translating Kubernetes Gateway CRs into Gloo Proxies and syncing the proxyClient with the newly translated proxies.

func NewProxySyncer

func NewProxySyncer(
	ctx context.Context,
	initialSettings *glookubev1.Settings,
	settings krt.Singleton[glookubev1.Settings],
	controllerName string,
	writeNamespace string,
	inputs *GatewayInputChannels,
	mgr manager.Manager,
	client kube.Client,
	augmentedPods krt.Collection[krtcollections.LocalityPod],
	uniqueClients krt.Collection[krtcollections.UniqlyConnectedClient],
	k8sGwExtensions extensions.K8sGatewayExtensions,
	translator setup.TranslatorFactory,
	xdsCache envoycache.SnapshotCache,
	syncerExtensions []syncer.TranslatorSyncerExtension,
	glooReporter reporter.StatusReporter,
	proxyReconcileQueue ggv2utils.AsyncQueue[gloov1.ProxyList],
) *ProxySyncer

NewProxySyncer returns an implementation of the ProxySyncer The provided GatewayInputChannels are used to trigger syncs.

func (*ProxySyncer) Init added in v1.18.0

func (s *ProxySyncer) Init(ctx context.Context, dbg *krt.DebugHandler) error

func (*ProxySyncer) Start

func (s *ProxySyncer) Start(ctx context.Context) error

type ProxyTranslator added in v1.18.0

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

func NewProxyTranslator added in v1.18.0

func NewProxyTranslator(translator setup.TranslatorFactory,
	xdsCache envoycache.SnapshotCache,
	settings krt.Singleton[glookubev1.Settings],
	syncerExtensions []syncer.TranslatorSyncerExtension,
	glooReporter reporter.StatusReporter,
) ProxyTranslator

type RedactedSecret added in v1.18.0

func (RedactedSecret) Equals added in v1.18.0

func (us RedactedSecret) Equals(in RedactedSecret) bool

func (RedactedSecret) MarshalJSON added in v1.18.0

func (l RedactedSecret) MarshalJSON() ([]byte, error)

func (RedactedSecret) ResourceName added in v1.18.0

func (us RedactedSecret) ResourceName() string

type SecretInputs

type SecretInputs struct {
	Secrets v1.SecretList
}

type UccWithEndpoints added in v1.18.0

type UccWithEndpoints struct {
	Client        krtcollections.UniqlyConnectedClient
	Endpoints     envoycache.Resource
	EndpointsHash uint64
	// contains filtered or unexported fields
}

func (UccWithEndpoints) Equals added in v1.18.0

func (c UccWithEndpoints) Equals(in UccWithEndpoints) bool

func (UccWithEndpoints) ResourceName added in v1.18.0

func (c UccWithEndpoints) ResourceName() string

Jump to

Keyboard shortcuts

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