topologycache

package
v1.21.0 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2021 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// OverloadThreshold represents the maximum overload any individual endpoint
	// should be exposed to.
	OverloadThreshold float64 = 0.2
)

Variables

This section is empty.

Functions

func NodeReady

func NodeReady(nodeStatus v1.NodeStatus) bool

NodeReady returns true if the Node has a status condition of type "NodeReady" with a status of "True".

func RemoveHintsFromSlices

func RemoveHintsFromSlices(si *SliceInfo) ([]*discovery.EndpointSlice, []*discovery.EndpointSlice)

RemoveHintsFromSlices removes topology hints on EndpointSlices and returns updated lists of EndpointSlices to create and update.

Types

type Allocation

type Allocation struct {
	Minimum int
	Maximum int
	Desired float64
}

Allocation describes the number of endpoints that should be allocated for a zone.

type EndpointZoneInfo

type EndpointZoneInfo map[string]int

EndpointZoneInfo tracks the distribution of endpoints across zones for a Service.

type SliceInfo

type SliceInfo struct {
	ServiceKey  string
	AddressType discovery.AddressType
	ToCreate    []*discovery.EndpointSlice
	ToUpdate    []*discovery.EndpointSlice
	Unchanged   []*discovery.EndpointSlice
}

SliceInfo stores information about EndpointSlices for the reconciliation process.

type TopologyCache

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

TopologyCache tracks the distribution of Nodes and endpoints across zones.

func NewTopologyCache

func NewTopologyCache() *TopologyCache

NewTopologyCache initializes a new TopologyCache.

func (*TopologyCache) AddHints

AddHints adds or updates topology hints on EndpointSlices and returns updated lists of EndpointSlices to create and update.

func (*TopologyCache) GetOverloadedServices

func (t *TopologyCache) GetOverloadedServices() []string

GetOverloadedServices returns a list of Service keys that refer to Services that have crossed the overload threshold for any zone.

func (*TopologyCache) RemoveHints

func (t *TopologyCache) RemoveHints(serviceKey string, addrType discovery.AddressType)

RemoveHints removes topology hints for the provided serviceKey and addrType from this cache.

func (*TopologyCache) SetHints

func (t *TopologyCache) SetHints(serviceKey string, addrType discovery.AddressType, allocatedHintsByZone EndpointZoneInfo)

SetHints sets topology hints for the provided serviceKey and addrType in this cache.

func (*TopologyCache) SetNodes

func (t *TopologyCache) SetNodes(nodes []*v1.Node)

SetNodes updates the Node distribution for the TopologyCache.

Jump to

Keyboard shortcuts

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