api

package
v1.10.3-beta.0 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2018 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
	// HighestUserDefinablePriority is the highest priority for user defined priority classes. Priority values larger than 1 billion are reserved for Kubernetes system use.
	HighestUserDefinablePriority = int32(1000000000)
	// SystemCriticalPriority is the beginning of the range of priority values for critical system components.
	SystemCriticalPriority = 2 * HighestUserDefinablePriority
	// NOTE: In order to avoid conflict of names with user-defined priority classes, all the names must
	// start with scheduling.SystemPriorityClassPrefix which is by default "system-".
	SystemClusterCritical = "system-cluster-critical"
	SystemNodeCritical    = "system-node-critical"
)

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

SystemPriorityClasses defines special priority classes which are used by system critical pods that should not be preempted by workload pods.

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 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
}

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 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 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
}

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 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.

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