Documentation ¶
Index ¶
- Constants
- func New(obj runtime.Object, handle framework.Handle) (framework.Plugin, error)
- type CapacityScheduling
- func (c *CapacityScheduling) AddPod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, ...) *framework.Status
- func (c *CapacityScheduling) EventsToRegister() []framework.ClusterEvent
- func (c *CapacityScheduling) Name() string
- func (c *CapacityScheduling) PostFilter(ctx context.Context, state *framework.CycleState, pod *v1.Pod, ...) (*framework.PostFilterResult, *framework.Status)
- func (c *CapacityScheduling) PreFilter(ctx context.Context, state *framework.CycleState, pod *v1.Pod) (*framework.PreFilterResult, *framework.Status)
- func (c *CapacityScheduling) PreFilterExtensions() framework.PreFilterExtensions
- func (c *CapacityScheduling) RemovePod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, ...) *framework.Status
- func (c *CapacityScheduling) Reserve(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) *framework.Status
- func (c *CapacityScheduling) Unreserve(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string)
- type ElasticQuotaInfo
- type ElasticQuotaInfoInformer
- func (i ElasticQuotaInfoInformer) AddEventHandler(handler cache.ResourceEventHandler)
- func (i ElasticQuotaInfoInformer) GetAssociatedCompositeElasticQuota(namespace string) (*ElasticQuotaInfo, error)
- func (i ElasticQuotaInfoInformer) GetAssociatedElasticQuota(namespace string) (*ElasticQuotaInfo, error)
- func (i ElasticQuotaInfoInformer) HasSynced() bool
- func (i ElasticQuotaInfoInformer) Start(stopCh <-chan struct{})
- type ElasticQuotaInfos
- func (e ElasticQuotaInfos) Add(eqInfo *ElasticQuotaInfo)
- func (e ElasticQuotaInfos) AggregatedUsedOverMinWith(podRequest framework.Resource) bool
- func (e ElasticQuotaInfos) Delete(eqInfo *ElasticQuotaInfo)
- func (e ElasticQuotaInfos) GetGuaranteedOverquotas(elasticQuota string) (*framework.Resource, error)
- func (e ElasticQuotaInfos) Update(oldEqInfo, newEqInfo *ElasticQuotaInfo)
- type ElasticQuotaSnapshotState
- type PreFilterState
Constants ¶
const ( // Name is the name of the plugin used in Registry and configurations. Name = "CapacityScheduling" ElasticQuotaSnapshotKey = "ElasticQuotaSnapshot" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CapacityScheduling ¶
CapacityScheduling is a plugin that implements the mechanism of capacity scheduling.
func (*CapacityScheduling) AddPod ¶
func (c *CapacityScheduling) AddPod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, podToAdd *framework.PodInfo, nodeInfo *framework.NodeInfo) *framework.Status
AddPod from pre-computed data in cycleState.
func (*CapacityScheduling) EventsToRegister ¶
func (c *CapacityScheduling) EventsToRegister() []framework.ClusterEvent
func (*CapacityScheduling) Name ¶
func (c *CapacityScheduling) Name() string
Name returns name of the plugin. It is used in logs, etc.
func (*CapacityScheduling) PostFilter ¶
func (c *CapacityScheduling) PostFilter(ctx context.Context, state *framework.CycleState, pod *v1.Pod, m framework.NodeToStatusMap) (*framework.PostFilterResult, *framework.Status)
func (*CapacityScheduling) PreFilter ¶
func (c *CapacityScheduling) PreFilter(ctx context.Context, state *framework.CycleState, pod *v1.Pod) (*framework.PreFilterResult, *framework.Status)
PreFilter performs the following validations. 1. Check if the (pod.request + eq.allocated) is less than eq.max. 2. Check if the sum(eq's usage) > sum(eq's min).
func (*CapacityScheduling) PreFilterExtensions ¶
func (c *CapacityScheduling) PreFilterExtensions() framework.PreFilterExtensions
PreFilterExtensions returns prefilter extensions, pod add and remove.
func (*CapacityScheduling) RemovePod ¶
func (c *CapacityScheduling) RemovePod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, podToRemove *framework.PodInfo, nodeInfo *framework.NodeInfo) *framework.Status
RemovePod from pre-computed data in cycleState.
func (*CapacityScheduling) Reserve ¶
func (c *CapacityScheduling) Reserve(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) *framework.Status
func (*CapacityScheduling) Unreserve ¶
func (c *CapacityScheduling) Unreserve(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string)
type ElasticQuotaInfo ¶
type ElasticQuotaInfo struct { // ResourceName is the name of the resource (ElasticQuota or CompositeElasticQuota) // associated to the ElasticQuotaInfo ResourceName string // ResourceNamespace is the namespace to which the resource (ElasticQuota or CompositeElasticQuota) // associated to the ElasticQuotaInfo belongs to ResourceNamespace string Namespaces sets.String Min *framework.Resource Max *framework.Resource Used *framework.Resource MaxEnforced bool // contains filtered or unexported fields }
ElasticQuotaInfo wraps ElasticQuotas and CompositeElasticQuotas adding additional information and utility methods.
type ElasticQuotaInfoInformer ¶
type ElasticQuotaInfoInformer struct {
// contains filtered or unexported fields
}
ElasticQuotaInfoInformer is a wrapper around ElasticQuota and CompositeElasticQuota informers that exposes their respective types as ElasticQuotaInfo
func NewElasticQuotaInfoInformer ¶
func NewElasticQuotaInfoInformer(kubeConfig *restclient.Config, resourceCalculator resource.Calculator) (*ElasticQuotaInfoInformer, error)
func (ElasticQuotaInfoInformer) AddEventHandler ¶
func (i ElasticQuotaInfoInformer) AddEventHandler(handler cache.ResourceEventHandler)
AddEventHandler adds an event handler that receives events for both CompositeElasticQuota and ElasticQuota resources.
The handler always receives ElasticQuotaInfo objects, no matters if the event was generated by an ElasticQuota or a CompositeElasticQuota resource.
Events for ElasticQuota resources are sent only if the namespace to which the ElasticQuota belongs to is not subject to any CompositeElasticQuota. In such a case, the CompositeElasticQuota takes precedence and only its events are sent to the handler, while ElasticQuota events are ignored.
func (ElasticQuotaInfoInformer) GetAssociatedCompositeElasticQuota ¶
func (i ElasticQuotaInfoInformer) GetAssociatedCompositeElasticQuota(namespace string) (*ElasticQuotaInfo, error)
GetAssociatedCompositeElasticQuota returns, if present, the CompositeElasticQuota to which the namespace provided as argument is subject to
func (ElasticQuotaInfoInformer) GetAssociatedElasticQuota ¶
func (i ElasticQuotaInfoInformer) GetAssociatedElasticQuota(namespace string) (*ElasticQuotaInfo, error)
GetAssociatedElasticQuota returns, if present, the ElasticQuotaInfo that sets the quota limits on the namespace provided as argument.
If namespace is not associated with any ElasticQuota then nil is returned.
func (ElasticQuotaInfoInformer) HasSynced ¶
func (i ElasticQuotaInfoInformer) HasSynced() bool
func (ElasticQuotaInfoInformer) Start ¶
func (i ElasticQuotaInfoInformer) Start(stopCh <-chan struct{})
type ElasticQuotaInfos ¶
type ElasticQuotaInfos map[string]*ElasticQuotaInfo
ElasticQuotaInfos associates namespaces with the respective ElasticQuotaInfo that defines its quota
func NewElasticQuotaInfos ¶
func NewElasticQuotaInfos() ElasticQuotaInfos
func (ElasticQuotaInfos) Add ¶
func (e ElasticQuotaInfos) Add(eqInfo *ElasticQuotaInfo)
func (ElasticQuotaInfos) AggregatedUsedOverMinWith ¶
func (e ElasticQuotaInfos) AggregatedUsedOverMinWith(podRequest framework.Resource) bool
func (ElasticQuotaInfos) Delete ¶
func (e ElasticQuotaInfos) Delete(eqInfo *ElasticQuotaInfo)
func (ElasticQuotaInfos) GetGuaranteedOverquotas ¶
func (e ElasticQuotaInfos) GetGuaranteedOverquotas(elasticQuota string) (*framework.Resource, error)
func (ElasticQuotaInfos) Update ¶
func (e ElasticQuotaInfos) Update(oldEqInfo, newEqInfo *ElasticQuotaInfo)
type ElasticQuotaSnapshotState ¶
type ElasticQuotaSnapshotState struct {
// contains filtered or unexported fields
}
ElasticQuotaSnapshotState stores the snapshot of elasticQuotas.
func (*ElasticQuotaSnapshotState) Clone ¶
func (s *ElasticQuotaSnapshotState) Clone() framework.StateData
Clone the ElasticQuotaSnapshot state.
type PreFilterState ¶
type PreFilterState struct {
// contains filtered or unexported fields
}
PreFilterState computed at PreFilter and used at PostFilter or Reserve.
func (*PreFilterState) Clone ¶
func (s *PreFilterState) Clone() framework.StateData
Clone the preFilter state.