Documentation
¶
Index ¶
Constants ¶
View Source
const (
DefaultResyncInterval = 30 * time.Second
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AutoScalerOptions ¶
type DLXOptions ¶
type DLXOptions struct {
Namespace string
// comma delimited
TargetNameHeader string
TargetPathHeader string
TargetPort int
ListenAddress string
ResourceReadinessTimeout Duration
MultiTargetStrategy MultiTargetStrategy
LabelSelector string
ResolveTargetsFromIngressCallback ResolveTargetsFromIngressCallback `json:"-"`
ResyncInterval Duration
KubeClientSet kubernetes.Interface `json:"-"`
}
type MultiTargetStrategy ¶ added in v0.5.1
type MultiTargetStrategy string
const ( MultiTargetStrategyRandom MultiTargetStrategy = "random" MultiTargetStrategyPrimary MultiTargetStrategy = "primary" MultiTargetStrategyCanary MultiTargetStrategy = "canary" )
type ResolveTargetsFromIngressCallback ¶ added in v0.10.0
type ResolveTargetsFromIngressCallback func(ingress *networkingv1.Ingress) ([]string, error)
ResolveTargetsFromIngressCallback defines a function that extracts a list of target identifiers (e.g., names of services the Ingress routes traffic to) from a Kubernetes Ingress resource.
This function is expected to be implemented externally and passed into the IngressWatcher, allowing for custom logic such as parsing annotations, labels, or other ingress metadata.
Parameters:
- ingress: The Kubernetes Ingress resource to extract targets from
Returns:
- []string: A slice of target identifiers (e.g., service names, endpoint addresses)
- error: An error if target resolution fails
Implementation guidelines: - Return a non-nil slice when targets are successfully resolved - Return a non-nil error if resolution fails - Should handle nil or malformed Ingress objects gracefully and return an error in such cases
type Resource ¶
type Resource struct {
Name string `json:"name,omitempty"`
Namespace string `json:"namespace,omitempty"`
ScaleResources []ScaleResource `json:"scale_resources,omitempty"`
LastScaleEvent *ScaleEvent `json:"last_scale_event,omitempty"`
LastScaleEventTime *time.Time `json:"last_scale_event_time,omitempty"`
}
type ResourceScaler ¶
type ResourceScalerConfig ¶
type ResourceScalerConfig struct {
KubeconfigPath string
AutoScalerOptions AutoScalerOptions
DLXOptions DLXOptions
}
type ScaleEvent ¶
type ScaleEvent string
const ( ResourceUpdatedScaleEvent ScaleEvent = "resourceUpdated" ScaleFromZeroStartedScaleEvent ScaleEvent = "scaleFromZeroStarted" ScaleFromZeroCompletedScaleEvent ScaleEvent = "scaleFromZeroCompleted" ScaleToZeroStartedScaleEvent ScaleEvent = "scaleToZeroStarted" ScaleToZeroCompletedScaleEvent ScaleEvent = "scaleToZeroCompleted" )
func ParseScaleEvent ¶
func ParseScaleEvent(scaleEventStr string) (ScaleEvent, error)
type ScaleResource ¶
type ScaleResource struct {
MetricName string `json:"metric_name,omitempty"`
WindowSize Duration `json:"windows_size,omitempty"`
Threshold int `json:"threshold,omitempty"`
}
func (ScaleResource) GetKubernetesMetricName ¶
func (sr ScaleResource) GetKubernetesMetricName() string
func (ScaleResource) String ¶
func (sr ScaleResource) String() string
Click to show internal directories.
Click to hide internal directories.