Documentation ¶
Index ¶
- Constants
- type AgingPolicyIterator
- type BreachAnalyzer
- type CpuUtilizationBasedRecommender
- type DefaultPolicyIterator
- type Policy
- type PolicyIterator
- type RecoWorkflowBuilder
- func (b *RecoWorkflowBuilder) Build() (RecommendationWorkflow, error)
- func (b *RecoWorkflowBuilder) WithK8sClient(k8sClient client.Client) *RecoWorkflowBuilder
- func (b *RecoWorkflowBuilder) WithLogger(log logr.Logger) *RecoWorkflowBuilder
- func (b *RecoWorkflowBuilder) WithMinRequiredReplicas(minRequiredReplicas int) *RecoWorkflowBuilder
- func (b *RecoWorkflowBuilder) WithPolicyIterator(p PolicyIterator) *RecoWorkflowBuilder
- func (b *RecoWorkflowBuilder) WithPolicyStore(policyStore policy.Store) *RecoWorkflowBuilder
- func (b *RecoWorkflowBuilder) WithRecommender(r Recommender) *RecoWorkflowBuilder
- type RecommendationWorkflow
- type RecommendationWorkflowImpl
- type Recommender
- type TimerEvent
- type WorkloadMeta
Constants ¶
View Source
const ( ScaledObjectField = "spec.scaleTargetRef.name" OttoscalrMaxPodAnnotation = "ottoscalr.io/max-pods" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AgingPolicyIterator ¶
func NewAgingPolicyIterator ¶
func NewAgingPolicyIterator(k8sClient client.Client, age time.Duration) *AgingPolicyIterator
func (*AgingPolicyIterator) GetName ¶
func (pi *AgingPolicyIterator) GetName() string
func (*AgingPolicyIterator) NextPolicy ¶
func (pi *AgingPolicyIterator) NextPolicy(ctx context.Context, wm WorkloadMeta) (*Policy, error)
type BreachAnalyzer ¶
type BreachAnalyzer struct {
// contains filtered or unexported fields
}
func NewBreachAnalyzer ¶
func (*BreachAnalyzer) GetName ¶
func (pi *BreachAnalyzer) GetName() string
func (*BreachAnalyzer) NextPolicy ¶
func (pi *BreachAnalyzer) NextPolicy(ctx context.Context, wm WorkloadMeta) (*Policy, error)
type CpuUtilizationBasedRecommender ¶
type CpuUtilizationBasedRecommender struct {
// contains filtered or unexported fields
}
func NewCpuUtilizationBasedRecommender ¶
func NewCpuUtilizationBasedRecommender(k8sClient client.Client, redLineUtil float64, metricWindow time.Duration, scraper metrics.Scraper, metricsTransformer []metrics.MetricsTransformer, metricStep time.Duration, minTarget int, maxTarget int, metricsPercentageThreshold int, clientsRegistry registry.DeploymentClientRegistry, autoscalerClient autoscaler.AutoscalerClient, logger logr.Logger) *CpuUtilizationBasedRecommender
func (*CpuUtilizationBasedRecommender) Recommend ¶
func (c *CpuUtilizationBasedRecommender) Recommend(ctx context.Context, workloadMeta WorkloadMeta) (*v1alpha1.HPAConfiguration, error)
type DefaultPolicyIterator ¶
type DefaultPolicyIterator struct {
// contains filtered or unexported fields
}
func NewDefaultPolicyIterator ¶
func NewDefaultPolicyIterator(k8sClient client.Client) *DefaultPolicyIterator
func (*DefaultPolicyIterator) GetName ¶
func (pi *DefaultPolicyIterator) GetName() string
func (*DefaultPolicyIterator) NextPolicy ¶
func (pi *DefaultPolicyIterator) NextPolicy(ctx context.Context, wm WorkloadMeta) (*Policy, error)
type Policy ¶
type Policy struct { Name string `json:"name"` RiskIndex int `json:"riskIndex"` MinReplicaPercentageCut int `json:"minReplicaPercentageCut"` TargetUtilization int `json:"targetUtilization"` }
func PolicyFromCR ¶
type PolicyIterator ¶
type RecoWorkflowBuilder ¶
type RecoWorkflowBuilder RecommendationWorkflowImpl
func NewRecommendationWorkflowBuilder ¶
func NewRecommendationWorkflowBuilder() *RecoWorkflowBuilder
func (*RecoWorkflowBuilder) Build ¶
func (b *RecoWorkflowBuilder) Build() (RecommendationWorkflow, error)
func (*RecoWorkflowBuilder) WithK8sClient ¶
func (b *RecoWorkflowBuilder) WithK8sClient(k8sClient client.Client) *RecoWorkflowBuilder
func (*RecoWorkflowBuilder) WithLogger ¶
func (b *RecoWorkflowBuilder) WithLogger(log logr.Logger) *RecoWorkflowBuilder
func (*RecoWorkflowBuilder) WithMinRequiredReplicas ¶
func (b *RecoWorkflowBuilder) WithMinRequiredReplicas(minRequiredReplicas int) *RecoWorkflowBuilder
func (*RecoWorkflowBuilder) WithPolicyIterator ¶
func (b *RecoWorkflowBuilder) WithPolicyIterator(p PolicyIterator) *RecoWorkflowBuilder
func (*RecoWorkflowBuilder) WithPolicyStore ¶
func (b *RecoWorkflowBuilder) WithPolicyStore(policyStore policy.Store) *RecoWorkflowBuilder
func (*RecoWorkflowBuilder) WithRecommender ¶
func (b *RecoWorkflowBuilder) WithRecommender(r Recommender) *RecoWorkflowBuilder
type RecommendationWorkflow ¶
type RecommendationWorkflow interface {
Execute(ctx context.Context, wm WorkloadMeta) (*v1alpha1.HPAConfiguration, *v1alpha1.HPAConfiguration, *Policy, error)
}
type RecommendationWorkflowImpl ¶
type RecommendationWorkflowImpl struct {
// contains filtered or unexported fields
}
func (*RecommendationWorkflowImpl) Execute ¶
func (rw *RecommendationWorkflowImpl) Execute(ctx context.Context, wm WorkloadMeta) (*v1alpha1.HPAConfiguration, *v1alpha1.HPAConfiguration, *Policy, error)
type Recommender ¶
type Recommender interface {
Recommend(ctx context.Context, wm WorkloadMeta) (*v1alpha1.HPAConfiguration, error)
}
type TimerEvent ¶
Click to show internal directories.
Click to hide internal directories.