Documentation ¶
Index ¶
- Constants
- Variables
- type ContainerResourceMetricSource
- type ContainerResourceMetricStatus
- type CrossVersionObjectReference
- type ExternalMetricSource
- type ExternalMetricStatus
- type HPAScalingPolicy
- type HPAScalingPolicyType
- type HPAScalingRules
- type HorizontalPodAutoscaler
- type HorizontalPodAutoscalerBehavior
- type HorizontalPodAutoscalerCondition
- type HorizontalPodAutoscalerConditionType
- type HorizontalPodAutoscalerList
- type HorizontalPodAutoscalerSpec
- type HorizontalPodAutoscalerStatus
- type MetricIdentifier
- type MetricSourceType
- type MetricSpec
- type MetricStatus
- type MetricTarget
- type MetricTargetType
- type MetricValueStatus
- type ObjectMetricSource
- type ObjectMetricStatus
- type PodsMetricSource
- type PodsMetricStatus
- type ResourceMetricSource
- type ResourceMetricStatus
- type ScalingPolicySelect
Constants ¶
View Source
const GroupName = "autoscaling"
Variables ¶
View Source
var ( GroupVersion = metav1.GroupVersion{Group: GroupName, Version: "v2"} SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme SchemaGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v2"} )
Functions ¶
This section is empty.
Types ¶
type ContainerResourceMetricSource ¶
type ContainerResourceMetricSource struct { // name is the name of the resource in question. Name corev1.ResourceName `json:"name"` // target specifies the target value for the given metric Target MetricTarget `json:"target"` // container is the name of the container in the pods of the scaling target Container string `json:"container"` }
func (*ContainerResourceMetricSource) DeepCopy ¶
func (in *ContainerResourceMetricSource) DeepCopy() *ContainerResourceMetricSource
func (*ContainerResourceMetricSource) DeepCopyInto ¶
func (in *ContainerResourceMetricSource) DeepCopyInto(out *ContainerResourceMetricSource)
type ContainerResourceMetricStatus ¶
type ContainerResourceMetricStatus struct { // name is the name of the resource in question. Name corev1.ResourceName `json:"name"` // current contains the current value for the given metric Current MetricValueStatus `json:"current"` // container is the name of the container in the pods of the scaling target Container string `json:"container"` }
func (*ContainerResourceMetricStatus) DeepCopy ¶
func (in *ContainerResourceMetricStatus) DeepCopy() *ContainerResourceMetricStatus
func (*ContainerResourceMetricStatus) DeepCopyInto ¶
func (in *ContainerResourceMetricStatus) DeepCopyInto(out *ContainerResourceMetricStatus)
type CrossVersionObjectReference ¶
type CrossVersionObjectReference struct { // kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds Kind string `json:"kind"` // name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names Name string `json:"name"` // apiVersion is the API version of the referent APIVersion string `json:"apiVersion,omitempty"` }
func (*CrossVersionObjectReference) DeepCopy ¶
func (in *CrossVersionObjectReference) DeepCopy() *CrossVersionObjectReference
func (*CrossVersionObjectReference) DeepCopyInto ¶
func (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference)
type ExternalMetricSource ¶
type ExternalMetricSource struct { // metric identifies the target metric by name and selector Metric MetricIdentifier `json:"metric"` // target specifies the target value for the given metric Target MetricTarget `json:"target"` }
func (*ExternalMetricSource) DeepCopy ¶
func (in *ExternalMetricSource) DeepCopy() *ExternalMetricSource
func (*ExternalMetricSource) DeepCopyInto ¶
func (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource)
type ExternalMetricStatus ¶
type ExternalMetricStatus struct { // metric identifies the target metric by name and selector Metric MetricIdentifier `json:"metric"` // current contains the current value for the given metric Current MetricValueStatus `json:"current"` }
func (*ExternalMetricStatus) DeepCopy ¶
func (in *ExternalMetricStatus) DeepCopy() *ExternalMetricStatus
func (*ExternalMetricStatus) DeepCopyInto ¶
func (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus)
type HPAScalingPolicy ¶
type HPAScalingPolicy struct { // type is used to specify the scaling policy. Type HPAScalingPolicyType `json:"type"` // value contains the amount of change which is permitted by the policy. // It must be greater than zero Value int `json:"value"` // periodSeconds specifies the window of time for which the policy should hold true. // PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min). PeriodSeconds int `json:"periodSeconds"` }
func (*HPAScalingPolicy) DeepCopy ¶
func (in *HPAScalingPolicy) DeepCopy() *HPAScalingPolicy
func (*HPAScalingPolicy) DeepCopyInto ¶
func (in *HPAScalingPolicy) DeepCopyInto(out *HPAScalingPolicy)
type HPAScalingPolicyType ¶
type HPAScalingPolicyType string
const ( HPAScalingPolicyTypePods HPAScalingPolicyType = "Pods" HPAScalingPolicyTypePercent HPAScalingPolicyType = "Percent" )
type HPAScalingRules ¶
type HPAScalingRules struct { // stabilizationWindowSeconds is the number of seconds for which past recommendations should be // considered while scaling up or scaling down. // StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). // If not set, use the default values: // - For scale up: 0 (i.e. no stabilization is done). // - For scale down: 300 (i.e. the stabilization window is 300 seconds long). StabilizationWindowSeconds int `json:"stabilizationWindowSeconds,omitempty"` // selectPolicy is used to specify which policy should be used. // If not set, the default value Max is used. SelectPolicy ScalingPolicySelect `json:"selectPolicy,omitempty"` // policies is a list of potential scaling polices which can be used during scaling. // At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid Policies []HPAScalingPolicy `json:"policies"` }
func (*HPAScalingRules) DeepCopy ¶
func (in *HPAScalingRules) DeepCopy() *HPAScalingRules
func (*HPAScalingRules) DeepCopyInto ¶
func (in *HPAScalingRules) DeepCopyInto(out *HPAScalingRules)
type HorizontalPodAutoscaler ¶
type HorizontalPodAutoscaler struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata"` // spec is the specification for the behaviour of the autoscaler. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Spec *HorizontalPodAutoscalerSpec `json:"spec,omitempty"` // status is the current information about the autoscaler. Status *HorizontalPodAutoscalerStatus `json:"status,omitempty"` }
func (*HorizontalPodAutoscaler) DeepCopy ¶
func (in *HorizontalPodAutoscaler) DeepCopy() *HorizontalPodAutoscaler
func (*HorizontalPodAutoscaler) DeepCopyInto ¶
func (in *HorizontalPodAutoscaler) DeepCopyInto(out *HorizontalPodAutoscaler)
func (*HorizontalPodAutoscaler) DeepCopyObject ¶
func (in *HorizontalPodAutoscaler) DeepCopyObject() runtime.Object
type HorizontalPodAutoscalerBehavior ¶
type HorizontalPodAutoscalerBehavior struct { // scaleUp is scaling policy for scaling Up. // If not set, the default value is the higher of: // * increase no more than 4 pods per 60 seconds // * double the number of pods per 60 seconds // No stabilization is used. ScaleUp *HPAScalingRules `json:"scaleUp,omitempty"` // scaleDown is scaling policy for scaling Down. // If not set, the default value is to allow to scale down to minReplicas pods, with a // 300 second stabilization window (i.e., the highest recommendation for // the last 300sec is used). ScaleDown *HPAScalingRules `json:"scaleDown,omitempty"` }
func (*HorizontalPodAutoscalerBehavior) DeepCopy ¶
func (in *HorizontalPodAutoscalerBehavior) DeepCopy() *HorizontalPodAutoscalerBehavior
func (*HorizontalPodAutoscalerBehavior) DeepCopyInto ¶
func (in *HorizontalPodAutoscalerBehavior) DeepCopyInto(out *HorizontalPodAutoscalerBehavior)
type HorizontalPodAutoscalerCondition ¶
type HorizontalPodAutoscalerCondition struct { // type describes the current condition Type HorizontalPodAutoscalerConditionType `json:"type"` // status is the status of the condition (True, False, Unknown) Status corev1.ConditionStatus `json:"status"` // lastTransitionTime is the last time the condition transitioned from // one status to another LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` // reason is the reason for the condition's last transition. Reason string `json:"reason,omitempty"` // message is a human-readable explanation containing details about // the transition Message string `json:"message,omitempty"` }
func (*HorizontalPodAutoscalerCondition) DeepCopy ¶
func (in *HorizontalPodAutoscalerCondition) DeepCopy() *HorizontalPodAutoscalerCondition
func (*HorizontalPodAutoscalerCondition) DeepCopyInto ¶
func (in *HorizontalPodAutoscalerCondition) DeepCopyInto(out *HorizontalPodAutoscalerCondition)
type HorizontalPodAutoscalerConditionType ¶
type HorizontalPodAutoscalerConditionType string
const ( HorizontalPodAutoscalerConditionTypeScalingActive HorizontalPodAutoscalerConditionType = "ScalingActive" HorizontalPodAutoscalerConditionTypeAbleToScale HorizontalPodAutoscalerConditionType = "AbleToScale" HorizontalPodAutoscalerConditionTypeScalingLimited HorizontalPodAutoscalerConditionType = "ScalingLimited" )
type HorizontalPodAutoscalerList ¶
type HorizontalPodAutoscalerList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []HorizontalPodAutoscaler `json:"items"` }
func (*HorizontalPodAutoscalerList) DeepCopy ¶
func (in *HorizontalPodAutoscalerList) DeepCopy() *HorizontalPodAutoscalerList
func (*HorizontalPodAutoscalerList) DeepCopyInto ¶
func (in *HorizontalPodAutoscalerList) DeepCopyInto(out *HorizontalPodAutoscalerList)
func (*HorizontalPodAutoscalerList) DeepCopyObject ¶
func (in *HorizontalPodAutoscalerList) DeepCopyObject() runtime.Object
type HorizontalPodAutoscalerSpec ¶
type HorizontalPodAutoscalerSpec 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 CrossVersionObjectReference `json:"scaleTargetRef"` // 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 int `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 int `json:"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. Metrics []MetricSpec `json:"metrics"` // 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 *HorizontalPodAutoscalerBehavior `json:"behavior,omitempty"` }
func (*HorizontalPodAutoscalerSpec) DeepCopy ¶
func (in *HorizontalPodAutoscalerSpec) DeepCopy() *HorizontalPodAutoscalerSpec
func (*HorizontalPodAutoscalerSpec) DeepCopyInto ¶
func (in *HorizontalPodAutoscalerSpec) DeepCopyInto(out *HorizontalPodAutoscalerSpec)
type HorizontalPodAutoscalerStatus ¶
type HorizontalPodAutoscalerStatus struct { // observedGeneration is the most recent generation observed by this autoscaler. ObservedGeneration int64 `json:"observedGeneration,omitempty"` // lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, // used by the autoscaler to control how often the number of pods is changed. LastScaleTime *metav1.Time `json:"lastScaleTime,omitempty"` // currentReplicas is current number of replicas of pods managed by this autoscaler, // as last seen by the autoscaler. CurrentReplicas int `json:"currentReplicas,omitempty"` // desiredReplicas is the desired number of replicas of pods managed by this autoscaler, // as last calculated by the autoscaler. DesiredReplicas int `json:"desiredReplicas"` // currentMetrics is the last read state of the metrics used by this autoscaler. CurrentMetrics []MetricStatus `json:"currentMetrics"` // conditions is the set of conditions required for this autoscaler to scale its target, // and indicates whether or not those conditions are met. Conditions []HorizontalPodAutoscalerCondition `json:"conditions"` }
func (*HorizontalPodAutoscalerStatus) DeepCopy ¶
func (in *HorizontalPodAutoscalerStatus) DeepCopy() *HorizontalPodAutoscalerStatus
func (*HorizontalPodAutoscalerStatus) DeepCopyInto ¶
func (in *HorizontalPodAutoscalerStatus) DeepCopyInto(out *HorizontalPodAutoscalerStatus)
type MetricIdentifier ¶
type MetricIdentifier struct { // name is the name of the given metric Name string `json:"name"` // selector is the string-encoded form of a standard kubernetes label selector for the given metric // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. // When unset, just the metricName will be used to gather metrics. Selector *metav1.LabelSelector `json:"selector,omitempty"` }
func (*MetricIdentifier) DeepCopy ¶
func (in *MetricIdentifier) DeepCopy() *MetricIdentifier
func (*MetricIdentifier) DeepCopyInto ¶
func (in *MetricIdentifier) DeepCopyInto(out *MetricIdentifier)
type MetricSourceType ¶
type MetricSourceType string
const ( MetricSourceTypeObject MetricSourceType = "Object" MetricSourceTypePods MetricSourceType = "Pods" MetricSourceTypeResource MetricSourceType = "Resource" MetricSourceTypeContainerResource MetricSourceType = "ContainerResource" MetricSourceTypeExternal MetricSourceType = "External" )
type MetricSpec ¶
type MetricSpec struct { // type is the type of metric source. It should be one of "ContainerResource", "External", // "Object", "Pods" or "Resource", each mapping to a matching field in the object. // Note: "ContainerResource" type is available on when the feature-gate // HPAContainerMetrics is enabled Type MetricSourceType `json:"type"` // object refers to a metric describing a single kubernetes object // (for example, hits-per-second on an Ingress object). Object *ObjectMetricSource `json:"object,omitempty"` // pods refers to a metric describing each pod in the current scale target // (for example, transactions-processed-per-second). The values will be // averaged together before being compared to the target value. Pods *PodsMetricSource `json:"pods,omitempty"` // resource refers to a resource metric (such as those specified in // requests and limits) known to Kubernetes describing each pod in the // current scale target (e.g. CPU or memory). Such metrics are built in to // Kubernetes, and have special scaling options on top of those available // to normal per-pod metrics using the "pods" source. Resource *ResourceMetricSource `json:"resource,omitempty"` // containerResource refers to a resource metric (such as those specified in // requests and limits) known to Kubernetes describing a single container in // each pod of the current scale target (e.g. CPU or memory). Such metrics are // built in to Kubernetes, and have special scaling options on top of those // available to normal per-pod metrics using the "pods" source. // This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. ContainerResource *ContainerResourceMetricSource `json:"containerResource,omitempty"` // external refers to a global metric that is not associated // with any Kubernetes object. It allows autoscaling based on information // coming from components running outside of cluster // (for example length of queue in cloud messaging service, or // QPS from loadbalancer running outside of cluster). External *ExternalMetricSource `json:"external,omitempty"` }
func (*MetricSpec) DeepCopy ¶
func (in *MetricSpec) DeepCopy() *MetricSpec
func (*MetricSpec) DeepCopyInto ¶
func (in *MetricSpec) DeepCopyInto(out *MetricSpec)
type MetricStatus ¶
type MetricStatus struct { // type is the type of metric source. It will be one of "ContainerResource", "External", // "Object", "Pods" or "Resource", each corresponds to a matching field in the object. // Note: "ContainerResource" type is available on when the feature-gate // HPAContainerMetrics is enabled Type MetricSourceType `json:"type"` // object refers to a metric describing a single kubernetes object // (for example, hits-per-second on an Ingress object). Object *ObjectMetricStatus `json:"object,omitempty"` // pods refers to a metric describing each pod in the current scale target // (for example, transactions-processed-per-second). The values will be // averaged together before being compared to the target value. Pods *PodsMetricStatus `json:"pods,omitempty"` // resource refers to a resource metric (such as those specified in // requests and limits) known to Kubernetes describing each pod in the // current scale target (e.g. CPU or memory). Such metrics are built in to // Kubernetes, and have special scaling options on top of those available // to normal per-pod metrics using the "pods" source. Resource *ResourceMetricStatus `json:"resource,omitempty"` // container resource refers to a resource metric (such as those specified in // requests and limits) known to Kubernetes describing a single container in each pod in the // current scale target (e.g. CPU or memory). Such metrics are built in to // Kubernetes, and have special scaling options on top of those available // to normal per-pod metrics using the "pods" source. ContainerResource *ContainerResourceMetricStatus `json:"containerResource,omitempty"` // external refers to a global metric that is not associated // with any Kubernetes object. It allows autoscaling based on information // coming from components running outside of cluster // (for example length of queue in cloud messaging service, or // QPS from loadbalancer running outside of cluster). External *ExternalMetricStatus `json:"external,omitempty"` }
func (*MetricStatus) DeepCopy ¶
func (in *MetricStatus) DeepCopy() *MetricStatus
func (*MetricStatus) DeepCopyInto ¶
func (in *MetricStatus) DeepCopyInto(out *MetricStatus)
type MetricTarget ¶
type MetricTarget struct { // type represents whether the metric type is Utilization, Value, or AverageValue Type MetricTargetType `json:"type"` // value is the target value of the metric (as a quantity). Value *apiresource.Quantity `json:"value,omitempty"` // averageValue is the target value of the average of the // metric across all relevant pods (as a quantity) AverageValue *apiresource.Quantity `json:"averageValue,omitempty"` // averageUtilization is the target value of the average of the // resource metric across all relevant pods, represented as a percentage of // the requested value of the resource for the pods. // Currently only valid for Resource metric source type AverageUtilization int `json:"averageUtilization,omitempty"` }
func (*MetricTarget) DeepCopy ¶
func (in *MetricTarget) DeepCopy() *MetricTarget
func (*MetricTarget) DeepCopyInto ¶
func (in *MetricTarget) DeepCopyInto(out *MetricTarget)
type MetricTargetType ¶
type MetricTargetType string
const ( MetricTargetTypeUtilization MetricTargetType = "Utilization" MetricTargetTypeValue MetricTargetType = "Value" MetricTargetTypeAverageValue MetricTargetType = "AverageValue" )
type MetricValueStatus ¶
type MetricValueStatus struct { // value is the current value of the metric (as a quantity). Value *apiresource.Quantity `json:"value,omitempty"` // averageValue is the current value of the average of the // metric across all relevant pods (as a quantity) AverageValue *apiresource.Quantity `json:"averageValue,omitempty"` // currentAverageUtilization is the current value of the average of the // resource metric across all relevant pods, represented as a percentage of // the requested value of the resource for the pods. AverageUtilization int `json:"averageUtilization,omitempty"` }
func (*MetricValueStatus) DeepCopy ¶
func (in *MetricValueStatus) DeepCopy() *MetricValueStatus
func (*MetricValueStatus) DeepCopyInto ¶
func (in *MetricValueStatus) DeepCopyInto(out *MetricValueStatus)
type ObjectMetricSource ¶
type ObjectMetricSource struct { // describedObject specifies the descriptions of a object,such as kind,name apiVersion DescribedObject CrossVersionObjectReference `json:"describedObject"` // target specifies the target value for the given metric Target MetricTarget `json:"target"` // metric identifies the target metric by name and selector Metric MetricIdentifier `json:"metric"` }
func (*ObjectMetricSource) DeepCopy ¶
func (in *ObjectMetricSource) DeepCopy() *ObjectMetricSource
func (*ObjectMetricSource) DeepCopyInto ¶
func (in *ObjectMetricSource) DeepCopyInto(out *ObjectMetricSource)
type ObjectMetricStatus ¶
type ObjectMetricStatus struct { // metric identifies the target metric by name and selector Metric MetricIdentifier `json:"metric"` // current contains the current value for the given metric Current MetricValueStatus `json:"current"` // DescribedObject specifies the descriptions of a object,such as kind,name apiVersion DescribedObject CrossVersionObjectReference `json:"describedObject"` }
func (*ObjectMetricStatus) DeepCopy ¶
func (in *ObjectMetricStatus) DeepCopy() *ObjectMetricStatus
func (*ObjectMetricStatus) DeepCopyInto ¶
func (in *ObjectMetricStatus) DeepCopyInto(out *ObjectMetricStatus)
type PodsMetricSource ¶
type PodsMetricSource struct { // metric identifies the target metric by name and selector Metric MetricIdentifier `json:"metric"` // target specifies the target value for the given metric Target MetricTarget `json:"target"` }
func (*PodsMetricSource) DeepCopy ¶
func (in *PodsMetricSource) DeepCopy() *PodsMetricSource
func (*PodsMetricSource) DeepCopyInto ¶
func (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource)
type PodsMetricStatus ¶
type PodsMetricStatus struct { // metric identifies the target metric by name and selector Metric MetricIdentifier `json:"metric"` // current contains the current value for the given metric Current MetricValueStatus `json:"current"` }
func (*PodsMetricStatus) DeepCopy ¶
func (in *PodsMetricStatus) DeepCopy() *PodsMetricStatus
func (*PodsMetricStatus) DeepCopyInto ¶
func (in *PodsMetricStatus) DeepCopyInto(out *PodsMetricStatus)
type ResourceMetricSource ¶
type ResourceMetricSource struct { // name is the name of the resource in question. Name corev1.ResourceName `json:"name"` // target specifies the target value for the given metric Target MetricTarget `json:"target"` }
func (*ResourceMetricSource) DeepCopy ¶
func (in *ResourceMetricSource) DeepCopy() *ResourceMetricSource
func (*ResourceMetricSource) DeepCopyInto ¶
func (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource)
type ResourceMetricStatus ¶
type ResourceMetricStatus struct { // name is the name of the resource in question. Name corev1.ResourceName `json:"name"` // current contains the current value for the given metric Current MetricValueStatus `json:"current"` }
func (*ResourceMetricStatus) DeepCopy ¶
func (in *ResourceMetricStatus) DeepCopy() *ResourceMetricStatus
func (*ResourceMetricStatus) DeepCopyInto ¶
func (in *ResourceMetricStatus) DeepCopyInto(out *ResourceMetricStatus)
type ScalingPolicySelect ¶
type ScalingPolicySelect string
const ( ScalingPolicySelectMax ScalingPolicySelect = "Max" ScalingPolicySelectMin ScalingPolicySelect = "Min" ScalingPolicySelectDisabled ScalingPolicySelect = "Disabled" )
Click to show internal directories.
Click to hide internal directories.