topologycache

package
v1.27.6 Latest Latest
Warning

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

Go to latest
Published: Sep 13, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NoZoneSpecified                       = "One or more endpoints do not have a zone specified"
	NoAllocatedHintsForZones              = "No hints allocated for zones"
	TopologyAwareHintsEnabled             = "Topology Aware Hints has been enabled"
	TopologyAwareHintsDisabled            = "Topology Aware Hints has been disabled"
	InsufficientNodeInfo                  = "Insufficient Node information: allocatable CPU or zone not specified on one or more nodes"
	NodesReadyInOneZoneOnly               = "Nodes only ready in one zone"
	InsufficientNumberOfEndpoints         = "Insufficient number of endpoints"
	MinAllocationExceedsOverloadThreshold = "Unable to allocate minimum required endpoints to each zone without exceeding overload threshold"
)

TopologyAwareHints events messages list.

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 FormatWithAddressType added in v1.26.0

func FormatWithAddressType(s string, addressType discovery.AddressType) string

FormatWithAddressType foramts a given string by adding an addressType to the end of it.

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 EventBuilder added in v1.26.0

type EventBuilder struct {
	EventType string
	Reason    string
	Message   string
}

EventBuilder let's us construct events in the code. We use it to build events and return them from a function instead of publishing them from within it. EventType, Reason, and Message fields are equivalent to the v1.Event fields - https://pkg.go.dev/k8s.io/api/core/v1#Event.

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) HasPopulatedHints added in v1.26.0

func (t *TopologyCache) HasPopulatedHints(serviceKey string) bool

HasPopulatedHints checks whether there are populated hints for a given service in the cache.

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