Documentation ¶
Overview ¶
Package v1 contains scheduler API objects.
Index ¶
- Variables
- type ExtenderArgs
- type ExtenderBindingArgs
- type ExtenderBindingResult
- type ExtenderConfig
- type ExtenderFilterResult
- type ExtenderManagedResource
- type ExtenderPreemptionArgs
- type ExtenderPreemptionResult
- type FailedNodesMap
- type HostPriority
- type HostPriorityList
- type LabelPreference
- type LabelsPresence
- type MetaPod
- type MetaVictims
- type Policy
- type PredicateArgument
- type PredicatePolicy
- type PriorityArgument
- type PriorityPolicy
- type ServiceAffinity
- type ServiceAntiAffinity
- type Victims
Constants ¶
This section is empty.
Variables ¶
var ( // SchemeBuilder is a v1 api scheme builder. SchemeBuilder runtime.SchemeBuilder // AddToScheme is used to add stored functions to scheme. AddToScheme = localSchemeBuilder.AddToScheme )
var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: "v1"}
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 *apiv1.Pod `json:"pod"` // List of candidate nodes where the pod can be scheduled; to be populated // only if ExtenderConfig.NodeCacheCapable == false Nodes *apiv1.NodeList `json:"nodes,omitempty"` // List of candidate node names where the pod can be scheduled; to be // populated only if ExtenderConfig.NodeCacheCapable == true NodeNames *[]string `json:"nodenames,omitempty"` }
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 ¶
func (in *ExtenderBindingResult) DeepCopy() *ExtenderBindingResult
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 `json:"urlPrefix"` // 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 `json:"filterVerb,omitempty"` // 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 `json:"preemptVerb,omitempty"` // 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 `json:"prioritizeVerb,omitempty"` // The numeric multiplier for the node scores that the prioritize call generates. // The weight should be a positive integer Weight int `json:"weight,omitempty"` // 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 `json:"enableHttps,omitempty"` // TLSConfig specifies the transport layer security config TLSConfig *restclient.TLSClientConfig `json:"tlsConfig,omitempty"` // 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 `json:"httpTimeout,omitempty"` // 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 `json:"nodeCacheCapable,omitempty"` // 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 `json:"managedResources,omitempty"` // 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 `json:"ignorable,omitempty"` }
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 *apiv1.NodeList `json:"nodes,omitempty"` // Filtered set of nodes where the pod can be scheduled; to be populated // only if ExtenderConfig.NodeCacheCapable == true NodeNames *[]string `json:"nodenames,omitempty"` // Filtered out nodes where the pod can't be scheduled and the failure messages FailedNodes FailedNodesMap `json:"failedNodes,omitempty"` // Error message indicating failure Error string `json:"error,omitempty"` }
ExtenderFilterResult represents the results of a filter call to an extender
func (*ExtenderFilterResult) DeepCopy ¶
func (in *ExtenderFilterResult) DeepCopy() *ExtenderFilterResult
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 apiv1.ResourceName `json:"name,casttype=ResourceName"` // IgnoredByScheduler indicates whether kube-scheduler should ignore this // resource when applying predicates. IgnoredByScheduler bool `json:"ignoredByScheduler,omitempty"` }
ExtenderManagedResource describes the arguments of extended resources managed by an extender.
func (*ExtenderManagedResource) DeepCopy ¶
func (in *ExtenderManagedResource) DeepCopy() *ExtenderManagedResource
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 *apiv1.Pod `json:"pod"` // Victims map generated by scheduler preemption phase // Only set NodeNameToMetaVictims if ExtenderConfig.NodeCacheCapable == true. Otherwise, only set NodeNameToVictims. NodeNameToVictims map[string]*Victims `json:"nodeToVictims,omitempty"` NodeNameToMetaVictims map[string]*MetaVictims `json:"nodeNameToMetaVictims,omitempty"` }
ExtenderPreemptionArgs represents the arguments needed by the extender to preempt pods on nodes.
func (*ExtenderPreemptionArgs) DeepCopy ¶
func (in *ExtenderPreemptionArgs) DeepCopy() *ExtenderPreemptionArgs
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 `json:"nodeNameToMetaVictims,omitempty"`
}
ExtenderPreemptionResult represents the result returned by preemption phase of extender.
func (*ExtenderPreemptionResult) DeepCopy ¶
func (in *ExtenderPreemptionResult) DeepCopy() *ExtenderPreemptionResult
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 ¶
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 `json:"host"` // Score associated with the host Score int `json:"score"` }
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 `json:"label"` // 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 `json:"presence"` }
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 `json:"labels"` // The boolean flag that indicates whether the labels should be present or absent from the node Presence bool `json:"presence"` }
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 `json:"uid"`
}
MetaPod represent identifier for a v1.Pod
func (*MetaPod) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetaPod.
func (*MetaPod) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MetaVictims ¶
type MetaVictims struct { Pods []*MetaPod `json:"pods"` NumPDBViolations int `json:"numPDBViolations"` }
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 `json:",inline"` // Holds the information to configure the fit predicate functions Predicates []PredicatePolicy `json:"predicates"` // Holds the information to configure the priority functions Priorities []PriorityPolicy `json:"priorities"` // Holds the information to communicate with the extender(s) ExtenderConfigs []ExtenderConfig `json:"extenders"` // 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 int `json:"hardPodAffinitySymmetricWeight"` // 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 `json:"alwaysCheckAllPredicates"` }
Policy describes a struct for a policy resource used in api.
func (*Policy) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Policy.
func (*Policy) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Policy) DeepCopyObject ¶
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 `json:"serviceAffinity"` // The predicate that checks whether a particular node has a certain label // defined or not, regardless of value LabelsPresence *LabelsPresence `json:"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 `json:"name"` // Holds the parameters to configure the given predicate Argument *PredicateArgument `json:"argument"` }
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 `json:"serviceAntiAffinity"` // The priority function that checks whether a particular node has a certain label // defined or not, regardless of value LabelPreference *LabelPreference `json:"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 `json:"name"` // The numeric multiplier for the node scores that the priority function generates // The weight should be non-zero and can be a positive or a negative integer Weight int `json:"weight"` // Holds the parameters to configure the given priority function Argument *PriorityArgument `json:"argument"` }
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 `json:"labels"` }
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 `json:"label"` }
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 Victims ¶
type Victims struct { Pods []*apiv1.Pod `json:"pods"` NumPDBViolations int `json:"numPDBViolations"` }
Victims represents:
pods: a group of pods expected to be preempted. numPDBViolations: the count of violations of PodDisruptionBudget
func (*Victims) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Victims.
func (*Victims) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.