kpa

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Jan 8, 2019 License: Apache-2.0 Imports: 29 Imported by: 0

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.

func (*Reconciler) Reconcile

func (c *Reconciler) Reconcile(ctx context.Context, key string) error

Reconcile right sizes PA ScaleTargetRefs based on the state of metrics in KPAMetrics.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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