util

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Sep 25, 2019 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

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 GetPodFullName

func GetPodFullName(pod *v1.Pod) string

GetPodFullName returns a name that uniquely identifies a pod.

func GetPodPriority

func GetPodPriority(pod *v1.Pod) int32

GetPodPriority return priority of the given pod.

func HigherPriorityPod

func HigherPriorityPod(pod1, pod2 interface{}) bool

HigherPriorityPod return true when priority of the first pod is higher than the second one. It takes arguments of the type "interface{}" to be used with SortableList, but expects those arguments to be *v1.Pod.

func PodPriorityEnabled

func PodPriorityEnabled() bool

PodPriorityEnabled indicates whether pod priority feature is enabled.

func ResponsibleForPod added in v0.2.0

func ResponsibleForPod(pod *v1.Pod, schedulerName string) bool

responsibleForPod returns true if the pod has asked to be scheduled by the given scheduler.

Types

type Clock

type Clock interface {
	Now() time.Time
}

Clock provides an interface for getting the current time

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

func NewHeap(keyFn KeyFunc, lessFn LessFunc) *Heap

NewHeap returns a Heap which can be used to queue up items to process.

func (*Heap) Add

func (h *Heap) Add(obj interface{}) error

Add inserts an item, and puts it in the queue. The item is updated if it already exists.

func (*Heap) AddIfNotPresent

func (h *Heap) AddIfNotPresent(obj interface{}) error

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

func (h *Heap) Delete(obj interface{}) error

Delete removes an item.

func (*Heap) Get

func (h *Heap) Get(obj interface{}) (interface{}, bool, error)

Get returns the requested item, or sets exists=false.

func (*Heap) GetByKey

func (h *Heap) GetByKey(key string) (interface{}, bool, error)

GetByKey returns the requested item, or sets exists=false.

func (*Heap) Len

func (h *Heap) Len() int

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

func (h *Heap) Pop() (interface{}, error)

Pop returns the head of the heap and removes it.

func (*Heap) Update

func (h *Heap) Update(obj interface{}) error

Update is the same as Add in this implementation. When the item does not exist, it is added.

type KeyFunc

type KeyFunc func(obj interface{}) (string, error)

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.

func SelfPoolHasHigherPriorityFunc added in v0.2.0

func SelfPoolHasHigherPriorityFunc(poolName string) LessFunc

SelfPoolHasHigherPriorityFunc

type PodBackoff

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

PodBackoff is used to restart a pod with back-off delay.

func CreateDefaultPodBackoff

func CreateDefaultPodBackoff() *PodBackoff

CreateDefaultPodBackoff creates a default pod back-off object.

func CreatePodBackoff

func CreatePodBackoff(defaultDuration, maxDuration time.Duration) *PodBackoff

CreatePodBackoff creates a pod back-off object by default duration and max duration.

func CreatePodBackoffWithClock

func CreatePodBackoffWithClock(defaultDuration, maxDuration time.Duration, clock clock) *PodBackoff

CreatePodBackoffWithClock creates a pod back-off object by default duration, max duration and clock.

func (*PodBackoff) BackoffPod

func (p *PodBackoff) BackoffPod(podID ktypes.NamespacedName) time.Duration

BackoffPod updates the backoff for a podId and returns the duration until backoff completion

func (*PodBackoff) ClearPodBackoff

func (p *PodBackoff) ClearPodBackoff(podID ktypes.NamespacedName) bool

ClearPodBackoff removes all tracking information for podID (clears expiry)

func (*PodBackoff) Gc

func (p *PodBackoff) Gc()

Gc execute garbage collection on the pod back-off.

func (*PodBackoff) GetBackoffTime

func (p *PodBackoff) GetBackoffTime(podID ktypes.NamespacedName) (time.Time, bool)

GetBackoffTime returns the time that podID completes backoff

func (*PodBackoff) MaxDuration

func (p *PodBackoff) MaxDuration() time.Duration

MaxDuration returns the max time duration of the back-off.

func (*PodBackoff) TryBackoffAndWait

func (p *PodBackoff) TryBackoffAndWait(podID ktypes.NamespacedName, stop <-chan struct{}) bool

TryBackoffAndWait tries to acquire the backoff lock

type RealClock

type RealClock struct{}

RealClock implements a clock using time

func (RealClock) Now

func (RealClock) Now() time.Time

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)

Jump to

Keyboard shortcuts

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