processors

package
v0.0.0-...-4f1c8e6 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2024 License: Apache-2.0 Imports: 13 Imported by: 7

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AutoscalingProcessors

type AutoscalingProcessors struct {
	// PodListProcessor is used to process list of unschedulable pods before autoscaling.
	PodListProcessor pods.PodListProcessor
	// NodeGroupListProcessor is used to process list of NodeGroups that can be used in scale-up.
	NodeGroupListProcessor nodegroups.NodeGroupListProcessor
	// BinpackingLimiter processes expansion options to stop binpacking early.
	BinpackingLimiter binpacking.BinpackingLimiter
	// NodeGroupSetProcessor is used to divide scale-up between similar NodeGroups.
	NodeGroupSetProcessor nodegroupset.NodeGroupSetProcessor
	// ScaleUpStatusProcessor is used to process the state of the cluster after a scale-up.
	ScaleUpStatusProcessor status.ScaleUpStatusProcessor
	// ScaleDownNodeProcessor is used to process the nodes of the cluster before scale-down.
	ScaleDownNodeProcessor nodes.ScaleDownNodeProcessor
	// ScaleDownSetProcessor is used to make final selection of nodes to scale-down.
	ScaleDownSetProcessor nodes.ScaleDownSetProcessor
	// ScaleDownStatusProcessor is used to process the state of the cluster after a scale-down.
	ScaleDownStatusProcessor status.ScaleDownStatusProcessor
	// AutoscalingStatusProcessor is used to process the state of the cluster after each autoscaling iteration.
	AutoscalingStatusProcessor status.AutoscalingStatusProcessor
	// NodeGroupManager is responsible for creating/deleting node groups.
	NodeGroupManager nodegroups.NodeGroupManager
	// TemplateNodeInfoProvider is used to create the initial nodeInfos set.
	TemplateNodeInfoProvider nodeinfosprovider.TemplateNodeInfoProvider
	// NodeGroupConfigProcessor provides config option for each NodeGroup.
	NodeGroupConfigProcessor nodegroupconfig.NodeGroupConfigProcessor
	// CustomResourcesProcessor is interface defining handling custom resources
	CustomResourcesProcessor customresources.CustomResourcesProcessor
	// ActionableClusterProcessor is interface defining whether the cluster is in an actionable state
	ActionableClusterProcessor actionablecluster.ActionableClusterProcessor
	// ScaleDownCandidatesNotifier  is used to Update and Register new scale down candidates observer.
	ScaleDownCandidatesNotifier *scaledowncandidates.ObserversList
	// ScaleStateNotifier is used to notify
	// * scale-ups per nodegroup
	// * scale-downs per nodegroup
	// * scale-up failures per nodegroup
	// * scale-down failures per nodegroup
	ScaleStateNotifier *nodegroupchange.NodeGroupChangeObserversList
}

AutoscalingProcessors are a set of customizable processors used for encapsulating various heuristics used in different parts of Cluster Autoscaler code.

func DefaultProcessors

func DefaultProcessors(options config.AutoscalingOptions) *AutoscalingProcessors

DefaultProcessors returns default set of processors.

func (*AutoscalingProcessors) CleanUp

func (ap *AutoscalingProcessors) CleanUp()

CleanUp cleans up the processors' internal structures.

Jump to

Keyboard shortcuts

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