package util
import "k8s.io/kubernetes/pkg/scheduler/util"
Index ¶
- func GetContainerPorts(pods ...*v1.Pod) []*v1.ContainerPort
- func GetEarliestPodStartTime(victims *api.Victims) *metav1.Time
- func GetPodFullName(pod *v1.Pod) string
- func GetPodPriority(pod *v1.Pod) int32
- func GetPodStartTime(pod *v1.Pod) *metav1.Time
- func MoreImportantPod(pod1, pod2 interface{}) bool
- type Clock
- type ErrorChannel
- func NewErrorChannel() *ErrorChannel
- func (e *ErrorChannel) ReceiveError() error
- func (e *ErrorChannel) SendError(err error)
- func (e *ErrorChannel) SendErrorWithCancel(err error, cancel context.CancelFunc)
- type Heap
- func NewHeap(keyFn KeyFunc, lessFn LessFunc) *Heap
- func NewHeapWithRecorder(keyFn KeyFunc, lessFn LessFunc, metricRecorder metrics.MetricRecorder) *Heap
- func (h *Heap) Add(obj interface{}) error
- func (h *Heap) AddIfNotPresent(obj interface{}) error
- func (h *Heap) Delete(obj interface{}) error
- func (h *Heap) Get(obj interface{}) (interface{}, bool, error)
- func (h *Heap) GetByKey(key string) (interface{}, bool, error)
- func (h *Heap) Len() int
- func (h *Heap) List() []interface{}
- func (h *Heap) Peek() interface{}
- func (h *Heap) Pop() (interface{}, error)
- func (h *Heap) Update(obj interface{}) error
- type KeyFunc
- type LessFunc
- type RealClock
- type SortableList
Functions ¶
func GetContainerPorts ¶
func GetContainerPorts(pods ...*v1.Pod) []*v1.ContainerPort
GetContainerPorts returns the used host ports of Pods: if 'port' was used, a 'port:true' pair will be in the result; but it does not resolve port conflict.
func GetEarliestPodStartTime ¶
GetEarliestPodStartTime returns the earliest start time of all pods that have the highest priority among all victims.
func GetPodFullName ¶
GetPodFullName returns a name that uniquely identifies a pod.
func GetPodPriority ¶
GetPodPriority returns priority of the given pod.
func GetPodStartTime ¶
GetPodStartTime returns start time of the given pod.
func MoreImportantPod ¶
func MoreImportantPod(pod1, pod2 interface{}) bool
MoreImportantPod return true when priority of the first pod is higher than the second one. If two pods' priorities are equal, compare their StartTime. It takes arguments of the type "interface{}" to be used with SortableList, but expects those arguments to be *v1.Pod.
Types ¶
type Clock ¶
Clock provides an interface for getting the current time
type ErrorChannel ¶
type ErrorChannel struct {
// contains filtered or unexported fields
}
ErrorChannel supports non-blocking send and receive operation to capture error. A maximum of one error is kept in the channel and the rest of the errors sent are ignored, unless the existing error is received and the channel becomes empty again.
func NewErrorChannel ¶
func NewErrorChannel() *ErrorChannel
NewErrorChannel returns a new ErrorChannel.
func (*ErrorChannel) ReceiveError ¶
func (e *ErrorChannel) ReceiveError() error
ReceiveError receives an error from channel without blocking on the receiver.
func (*ErrorChannel) SendError ¶
func (e *ErrorChannel) SendError(err error)
SendError sends an error without blocking the sender.
func (*ErrorChannel) SendErrorWithCancel ¶
func (e *ErrorChannel) SendErrorWithCancel(err error, cancel context.CancelFunc)
SendErrorWithCancel sends an error without blocking the sender and calls cancel function.
type Heap ¶
type Heap struct {
// contains filtered or unexported fields
}
Heap is a producer/consumer queue that implements a heap data structure. It can be used to implement priority queues and similar data structures.
func NewHeap ¶
NewHeap returns a Heap which can be used to queue up items to process.
func NewHeapWithRecorder ¶
func NewHeapWithRecorder(keyFn KeyFunc, lessFn LessFunc, metricRecorder metrics.MetricRecorder) *Heap
NewHeapWithRecorder wraps an optional metricRecorder to compose a Heap object.
func (*Heap) Add ¶
Add inserts an item, and puts it in the queue. The item is updated if it already exists.
func (*Heap) AddIfNotPresent ¶
AddIfNotPresent inserts an item, and puts it in the queue. If an item with the key is present in the map, no changes is made to the item.
func (*Heap) Delete ¶
Delete removes an item.
func (*Heap) Get ¶
Get returns the requested item, or sets exists=false.
func (*Heap) GetByKey ¶
GetByKey returns the requested item, or sets exists=false.
func (*Heap) Len ¶
Len returns the number of items in the heap.
func (*Heap) List ¶
func (h *Heap) List() []interface{}
List returns a list of all the items.
func (*Heap) Peek ¶
func (h *Heap) Peek() interface{}
Peek returns the head of the heap without removing it.
func (*Heap) Pop ¶
Pop returns the head of the heap and removes it.
func (*Heap) Update ¶
Update is the same as Add in this implementation. When the item does not exist, it is added.
type KeyFunc ¶
KeyFunc is a function type to get the key from an object.
type LessFunc ¶
type LessFunc func(item1, item2 interface{}) bool
LessFunc is a function that receives two items and returns true if the first item should be placed before the second one when the list is sorted.
type RealClock ¶
type RealClock struct{}
RealClock implements a clock using time
func (RealClock) Now ¶
Now returns the current time with time.Now
type SortableList ¶
type SortableList struct { Items []interface{} CompFunc LessFunc }
SortableList is a list that implements sort.Interface.
func (*SortableList) Len ¶
func (l *SortableList) Len() int
func (*SortableList) Less ¶
func (l *SortableList) Less(i, j int) bool
func (*SortableList) Sort ¶
func (l *SortableList) Sort()
Sort sorts the items in the list using the given CompFunc. Item1 is placed before Item2 when CompFunc(Item1, Item2) returns true.
func (*SortableList) Swap ¶
func (l *SortableList) Swap(i, j int)
Source Files ¶
clock.go error_channel.go heap.go utils.go
- Version
- v1.16.9
- Published
- Apr 16, 2020
- Platform
- js/wasm
- Imports
- 12 packages
- Last checked
- 7 minutes ago –
Tools for package owners.