---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.0
  creationTimestamp: null
  name: autoscalers.shardingsphere.apache.org
spec:
  group: shardingsphere.apache.org
  names:
    kind: AutoScaler
    listKind: AutoScalerList
    plural: autoscalers
    singular: autoscaler
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: AutoScaler defines a autoscaler for ShardingSphere given
        properties:
          apiVersion:
            description: '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'
            type: string
          kind:
            description: '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'
            type: string
          metadata:
            type: object
          spec:
            description: AutoScalerSpec defines a list of scaling policies
            properties:
              policyGroup:
                description: PolicyGroup declares a set of scaling policies, including
                  horizontal and vertical scaling Allow ComputeNode to enable HPA
                  and VPA at the same time, without guaranteeing the result Haven't
                  verified the configuration of HPA and VPA of StorageNode yet
                items:
                  description: ScalingPolicy defines a policy for scaling
                  properties:
                    horizontal:
                      description: HorizontalScaling contains the necessary parameters
                        for HPA scaling Does not contain StorageNode related configuration
                      properties:
                        maxReplicas:
                          description: maxReplicas is the upper limit for the number
                            of replicas to which the autoscaler can scale up. It cannot
                            be less that minReplicas.
                          format: int32
                          type: integer
                        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.
                          items:
                            description: MetricSpec specifies how to scale based on
                              a single metric (only `type` and one other matching
                              field should be set at once).
                            properties:
                              containerResource:
                                description: containerResource refers to a resource
                                  metric (such as those specified in requests and
                                  limits) known to Kubernetes describing a single
                                  container in each pod of the current scale target
                                  (e.g. CPU or memory). Such metrics are built in
                                  to Kubernetes, and have special scaling options
                                  on top of those available to normal per-pod metrics
                                  using the "pods" source. This is an alpha feature
                                  and can be enabled by the HPAContainerMetrics feature
                                  flag.
                                properties:
                                  container:
                                    description: container is the name of the container
                                      in the pods of the scaling target
                                    type: string
                                  name:
                                    description: name is the name of the resource
                                      in question.
                                    type: string
                                  target:
                                    description: target specifies the target value
                                      for the given metric
                                    properties:
                                      averageUtilization:
                                        description: 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
                                        format: int32
                                        type: integer
                                      averageValue:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: averageValue is the target value
                                          of the average of the metric across all
                                          relevant pods (as a quantity)
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      type:
                                        description: type represents whether the metric
                                          type is Utilization, Value, or AverageValue
                                        type: string
                                      value:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: value is the target value of
                                          the metric (as a quantity).
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - type
                                    type: object
                                required:
                                - container
                                - name
                                - target
                                type: object
                              external:
                                description: external refers to a global metric that
                                  is not associated with any Kubernetes object. It
                                  allows autoscaling based on information coming from
                                  components running outside of cluster (for example
                                  length of queue in cloud messaging service, or QPS
                                  from loadbalancer running outside of cluster).
                                properties:
                                  metric:
                                    description: metric identifies the target metric
                                      by name and selector
                                    properties:
                                      name:
                                        description: name is the name of the given
                                          metric
                                        type: string
                                      selector:
                                        description: selector is the string-encoded
                                          form of a standard kubernetes label selector
                                          for the given metric When set, it is passed
                                          as an additional parameter to the metrics
                                          server for more specific metrics scoping.
                                          When unset, just the metricName will be
                                          used to gather metrics.
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list
                                              of label selector requirements. The
                                              requirements are ANDed.
                                            items:
                                              description: A label selector requirement
                                                is a selector that contains values,
                                                a key, and an operator that relates
                                                the key and values.
                                              properties:
                                                key:
                                                  description: key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: operator represents
                                                    a key's relationship to a set
                                                    of values. Valid operators are
                                                    In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                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.
                                                  items:
                                                    type: string
                                                  type: array
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            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
                                        type: object
                                    required:
                                    - name
                                    type: object
                                  target:
                                    description: target specifies the target value
                                      for the given metric
                                    properties:
                                      averageUtilization:
                                        description: 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
                                        format: int32
                                        type: integer
                                      averageValue:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: averageValue is the target value
                                          of the average of the metric across all
                                          relevant pods (as a quantity)
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      type:
                                        description: type represents whether the metric
                                          type is Utilization, Value, or AverageValue
                                        type: string
                                      value:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: value is the target value of
                                          the metric (as a quantity).
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - type
                                    type: object
                                required:
                                - metric
                                - target
                                type: object
                              object:
                                description: object refers to a metric describing
                                  a single kubernetes object (for example, hits-per-second
                                  on an Ingress object).
                                properties:
                                  describedObject:
                                    description: describedObject specifies the descriptions
                                      of a object,such as kind,name apiVersion
                                    properties:
                                      apiVersion:
                                        description: API version of the referent
                                        type: string
                                      kind:
                                        description: 'Kind of the referent; More info:
                                          https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                                        type: string
                                      name:
                                        description: 'Name of the referent; More info:
                                          http://kubernetes.io/docs/user-guide/identifiers#names'
                                        type: string
                                    required:
                                    - kind
                                    - name
                                    type: object
                                  metric:
                                    description: metric identifies the target metric
                                      by name and selector
                                    properties:
                                      name:
                                        description: name is the name of the given
                                          metric
                                        type: string
                                      selector:
                                        description: selector is the string-encoded
                                          form of a standard kubernetes label selector
                                          for the given metric When set, it is passed
                                          as an additional parameter to the metrics
                                          server for more specific metrics scoping.
                                          When unset, just the metricName will be
                                          used to gather metrics.
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list
                                              of label selector requirements. The
                                              requirements are ANDed.
                                            items:
                                              description: A label selector requirement
                                                is a selector that contains values,
                                                a key, and an operator that relates
                                                the key and values.
                                              properties:
                                                key:
                                                  description: key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: operator represents
                                                    a key's relationship to a set
                                                    of values. Valid operators are
                                                    In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                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.
                                                  items:
                                                    type: string
                                                  type: array
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            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
                                        type: object
                                    required:
                                    - name
                                    type: object
                                  target:
                                    description: target specifies the target value
                                      for the given metric
                                    properties:
                                      averageUtilization:
                                        description: 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
                                        format: int32
                                        type: integer
                                      averageValue:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: averageValue is the target value
                                          of the average of the metric across all
                                          relevant pods (as a quantity)
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      type:
                                        description: type represents whether the metric
                                          type is Utilization, Value, or AverageValue
                                        type: string
                                      value:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: value is the target value of
                                          the metric (as a quantity).
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - type
                                    type: object
                                required:
                                - describedObject
                                - metric
                                - target
                                type: object
                              pods:
                                description: pods refers to a metric describing each
                                  pod in the current scale target (for example, transactions-processed-per-second).  The
                                  values will be averaged together before being compared
                                  to the target value.
                                properties:
                                  metric:
                                    description: metric identifies the target metric
                                      by name and selector
                                    properties:
                                      name:
                                        description: name is the name of the given
                                          metric
                                        type: string
                                      selector:
                                        description: selector is the string-encoded
                                          form of a standard kubernetes label selector
                                          for the given metric When set, it is passed
                                          as an additional parameter to the metrics
                                          server for more specific metrics scoping.
                                          When unset, just the metricName will be
                                          used to gather metrics.
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list
                                              of label selector requirements. The
                                              requirements are ANDed.
                                            items:
                                              description: A label selector requirement
                                                is a selector that contains values,
                                                a key, and an operator that relates
                                                the key and values.
                                              properties:
                                                key:
                                                  description: key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: operator represents
                                                    a key's relationship to a set
                                                    of values. Valid operators are
                                                    In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                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.
                                                  items:
                                                    type: string
                                                  type: array
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            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
                                        type: object
                                    required:
                                    - name
                                    type: object
                                  target:
                                    description: target specifies the target value
                                      for the given metric
                                    properties:
                                      averageUtilization:
                                        description: 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
                                        format: int32
                                        type: integer
                                      averageValue:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: averageValue is the target value
                                          of the average of the metric across all
                                          relevant pods (as a quantity)
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      type:
                                        description: type represents whether the metric
                                          type is Utilization, Value, or AverageValue
                                        type: string
                                      value:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: value is the target value of
                                          the metric (as a quantity).
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - type
                                    type: object
                                required:
                                - metric
                                - target
                                type: object
                              resource:
                                description: resource refers to a resource metric
                                  (such as those specified in requests and limits)
                                  known to Kubernetes describing each pod in the current
                                  scale target (e.g. CPU or memory). Such metrics
                                  are built in to Kubernetes, and have special scaling
                                  options on top of those available to normal per-pod
                                  metrics using the "pods" source.
                                properties:
                                  name:
                                    description: name is the name of the resource
                                      in question.
                                    type: string
                                  target:
                                    description: target specifies the target value
                                      for the given metric
                                    properties:
                                      averageUtilization:
                                        description: 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
                                        format: int32
                                        type: integer
                                      averageValue:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: averageValue is the target value
                                          of the average of the metric across all
                                          relevant pods (as a quantity)
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      type:
                                        description: type represents whether the metric
                                          type is Utilization, Value, or AverageValue
                                        type: string
                                      value:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: value is the target value of
                                          the metric (as a quantity).
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - type
                                    type: object
                                required:
                                - name
                                - target
                                type: object
                              type:
                                description: 'type is the type of metric source.  It
                                  should be one of "ContainerResource", "External",
                                  "Object", "Pods" or "Resource", each mapping to
                                  a matching field in the object. Note: "ContainerResource"
                                  type is available on when the feature-gate HPAContainerMetrics
                                  is enabled'
                                type: string
                            required:
                            - type
                            type: object
                          type: array
                        minReplicas:
                          description: 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.
                          format: int32
                          type: integer
                        scaleDownRules:
                          description: scaleDown is scaling policy for scaling Down.
                            If not set, the default value is to allow to scale down
                            to minReplicas pods, with a 300 second stabilization window
                            (i.e., the highest recommendation for the last 300sec
                            is used).
                          properties:
                            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
                              items:
                                description: HPAScalingPolicy is a single policy which
                                  must hold true for a specified past interval.
                                properties:
                                  periodSeconds:
                                    description: 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).
                                    format: int32
                                    type: integer
                                  type:
                                    description: Type is used to specify the scaling
                                      policy.
                                    type: string
                                  value:
                                    description: Value contains the amount of change
                                      which is permitted by the policy. It must be
                                      greater than zero
                                    format: int32
                                    type: integer
                                required:
                                - periodSeconds
                                - type
                                - value
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            selectPolicy:
                              description: selectPolicy is used to specify which policy
                                should be used. If not set, the default value Max
                                is used.
                              type: string
                            stabilizationWindowSeconds:
                              description: '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).'
                              format: int32
                              type: integer
                          type: object
                        scaleUpRules:
                          description: 'scaleUp is scaling policy for scaling Up.
                            If not set, the default value is the higher of: * increase
                            no more than 4 pods per 60 seconds * double the number
                            of pods per 60 seconds No stabilization is used.'
                          properties:
                            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
                              items:
                                description: HPAScalingPolicy is a single policy which
                                  must hold true for a specified past interval.
                                properties:
                                  periodSeconds:
                                    description: 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).
                                    format: int32
                                    type: integer
                                  type:
                                    description: Type is used to specify the scaling
                                      policy.
                                    type: string
                                  value:
                                    description: Value contains the amount of change
                                      which is permitted by the policy. It must be
                                      greater than zero
                                    format: int32
                                    type: integer
                                required:
                                - periodSeconds
                                - type
                                - value
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            selectPolicy:
                              description: selectPolicy is used to specify which policy
                                should be used. If not set, the default value Max
                                is used.
                              type: string
                            stabilizationWindowSeconds:
                              description: '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).'
                              format: int32
                              type: integer
                          type: object
                      type: object
                    provider:
                      description: 'Provider is the provider of the scaling mechanism,
                        and the optional values are: - Empty: default value, which
                        means provided by ShardingSphere Operator - KubernetesHPA:
                        Indicates the use of Kubernetes native HPA - KubernetesVPA:
                        Indicates the use of Kubernetes community VPA - Other: Indicates
                        a controller using a third-party controller'
                      type: string
                    targetSelector:
                      description: TargetSelector is used to select the auto-scaling
                        target Support native CrossVersionObjectReference and Selector
                        The first version plans to support CrossVersionObjectReference
                        first
                      properties:
                        objectRef:
                          description: CrossVersionObjectReference contains enough
                            information to let you identify the referred resource.
                          properties:
                            apiVersion:
                              description: API version of the referent
                              type: string
                            kind:
                              description: 'Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                              type: string
                            name:
                              description: 'Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                              type: string
                          required:
                          - kind
                          - name
                          type: object
                        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.
                          properties:
                            matchExpressions:
                              description: matchExpressions is a list of label selector
                                requirements. The requirements are ANDed.
                              items:
                                description: A label selector requirement is a selector
                                  that contains values, a key, and an operator that
                                  relates the key and values.
                                properties:
                                  key:
                                    description: key is the label key that the selector
                                      applies to.
                                    type: string
                                  operator:
                                    description: operator represents a key's relationship
                                      to a set of values. Valid operators are In,
                                      NotIn, Exists and DoesNotExist.
                                    type: string
                                  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.
                                    items:
                                      type: string
                                    type: array
                                required:
                                - key
                                - operator
                                type: object
                              type: array
                            matchLabels:
                              additionalProperties:
                                type: string
                              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
                          type: object
                      type: object
                    vertical:
                      description: VerticalScaling contains the necessary parameters
                        for VPA scaling Does not contain StorageNode related configuration
                      properties:
                        recommenders:
                          description: Recommender responsible for generating recommendation
                            for this object. List should be empty (then the default
                            recommender will generate the recommendation) or contain
                            exactly one recommender.
                          items:
                            description: VerticalPodAutoscalerRecommenderSelector
                              points to a specific Vertical Pod Autoscaler recommender.
                              In the future it might pass parameters to the recommender.
                            properties:
                              name:
                                description: Name of the recommender responsible for
                                  generating recommendation for this object.
                                type: string
                            required:
                            - name
                            type: object
                          type: array
                        resourcePolicy:
                          description: Controls how the autoscaler computes recommended
                            resources. The resource policy may be used to set constraints
                            on the recommendations for individual containers. If not
                            specified, the autoscaler computes recommended resources
                            for all containers in the pod, without additional constraints.
                          properties:
                            containerPolicies:
                              description: Per-container resource policies.
                              items:
                                description: ContainerResourcePolicy controls how
                                  autoscaler computes the recommended resources for
                                  a specific container.
                                properties:
                                  containerName:
                                    description: Name of the container or DefaultContainerResourcePolicy,
                                      in which case the policy is used by the containers
                                      that don't have their own policy specified.
                                    type: string
                                  controlledResources:
                                    description: Specifies the type of recommendations
                                      that will be computed (and possibly applied)
                                      by VPA. If not specified, the default of [ResourceCPU,
                                      ResourceMemory] will be used.
                                    items:
                                      description: ResourceName is the name identifying
                                        various resources in a ResourceList.
                                      type: string
                                    type: array
                                  controlledValues:
                                    description: Specifies which resource values should
                                      be controlled. The default is "RequestsAndLimits".
                                    enum:
                                    - RequestsAndLimits
                                    - RequestsOnly
                                    type: string
                                  maxAllowed:
                                    additionalProperties:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    description: Specifies the maximum amount of resources
                                      that will be recommended for the container.
                                      The default is no maximum.
                                    type: object
                                  minAllowed:
                                    additionalProperties:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    description: Specifies the minimal amount of resources
                                      that will be recommended for the container.
                                      The default is no minimum.
                                    type: object
                                  mode:
                                    description: Whether autoscaler is enabled for
                                      the container. The default is "Auto".
                                    enum:
                                    - Auto
                                    - "Off"
                                    type: string
                                type: object
                              type: array
                          type: object
                        updatePolicy:
                          description: Describes the rules on how changes are applied
                            to the pods. If not specified, all fields in the `PodUpdatePolicy`
                            are set to their default values.
                          properties:
                            minReplicas:
                              description: Minimal number of replicas which need to
                                be alive for Updater to attempt pod eviction (pending
                                other checks like PDB). Only positive values are allowed.
                                Overrides global '--min-replicas' flag.
                              format: int32
                              type: integer
                            updateMode:
                              description: Controls when autoscaler applies changes
                                to the pod resources. The default is 'Auto'.
                              enum:
                              - "Off"
                              - Initial
                              - Recreate
                              - Auto
                              type: string
                          type: object
                      type: object
                  type: object
                type: array
            type: object
          status:
            description: AutoScalerStatus defines the status of a autoscaler
            properties:
              conditions:
                items:
                  description: AutoScalerCondition defiens the condition of a autoscaler
                  properties:
                    lastTransitionTime:
                      format: date-time
                      type: string
                    message:
                      type: string
                    reason:
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
