Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CIDRAllocator ¶
type CIDRAllocator interface {
// AllocateOrOccupyCIDR looks at the given node, assigns it a valid
// CIDR if it doesn't currently have one or mark the CIDR as used if
// the node already have one.
AllocateOrOccupyCIDR(logger klog.Logger, node *corev1.Node) error
// ReleaseCIDR releases the CIDR of the removed node.
ReleaseCIDR(logger klog.Logger, node *corev1.Node) error
// Run starts all the working logic of the allocator.
Run(ctx context.Context)
}
CIDRAllocator is an interface implemented by things that know how to allocate/occupy/recycle CIDR for nodes.
func NewMultiCIDRRangeAllocator ¶
func NewMultiCIDRRangeAllocator( ctx context.Context, client clientset.Interface, networkClient clustercidrclient.ClusterCIDRInterface, nodeInformer informers.NodeInformer, clusterCIDRInformer clustercidrinformers.ClusterCIDRInformer, allocatorParams CIDRAllocatorParams, nodeList *corev1.NodeList, testCIDRMap map[string][]*cidrset.ClusterCIDR, ) (CIDRAllocator, error)
NewMultiCIDRRangeAllocator returns a CIDRAllocator to allocate CIDRs for node (one for each ip family). Caller must always pass in a list of existing nodes to the new allocator. NodeList is only nil in testing.
type CIDRAllocatorParams ¶
type CIDRAllocatorParams struct {
// ClusterCIDRs is list of cluster cidrs.
ClusterCIDRs []*net.IPNet
// ServiceCIDR is primary service cidr for cluster.
ServiceCIDR *net.IPNet
// SecondaryServiceCIDR is secondary service cidr for cluster.
SecondaryServiceCIDR *net.IPNet
// NodeCIDRMaskSizes is list of node cidr mask sizes.
NodeCIDRMaskSizes []int
}
CIDRAllocatorParams is parameters that's required for creating new cidr range allocator.
type PriorityQueue ¶
type PriorityQueue []*PriorityQueueItem
A PriorityQueue implements heap.Interface and holds PriorityQueueItems.
func (PriorityQueue) Len ¶
func (pq PriorityQueue) Len() int
func (PriorityQueue) Less ¶
func (pq PriorityQueue) Less(i, j int) bool
Less compares the priority queue items, to store in a min heap. Less(i,j) == true denotes i has higher priority than j.
func (*PriorityQueue) Pop ¶
func (pq *PriorityQueue) Pop() interface{}
func (*PriorityQueue) Push ¶
func (pq *PriorityQueue) Push(x interface{})
func (PriorityQueue) Swap ¶
func (pq PriorityQueue) Swap(i, j int)
type PriorityQueueItem ¶
type PriorityQueueItem struct {
// contains filtered or unexported fields
}
An PriorityQueueItem is something we manage in a priority queue.