api

package
v1.12.2-lite5 Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2019 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package api contains scheduler API objects.

Index

Constants

View Source
const (
	// MaxUint defines the max unsigned int value.
	MaxUint = ^uint(0)
	// MaxInt defines the max signed int value.
	MaxInt = int(MaxUint >> 1)
	// MaxTotalPriority defines the max total priority value.
	MaxTotalPriority = MaxInt
	// MaxPriority defines the max priority value.
	MaxPriority = 10
	// MaxWeight defines the max weight value.
	MaxWeight = MaxInt / MaxPriority
	// DefaultPercentageOfNodesToScore defines the percentage of nodes of all nodes
	// that once found feasible, the scheduler stops looking for more nodes.
	DefaultPercentageOfNodesToScore = 50
)

Variables

View Source
var (
	// SchemeBuilder defines a SchemeBuilder object.
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	// AddToScheme is used to add stored functions to scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var Scheme = runtime.NewScheme()

Scheme is the default instance of runtime.Scheme to which types in the Kubernetes API are already registered. TODO: remove this, scheduler should not have its own scheme.

View Source
var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: runtime.APIVersionInternal}

SchemeGroupVersion is group version used to register these objects TODO this should be in the "scheduler" group

Functions

This section is empty.

Types

type ExtenderArgs

type ExtenderArgs struct {
	// Pod being scheduled
	Pod *v1.Pod
	// List of candidate nodes where the pod can be scheduled; to be populated
	// only if ExtenderConfig.NodeCacheCapable == false
	Nodes *v1.NodeList
	// List of candidate node names where the pod can be scheduled; to be
	// populated only if ExtenderConfig.NodeCacheCapable == true
	NodeNames *[]string
}

ExtenderArgs represents the arguments needed by the extender to filter/prioritize nodes for a pod.

func (*ExtenderArgs) DeepCopy

func (in *ExtenderArgs) DeepCopy() *ExtenderArgs

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtenderArgs.

func (*ExtenderArgs) DeepCopyInto

func (in *ExtenderArgs) DeepCopyInto(out *ExtenderArgs)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExtenderBindingArgs

type ExtenderBindingArgs struct {
	// PodName is the name of the pod being bound
	PodName string
	// PodNamespace is the namespace of the pod being bound
	PodNamespace string
	// PodUID is the UID of the pod being bound
	PodUID types.UID
	// Node selected by the scheduler
	Node string
}

ExtenderBindingArgs represents the arguments to an extender for binding a pod to a node.

func (*ExtenderBindingArgs) DeepCopy

func (in *ExtenderBindingArgs) DeepCopy() *ExtenderBindingArgs

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtenderBindingArgs.

func (*ExtenderBindingArgs) DeepCopyInto

func (in *ExtenderBindingArgs) DeepCopyInto(out *ExtenderBindingArgs)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExtenderBindingResult

type ExtenderBindingResult struct {
	// Error message indicating failure
	Error string
}

ExtenderBindingResult represents the result of binding of a pod to a node from an extender.

func (*ExtenderBindingResult) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtenderBindingResult.

func (*ExtenderBindingResult) DeepCopyInto

func (in *ExtenderBindingResult) DeepCopyInto(out *ExtenderBindingResult)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExtenderConfig

type ExtenderConfig struct {
	// URLPrefix at which the extender is available
	URLPrefix string
	// Verb for the filter call, empty if not supported. This verb is appended to the URLPrefix when issuing the filter call to extender.
	FilterVerb string
	// Verb for the preempt call, empty if not supported. This verb is appended to the URLPrefix when issuing the preempt call to extender.
	PreemptVerb string
	// Verb for the prioritize call, empty if not supported. This verb is appended to the URLPrefix when issuing the prioritize call to extender.
	PrioritizeVerb string
	// The numeric multiplier for the node scores that the prioritize call generates.
	// The weight should be a positive integer
	Weight int
	// Verb for the bind call, empty if not supported. This verb is appended to the URLPrefix when issuing the bind call to extender.
	// If this method is implemented by the extender, it is the extender's responsibility to bind the pod to apiserver. Only one extender
	// can implement this function.
	BindVerb string
	// EnableHTTPS specifies whether https should be used to communicate with the extender
	EnableHTTPS bool
	// TLSConfig specifies the transport layer security config
	TLSConfig *restclient.TLSClientConfig
	// HTTPTimeout specifies the timeout duration for a call to the extender. Filter timeout fails the scheduling of the pod. Prioritize
	// timeout is ignored, k8s/other extenders priorities are used to select the node.
	HTTPTimeout time.Duration
	// NodeCacheCapable specifies that the extender is capable of caching node information,
	// so the scheduler should only send minimal information about the eligible nodes
	// assuming that the extender already cached full details of all nodes in the cluster
	NodeCacheCapable bool
	// ManagedResources is a list of extended resources that are managed by
	// this extender.
	// - A pod will be sent to the extender on the Filter, Prioritize and Bind
	//   (if the extender is the binder) phases iff the pod requests at least
	//   one of the extended resources in this list. If empty or unspecified,
	//   all pods will be sent to this extender.
	// - If IgnoredByScheduler is set to true for a resource, kube-scheduler
	//   will skip checking the resource in predicates.
	// +optional
	ManagedResources []ExtenderManagedResource
	// Ignorable specifies if the extender is ignorable, i.e. scheduling should not
	// fail when the extender returns an error or is not reachable.
	Ignorable bool
}

ExtenderConfig holds the parameters used to communicate with the extender. If a verb is unspecified/empty, it is assumed that the extender chose not to provide that extension.

func (*ExtenderConfig) DeepCopy

func (in *ExtenderConfig) DeepCopy() *ExtenderConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtenderConfig.

func (*ExtenderConfig) DeepCopyInto

func (in *ExtenderConfig) DeepCopyInto(out *ExtenderConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExtenderFilterResult

type ExtenderFilterResult struct {
	// Filtered set of nodes where the pod can be scheduled; to be populated
	// only if ExtenderConfig.NodeCacheCapable == false
	Nodes *v1.NodeList
	// Filtered set of nodes where the pod can be scheduled; to be populated
	// only if ExtenderConfig.NodeCacheCapable == true
	NodeNames *[]string
	// Filtered out nodes where the pod can't be scheduled and the failure messages
	FailedNodes FailedNodesMap
	// Error message indicating failure
	Error string
}

ExtenderFilterResult represents the results of a filter call to an extender

func (*ExtenderFilterResult) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtenderFilterResult.

func (*ExtenderFilterResult) DeepCopyInto

func (in *ExtenderFilterResult) DeepCopyInto(out *ExtenderFilterResult)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExtenderManagedResource

type ExtenderManagedResource struct {
	// Name is the extended resource name.
	Name v1.ResourceName
	// IgnoredByScheduler indicates whether kube-scheduler should ignore this
	// resource when applying predicates.
	IgnoredByScheduler bool
}

ExtenderManagedResource describes the arguments of extended resources managed by an extender.

func (*ExtenderManagedResource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtenderManagedResource.

func (*ExtenderManagedResource) DeepCopyInto

func (in *ExtenderManagedResource) DeepCopyInto(out *ExtenderManagedResource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExtenderPreemptionArgs

type ExtenderPreemptionArgs struct {
	// Pod being scheduled
	Pod *v1.Pod
	// Victims map generated by scheduler preemption phase
	// Only set NodeNameToMetaVictims if ExtenderConfig.NodeCacheCapable == true. Otherwise, only set NodeNameToVictims.
	NodeNameToVictims     map[string]*Victims
	NodeNameToMetaVictims map[string]*MetaVictims
}

ExtenderPreemptionArgs represents the arguments needed by the extender to preempt pods on nodes.

func (*ExtenderPreemptionArgs) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtenderPreemptionArgs.

func (*ExtenderPreemptionArgs) DeepCopyInto

func (in *ExtenderPreemptionArgs) DeepCopyInto(out *ExtenderPreemptionArgs)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExtenderPreemptionResult

type ExtenderPreemptionResult struct {
	NodeNameToMetaVictims map[string]*MetaVictims
}

ExtenderPreemptionResult represents the result returned by preemption phase of extender.

func (*ExtenderPreemptionResult) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtenderPreemptionResult.

func (*ExtenderPreemptionResult) DeepCopyInto

func (in *ExtenderPreemptionResult) DeepCopyInto(out *ExtenderPreemptionResult)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FailedNodesMap

type FailedNodesMap map[string]string

FailedNodesMap represents the filtered out nodes, with node names and failure messages

func (FailedNodesMap) DeepCopy

func (in FailedNodesMap) DeepCopy() FailedNodesMap

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FailedNodesMap.

func (FailedNodesMap) DeepCopyInto

func (in FailedNodesMap) DeepCopyInto(out *FailedNodesMap)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HostPriority

type HostPriority struct {
	// Name of the host
	Host string
	// Score associated with the host
	Score int
}

HostPriority represents the priority of scheduling to a particular host, higher priority is better.

func (*HostPriority) DeepCopy

func (in *HostPriority) DeepCopy() *HostPriority

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPriority.

func (*HostPriority) DeepCopyInto

func (in *HostPriority) DeepCopyInto(out *HostPriority)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HostPriorityList

type HostPriorityList []HostPriority

HostPriorityList declares a []HostPriority type.

func (HostPriorityList) DeepCopy

func (in HostPriorityList) DeepCopy() HostPriorityList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPriorityList.

func (HostPriorityList) DeepCopyInto

func (in HostPriorityList) DeepCopyInto(out *HostPriorityList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (HostPriorityList) Len

func (h HostPriorityList) Len() int

func (HostPriorityList) Less

func (h HostPriorityList) Less(i, j int) bool

func (HostPriorityList) Swap

func (h HostPriorityList) Swap(i, j int)

type LabelPreference

type LabelPreference struct {
	// Used to identify node "groups"
	Label string
	// This is a boolean flag
	// If true, higher priority is given to nodes that have the label
	// If false, higher priority is given to nodes that do not have the label
	Presence bool
}

LabelPreference holds the parameters that are used to configure the corresponding priority function

func (*LabelPreference) DeepCopy

func (in *LabelPreference) DeepCopy() *LabelPreference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LabelPreference.

func (*LabelPreference) DeepCopyInto

func (in *LabelPreference) DeepCopyInto(out *LabelPreference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LabelsPresence

type LabelsPresence struct {
	// The list of labels that identify node "groups"
	// All of the labels should be either present (or absent) for the node to be considered a fit for hosting the pod
	Labels []string
	// The boolean flag that indicates whether the labels should be present or absent from the node
	Presence bool
}

LabelsPresence holds the parameters that are used to configure the corresponding predicate in scheduler policy configuration.

func (*LabelsPresence) DeepCopy

func (in *LabelsPresence) DeepCopy() *LabelsPresence

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LabelsPresence.

func (*LabelsPresence) DeepCopyInto

func (in *LabelsPresence) DeepCopyInto(out *LabelsPresence)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetaPod

type MetaPod struct {
	UID string
}

MetaPod represent identifier for a v1.Pod

func (*MetaPod) DeepCopy

func (in *MetaPod) DeepCopy() *MetaPod

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetaPod.

func (*MetaPod) DeepCopyInto

func (in *MetaPod) DeepCopyInto(out *MetaPod)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetaVictims

type MetaVictims struct {
	Pods             []*MetaPod
	NumPDBViolations int
}

MetaVictims represents:

pods:  a group of pods expected to be preempted.
  Only Pod identifiers will be sent and user are expect to get v1.Pod in their own way.
numPDBViolations: the count of violations of PodDisruptionBudget

func (*MetaVictims) DeepCopy

func (in *MetaVictims) DeepCopy() *MetaVictims

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetaVictims.

func (*MetaVictims) DeepCopyInto

func (in *MetaVictims) DeepCopyInto(out *MetaVictims)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Policy

type Policy struct {
	metav1.TypeMeta
	// Holds the information to configure the fit predicate functions.
	// If unspecified, the default predicate functions will be applied.
	// If empty list, all predicates (except the mandatory ones) will be
	// bypassed.
	Predicates []PredicatePolicy
	// Holds the information to configure the priority functions.
	// If unspecified, the default priority functions will be applied.
	// If empty list, all priority functions will be bypassed.
	Priorities []PriorityPolicy
	// Holds the information to communicate with the extender(s)
	ExtenderConfigs []ExtenderConfig
	// RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule
	// corresponding to every RequiredDuringScheduling affinity rule.
	// HardPodAffinitySymmetricWeight represents the weight of implicit PreferredDuringScheduling affinity rule, in the range 1-100.
	HardPodAffinitySymmetricWeight int32

	// When AlwaysCheckAllPredicates is set to true, scheduler checks all
	// the configured predicates even after one or more of them fails.
	// When the flag is set to false, scheduler skips checking the rest
	// of the predicates after it finds one predicate that failed.
	AlwaysCheckAllPredicates bool
}

Policy describes a struct of a policy resource in api.

func (*Policy) DeepCopy

func (in *Policy) DeepCopy() *Policy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Policy.

func (*Policy) DeepCopyInto

func (in *Policy) DeepCopyInto(out *Policy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Policy) DeepCopyObject

func (in *Policy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PredicateArgument

type PredicateArgument struct {
	// The predicate that provides affinity for pods belonging to a service
	// It uses a label to identify nodes that belong to the same "group"
	ServiceAffinity *ServiceAffinity
	// The predicate that checks whether a particular node has a certain label
	// defined or not, regardless of value
	LabelsPresence *LabelsPresence
}

PredicateArgument represents the arguments to configure predicate functions in scheduler policy configuration. Only one of its members may be specified

func (*PredicateArgument) DeepCopy

func (in *PredicateArgument) DeepCopy() *PredicateArgument

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PredicateArgument.

func (*PredicateArgument) DeepCopyInto

func (in *PredicateArgument) DeepCopyInto(out *PredicateArgument)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PredicatePolicy

type PredicatePolicy struct {
	// Identifier of the predicate policy
	// For a custom predicate, the name can be user-defined
	// For the Kubernetes provided predicates, the name is the identifier of the pre-defined predicate
	Name string
	// Holds the parameters to configure the given predicate
	Argument *PredicateArgument
}

PredicatePolicy describes a struct of a predicate policy.

func (*PredicatePolicy) DeepCopy

func (in *PredicatePolicy) DeepCopy() *PredicatePolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PredicatePolicy.

func (*PredicatePolicy) DeepCopyInto

func (in *PredicatePolicy) DeepCopyInto(out *PredicatePolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PriorityArgument

type PriorityArgument struct {
	// The priority function that ensures a good spread (anti-affinity) for pods belonging to a service
	// It uses a label to identify nodes that belong to the same "group"
	ServiceAntiAffinity *ServiceAntiAffinity
	// The priority function that checks whether a particular node has a certain label
	// defined or not, regardless of value
	LabelPreference *LabelPreference
	// The RequestedToCapacityRatio priority function is parametrized with function shape.
	RequestedToCapacityRatioArguments *RequestedToCapacityRatioArguments
}

PriorityArgument represents the arguments to configure priority functions in scheduler policy configuration. Only one of its members may be specified

func (*PriorityArgument) DeepCopy

func (in *PriorityArgument) DeepCopy() *PriorityArgument

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityArgument.

func (*PriorityArgument) DeepCopyInto

func (in *PriorityArgument) DeepCopyInto(out *PriorityArgument)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PriorityPolicy

type PriorityPolicy struct {
	// Identifier of the priority policy
	// For a custom priority, the name can be user-defined
	// For the Kubernetes provided priority functions, the name is the identifier of the pre-defined priority function
	Name string
	// The numeric multiplier for the node scores that the priority function generates
	// The weight should be a positive integer
	Weight int
	// Holds the parameters to configure the given priority function
	Argument *PriorityArgument
}

PriorityPolicy describes a struct of a priority policy.

func (*PriorityPolicy) DeepCopy

func (in *PriorityPolicy) DeepCopy() *PriorityPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityPolicy.

func (*PriorityPolicy) DeepCopyInto

func (in *PriorityPolicy) DeepCopyInto(out *PriorityPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RequestedToCapacityRatioArguments

type RequestedToCapacityRatioArguments struct {
	// Array of point defining priority function shape
	UtilizationShape []UtilizationShapePoint
}

RequestedToCapacityRatioArguments holds arguments specific to RequestedToCapacityRatio priority function

func (*RequestedToCapacityRatioArguments) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestedToCapacityRatioArguments.

func (*RequestedToCapacityRatioArguments) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceAffinity

type ServiceAffinity struct {
	// The list of labels that identify node "groups"
	// All of the labels should match for the node to be considered a fit for hosting the pod
	Labels []string
}

ServiceAffinity holds the parameters that are used to configure the corresponding predicate in scheduler policy configuration.

func (*ServiceAffinity) DeepCopy

func (in *ServiceAffinity) DeepCopy() *ServiceAffinity

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAffinity.

func (*ServiceAffinity) DeepCopyInto

func (in *ServiceAffinity) DeepCopyInto(out *ServiceAffinity)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceAntiAffinity

type ServiceAntiAffinity struct {
	// Used to identify node "groups"
	Label string
}

ServiceAntiAffinity holds the parameters that are used to configure the corresponding priority function

func (*ServiceAntiAffinity) DeepCopy

func (in *ServiceAntiAffinity) DeepCopy() *ServiceAntiAffinity

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAntiAffinity.

func (*ServiceAntiAffinity) DeepCopyInto

func (in *ServiceAntiAffinity) DeepCopyInto(out *ServiceAntiAffinity)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UtilizationShapePoint

type UtilizationShapePoint struct {
	// Utilization (x axis). Valid values are 0 to 100. Fully utilized node maps to 100.
	Utilization int
	// Score assigned to given utilization (y axis). Valid values are 0 to 10.
	Score int
}

UtilizationShapePoint represents single point of priority function shape

func (*UtilizationShapePoint) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UtilizationShapePoint.

func (*UtilizationShapePoint) DeepCopyInto

func (in *UtilizationShapePoint) DeepCopyInto(out *UtilizationShapePoint)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Victims

type Victims struct {
	Pods             []*v1.Pod
	NumPDBViolations int
}

Victims represents:

pods:  a group of pods expected to be preempted.
numPDBViolations: the count of violations of PodDisruptionBudget

func (*Victims) DeepCopy

func (in *Victims) DeepCopy() *Victims

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Victims.

func (*Victims) DeepCopyInto

func (in *Victims) DeepCopyInto(out *Victims)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Directories

Path Synopsis
Package v1 contains scheduler API objects.
Package v1 contains scheduler API objects.

Jump to

Keyboard shortcuts

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