provreq

package
v0.0.0-...-3fd892a Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2024 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ProvisioningRequestPodAnnotationKey is an annotation on pod that indicate that pod was created by ProvisioningRequest.
	ProvisioningRequestPodAnnotationKey = "cluster-autoscaler.kubernetes.io/consume-provisioning-request"
)

Variables

View Source
var SupportedProvisioningClasses = []string{v1beta1.ProvisioningClassCheckCapacity}

SupportedProvisioningClasses is a list of supported ProvisioningClasses in ClusterAutoscaler.

Functions

func NewCombinedProvReqProcessor

func NewCombinedProvReqProcessor(kubeConfig *rest.Config, processors []ProvisioningRequestProcessor) (loopstart.Observer, error)

NewCombinedProvReqProcessor return new CombinedProvReqProcessor.

func NewDefautlEventManager

func NewDefautlEventManager() *defaultEventManager

NewDefautlEventManager return basic event manager.

func NewProvisioningRequestPodsFilter

func NewProvisioningRequestPodsFilter(e EventManager) pods.PodListProcessor

NewProvisioningRequestPodsFilter creates a ProvisioningRequest filter processor.

func NewProvisioningRequestPodsInjector

func NewProvisioningRequestPodsInjector(kubeConfig *rest.Config) (pods.PodListProcessor, error)

NewProvisioningRequestPodsInjector creates a ProvisioningRequest filter processor.

Types

type CombinedProvReqProcessor

type CombinedProvReqProcessor struct {
	// contains filtered or unexported fields
}

CombinedProvReqProcessor is responsible for processing ProvisioningRequest for each ProvisioningClass every CA loop and updating conditions for expired ProvisioningRequests.

func (*CombinedProvReqProcessor) CleanUp

func (cp *CombinedProvReqProcessor) CleanUp()

CleanUp cleans up internal state

func (*CombinedProvReqProcessor) Refresh

func (cp *CombinedProvReqProcessor) Refresh()

Refresh iterates over ProvisioningRequests and updates its conditions/state.

type EventManager

type EventManager interface {
	LogIgnoredInScaleUpEvent(context *context.AutoscalingContext, now time.Time, pod *apiv1.Pod, prName string)
	Reset()
}

EventManager is an interface for handling events for provisioning request.

type ProvisioningRequestPodsFilter

type ProvisioningRequestPodsFilter struct {
	// contains filtered or unexported fields
}

ProvisioningRequestPodsFilter filter out pods that consumes Provisioning Request

func (*ProvisioningRequestPodsFilter) CleanUp

func (p *ProvisioningRequestPodsFilter) CleanUp()

CleanUp cleans up the processor's internal structures.

func (*ProvisioningRequestPodsFilter) Process

func (p *ProvisioningRequestPodsFilter) Process(
	context *context.AutoscalingContext,
	unschedulablePods []*apiv1.Pod,
) ([]*apiv1.Pod, error)

Process filters out all pods that are consuming a Provisioning Request from unschedulable pods list.

type ProvisioningRequestPodsInjector

type ProvisioningRequestPodsInjector struct {
	// contains filtered or unexported fields
}

ProvisioningRequestPodsInjector creates in-memory pods from ProvisioningRequest and inject them to unscheduled pods list.

func (*ProvisioningRequestPodsInjector) CleanUp

func (p *ProvisioningRequestPodsInjector) CleanUp()

CleanUp cleans up the processor's internal structures.

func (*ProvisioningRequestPodsInjector) Process

func (p *ProvisioningRequestPodsInjector) Process(
	_ *context.AutoscalingContext,
	unschedulablePods []*apiv1.Pod,
) ([]*apiv1.Pod, error)

Process pick one ProvisioningRequest, update Accepted condition and inject pods to unscheduled pods list.

type ProvisioningRequestProcessor

type ProvisioningRequestProcessor interface {
	Process([]*provreqwrapper.ProvisioningRequest)
	CleanUp()
}

ProvisioningRequestProcessor process ProvisioningRequests in the cluster.

Jump to

Keyboard shortcuts

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