Documentation ¶
Overview ¶
Package kpa implements a kubernetes controller which tracks revisions and notifies a callback interface.
Index ¶
Constants ¶
View Source
const ScaleUnknown = -1
Variables ¶
This section is empty.
Functions ¶
func NewController ¶
func NewController( opts *reconciler.Options, paInformer informers.PodAutoscalerInformer, endpointsInformer corev1informers.EndpointsInformer, kpaMetrics KPAMetrics, kpaScaler KPAScaler, dynConfig *autoscaler.DynamicConfig, ) *controller.Impl
NewController creates an autoscaling Controller.
Types ¶
type KPAMetrics ¶
type KPAMetrics interface { // Get accesses the Metric resource for this key, returning any errors. Get(ctx context.Context, namespace, name string) (*autoscaler.Metric, error) // Create adds a Metric resource for a given key, returning any errors. Create(ctx context.Context, metric *autoscaler.Metric) (*autoscaler.Metric, error) // Delete removes the Metric resource for a given key, returning any errors. Delete(ctx context.Context, namespace, name string) error // Watch registers a function to call when Metrics change. Watch(watcher func(string)) // Update update the Metric resource, return the new Metric or any errors. Update(ctx context.Context, metric *autoscaler.Metric) (*autoscaler.Metric, error) }
KPAMetrics is an interface for notifying the presence or absence of KPAs.
type KPAScaler ¶
type KPAScaler interface { // Scale attempts to scale the given PA's target to the desired scale. Scale(ctx context.Context, pa *pav1alpha1.PodAutoscaler, desiredScale int32) (int32, error) }
KPAScaler knows how to scale the targets of kpa-class PodAutoscalers.
func NewKPAScaler ¶
func NewKPAScaler(servingClientSet clientset.Interface, scaleClientSet scale.ScalesGetter, logger *zap.SugaredLogger, configMapWatcher configmap.Watcher) KPAScaler
NewKPAScaler creates a kpaScaler.
type Reconciler ¶
type Reconciler struct { *reconciler.Base // contains filtered or unexported fields }
Reconciler tracks PAs and right sizes the ScaleTargetRef based on the information from KPAMetrics.
Click to show internal directories.
Click to hide internal directories.