---
# Source: vpa/crds/vpa-v1-crd.yaml
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    api-approved.kubernetes.io: https://github.com/kubernetes/kubernetes/pull/63797
    controller-gen.kubebuilder.io/version: v0.16.5
  name: verticalpodautoscalercheckpoints.autoscaling.k8s.io
spec:
  group: autoscaling.k8s.io
  names:
    kind: VerticalPodAutoscalerCheckpoint
    listKind: VerticalPodAutoscalerCheckpointList
    plural: verticalpodautoscalercheckpoints
    shortNames:
    - vpacheckpoint
    singular: verticalpodautoscalercheckpoint
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: |-
          VerticalPodAutoscalerCheckpoint is the checkpoint of the internal state of VPA that
          is used for recovery after recommender's restart.
        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: |-
              Specification of the checkpoint.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.
            properties:
              containerName:
                description: Name of the checkpointed container.
                type: string
              vpaObjectName:
                description: Name of the VPA object that stored VerticalPodAutoscalerCheckpoint
                  object.
                type: string
            type: object
          status:
            description: Data of the checkpoint.
            properties:
              cpuHistogram:
                description: Checkpoint of histogram for consumption of CPU.
                properties:
                  bucketWeights:
                    description: Map from bucket index to bucket weight.
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  referenceTimestamp:
                    description: Reference timestamp for samples collected within
                      this histogram.
                    format: date-time
                    nullable: true
                    type: string
                  totalWeight:
                    description: Sum of samples to be used as denominator for weights
                      from BucketWeights.
                    type: number
                type: object
              firstSampleStart:
                description: Timestamp of the first sample from the histograms.
                format: date-time
                nullable: true
                type: string
              lastSampleStart:
                description: Timestamp of the last sample from the histograms.
                format: date-time
                nullable: true
                type: string
              lastUpdateTime:
                description: The time when the status was last refreshed.
                format: date-time
                nullable: true
                type: string
              memoryHistogram:
                description: Checkpoint of histogram for consumption of memory.
                properties:
                  bucketWeights:
                    description: Map from bucket index to bucket weight.
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  referenceTimestamp:
                    description: Reference timestamp for samples collected within
                      this histogram.
                    format: date-time
                    nullable: true
                    type: string
                  totalWeight:
                    description: Sum of samples to be used as denominator for weights
                      from BucketWeights.
                    type: number
                type: object
              totalSamplesCount:
                description: Total number of samples in the histograms.
                type: integer
              version:
                description: Version of the format of the stored data.
                type: string
            type: object
        type: object
    served: true
    storage: true
  - name: v1beta2
    schema:
      openAPIV3Schema:
        description: |-
          VerticalPodAutoscalerCheckpoint is the checkpoint of the internal state of VPA that
          is used for recovery after recommender's restart.
        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: |-
              Specification of the checkpoint.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.
            properties:
              containerName:
                description: Name of the checkpointed container.
                type: string
              vpaObjectName:
                description: Name of the VPA object that stored VerticalPodAutoscalerCheckpoint
                  object.
                type: string
            type: object
          status:
            description: Data of the checkpoint.
            properties:
              cpuHistogram:
                description: Checkpoint of histogram for consumption of CPU.
                properties:
                  bucketWeights:
                    description: Map from bucket index to bucket weight.
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  referenceTimestamp:
                    description: Reference timestamp for samples collected within
                      this histogram.
                    format: date-time
                    nullable: true
                    type: string
                  totalWeight:
                    description: Sum of samples to be used as denominator for weights
                      from BucketWeights.
                    type: number
                type: object
              firstSampleStart:
                description: Timestamp of the first sample from the histograms.
                format: date-time
                nullable: true
                type: string
              lastSampleStart:
                description: Timestamp of the last sample from the histograms.
                format: date-time
                nullable: true
                type: string
              lastUpdateTime:
                description: The time when the status was last refreshed.
                format: date-time
                nullable: true
                type: string
              memoryHistogram:
                description: Checkpoint of histogram for consumption of memory.
                properties:
                  bucketWeights:
                    description: Map from bucket index to bucket weight.
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  referenceTimestamp:
                    description: Reference timestamp for samples collected within
                      this histogram.
                    format: date-time
                    nullable: true
                    type: string
                  totalWeight:
                    description: Sum of samples to be used as denominator for weights
                      from BucketWeights.
                    type: number
                type: object
              totalSamplesCount:
                description: Total number of samples in the histograms.
                type: integer
              version:
                description: Version of the format of the stored data.
                type: string
            type: object
        type: object
    served: false
    storage: false
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    api-approved.kubernetes.io: https://github.com/kubernetes/kubernetes/pull/63797
    controller-gen.kubebuilder.io/version: v0.16.5
  name: verticalpodautoscalers.autoscaling.k8s.io
spec:
  group: autoscaling.k8s.io
  names:
    kind: VerticalPodAutoscaler
    listKind: VerticalPodAutoscalerList
    plural: verticalpodautoscalers
    shortNames:
    - vpa
    singular: verticalpodautoscaler
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.updatePolicy.updateMode
      name: Mode
      type: string
    - jsonPath: .status.recommendation.containerRecommendations[0].target.cpu
      name: CPU
      type: string
    - jsonPath: .status.recommendation.containerRecommendations[0].target.memory
      name: Mem
      type: string
    - jsonPath: .status.conditions[?(@.type=='RecommendationProvided')].status
      name: Provided
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: |-
          VerticalPodAutoscaler is the configuration for a vertical pod
          autoscaler, which automatically manages pod resources based on historical and
          real time resource utilization.
        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: |-
              Specification of the behavior of the autoscaler.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.
            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 any individual containers need to be excluded from getting the VPA recommendations, then
                  it must be disabled explicitly by setting mode to "Off" under containerPolicies.
                  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
                        oomBumpUpRatio:
                          anyOf:
                          - type: integer
                          - type: string
                          description: oomBumpUpRatio is the ratio to increase memory
                            when OOM is detected.
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        oomMinBumpUp:
                          anyOf:
                          - type: integer
                          - type: string
                          description: oomMinBumpUp is the minimum increase in memory
                            when OOM is detected.
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                      type: object
                    type: array
                type: object
              targetRef:
                description: |-
                  TargetRef points to the controller managing the set of pods for the
                  autoscaler to control - e.g. Deployment, StatefulSet. VerticalPodAutoscaler
                  can be targeted at controller implementing scale subresource (the pod set is
                  retrieved from the controller's ScaleStatus) or some well known controllers
                  (e.g. for DaemonSet the pod set is read from the controller's spec).
                  If VerticalPodAutoscaler cannot use specified target it will report
                  ConfigUnsupported condition.
                  Note that VerticalPodAutoscaler does not require full implementation
                  of scale subresource - it will not use it to modify the replica count.
                  The only thing retrieved is a label selector matching pods grouped by
                  the target resource.
                properties:
                  apiVersion:
                    description: apiVersion is the API version of the referent
                    type: string
                  kind:
                    description: 'kind is the 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 is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                    type: string
                required:
                - kind
                - name
                type: object
                x-kubernetes-map-type: atomic
              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:
                  evictionRequirements:
                    description: |-
                      EvictionRequirements is a list of EvictionRequirements that need to
                      evaluate to true in order for a Pod to be evicted. If more than one
                      EvictionRequirement is specified, all of them need to be fulfilled to allow eviction.
                    items:
                      description: |-
                        EvictionRequirement defines a single condition which needs to be true in
                        order to evict a Pod
                      properties:
                        changeRequirement:
                          description: EvictionChangeRequirement refers to the relationship
                            between the new target recommendation for a Pod and its
                            current requests, what kind of change is necessary for
                            the Pod to be evicted
                          enum:
                          - TargetHigherThanRequests
                          - TargetLowerThanRequests
                          type: string
                        resources:
                          description: |-
                            Resources is a list of one or more resources that the condition applies
                            to. If more than one resource is given, the EvictionRequirement is fulfilled
                            if at least one resource meets `changeRequirement`.
                          items:
                            description: ResourceName is the name identifying various
                              resources in a ResourceList.
                            type: string
                          type: array
                      required:
                      - changeRequirement
                      - resources
                      type: object
                    type: array
                  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 'Recreate'.
                    enum:
                    - "Off"
                    - Initial
                    - Recreate
                    - InPlaceOrRecreate
                    - Auto
                    type: string
                type: object
            required:
            - targetRef
            type: object
          status:
            description: Current information about the autoscaler.
            properties:
              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.
                items:
                  description: |-
                    VerticalPodAutoscalerCondition describes the state of
                    a VerticalPodAutoscaler at a certain point.
                  properties:
                    lastTransitionTime:
                      description: |-
                        lastTransitionTime is the last time the condition transitioned from
                        one status to another
                      format: date-time
                      type: string
                    message:
                      description: |-
                        message is a human-readable explanation containing details about
                        the transition
                      type: string
                    reason:
                      description: reason is the reason for the condition's last transition.
                      type: string
                    status:
                      description: status is the status of the condition (True, False,
                        Unknown)
                      type: string
                    type:
                      description: type describes the current condition
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              recommendation:
                description: |-
                  The most recently computed amount of resources recommended by the
                  autoscaler for the controlled pods.
                properties:
                  containerRecommendations:
                    description: Resources recommended by the autoscaler for each
                      container.
                    items:
                      description: |-
                        RecommendedContainerResources is the recommendation of resources computed by
                        autoscaler for a specific container. Respects the container resource policy
                        if present in the spec. In particular the recommendation is not produced for
                        containers with `ContainerScalingMode` set to 'Off'.
                      properties:
                        containerName:
                          description: Name of the container.
                          type: string
                        lowerBound:
                          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: |-
                            Minimum recommended amount of resources. Observes ContainerResourcePolicy.
                            This amount is not guaranteed to be sufficient for the application to operate in a stable way, however
                            running with less resources is likely to have significant impact on performance/availability.
                          type: object
                        target:
                          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: Recommended amount of resources. Observes ContainerResourcePolicy.
                          type: object
                        uncappedTarget:
                          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: |-
                            The most recent recommended resources target computed by the autoscaler
                            for the controlled pods, based only on actual resource usage, not taking
                            into account the ContainerResourcePolicy.
                            May differ from the Recommendation if the actual resource usage causes
                            the target to violate the ContainerResourcePolicy (lower than MinAllowed
                            or higher that MaxAllowed).
                            Used only as status indication, will not affect actual resource assignment.
                          type: object
                        upperBound:
                          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: |-
                            Maximum recommended amount of resources. Observes ContainerResourcePolicy.
                            Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum
                            amount of application is actually capable of consuming.
                          type: object
                      required:
                      - target
                      type: object
                    type: array
                type: object
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
  - deprecated: true
    deprecationWarning: autoscaling.k8s.io/v1beta2 API is deprecated
    name: v1beta2
    schema:
      openAPIV3Schema:
        description: |-
          VerticalPodAutoscaler is the configuration for a vertical pod
          autoscaler, which automatically manages pod resources based on historical and
          real time resource utilization.
        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: |-
              Specification of the behavior of the autoscaler.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.
            properties:
              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
                        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
              targetRef:
                description: |-
                  TargetRef points to the controller managing the set of pods for the
                  autoscaler to control - e.g. Deployment, StatefulSet. VerticalPodAutoscaler
                  can be targeted at controller implementing scale subresource (the pod set is
                  retrieved from the controller's ScaleStatus) or some well known controllers
                  (e.g. for DaemonSet the pod set is read from the controller's spec).
                  If VerticalPodAutoscaler cannot use specified target it will report
                  ConfigUnsupported condition.
                  Note that VerticalPodAutoscaler does not require full implementation
                  of scale subresource - it will not use it to modify the replica count.
                  The only thing retrieved is a label selector matching pods grouped by
                  the target resource.
                properties:
                  apiVersion:
                    description: apiVersion is the API version of the referent
                    type: string
                  kind:
                    description: 'kind is the 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 is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                    type: string
                required:
                - kind
                - name
                type: object
                x-kubernetes-map-type: atomic
              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:
                  updateMode:
                    description: |-
                      Controls when autoscaler applies changes to the pod resources.
                      The default is 'Auto'.
                    enum:
                    - "Off"
                    - Initial
                    - Recreate
                    - Auto
                    type: string
                type: object
            required:
            - targetRef
            type: object
          status:
            description: Current information about the autoscaler.
            properties:
              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.
                items:
                  description: |-
                    VerticalPodAutoscalerCondition describes the state of
                    a VerticalPodAutoscaler at a certain point.
                  properties:
                    lastTransitionTime:
                      description: |-
                        lastTransitionTime is the last time the condition transitioned from
                        one status to another
                      format: date-time
                      type: string
                    message:
                      description: |-
                        message is a human-readable explanation containing details about
                        the transition
                      type: string
                    reason:
                      description: reason is the reason for the condition's last transition.
                      type: string
                    status:
                      description: status is the status of the condition (True, False,
                        Unknown)
                      type: string
                    type:
                      description: type describes the current condition
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              recommendation:
                description: |-
                  The most recently computed amount of resources recommended by the
                  autoscaler for the controlled pods.
                properties:
                  containerRecommendations:
                    description: Resources recommended by the autoscaler for each
                      container.
                    items:
                      description: |-
                        RecommendedContainerResources is the recommendation of resources computed by
                        autoscaler for a specific container. Respects the container resource policy
                        if present in the spec. In particular the recommendation is not produced for
                        containers with `ContainerScalingMode` set to 'Off'.
                      properties:
                        containerName:
                          description: Name of the container.
                          type: string
                        lowerBound:
                          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: |-
                            Minimum recommended amount of resources. Observes ContainerResourcePolicy.
                            This amount is not guaranteed to be sufficient for the application to operate in a stable way, however
                            running with less resources is likely to have significant impact on performance/availability.
                          type: object
                        target:
                          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: Recommended amount of resources. Observes ContainerResourcePolicy.
                          type: object
                        uncappedTarget:
                          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: |-
                            The most recent recommended resources target computed by the autoscaler
                            for the controlled pods, based only on actual resource usage, not taking
                            into account the ContainerResourcePolicy.
                            May differ from the Recommendation if the actual resource usage causes
                            the target to violate the ContainerResourcePolicy (lower than MinAllowed
                            or higher that MaxAllowed).
                            Used only as status indication, will not affect actual resource assignment.
                          type: object
                        upperBound:
                          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: |-
                            Maximum recommended amount of resources. Observes ContainerResourcePolicy.
                            Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum
                            amount of application is actually capable of consuming.
                          type: object
                      required:
                      - target
                      type: object
                    type: array
                type: object
            type: object
        required:
        - spec
        type: object
    served: false
    storage: false
    subresources:
      status: {}

---
# Source: vpa/templates/admission-controller-service-account.yaml
apiVersion: v1
kind: ServiceAccount
automountServiceAccountToken: true
metadata:
  name: vpa-admission-controller
  namespace: default
  labels:
    helm.sh/chart: vpa-4.11.0
    app.kubernetes.io/name: vpa
    app.kubernetes.io/instance: vpa
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-controller
---
# Source: vpa/templates/recommender-service-account.yaml
apiVersion: v1
kind: ServiceAccount
automountServiceAccountToken: true
metadata:
  name: vpa-recommender
  namespace: default
  labels:
    helm.sh/chart: vpa-4.11.0
    app.kubernetes.io/name: vpa
    app.kubernetes.io/instance: vpa
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
---
# Source: vpa/templates/updater-service-account.yaml
apiVersion: v1
kind: ServiceAccount
automountServiceAccountToken: true
metadata:
  name: vpa-updater
  namespace: default
  labels:
    helm.sh/chart: vpa-4.11.0
    app.kubernetes.io/name: vpa
    app.kubernetes.io/instance: vpa
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: updater
---
# Source: vpa/templates/admission-controller-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vpa-admission-controller
rules:
  - apiGroups:
      - ""
    resources:
      - pods
      - configmaps
      - nodes
      - limitranges
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - "admissionregistration.k8s.io"
    resources:
      - mutatingwebhookconfigurations
    verbs:
      - create
      - delete
      - get
      - list
  - apiGroups:
      - "poc.autoscaling.k8s.io"
    resources:
      - verticalpodautoscalers
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - "autoscaling.k8s.io"
    resources:
      - verticalpodautoscalers
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - "coordination.k8s.io"
    resources:
      - leases
    verbs:
      - create
      - update
      - get
      - list
      - watch
---
# Source: vpa/templates/clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vpa-metrics-reader
rules:
  - apiGroups:
      - "metrics.k8s.io"
    resources:
      - pods
    verbs:
      - get
      - list
---
# Source: vpa/templates/clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vpa-actor
rules:
  - apiGroups:
      - ""
    resources:
      - pods
      - nodes
      - limitranges
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - ""
    resources:
      - events
    verbs:
      - get
      - list
      - watch
      - create
  - apiGroups:
      - "poc.autoscaling.k8s.io"
    resources:
      - verticalpodautoscalers
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - "autoscaling.k8s.io"
    resources:
      - verticalpodautoscalers
    verbs:
      - get
      - list
      - watch
      - patch
---
# Source: vpa/templates/clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vpa-status-actor
rules:
  - apiGroups:
      - "autoscaling.k8s.io"
    resources:
      - verticalpodautoscalers/status
    verbs:
      - get
      - patch
---
# Source: vpa/templates/clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vpa-checkpoint-actor
rules:
  - apiGroups:
      - "poc.autoscaling.k8s.io"
    resources:
      - verticalpodautoscalercheckpoints
    verbs:
      - get
      - list
      - watch
      - create
      - patch
      - delete
  - apiGroups:
      - "autoscaling.k8s.io"
    resources:
      - verticalpodautoscalercheckpoints
    verbs:
      - get
      - list
      - watch
      - create
      - patch
      - delete
  - apiGroups:
      - ""
    resources:
      - namespaces
    verbs:
      - get
      - list
---
# Source: vpa/templates/clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vpa-evictioner
rules:
  - apiGroups:
      - "apps"
      - "extensions"
    resources:
      - replicasets
    verbs:
      - get
  - apiGroups:
      - ""
    resources:
      - pods/eviction
    verbs:
      - create
---
# Source: vpa/templates/clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vpa-target-reader
rules:
  - apiGroups:
    - '*'
    resources:
    - '*/scale'
    verbs:
    - get
    - watch
  - apiGroups:
      - ""
    resources:
      - replicationcontrollers
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - apps
    resources:
      - daemonsets
      - deployments
      - replicasets
      - statefulsets
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - batch
    resources:
      - jobs
      - cronjobs
    verbs:
      - get
      - list
      - watch
---
# Source: vpa/templates/clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vpa-status-reader
rules:
  - apiGroups:
      - "coordination.k8s.io"
    resources:
      - leases
    verbs:
      - get
      - list
      - watch
---
# Source: vpa/templates/clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vpa-updater-in-place
rules:
  - apiGroups:
      - ""
    resources:
      - pods/resize
      - pods # required for patching vpaInPlaceUpdated annotations onto the pod
    verbs:
      - patch
---
# Source: vpa/templates/admission-controller-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vpa-admission-controller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vpa-admission-controller
subjects:
  - kind: ServiceAccount
    name: vpa-admission-controller
    namespace: default
---
# Source: vpa/templates/clusterrolebindings.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vpa-metrics-reader
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vpa-metrics-reader
subjects:
  - kind: ServiceAccount
    name: vpa-recommender
    namespace: default
---
# Source: vpa/templates/clusterrolebindings.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vpa-checkpoint-actor
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vpa-checkpoint-actor
subjects:
  - kind: ServiceAccount
    name: vpa-recommender
    namespace: default
---
# Source: vpa/templates/clusterrolebindings.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vpa-status-actor
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vpa-status-actor
subjects:
  - kind: ServiceAccount
    name: vpa-recommender
    namespace: default
---
# Source: vpa/templates/clusterrolebindings.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vpa-evictionter-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vpa-evictioner
subjects:
  - kind: ServiceAccount
    name: vpa-updater
    namespace: default
---
# Source: vpa/templates/clusterrolebindings.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vpa-status-reader-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vpa-status-reader
subjects:
  - kind: ServiceAccount
    name: vpa-updater
    namespace: default
---
# Source: vpa/templates/clusterrolebindings.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vpa-updater-in-place-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vpa-updater-in-place
subjects:
  - kind: ServiceAccount
    name: vpa-updater
    namespace: default
---
# Source: vpa/templates/clusterrolebindings.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vpa-actor
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vpa-actor
subjects:
  - kind: ServiceAccount
    name: vpa-recommender
    namespace: default
  - kind: ServiceAccount
    name: vpa-updater
    namespace: default
---
# Source: vpa/templates/clusterrolebindings.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vpa-target-reader-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vpa-target-reader
subjects:
  - kind: ServiceAccount
    name: vpa-recommender
    namespace: default
  - kind: ServiceAccount
    name: vpa-admission-controller
    namespace: default
  - kind: ServiceAccount
    name: vpa-updater
    namespace: default
---
# Source: vpa/templates/admission-controller-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: vpa-webhook
  namespace: default
spec:
  ports:
    - port: 443
      targetPort: 8000
  selector:
    app.kubernetes.io/component: admission-controller
    app.kubernetes.io/name: vpa
    app.kubernetes.io/instance: vpa
---
# Source: vpa/templates/admission-controller-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: vpa-admission-controller
  namespace: default
  labels:
    app.kubernetes.io/component: admission-controller
    helm.sh/chart: vpa-4.11.0
    app.kubernetes.io/name: vpa
    app.kubernetes.io/instance: vpa
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/component: admission-controller
      app.kubernetes.io/name: vpa
      app.kubernetes.io/instance: vpa
  template:
    metadata:
      labels:
        app.kubernetes.io/component: admission-controller
        app.kubernetes.io/name: vpa
        app.kubernetes.io/instance: vpa
    spec:
      serviceAccountName: vpa-admission-controller
      securityContext:
        runAsNonRoot: true
        runAsUser: 65534
        seccompProfile:
          type: RuntimeDefault
      containers:
        - name: vpa
          securityContext:
            allowPrivilegeEscalation: false
            capabilities:
              drop:
              - ALL
            readOnlyRootFilesystem: true
          image: registry.k8s.io/autoscaling/vpa-admission-controller:1.6.0
          imagePullPolicy: Always
          args:
            - --register-webhook=false
            - --webhook-service=vpa-webhook
            - --client-ca-file=/etc/tls-certs/ca
            - --tls-cert-file=/etc/tls-certs/cert
            - --tls-private-key=/etc/tls-certs/key
          volumeMounts:
            - name: tls-certs
              mountPath: "/etc/tls-certs"
              readOnly: true
          livenessProbe:
            failureThreshold: 6
            httpGet:
              path: /health-check
              port: metrics
              scheme: HTTP
            periodSeconds: 5
            successThreshold: 1
            timeoutSeconds: 3
          readinessProbe:
            failureThreshold: 120
            httpGet:
              path: /health-check
              port: metrics
              scheme: HTTP
            periodSeconds: 5
            successThreshold: 1
            timeoutSeconds: 3
          ports:
            - name: http
              containerPort: 8000
              protocol: TCP
            - name: metrics
              containerPort: 8944
              protocol: TCP
          env:
            - name: NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
          resources:
            limits: {}
            requests:
              cpu: 50m
              memory: 200Mi
      hostNetwork: false
      volumes:
        - name: tls-certs
          secret:
            secretName: vpa-tls-secret
---
# Source: vpa/templates/recommender-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: vpa-recommender
  namespace: default
  labels:
    app.kubernetes.io/component: recommender
    helm.sh/chart: vpa-4.11.0
    app.kubernetes.io/name: vpa
    app.kubernetes.io/instance: vpa
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/component: recommender
      app.kubernetes.io/name: vpa
      app.kubernetes.io/instance: vpa
  template:
    metadata:
      labels:
        app.kubernetes.io/component: recommender
        app.kubernetes.io/name: vpa
        app.kubernetes.io/instance: vpa
    spec:
      serviceAccountName: vpa-recommender
      securityContext:
        runAsNonRoot: true
        runAsUser: 65534
        seccompProfile:
          type: RuntimeDefault
      containers:
        - name: vpa
          securityContext:
            allowPrivilegeEscalation: false
            capabilities:
              drop:
              - ALL
            readOnlyRootFilesystem: true
          image: registry.k8s.io/autoscaling/vpa-recommender:1.6.0
          imagePullPolicy: Always
          args:
            - --pod-recommendation-min-cpu-millicores=15
            - --pod-recommendation-min-memory-mb=100
            - --v=4
          livenessProbe:
            failureThreshold: 6
            httpGet:
              path: /health-check
              port: metrics
              scheme: HTTP
            periodSeconds: 5
            successThreshold: 1
            timeoutSeconds: 3
          readinessProbe:
            failureThreshold: 120
            httpGet:
              path: /health-check
              port: metrics
              scheme: HTTP
            periodSeconds: 5
            successThreshold: 1
            timeoutSeconds: 3
          ports:
            - name: metrics
              containerPort: 8942
              protocol: TCP
          resources:
            limits: {}
            requests:
              cpu: 50m
              memory: 500Mi
---
# Source: vpa/templates/updater-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: vpa-updater
  namespace: default
  labels:
    app.kubernetes.io/component: updater
    helm.sh/chart: vpa-4.11.0
    app.kubernetes.io/name: vpa
    app.kubernetes.io/instance: vpa
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/component: updater
      app.kubernetes.io/name: vpa
      app.kubernetes.io/instance: vpa
  template:
    metadata:
      labels:
        app.kubernetes.io/component: updater
        app.kubernetes.io/name: vpa
        app.kubernetes.io/instance: vpa
    spec:
      serviceAccountName: vpa-updater
      securityContext:
        runAsNonRoot: true
        runAsUser: 65534
        seccompProfile:
          type: RuntimeDefault
      containers:
        - name: vpa
          securityContext:
            allowPrivilegeEscalation: false
            capabilities:
              drop:
              - ALL
            readOnlyRootFilesystem: true
          image: registry.k8s.io/autoscaling/vpa-updater:1.6.0
          imagePullPolicy: Always
          env:
            - name: NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
          livenessProbe:
            failureThreshold: 6
            httpGet:
              path: /health-check
              port: metrics
              scheme: HTTP
            periodSeconds: 5
            successThreshold: 1
            timeoutSeconds: 3
          readinessProbe:
            failureThreshold: 120
            httpGet:
              path: /health-check
              port: metrics
              scheme: HTTP
            periodSeconds: 5
            successThreshold: 1
            timeoutSeconds: 3
          ports:
            - name: metrics
              containerPort: 8943
              protocol: TCP
          resources:
            limits: {}
            requests:
              cpu: 50m
              memory: 500Mi
---
# Source: vpa/templates/webhooks/mutating.yaml
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  name: vpa-webhook-config
  labels:
    app.kubernetes.io/component: admission-controller
    helm.sh/chart: vpa-4.11.0
    app.kubernetes.io/name: vpa
    app.kubernetes.io/instance: vpa
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
webhooks:
- admissionReviewVersions:
  - v1
  clientConfig:
    service:
      name: vpa-webhook
      namespace: default
      port: 443
  failurePolicy: Ignore
  matchPolicy: Equivalent
  name: vpa.k8s.io
  namespaceSelector:
    {}
  objectSelector:
    {}
  reinvocationPolicy: Never
  rules:
  - apiGroups:
    - ""
    apiVersions:
    - v1
    operations:
    - CREATE
    resources:
    - pods
    scope: '*'
  - apiGroups:
    - autoscaling.k8s.io
    apiVersions:
    - '*'
    operations:
    - CREATE
    - UPDATE
    resources:
    - verticalpodautoscalers
    scope: '*'
  sideEffects: None
  timeoutSeconds: 5
