Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the autoscaling v1alpha1 API group +kubebuilder:object:generate=true +groupName=autoscaling.k8s.io
Index ¶
- Constants
- Variables
- type BlockedScaling
- type BlockingReason
- type ChangeParams
- type HpaSpec
- type HpaStatus
- type HpaTemplate
- type HpaTemplateSpec
- type Hvpa
- type HvpaList
- type HvpaSpec
- type HvpaStatus
- type LastError
- type MaintenanceTimeWindow
- type ScaleParams
- type ScaleType
- type ScalingStatus
- type UpdatePolicy
- type VpaSpec
- type VpaTemplate
- type VpaTemplateSpec
- type WeightBasedScalingInterval
Constants ¶
const ( // UpdateModeOff means that autoscaler never changes resources. UpdateModeOff string = "Off" // UpdateModeAuto means that autoscaler can update resources during the lifetime of the resource. UpdateModeAuto string = "Auto" // UpdateModeMaintenanceWindow means that HPA/VPA will only act during maintenance window. UpdateModeMaintenanceWindow string = "MaintenanceWindow" // UpdateModeDefault is the default update mode UpdateModeDefault = UpdateModeAuto )
const ( // VpaOnly - only vertical scaling VpaOnly int32 = 100 // HpaOnly - only horizontal scaling HpaOnly int32 = 0 )
Variables ¶
var ( // GroupName is the group name use in this package GroupName = "autoscaling.k8s.io" // SchemeGroupVersionVpa is group version used to register these objects SchemeGroupVersionVpa = schema.GroupVersion{Group: GroupName, Version: "v1"} // SchemeGroupVersionHvpa is group version used to register these objects SchemeGroupVersionHvpa = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
var BlockingReasons = [...]BlockingReason{ BlockingReasonMaintenanceWindow, BlockingReasonMinChange, BlockingReasonStabilizationWindow, BlockingReasonUpdatePolicy, BlockingReasonWeight, }
BlockingReasons lists all the blocking reasons
Functions ¶
This section is empty.
Types ¶
type BlockedScaling ¶
type BlockedScaling struct { Reason BlockingReason `json:"reason,omitempty"` ScalingStatus `json:"scalingStatus,omitempty"` }
BlockedScaling defines the details for blocked scaling
func (*BlockedScaling) DeepCopy ¶
func (in *BlockedScaling) DeepCopy() *BlockedScaling
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockedScaling.
func (*BlockedScaling) DeepCopyInto ¶
func (in *BlockedScaling) DeepCopyInto(out *BlockedScaling)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BlockingReason ¶
type BlockingReason string
BlockingReason defines the reason for blocking.
const ( // BlockingReasonStabilizationWindow - HVPA is in stabilization window BlockingReasonStabilizationWindow BlockingReason = "StabilizationWindow" // BlockingReasonMaintenanceWindow - Resource is in maintenance window BlockingReasonMaintenanceWindow BlockingReason = "MaintenanceWindow" // BlockingReasonUpdatePolicy - Update policy doesn't support scaling BlockingReasonUpdatePolicy BlockingReason = "UpdatePolicy" // BlockingReasonWeight - VpaWeight doesn't support scaling BlockingReasonWeight BlockingReason = "Weight" // BlockingReasonMinChange - Min change doesn't support scaling BlockingReasonMinChange BlockingReason = "MinChange" )
type ChangeParams ¶
type ChangeParams struct { // Value is the absolute value of the scaling // +optional Value *string `json:"value,omitempty"` // Percentage is the percentage of currently allocated value to be used for scaling // +optional Percentage *int32 `json:"percentage,omitempty"` }
ChangeParams defines the parameters for scaling
func (*ChangeParams) DeepCopy ¶
func (in *ChangeParams) DeepCopy() *ChangeParams
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChangeParams.
func (*ChangeParams) DeepCopyInto ¶
func (in *ChangeParams) DeepCopyInto(out *ChangeParams)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HpaSpec ¶
type HpaSpec struct { // Selector is a label query that should match HPA. // Must match in order to be controlled. // If empty, defaulted to labels on HPA template. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors // +optional Selector *metav1.LabelSelector `json:"selector,omitempty"` // Deploy defines whether the HPA is deployed or not Deploy bool `json:"deploy,omitempty"` // ScaleUp defines the parameters for scale up ScaleUp ScaleType `json:"scaleUp,omitempty"` // ScaleDown defines the parameters for scale down ScaleDown ScaleType `json:"scaleDown,omitempty"` // Template is the object that describes the HPA that will be created. // +optional Template HpaTemplate `json:"template,omitempty"` }
HpaSpec defines spec for HPA
func (*HpaSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HpaSpec.
func (*HpaSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HpaStatus ¶
type HpaStatus struct { CurrentReplicas int32 `json:"currentReplicas,omitempty"` DesiredReplicas int32 `json:"desiredReplicas,omitempty"` }
HpaStatus defines the status of HPA
func (*HpaStatus) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HpaStatus.
func (*HpaStatus) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HpaTemplate ¶
type HpaTemplate struct { // Metadata of the pods created from this template. // +kubebuilder:validation:XPreserveUnknownFields // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // Spec defines the behavior of a HPA. // +optional Spec HpaTemplateSpec `json:"spec,omitempty"` }
HpaTemplate defines the template for HPA
func (*HpaTemplate) DeepCopy ¶
func (in *HpaTemplate) DeepCopy() *HpaTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HpaTemplate.
func (*HpaTemplate) DeepCopyInto ¶
func (in *HpaTemplate) DeepCopyInto(out *HpaTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HpaTemplateSpec ¶
type HpaTemplateSpec struct { // minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. // It defaults to 1 pod. // +optional MinReplicas *int32 `json:"minReplicas,omitempty" protobuf:"varint,1,opt,name=minReplicas"` // maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. // It cannot be less that minReplicas. MaxReplicas int32 `json:"maxReplicas" protobuf:"varint,2,opt,name=maxReplicas"` // metrics contains the specifications for which to use to calculate the // desired replica count (the maximum replica count across all metrics will // be used). The desired replica count is calculated multiplying the // ratio between the target value and the current value by the current // number of pods. Ergo, metrics used must decrease as the pod count is // increased, and vice-versa. See the individual metric source types for // more information about how each type of metric must respond. // If not set, the default metric will be set to 80% average CPU utilization. // +optional Metrics []autoscaling.MetricSpec `json:"metrics,omitempty" protobuf:"bytes,3,rep,name=metrics"` }
HpaTemplateSpec defines the spec for HPA
func (*HpaTemplateSpec) DeepCopy ¶
func (in *HpaTemplateSpec) DeepCopy() *HpaTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HpaTemplateSpec.
func (*HpaTemplateSpec) DeepCopyInto ¶
func (in *HpaTemplateSpec) DeepCopyInto(out *HpaTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Hvpa ¶
type Hvpa struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec HvpaSpec `json:"spec,omitempty"` Status HvpaStatus `json:"status,omitempty"` }
Hvpa is the Schema for the hvpas API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.targetSelector
func (*Hvpa) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Hvpa.
func (*Hvpa) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Hvpa) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type HvpaList ¶
type HvpaList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Hvpa `json:"items"` }
HvpaList contains a list of Hvpa +kubebuilder:object:root=true
func (*HvpaList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HvpaList.
func (*HvpaList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*HvpaList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type HvpaSpec ¶
type HvpaSpec struct { // Replicas is the number of replicas of target resource Replicas *int32 `json:"replicas,omitempty"` // Hpa defines the spec of HPA Hpa HpaSpec `json:"hpa,omitempty"` // Vpa defines the spec of VPA Vpa VpaSpec `json:"vpa,omitempty"` // WeightBasedScalingIntervals defines the intervals of replica counts, and the weights for scaling a deployment vertically // If there are overlapping intervals, then the vpaWeight will be taken from the first matching interval WeightBasedScalingIntervals []WeightBasedScalingInterval `json:"weightBasedScalingIntervals,omitempty"` // TargetRef points to the controller managing the set of pods for the autoscaler to control TargetRef *autoscaling.CrossVersionObjectReference `json:"targetRef"` // MaintenanceTimeWindow contains information about the time window for maintenance operations. // +optional MaintenanceTimeWindow *MaintenanceTimeWindow `json:"maintenanceTimeWindow,omitempty"` }
HvpaSpec defines the desired state of Hvpa
func (*HvpaSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HvpaSpec.
func (*HvpaSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HvpaStatus ¶
type HvpaStatus struct { // Replicas is the number of replicas of the target resource. Replicas *int32 `json:"replicas,omitempty"` // TargetSelector is the string form of the label selector of HPA. This is required for HPA to work with scale subresource. TargetSelector *string `json:"targetSelector,omitempty"` // Current HPA UpdatePolicy set in the spec HpaScaleUpUpdatePolicy *UpdatePolicy `json:"hpaScaleUpUpdatePolicy,omitempty"` // Current HPA UpdatePolicy set in the spec HpaScaleDownUpdatePolicy *UpdatePolicy `json:"hpaScaleDownUpdatePolicy,omitempty"` // Current VPA UpdatePolicy set in the spec VpaScaleUpUpdatePolicy *UpdatePolicy `json:"vpaScaleUpUpdatePolicy,omitempty"` // Current VPA UpdatePolicy set in the spec VpaScaleDownUpdatePolicy *UpdatePolicy `json:"vpaScaleDownUpdatePolicy,omitempty"` HpaWeight int32 `json:"hpaWeight,omitempty"` VpaWeight int32 `json:"vpaWeight,omitempty"` // Override scale up stabilization window OverrideScaleUpStabilization bool `json:"overrideScaleUpStabilization,omitempty"` LastBlockedScaling []*BlockedScaling `json:"lastBlockedScaling,omitempty"` LastScaling ScalingStatus `json:"lastScaling,omitempty"` // LastError has details of any errors that occurred LastError *LastError `json:"lastError,omitempty"` }
HvpaStatus defines the observed state of Hvpa
func (*HvpaStatus) DeepCopy ¶
func (in *HvpaStatus) DeepCopy() *HvpaStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HvpaStatus.
func (*HvpaStatus) DeepCopyInto ¶
func (in *HvpaStatus) DeepCopyInto(out *HvpaStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LastError ¶
type LastError struct { // Description of the error Description string `json:"description,omitempty"` // Time at which the error occurred LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"` // LastOperation is the type of operation for which error occurred LastOperation string `json:"lastOperation,omitempty"` }
LastError has detailed information of the error
func (*LastError) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LastError.
func (*LastError) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MaintenanceTimeWindow ¶
type MaintenanceTimeWindow struct { // Begin is the beginning of the time window in the format HHMMSS+ZONE, e.g. "220000+0100". Begin string `json:"begin"` // End is the end of the time window in the format HHMMSS+ZONE, e.g. "220000+0100". End string `json:"end"` }
MaintenanceTimeWindow contains information about the time window for maintenance operations.
func (*MaintenanceTimeWindow) DeepCopy ¶
func (in *MaintenanceTimeWindow) DeepCopy() *MaintenanceTimeWindow
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaintenanceTimeWindow.
func (*MaintenanceTimeWindow) DeepCopyInto ¶
func (in *MaintenanceTimeWindow) DeepCopyInto(out *MaintenanceTimeWindow)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScaleParams ¶
type ScaleParams struct { // Scale parameters for CPU CPU ChangeParams `json:"cpu,omitempty"` // Scale parameters for memory Memory ChangeParams `json:"memory,omitempty"` // Scale patameters for replicas Replicas ChangeParams `json:"replicas,omitempty"` }
ScaleParams defines the scaling parameters for the limits
func (*ScaleParams) DeepCopy ¶
func (in *ScaleParams) DeepCopy() *ScaleParams
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleParams.
func (*ScaleParams) DeepCopyInto ¶
func (in *ScaleParams) DeepCopyInto(out *ScaleParams)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScaleType ¶
type ScaleType struct { // Describes the rules on when changes are applied. // If not specified, all fields in the `UpdatePolicy` are set to their // default values. // +optional UpdatePolicy UpdatePolicy `json:"updatePolicy,omitempty"` // MinChange is the minimum change in the resource on which HVPA acts // HVPA uses minimum of the Value and Percentage value MinChange ScaleParams `json:"minChange,omitempty"` // StabilizationDuration defines the minimum delay in minutes between 2 consecutive scale operations // Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h" StabilizationDuration *string `json:"stabilizationDuration,omitempty"` }
ScaleType defines parameters for scaling
func (*ScaleType) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleType.
func (*ScaleType) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalingStatus ¶
type ScalingStatus struct { LastScaleTime *metav1.Time `json:"lastScaleTime,omitempty"` HpaStatus HpaStatus `json:"hpaStatus,omitempty" protobuf:"bytes,1,opt,name=hpaStatus"` VpaStatus vpa_api.VerticalPodAutoscalerStatus `json:"vpaStatus,omitempty" protobuf:"bytes,2,opt,name=vpaStatus"` }
ScalingStatus defines the status of scaling
func (*ScalingStatus) DeepCopy ¶
func (in *ScalingStatus) DeepCopy() *ScalingStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalingStatus.
func (*ScalingStatus) DeepCopyInto ¶
func (in *ScalingStatus) DeepCopyInto(out *ScalingStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UpdatePolicy ¶
type UpdatePolicy struct { // Controls when autoscaler applies changes to the resources. // The default is 'Auto'. // +optional UpdateMode *string `json:"updateMode,omitempty" protobuf:"bytes,1,opt,name=updateMode"` }
UpdatePolicy describes the rules on how changes are applied.
func (*UpdatePolicy) DeepCopy ¶
func (in *UpdatePolicy) DeepCopy() *UpdatePolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpdatePolicy.
func (*UpdatePolicy) DeepCopyInto ¶
func (in *UpdatePolicy) DeepCopyInto(out *UpdatePolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VpaSpec ¶
type VpaSpec struct { // Selector is a label query that should match VPA. // Must match in order to be controlled. // If empty, defaulted to labels on VPA template. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors // +optional Selector *metav1.LabelSelector `json:"selector,omitempty"` // Deploy defines whether the VPA is deployed or not Deploy bool `json:"deploy,omitempty"` // ScaleUp defines the parameters for scale up ScaleUp ScaleType `json:"scaleUp,omitempty"` // ScaleDown defines the parameters for scale down ScaleDown ScaleType `json:"scaleDown,omitempty"` // Template is the object that describes the VPA that will be created. // +optional Template VpaTemplate `json:"template,omitempty"` // LimitsRequestsGapScaleParams is the scaling thresholds for limits LimitsRequestsGapScaleParams ScaleParams `json:"limitsRequestsGapScaleParams,omitempty"` }
VpaSpec defines spec for VPA
func (*VpaSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VpaSpec.
func (*VpaSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VpaTemplate ¶
type VpaTemplate struct { // Metadata of the pods created from this template. // +kubebuilder:validation:XPreserveUnknownFields // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // Spec defines the behavior of a VPA. // +optional Spec VpaTemplateSpec `json:"spec,omitempty"` }
VpaTemplate defines the template for VPA
func (*VpaTemplate) DeepCopy ¶
func (in *VpaTemplate) DeepCopy() *VpaTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VpaTemplate.
func (*VpaTemplate) DeepCopyInto ¶
func (in *VpaTemplate) DeepCopyInto(out *VpaTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VpaTemplateSpec ¶
type VpaTemplateSpec struct { // Controls how the autoscaler computes recommended resources. // The resource policy may be used to set constraints on the recommendations // for individual containers. If not specified, the autoscaler computes recommended // resources for all containers in the pod, without additional constraints. // +optional ResourcePolicy *vpa_api.PodResourcePolicy `json:"resourcePolicy,omitempty" protobuf:"bytes,2,opt,name=resourcePolicy"` }
VpaTemplateSpec defines the spec for VPA
func (*VpaTemplateSpec) DeepCopy ¶
func (in *VpaTemplateSpec) DeepCopy() *VpaTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VpaTemplateSpec.
func (*VpaTemplateSpec) DeepCopyInto ¶
func (in *VpaTemplateSpec) DeepCopyInto(out *VpaTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WeightBasedScalingInterval ¶
type WeightBasedScalingInterval struct { // VpaWeight defines the weight (in percentage) to be given to VPA's recommendationd for the interval of number of replicas provided // +kubebuilder:validation:Minimum=0 // +kubebuilder:validation:Maximum=100 VpaWeight int32 `json:"vpaWeight,omitempty"` // StartReplicaCount is the number of replicas from which VpaWeight is applied to VPA scaling // If this field is not provided, it will default to minReplicas of HPA // +optional StartReplicaCount int32 `json:"startReplicaCount,omitempty"` // LastReplicaCount is the number of replicas till which VpaWeight is applied to VPA scaling // If this field is not provided, it will default to maxReplicas of HPA // +optional LastReplicaCount int32 `json:"lastReplicaCount,omitempty"` }
WeightBasedScalingInterval defines the interval of replica counts in which VpaWeight is applied to VPA scaling
func (*WeightBasedScalingInterval) DeepCopy ¶
func (in *WeightBasedScalingInterval) DeepCopy() *WeightBasedScalingInterval
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WeightBasedScalingInterval.
func (*WeightBasedScalingInterval) DeepCopyInto ¶
func (in *WeightBasedScalingInterval) DeepCopyInto(out *WeightBasedScalingInterval)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.