Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BackendIDByServiceIDSet ¶
type BackendIDByServiceIDSet map[uint16]map[loadbalancer.BackendID]struct{} // svc ID => backend ID
BackendIDByServiceIDSet is the type of a set for checking whether a backend belongs to a given service
type LBMap ¶
type LBMap interface { UpsertService(*UpsertServiceParams) error UpsertMaglevLookupTable(uint16, map[string]*loadbalancer.Backend, bool) error IsMaglevLookupTableRecreated(bool) bool DeleteService(loadbalancer.L3n4AddrID, int, bool, loadbalancer.SVCNatPolicy) error AddBackend(*loadbalancer.Backend, bool) error UpdateBackendWithState(*loadbalancer.Backend) error DeleteBackendByID(loadbalancer.BackendID) error AddAffinityMatch(uint16, loadbalancer.BackendID) error DeleteAffinityMatch(uint16, loadbalancer.BackendID) error UpdateSourceRanges(uint16, []*cidr.CIDR, []*cidr.CIDR, bool) error DumpServiceMaps() ([]*loadbalancer.SVC, []error) DumpBackendMaps() ([]*loadbalancer.Backend, error) DumpAffinityMatches() (BackendIDByServiceIDSet, error) DumpSourceRanges(bool) (SourceRangeSetByServiceID, error) }
LBMap is the interface describing methods for manipulating service maps.
type NodeAddressing ¶
type NodeAddressing interface { IPv6() NodeAddressingFamily IPv4() NodeAddressingFamily }
NodeAddressing implements addressing of a node
type NodeAddressingFamily ¶
type NodeAddressingFamily interface { // Router is the address that will act as the router on each node where // an agent is running on. Endpoints have a default route that points // to this address. Router() net.IP // PrimaryExternal is the primary external address of the node. Nodes // must be able to reach each other via this address. PrimaryExternal() net.IP // AllocationCIDR is the CIDR used for IP allocation of all endpoints // on the node AllocationCIDR() *cidr.CIDR // LocalAddresses lists all local addresses LocalAddresses() ([]net.IP, error) // LoadBalancerNodeAddresses lists all addresses on which HostPort and // NodePort services should be responded to LoadBalancerNodeAddresses() []net.IP }
NodeAddressingFamily is the node addressing information for a particular address family
type UpsertServiceParams ¶
type UpsertServiceParams struct { ID uint16 IP net.IP Port uint16 // PreferredBackends is a subset of ActiveBackends // Note: this is only used in clustermesh with service affinity annotation. PreferredBackends map[string]*loadbalancer.Backend ActiveBackends map[string]*loadbalancer.Backend NonActiveBackends []loadbalancer.BackendID PrevBackendsCount int IPv6 bool Type loadbalancer.SVCType NatPolicy loadbalancer.SVCNatPolicy ExtLocal bool IntLocal bool Scope uint8 SessionAffinity bool SessionAffinityTimeoutSec uint32 CheckSourceRange bool UseMaglev bool L7LBProxyPort uint16 // Non-zero for L7 LB services Name loadbalancer.ServiceName // Fully qualified name of the service LoopbackHostport bool }
func (*UpsertServiceParams) GetOrderedBackends ¶
func (p *UpsertServiceParams) GetOrderedBackends() []loadbalancer.BackendID
GetOrderedBackends returns an ordered list of backends with all the sorted preferred backend followed by active and non-active backends. Encapsulates logic to be also used in unit tests.
Click to show internal directories.
Click to hide internal directories.