Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)
View Source
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.

      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 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"`
      	// 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"`
      }

        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.

        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

          type FailedNodesMap

          type FailedNodesMap map[string]string

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

            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.

              type HostPriorityList

              type HostPriorityList []HostPriority

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

                Holds the parameters that are used to configure the corresponding priority function

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

                  Holds the parameters that are used to configure the corresponding predicate

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

                  func (*Policy) GetObjectKind

                  func (obj *Policy) GetObjectKind() schema.ObjectKind

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

                    Represents the arguments that the different types of predicates take Only one of its members may be specified

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

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

                      Represents the arguments that the different types of priorities take. Only one of its members may be specified

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

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

                        Holds the parameters that are used to configure the corresponding predicate

                        type ServiceAntiAffinity

                        type ServiceAntiAffinity struct {
                        	// Used to identify node "groups"
                        	Label string `json:"label"`
                        }

                          Holds the parameters that are used to configure the corresponding priority function