# Functions
BuildNodeGroupsState builds a node group state.
NewClient creates a new client wrapper over the k8sclient with some pod and node listers It will wait for the cache to sync before returning.
NewController creates a new controller with the specified options.
NewDefaultNodeGroupLister creates a new group from the backing lister and nodegroup filter with the default filter.
NewNodeGroupLister creates a new group from the backing lister and nodegroup filter.
NewNodeLabelFilterFunc creates a new NodeFilterFunc based on filtering by node labels.
NewPodAffinityFilterFunc creates a new PodFilterFunc based on filtering by label selectors.
NewPodDefaultFilterFunc creates a new PodFilterFunc that includes pods that do not have a selector.
UnmarshalNodeGroupOptions decodes the yaml or json reader into a struct.
ValidateNodeGroup is a safety check to validate that a nodegroup has valid options.
# Constants
DefaultNodeGroup is used for any pods that don't have a node selector defined.
NodeEscalatorIgnoreAnnotation is the key of an annotation on a node that signifies it should be ignored from ASG deletion value does not matter, can be used for reason, as long as not empty if set, the node wil not be deleted.
# Structs
AWSNodeGroupOptions represents a nodegroup running on a cluster that is using the AWS cloud provider.
Client provides a wrapper around a k8s client that includes anything needed by the controller for listing nodegroup pods and nodes based on a filter.
Controller contains the core logic of the Autoscaler.
NodeGroupLister is just a light wrapper around a pod lister and node lister Used for grouping a nodegroup and their listers.
NodeGroupOptions represents a nodegroup running on our cluster We differentiate nodegroups by their node label.
NodeGroupState contains everything about a node group in the current state of the application.
Opts provide the Controller with config for runtime.