• Русский
  • HorizontalPodAutoscaler [autoscaling/v2]

    Description
    HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.
    Type
    object

    Specification

    PropertyTypeDescription
    apiVersionstring

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

    kindstring

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

    metadataObjectMeta

    ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

    specobject

    HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.

    statusobject

    HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.

    .spec

    Description
    HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.
    Type
    object
    Required
    scaleTargetRefmaxReplicas
    PropertyTypeDescription
    behaviorobject

    HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).

    maxReplicasinteger

    maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.

    metricsarray

    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.

    minReplicasinteger

    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.

    scaleTargetRefobject

    CrossVersionObjectReference contains enough information to let you identify the referred resource.

    .spec.behavior

    Description
    HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).
    Type
    object
    PropertyTypeDescription
    scaleDownobject

    HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.

    scaleUpobject

    HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.

    .spec.behavior.scaleDown

    Description
    HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.
    Type
    object
    PropertyTypeDescription
    policiesarray

    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

    selectPolicystring

    selectPolicy is used to specify which policy should be used. If not set, the default value Max is used.

    stabilizationWindowSecondsinteger

    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).

    .spec.behavior.scaleDown.policies

    Description
    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
    Type
    array

    .spec.behavior.scaleDown.policies[]

    Description
    HPAScalingPolicy is a single policy which must hold true for a specified past interval.
    Type
    object
    Required
    typevalueperiodSeconds
    PropertyTypeDescription
    periodSecondsinteger

    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).

    typestring

    type is used to specify the scaling policy.

    valueinteger

    value contains the amount of change which is permitted by the policy. It must be greater than zero

    .spec.behavior.scaleUp

    Description
    HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.
    Type
    object
    PropertyTypeDescription
    policiesarray

    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

    selectPolicystring

    selectPolicy is used to specify which policy should be used. If not set, the default value Max is used.

    stabilizationWindowSecondsinteger

    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).

    .spec.behavior.scaleUp.policies

    Description
    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
    Type
    array

    .spec.behavior.scaleUp.policies[]

    Description
    HPAScalingPolicy is a single policy which must hold true for a specified past interval.
    Type
    object
    Required
    typevalueperiodSeconds
    PropertyTypeDescription
    periodSecondsinteger

    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).

    typestring

    type is used to specify the scaling policy.

    valueinteger

    value contains the amount of change which is permitted by the policy. It must be greater than zero

    .spec.metrics

    Description
    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.
    Type
    array

    .spec.metrics[]

    Description
    MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).
    Type
    object
    Required
    type
    PropertyTypeDescription
    containerResourceobject

    ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. 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. Only one "target" type should be set.

    externalobject

    ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).

    objectobject

    ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).

    podsobject

    PodsMetricSource indicates how to scale on 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.

    resourceobject

    ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. 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. Only one "target" type should be set.

    typestring

    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.

    .spec.metrics[].containerResource

    Description
    ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. 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. Only one "target" type should be set.
    Type
    object
    Required
    nametargetcontainer
    PropertyTypeDescription
    containerstring

    container is the name of the container in the pods of the scaling target

    namestring

    name is the name of the resource in question.

    targetobject

    MetricTarget defines the target value, average value, or average utilization of a specific metric

    .spec.metrics[].containerResource.target

    Description
    MetricTarget defines the target value, average value, or average utilization of a specific metric
    Type
    object
    Required
    type
    PropertyTypeDescription
    averageUtilizationinteger

    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

    averageValuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    
    typestring

    type represents whether the metric type is Utilization, Value, or AverageValue

    valuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    

    .spec.metrics[].external

    Description
    ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).
    Type
    object
    Required
    metrictarget
    PropertyTypeDescription
    metricobject

    MetricIdentifier defines the name and optionally selector for a metric

    targetobject

    MetricTarget defines the target value, average value, or average utilization of a specific metric

    .spec.metrics[].external.metric

    Description
    MetricIdentifier defines the name and optionally selector for a metric
    Type
    object
    Required
    name
    PropertyTypeDescription
    namestring

    name is the name of the given metric

    selectorobject

    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

    .spec.metrics[].external.metric.selector

    Description
    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
    Type
    object
    PropertyTypeDescription
    matchExpressionsarray

    matchExpressions is a list of label selector requirements. The requirements are ANDed.

    matchLabelsobject

    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

    .spec.metrics[].external.metric.selector.matchExpressions

    Description
    matchExpressions is a list of label selector requirements. The requirements are ANDed.
    Type
    array

    .spec.metrics[].external.metric.selector.matchExpressions[]

    Description
    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
    Type
    object
    Required
    keyoperator
    PropertyTypeDescription
    keystring

    key is the label key that the selector applies to.

    operatorstring

    operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

    valuesarray

    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

    .spec.metrics[].external.metric.selector.matchExpressions[].values

    Description
    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
    Type
    array

    .spec.metrics[].external.metric.selector.matchExpressions[].values[]

    Type
    string

    .spec.metrics[].external.metric.selector.matchLabels

    Description
    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
    Type
    object

    .spec.metrics[].external.target

    Description
    MetricTarget defines the target value, average value, or average utilization of a specific metric
    Type
    object
    Required
    type
    PropertyTypeDescription
    averageUtilizationinteger

    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

    averageValuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    
    typestring

    type represents whether the metric type is Utilization, Value, or AverageValue

    valuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    

    .spec.metrics[].object

    Description
    ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
    Type
    object
    Required
    describedObjecttargetmetric
    PropertyTypeDescription
    describedObjectobject

    CrossVersionObjectReference contains enough information to let you identify the referred resource.

    metricobject

    MetricIdentifier defines the name and optionally selector for a metric

    targetobject

    MetricTarget defines the target value, average value, or average utilization of a specific metric

    .spec.metrics[].object.describedObject

    Description
    CrossVersionObjectReference contains enough information to let you identify the referred resource.
    Type
    object
    Required
    kindname
    PropertyTypeDescription
    apiVersionstring

    apiVersion is the API version of the referent

    kindstring

    kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

    namestring

    name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

    .spec.metrics[].object.metric

    Description
    MetricIdentifier defines the name and optionally selector for a metric
    Type
    object
    Required
    name
    PropertyTypeDescription
    namestring

    name is the name of the given metric

    selectorobject

    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

    .spec.metrics[].object.metric.selector

    Description
    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
    Type
    object
    PropertyTypeDescription
    matchExpressionsarray

    matchExpressions is a list of label selector requirements. The requirements are ANDed.

    matchLabelsobject

    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

    .spec.metrics[].object.metric.selector.matchExpressions

    Description
    matchExpressions is a list of label selector requirements. The requirements are ANDed.
    Type
    array

    .spec.metrics[].object.metric.selector.matchExpressions[]

    Description
    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
    Type
    object
    Required
    keyoperator
    PropertyTypeDescription
    keystring

    key is the label key that the selector applies to.

    operatorstring

    operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

    valuesarray

    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

    .spec.metrics[].object.metric.selector.matchExpressions[].values

    Description
    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
    Type
    array

    .spec.metrics[].object.metric.selector.matchExpressions[].values[]

    Type
    string

    .spec.metrics[].object.metric.selector.matchLabels

    Description
    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
    Type
    object

    .spec.metrics[].object.target

    Description
    MetricTarget defines the target value, average value, or average utilization of a specific metric
    Type
    object
    Required
    type
    PropertyTypeDescription
    averageUtilizationinteger

    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

    averageValuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    
    typestring

    type represents whether the metric type is Utilization, Value, or AverageValue

    valuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    

    .spec.metrics[].pods

    Description
    PodsMetricSource indicates how to scale on 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.
    Type
    object
    Required
    metrictarget
    PropertyTypeDescription
    metricobject

    MetricIdentifier defines the name and optionally selector for a metric

    targetobject

    MetricTarget defines the target value, average value, or average utilization of a specific metric

    .spec.metrics[].pods.metric

    Description
    MetricIdentifier defines the name and optionally selector for a metric
    Type
    object
    Required
    name
    PropertyTypeDescription
    namestring

    name is the name of the given metric

    selectorobject

    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

    .spec.metrics[].pods.metric.selector

    Description
    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
    Type
    object
    PropertyTypeDescription
    matchExpressionsarray

    matchExpressions is a list of label selector requirements. The requirements are ANDed.

    matchLabelsobject

    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

    .spec.metrics[].pods.metric.selector.matchExpressions

    Description
    matchExpressions is a list of label selector requirements. The requirements are ANDed.
    Type
    array

    .spec.metrics[].pods.metric.selector.matchExpressions[]

    Description
    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
    Type
    object
    Required
    keyoperator
    PropertyTypeDescription
    keystring

    key is the label key that the selector applies to.

    operatorstring

    operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

    valuesarray

    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

    .spec.metrics[].pods.metric.selector.matchExpressions[].values

    Description
    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
    Type
    array

    .spec.metrics[].pods.metric.selector.matchExpressions[].values[]

    Type
    string

    .spec.metrics[].pods.metric.selector.matchLabels

    Description
    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
    Type
    object

    .spec.metrics[].pods.target

    Description
    MetricTarget defines the target value, average value, or average utilization of a specific metric
    Type
    object
    Required
    type
    PropertyTypeDescription
    averageUtilizationinteger

    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

    averageValuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    
    typestring

    type represents whether the metric type is Utilization, Value, or AverageValue

    valuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    

    .spec.metrics[].resource

    Description
    ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. 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. Only one "target" type should be set.
    Type
    object
    Required
    nametarget
    PropertyTypeDescription
    namestring

    name is the name of the resource in question.

    targetobject

    MetricTarget defines the target value, average value, or average utilization of a specific metric

    .spec.metrics[].resource.target

    Description
    MetricTarget defines the target value, average value, or average utilization of a specific metric
    Type
    object
    Required
    type
    PropertyTypeDescription
    averageUtilizationinteger

    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

    averageValuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    
    typestring

    type represents whether the metric type is Utilization, Value, or AverageValue

    valuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    

    .spec.scaleTargetRef

    Description
    CrossVersionObjectReference contains enough information to let you identify the referred resource.
    Type
    object
    Required
    kindname
    PropertyTypeDescription
    apiVersionstring

    apiVersion is the API version of the referent

    kindstring

    kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

    namestring

    name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

    .status

    Description
    HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.
    Type
    object
    Required
    desiredReplicas
    PropertyTypeDescription
    conditionsarray

    conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.

    currentMetricsarray

    currentMetrics is the last read state of the metrics used by this autoscaler.

    currentReplicasinteger

    currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.

    desiredReplicasinteger

    desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.

    lastScaleTimestring

    Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.

    observedGenerationinteger

    observedGeneration is the most recent generation observed by this autoscaler.

    .status.conditions

    Description
    conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.
    Type
    array

    .status.conditions[]

    Description
    HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.
    Type
    object
    Required
    typestatus
    PropertyTypeDescription
    lastTransitionTimestring

    Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.

    messagestring

    message is a human-readable explanation containing details about the transition

    reasonstring

    reason is the reason for the condition's last transition.

    statusstring

    status is the status of the condition (True, False, Unknown)

    typestring

    type describes the current condition

    .status.currentMetrics

    Description
    currentMetrics is the last read state of the metrics used by this autoscaler.
    Type
    array

    .status.currentMetrics[]

    Description
    MetricStatus describes the last-read state of a single metric.
    Type
    object
    Required
    type
    PropertyTypeDescription
    containerResourceobject

    ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, 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.

    externalobject

    ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.

    objectobject

    ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).

    podsobject

    PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).

    resourceobject

    ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, 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.

    typestring

    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.

    .status.currentMetrics[].containerResource

    Description
    ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, 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.
    Type
    object
    Required
    namecurrentcontainer
    PropertyTypeDescription
    containerstring

    container is the name of the container in the pods of the scaling target

    currentobject

    MetricValueStatus holds the current value for a metric

    namestring

    name is the name of the resource in question.

    .status.currentMetrics[].containerResource.current

    Description
    MetricValueStatus holds the current value for a metric
    Type
    object
    PropertyTypeDescription
    averageUtilizationinteger

    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.

    averageValuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    
    valuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    

    .status.currentMetrics[].external

    Description
    ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.
    Type
    object
    Required
    metriccurrent
    PropertyTypeDescription
    currentobject

    MetricValueStatus holds the current value for a metric

    metricobject

    MetricIdentifier defines the name and optionally selector for a metric

    .status.currentMetrics[].external.current

    Description
    MetricValueStatus holds the current value for a metric
    Type
    object
    PropertyTypeDescription
    averageUtilizationinteger

    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.

    averageValuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    
    valuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    

    .status.currentMetrics[].external.metric

    Description
    MetricIdentifier defines the name and optionally selector for a metric
    Type
    object
    Required
    name
    PropertyTypeDescription
    namestring

    name is the name of the given metric

    selectorobject

    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

    .status.currentMetrics[].external.metric.selector

    Description
    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
    Type
    object
    PropertyTypeDescription
    matchExpressionsarray

    matchExpressions is a list of label selector requirements. The requirements are ANDed.

    matchLabelsobject

    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

    .status.currentMetrics[].external.metric.selector.matchExpressions

    Description
    matchExpressions is a list of label selector requirements. The requirements are ANDed.
    Type
    array

    .status.currentMetrics[].external.metric.selector.matchExpressions[]

    Description
    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
    Type
    object
    Required
    keyoperator
    PropertyTypeDescription
    keystring

    key is the label key that the selector applies to.

    operatorstring

    operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

    valuesarray

    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

    .status.currentMetrics[].external.metric.selector.matchExpressions[].values

    Description
    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
    Type
    array

    .status.currentMetrics[].external.metric.selector.matchExpressions[].values[]

    Type
    string

    .status.currentMetrics[].external.metric.selector.matchLabels

    Description
    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
    Type
    object

    .status.currentMetrics[].object

    Description
    ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
    Type
    object
    Required
    metriccurrentdescribedObject
    PropertyTypeDescription
    currentobject

    MetricValueStatus holds the current value for a metric

    describedObjectobject

    CrossVersionObjectReference contains enough information to let you identify the referred resource.

    metricobject

    MetricIdentifier defines the name and optionally selector for a metric

    .status.currentMetrics[].object.current

    Description
    MetricValueStatus holds the current value for a metric
    Type
    object
    PropertyTypeDescription
    averageUtilizationinteger

    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.

    averageValuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    
    valuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    

    .status.currentMetrics[].object.describedObject

    Description
    CrossVersionObjectReference contains enough information to let you identify the referred resource.
    Type
    object
    Required
    kindname
    PropertyTypeDescription
    apiVersionstring

    apiVersion is the API version of the referent

    kindstring

    kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

    namestring

    name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

    .status.currentMetrics[].object.metric

    Description
    MetricIdentifier defines the name and optionally selector for a metric
    Type
    object
    Required
    name
    PropertyTypeDescription
    namestring

    name is the name of the given metric

    selectorobject

    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

    .status.currentMetrics[].object.metric.selector

    Description
    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
    Type
    object
    PropertyTypeDescription
    matchExpressionsarray

    matchExpressions is a list of label selector requirements. The requirements are ANDed.

    matchLabelsobject

    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

    .status.currentMetrics[].object.metric.selector.matchExpressions

    Description
    matchExpressions is a list of label selector requirements. The requirements are ANDed.
    Type
    array

    .status.currentMetrics[].object.metric.selector.matchExpressions[]

    Description
    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
    Type
    object
    Required
    keyoperator
    PropertyTypeDescription
    keystring

    key is the label key that the selector applies to.

    operatorstring

    operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

    valuesarray

    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

    .status.currentMetrics[].object.metric.selector.matchExpressions[].values

    Description
    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
    Type
    array

    .status.currentMetrics[].object.metric.selector.matchExpressions[].values[]

    Type
    string

    .status.currentMetrics[].object.metric.selector.matchLabels

    Description
    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
    Type
    object

    .status.currentMetrics[].pods

    Description
    PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).
    Type
    object
    Required
    metriccurrent
    PropertyTypeDescription
    currentobject

    MetricValueStatus holds the current value for a metric

    metricobject

    MetricIdentifier defines the name and optionally selector for a metric

    .status.currentMetrics[].pods.current

    Description
    MetricValueStatus holds the current value for a metric
    Type
    object
    PropertyTypeDescription
    averageUtilizationinteger

    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.

    averageValuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    
    valuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    

    .status.currentMetrics[].pods.metric

    Description
    MetricIdentifier defines the name and optionally selector for a metric
    Type
    object
    Required
    name
    PropertyTypeDescription
    namestring

    name is the name of the given metric

    selectorobject

    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

    .status.currentMetrics[].pods.metric.selector

    Description
    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
    Type
    object
    PropertyTypeDescription
    matchExpressionsarray

    matchExpressions is a list of label selector requirements. The requirements are ANDed.

    matchLabelsobject

    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

    .status.currentMetrics[].pods.metric.selector.matchExpressions

    Description
    matchExpressions is a list of label selector requirements. The requirements are ANDed.
    Type
    array

    .status.currentMetrics[].pods.metric.selector.matchExpressions[]

    Description
    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
    Type
    object
    Required
    keyoperator
    PropertyTypeDescription
    keystring

    key is the label key that the selector applies to.

    operatorstring

    operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

    valuesarray

    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

    .status.currentMetrics[].pods.metric.selector.matchExpressions[].values

    Description
    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
    Type
    array

    .status.currentMetrics[].pods.metric.selector.matchExpressions[].values[]

    Type
    string

    .status.currentMetrics[].pods.metric.selector.matchLabels

    Description
    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
    Type
    object

    .status.currentMetrics[].resource

    Description
    ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, 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.
    Type
    object
    Required
    namecurrent
    PropertyTypeDescription
    currentobject

    MetricValueStatus holds the current value for a metric

    namestring

    name is the name of the resource in question.

    .status.currentMetrics[].resource.current

    Description
    MetricValueStatus holds the current value for a metric
    Type
    object
    PropertyTypeDescription
    averageUtilizationinteger

    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.

    averageValuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    
    valuestring|number

    Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

    The serialization format is:

    
    	(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
    
    <digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= "+" | "-" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
    
    	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
    
    <decimalSI>       ::= m | "" | k | M | G | T | P | E
    
    	(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
    
    <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
    
    No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
    
    When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
    
    Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
    
    - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
    
    The sign will be omitted unless the number is negative.
    
    Examples:
    
    - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
    
    Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
    
    Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
    
    This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
    

    API Endpoints

    The following API endpoints are available:

    • /kubernetes/{cluster}/apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers
      • DELETE: delete collection of HorizontalPodAutoscaler
      • GET: list objects of kind HorizontalPodAutoscaler
      • POST: create a new HorizontalPodAutoscaler
    • /kubernetes/{cluster}/apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}
      • DELETE: delete the specified HorizontalPodAutoscaler
      • GET: read the specified HorizontalPodAutoscaler
      • PATCH: partially update the specified HorizontalPodAutoscaler
      • PUT: replace the specified HorizontalPodAutoscaler
    • /kubernetes/{cluster}/apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status
      • GET: read status of the specified HorizontalPodAutoscaler
      • PATCH: partially update status of the specified HorizontalPodAutoscaler
      • PUT: replace status of the specified HorizontalPodAutoscaler

    /kubernetes/{cluster}/apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers

    HTTP method
    DELETE
    Description
    delete collection of HorizontalPodAutoscaler
    HTTP responses
    HTTP codeResponse body
    200 - OKStatus schema
    401 - UnauthorizedEmpty
    HTTP method
    GET
    Description
    list objects of kind HorizontalPodAutoscaler
    HTTP responses
    HTTP codeResponse body
    200 - OKHorizontalPodAutoscalerList schema
    401 - UnauthorizedEmpty
    HTTP method
    POST
    Description
    create a new HorizontalPodAutoscaler
    Query parameters
    ParameterTypeDescription
    dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
    fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
    Body parameters
    ParameterTypeDescription
    bodyHorizontalPodAutoscaler schemaapplication/json formatted
    HTTP responses
    HTTP codeResponse body
    200 - OKHorizontalPodAutoscaler schema
    201 - CreatedHorizontalPodAutoscaler schema
    202 - AcceptedHorizontalPodAutoscaler schema
    401 - UnauthorizedEmpty

    /kubernetes/{cluster}/apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}

    HTTP method
    DELETE
    Description
    delete the specified HorizontalPodAutoscaler
    Query parameters
    ParameterTypeDescription
    dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
    HTTP responses
    HTTP codeResponse body
    200 - OKStatus schema
    202 - AcceptedStatus schema
    401 - UnauthorizedEmpty
    HTTP method
    GET
    Description
    read the specified HorizontalPodAutoscaler
    HTTP responses
    HTTP codeResponse body
    200 - OKHorizontalPodAutoscaler schema
    401 - UnauthorizedEmpty
    HTTP method
    PATCH
    Description
    partially update the specified HorizontalPodAutoscaler
    Query parameters
    ParameterTypeDescription
    dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
    fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
    HTTP responses
    HTTP codeResponse body
    200 - OKHorizontalPodAutoscaler schema
    401 - UnauthorizedEmpty
    HTTP method
    PUT
    Description
    replace the specified HorizontalPodAutoscaler
    Query parameters
    ParameterTypeDescription
    dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
    fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
    Body parameters
    ParameterTypeDescription
    bodyHorizontalPodAutoscaler schemaapplication/json formatted
    HTTP responses
    HTTP codeResponse body
    200 - OKHorizontalPodAutoscaler schema
    201 - CreatedHorizontalPodAutoscaler schema
    401 - UnauthorizedEmpty

    /kubernetes/{cluster}/apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status

    HTTP method
    GET
    Description
    read status of the specified HorizontalPodAutoscaler
    HTTP responses
    HTTP codeResponse body
    200 - OKHorizontalPodAutoscaler schema
    401 - UnauthorizedEmpty
    HTTP method
    PATCH
    Description
    partially update status of the specified HorizontalPodAutoscaler
    Query parameters
    ParameterTypeDescription
    dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
    fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
    HTTP responses
    HTTP codeResponse body
    200 - OKHorizontalPodAutoscaler schema
    401 - UnauthorizedEmpty
    HTTP method
    PUT
    Description
    replace status of the specified HorizontalPodAutoscaler
    Query parameters
    ParameterTypeDescription
    dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
    fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
    Body parameters
    ParameterTypeDescription
    bodyHorizontalPodAutoscaler schemaapplication/json formatted
    HTTP responses
    HTTP codeResponse body
    200 - OKHorizontalPodAutoscaler schema
    201 - CreatedHorizontalPodAutoscaler schema
    401 - UnauthorizedEmpty