kubernetes: k8s.io/kubernetes/pkg/scheduler/api Index | Files | Directories

package api

import "k8s.io/kubernetes/pkg/scheduler/api"

Package api contains scheduler API objects.

Index

Package Files

doc.go register.go types.go zz_generated.deepcopy.go

Constants

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
)

Variables

var (
    // SchemeBuilder defines a SchemeBuilder object.
    SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
    // AddToScheme is used to add stored functions to scheme.
    AddToScheme = SchemeBuilder.AddToScheme
)
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.

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

type ExtenderArgs Uses

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 Uses

func (in *ExtenderArgs) DeepCopy() *ExtenderArgs

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

func (*ExtenderArgs) DeepCopyInto Uses

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 Uses

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 Uses

func (in *ExtenderBindingArgs) DeepCopy() *ExtenderBindingArgs

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

func (*ExtenderBindingArgs) DeepCopyInto Uses

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 Uses

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 Uses

func (in *ExtenderBindingResult) DeepCopy() *ExtenderBindingResult

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

func (*ExtenderBindingResult) DeepCopyInto Uses

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 Uses

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 Uses

func (in *ExtenderConfig) DeepCopy() *ExtenderConfig

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

func (*ExtenderConfig) DeepCopyInto Uses

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 Uses

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 Uses

func (in *ExtenderFilterResult) DeepCopy() *ExtenderFilterResult

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

func (*ExtenderFilterResult) DeepCopyInto Uses

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 Uses

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 Uses

func (in *ExtenderManagedResource) DeepCopy() *ExtenderManagedResource

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

func (*ExtenderManagedResource) DeepCopyInto Uses

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 Uses

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 Uses

func (in *ExtenderPreemptionArgs) DeepCopy() *ExtenderPreemptionArgs

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

func (*ExtenderPreemptionArgs) DeepCopyInto Uses

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 Uses

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

ExtenderPreemptionResult represents the result returned by preemption phase of extender.

func (*ExtenderPreemptionResult) DeepCopy Uses

func (in *ExtenderPreemptionResult) DeepCopy() *ExtenderPreemptionResult

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

func (*ExtenderPreemptionResult) DeepCopyInto Uses

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 Uses

type FailedNodesMap map[string]string

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

func (FailedNodesMap) DeepCopy Uses

func (in FailedNodesMap) DeepCopy() FailedNodesMap

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

func (FailedNodesMap) DeepCopyInto Uses

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 Uses

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 Uses

func (in *HostPriority) DeepCopy() *HostPriority

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

func (*HostPriority) DeepCopyInto Uses

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 Uses

type HostPriorityList []HostPriority

HostPriorityList declares a []HostPriority type.

func (HostPriorityList) DeepCopy Uses

func (in HostPriorityList) DeepCopy() HostPriorityList

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

func (HostPriorityList) DeepCopyInto Uses

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 Uses

func (h HostPriorityList) Len() int

func (HostPriorityList) Less Uses

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

func (HostPriorityList) Swap Uses

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

type LabelPreference Uses

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 Uses

func (in *LabelPreference) DeepCopy() *LabelPreference

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

func (*LabelPreference) DeepCopyInto Uses

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 Uses

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 Uses

func (in *LabelsPresence) DeepCopy() *LabelsPresence

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

func (*LabelsPresence) DeepCopyInto Uses

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 Uses

type MetaPod struct {
    UID string
}

MetaPod represent identifier for a v1.Pod

func (*MetaPod) DeepCopy Uses

func (in *MetaPod) DeepCopy() *MetaPod

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

func (*MetaPod) DeepCopyInto Uses

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 Uses

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 Uses

func (in *MetaVictims) DeepCopy() *MetaVictims

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

func (*MetaVictims) DeepCopyInto Uses

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 Uses

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 Uses

func (in *Policy) DeepCopy() *Policy

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

func (*Policy) DeepCopyInto Uses

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 Uses

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

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

type PredicateArgument Uses

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 Uses

func (in *PredicateArgument) DeepCopy() *PredicateArgument

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

func (*PredicateArgument) DeepCopyInto Uses

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 Uses

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 Uses

func (in *PredicatePolicy) DeepCopy() *PredicatePolicy

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

func (*PredicatePolicy) DeepCopyInto Uses

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 Uses

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 Uses

func (in *PriorityArgument) DeepCopy() *PriorityArgument

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

func (*PriorityArgument) DeepCopyInto Uses

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 Uses

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 Uses

func (in *PriorityPolicy) DeepCopy() *PriorityPolicy

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

func (*PriorityPolicy) DeepCopyInto Uses

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 Uses

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 Uses

func (in *ServiceAffinity) DeepCopy() *ServiceAffinity

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

func (*ServiceAffinity) DeepCopyInto Uses

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 Uses

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 Uses

func (in *ServiceAntiAffinity) DeepCopy() *ServiceAntiAffinity

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

func (*ServiceAntiAffinity) DeepCopyInto Uses

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

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

type Victims Uses

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 Uses

func (in *Victims) DeepCopy() *Victims

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

func (*Victims) DeepCopyInto Uses

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

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

Directories

PathSynopsis
latest
v1Package v1 contains scheduler API objects.
validation

Package api imports 7 packages (graph) and is imported by 61 packages. Updated 2018-04-19. Refresh now. Tools for package owners.