Documentation ¶
Index ¶
- Constants
- Variables
- func NewCombinedProvReqProcessor(kubeConfig *rest.Config, processors []ProvisioningRequestProcessor) (loopstart.Observer, error)
- func NewDefautlEventManager() *defaultEventManager
- func NewProvisioningRequestPodsFilter(e EventManager) pods.PodListProcessor
- func NewProvisioningRequestPodsInjector(kubeConfig *rest.Config) (pods.PodListProcessor, error)
- type CombinedProvReqProcessor
- type EventManager
- type ProvisioningRequestPodsFilter
- type ProvisioningRequestPodsInjector
- type ProvisioningRequestProcessor
Constants ¶
const (
// ProvisioningRequestPodAnnotationKey is an annotation on pod that indicate that pod was created by ProvisioningRequest.
ProvisioningRequestPodAnnotationKey = "cluster-autoscaler.kubernetes.io/consume-provisioning-request"
)
Variables ¶
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.