api

package
v1.9.7 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2018 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package api contains scheduler plugin API objects.

Index

Constants

View Source
const (
	MaxUint          = ^uint(0)
	MaxInt           = int(MaxUint >> 1)
	MaxTotalPriority = MaxInt
	MaxPriority      = 10
	MaxWeight        = MaxInt / MaxPriority
)

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	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 added in v1.2.0

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 added in v1.8.0

func (in *ExtenderArgs) DeepCopy() *ExtenderArgs

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

func (*ExtenderArgs) DeepCopyInto added in v1.8.0

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 added in v1.7.0

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 added in v1.8.0

func (in *ExtenderBindingArgs) DeepCopy() *ExtenderBindingArgs

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

func (*ExtenderBindingArgs) DeepCopyInto added in v1.8.0

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 added in v1.7.0

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 added in v1.8.0

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

func (*ExtenderBindingResult) DeepCopyInto added in v1.8.0

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 added in v1.2.0

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
}

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 added in v1.8.0

func (in *ExtenderConfig) DeepCopy() *ExtenderConfig

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

func (*ExtenderConfig) DeepCopyInto added in v1.8.0

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 added in v1.2.0

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 added in v1.8.0

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

func (*ExtenderFilterResult) DeepCopyInto added in v1.8.0

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

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

type FailedNodesMap added in v1.4.1

type FailedNodesMap map[string]string

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

type HostPriority added in v1.2.0

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 added in v1.8.0

func (in *HostPriority) DeepCopy() *HostPriority

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

func (*HostPriority) DeepCopyInto added in v1.8.0

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 added in v1.2.0

type HostPriorityList []HostPriority

func (HostPriorityList) Len added in v1.2.0

func (h HostPriorityList) Len() int

func (HostPriorityList) Less added in v1.2.0

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

func (HostPriorityList) Swap added in v1.2.0

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 added in v1.8.0

func (in *LabelPreference) DeepCopy() *LabelPreference

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

func (*LabelPreference) DeepCopyInto added in v1.8.0

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 added in v1.8.0

func (in *LabelsPresence) DeepCopy() *LabelsPresence

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

func (*LabelsPresence) DeepCopyInto added in v1.8.0

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
	Predicates []PredicatePolicy
	// Holds the information to configure the priority functions
	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
}

func (*Policy) DeepCopy added in v1.8.0

func (in *Policy) DeepCopy() *Policy

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

func (*Policy) DeepCopyInto added in v1.8.0

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 added in v1.8.0

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 added in v1.8.0

func (in *PredicateArgument) DeepCopy() *PredicateArgument

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

func (*PredicateArgument) DeepCopyInto added in v1.8.0

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
}

func (*PredicatePolicy) DeepCopy added in v1.8.0

func (in *PredicatePolicy) DeepCopy() *PredicatePolicy

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

func (*PredicatePolicy) DeepCopyInto added in v1.8.0

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 added in v1.8.0

func (in *PriorityArgument) DeepCopy() *PriorityArgument

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

func (*PriorityArgument) DeepCopyInto added in v1.8.0

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
}

func (*PriorityPolicy) DeepCopy added in v1.8.0

func (in *PriorityPolicy) DeepCopy() *PriorityPolicy

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

func (*PriorityPolicy) DeepCopyInto added in v1.8.0

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 added in v1.8.0

func (in *ServiceAffinity) DeepCopy() *ServiceAffinity

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

func (*ServiceAffinity) DeepCopyInto added in v1.8.0

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 added in v1.8.0

func (in *ServiceAntiAffinity) DeepCopy() *ServiceAntiAffinity

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

func (*ServiceAntiAffinity) DeepCopyInto added in v1.8.0

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 plugin API objects.
Package v1 contains scheduler plugin API objects.

Jump to

Keyboard shortcuts

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