102 lines
5.5 KiB
Go
102 lines
5.5 KiB
Go
/*
|
|
Copyright The Kubernetes Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
|
|
package v2beta2
|
|
|
|
// HorizontalPodAutoscalerSpecApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscalerSpec type for use
|
|
// with apply.
|
|
//
|
|
// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.
|
|
type HorizontalPodAutoscalerSpecApplyConfiguration struct {
|
|
// scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics
|
|
// should be collected, as well as to actually change the replica count.
|
|
ScaleTargetRef *CrossVersionObjectReferenceApplyConfiguration `json:"scaleTargetRef,omitempty"`
|
|
// minReplicas is the lower limit for the number of replicas to which the autoscaler
|
|
// can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the
|
|
// alpha feature gate HPAScaleToZero is enabled and at least one Object or External
|
|
// metric is configured. Scaling is active as long as at least one metric value is
|
|
// available.
|
|
MinReplicas *int32 `json:"minReplicas,omitempty"`
|
|
// 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,omitempty"`
|
|
// 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.
|
|
Metrics []MetricSpecApplyConfiguration `json:"metrics,omitempty"`
|
|
// behavior configures the scaling behavior of the target
|
|
// in both Up and Down directions (scaleUp and scaleDown fields respectively).
|
|
// If not set, the default HPAScalingRules for scale up and scale down are used.
|
|
Behavior *HorizontalPodAutoscalerBehaviorApplyConfiguration `json:"behavior,omitempty"`
|
|
}
|
|
|
|
// HorizontalPodAutoscalerSpecApplyConfiguration constructs a declarative configuration of the HorizontalPodAutoscalerSpec type for use with
|
|
// apply.
|
|
func HorizontalPodAutoscalerSpec() *HorizontalPodAutoscalerSpecApplyConfiguration {
|
|
return &HorizontalPodAutoscalerSpecApplyConfiguration{}
|
|
}
|
|
|
|
// WithScaleTargetRef sets the ScaleTargetRef field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the ScaleTargetRef field is set to the value of the last call.
|
|
func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithScaleTargetRef(value *CrossVersionObjectReferenceApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {
|
|
b.ScaleTargetRef = value
|
|
return b
|
|
}
|
|
|
|
// WithMinReplicas sets the MinReplicas field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the MinReplicas field is set to the value of the last call.
|
|
func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMinReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {
|
|
b.MinReplicas = &value
|
|
return b
|
|
}
|
|
|
|
// WithMaxReplicas sets the MaxReplicas field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the MaxReplicas field is set to the value of the last call.
|
|
func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMaxReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {
|
|
b.MaxReplicas = &value
|
|
return b
|
|
}
|
|
|
|
// WithMetrics adds the given value to the Metrics field in the declarative configuration
|
|
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
// If called multiple times, values provided by each call will be appended to the Metrics field.
|
|
func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMetrics(values ...*MetricSpecApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {
|
|
for i := range values {
|
|
if values[i] == nil {
|
|
panic("nil value passed to WithMetrics")
|
|
}
|
|
b.Metrics = append(b.Metrics, *values[i])
|
|
}
|
|
return b
|
|
}
|
|
|
|
// WithBehavior sets the Behavior field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the Behavior field is set to the value of the last call.
|
|
func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithBehavior(value *HorizontalPodAutoscalerBehaviorApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {
|
|
b.Behavior = value
|
|
return b
|
|
}
|