---
# Source: vertical-pod-autoscaler/crds/vpa-v1-crd-gen.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
    - jsonPath: .spec.updatePolicy.minReplicas
      name: MinReplicas
      priority: 1
      type: integer
    - jsonPath: .spec.updatePolicy.evictAfterOOMSeconds
      name: OOMSeconds
      priority: 1
      type: integer
    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
                        startupBoost:
                          description: |-
                            startupBoost specifies the startup boost policy for the container.
                            This overrides any pod-level startup boost policy.
                            The startup boost policy takes precedence over the rest of the fields in
                            this struct, except for ContainerName and ControlledValues.
                          properties:
                            cpu:
                              description: |-
                                cpu specifies the CPU startup boost policy.
                                If this field is not set, no startup boost is applied.
                              properties:
                                durationSeconds:
                                  description: |-
                                    durationSeconds indicates for how long to keep the pod boosted after it goes to Ready.
                                    Defaults to 0.
                                  format: int32
                                  type: integer
                                factor:
                                  description: |-
                                    factor specifies the factor to apply to the resource request.
                                    This field is required when Type is "Factor".
                                  format: int32
                                  type: integer
                                quantity:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: |-
                                    quantity specifies the absolute resource quantity to be used as the
                                    resource request and limit during the boost phase.
                                    This field is required when Type is "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 specifies the kind of boost to apply.
                                    Supported values are: "Factor", "Quantity".
                                    No startupboost will be applied for unrecognized values.
                                  enum:
                                  - Factor
                                  - Quantity
                                  type: string
                              required:
                              - type
                              type: object
                              x-kubernetes-validations:
                              - message: factor is required when type is Factor and
                                  forbidden otherwise
                                rule: (self.type == 'Factor') == has(self.factor)
                              - message: quantity is required when type is Quantity
                                  and forbidden otherwise
                                rule: (self.type == 'Quantity') == has(self.quantity)
                          type: object
                      type: object
                    type: array
                type: object
              startupBoost:
                description: startupBoost specifies the startup boost policy for the
                  pod.
                properties:
                  cpu:
                    description: |-
                      cpu specifies the CPU startup boost policy.
                      If this field is not set, no startup boost is applied.
                    properties:
                      durationSeconds:
                        description: |-
                          durationSeconds indicates for how long to keep the pod boosted after it goes to Ready.
                          Defaults to 0.
                        format: int32
                        type: integer
                      factor:
                        description: |-
                          factor specifies the factor to apply to the resource request.
                          This field is required when Type is "Factor".
                        format: int32
                        type: integer
                      quantity:
                        anyOf:
                        - type: integer
                        - type: string
                        description: |-
                          quantity specifies the absolute resource quantity to be used as the
                          resource request and limit during the boost phase.
                          This field is required when Type is "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 specifies the kind of boost to apply.
                          Supported values are: "Factor", "Quantity".
                          No startupboost will be applied for unrecognized values.
                        enum:
                        - Factor
                        - Quantity
                        type: string
                    required:
                    - type
                    type: object
                    x-kubernetes-validations:
                    - message: factor is required when type is Factor and forbidden
                        otherwise
                      rule: (self.type == 'Factor') == has(self.factor)
                    - message: quantity is required when type is Quantity and forbidden
                        otherwise
                      rule: (self.type == 'Quantity') == has(self.quantity)
                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:
                  evictAfterOOMSeconds:
                    description: |-
                      evictAfterOOMSeconds specifies the time in seconds to wait after an OOM event before
                      considering the pod for eviction. Pods that have OOMed in less than this time
                      since start will be evicted.
                    format: int32
                    minimum: 1
                    type: integer
                  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: vertical-pod-autoscaler/templates/admission-controller-pdb.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: vertical-pod-autoscaler-admission-controller
  namespace: default
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-controller
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-admission-controller
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: vertical-pod-autoscaler
      app.kubernetes.io/instance: vertical-pod-autoscaler
      app.kubernetes.io/component: admission-controller
  minAvailable: 1
---
# Source: vertical-pod-autoscaler/templates/recommender-pdb.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: vertical-pod-autoscaler-recommender
  namespace: default
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-recommender
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: vertical-pod-autoscaler
      app.kubernetes.io/instance: vertical-pod-autoscaler
      app.kubernetes.io/component: recommender
  minAvailable: 1
---
# Source: vertical-pod-autoscaler/templates/updater-pdb.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: vertical-pod-autoscaler-updater
  namespace: default
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: updater
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-updater
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: vertical-pod-autoscaler
      app.kubernetes.io/instance: vertical-pod-autoscaler
      app.kubernetes.io/component: updater
  minAvailable: 1
---
# Source: vertical-pod-autoscaler/templates/admission-contoller-serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: vertical-pod-autoscaler-admission-controller
  namespace: default
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-controller
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-admission-controller
---
# Source: vertical-pod-autoscaler/templates/recommender-serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: vertical-pod-autoscaler-recommender
  namespace: default
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-recommender
---
# Source: vertical-pod-autoscaler/templates/updater-serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: vertical-pod-autoscaler-updater
  namespace: default
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: updater
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-updater
---
# Source: vertical-pod-autoscaler/templates/admission-controller-clusterrole.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vertical-pod-autoscaler-admission-controller
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-controller
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-admission-controller
rules:
  - apiGroups:
      - ""
    resources:
      - pods
      - configmaps
      - nodes
      - limitranges
      - replicationcontrollers
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - apps
    resources:
      - deployments
      - replicasets
      - daemonsets
      - statefulsets
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - batch
    resources:
      - jobs
      - cronjobs
    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
  # Allow access to scale subresources for resolving target selectors
  - apiGroups:
      - "*"
    resources:
      - "*/scale"
    verbs:
      - get
      - watch
---
# Source: vertical-pod-autoscaler/templates/recommender-clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vertical-pod-autoscaler-recommender-metrics-reader
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-recommender
rules:
  - apiGroups:
      - "metrics.k8s.io"
    resources:
      - pods
    verbs:
      - get
      - list
---
# Source: vertical-pod-autoscaler/templates/recommender-clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vertical-pod-autoscaler-recommender-actor
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-recommender
rules:
  - apiGroups:
      - ""
    resources:
      - pods
      - nodes
      - limitranges
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - ""
      - events.k8s.io
    resources:
      - events
    verbs:
      - create
      - get
      - list
      - watch
      - patch
      - update
  - apiGroups:
      - "poc.autoscaling.k8s.io"
    resources:
      - verticalpodautoscalers
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - "autoscaling.k8s.io"
    resources:
      - verticalpodautoscalers
    verbs:
      - get
      - list
      - watch
---
# Source: vertical-pod-autoscaler/templates/recommender-clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vertical-pod-autoscaler-recommender-status-actor
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-recommender
rules:
  - apiGroups:
      - "autoscaling.k8s.io"
    resources:
      - verticalpodautoscalers/status
    verbs:
      - get
      - patch
---
# Source: vertical-pod-autoscaler/templates/recommender-clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vertical-pod-autoscaler-recommender-checkpoint-actor
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-recommender
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: vertical-pod-autoscaler/templates/recommender-clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vertical-pod-autoscaler-recommender-target-reader
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-recommender
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: vertical-pod-autoscaler/templates/updater-clusterrole.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vertical-pod-autoscaler-updater-in-place
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: updater
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-updater
rules:
  - apiGroups:
      - ""
    resources:
      - pods/resize
      - pods
    verbs:
    - patch
---
# Source: vertical-pod-autoscaler/templates/updater-clusterrole.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vertical-pod-autoscaler-updater-actor
rules:
  - apiGroups:
      - ""
    resources:
      - pods
      - nodes
      - limitranges
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - ""
      - events.k8s.io
    resources:
      - events
    verbs:
      - create
      - get
      - list
      - watch
      - patch
      - update
  - apiGroups:
      - "poc.autoscaling.k8s.io"
    resources:
      - verticalpodautoscalers
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - "autoscaling.k8s.io"
    resources:
      - verticalpodautoscalers
    verbs:
      - get
      - list
      - watch
---
# Source: vertical-pod-autoscaler/templates/updater-clusterrole.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vertical-pod-autoscaler-updater-evictioner
rules:
  - apiGroups:
      - "apps"
      - "extensions"
    resources:
      - replicasets
    verbs:
      - get
  - apiGroups:
      - ""
    resources:
      - pods/eviction
    verbs:
      - create
---
# Source: vertical-pod-autoscaler/templates/updater-clusterrole.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vertical-pod-autoscaler-updater-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: vertical-pod-autoscaler/templates/updater-clusterrole.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vertical-pod-autoscaler-updater-status-reader
rules:
  - apiGroups:
      - "coordination.k8s.io"
    resources:
      - leases
    verbs:
      - get
      - list
      - watch
---
# Source: vertical-pod-autoscaler/templates/admission-controller-clusterrolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vertical-pod-autoscaler-admission-controller
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-controller
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-admission-controller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vertical-pod-autoscaler-admission-controller
subjects:
  - kind: ServiceAccount
    name: vertical-pod-autoscaler-admission-controller
    namespace: default
---
# Source: vertical-pod-autoscaler/templates/recommender-clusterrolebindings.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vertical-pod-autoscaler-recommender-metrics-reader
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-recommender
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vertical-pod-autoscaler-recommender-metrics-reader
subjects:
  - kind: ServiceAccount
    name: vertical-pod-autoscaler-recommender
    namespace: default
---
# Source: vertical-pod-autoscaler/templates/recommender-clusterrolebindings.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vertical-pod-autoscaler-recommender-actor
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-recommender
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vertical-pod-autoscaler-recommender-actor
subjects:
  - kind: ServiceAccount
    name: vertical-pod-autoscaler-recommender
    namespace: default
---
# Source: vertical-pod-autoscaler/templates/recommender-clusterrolebindings.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vertical-pod-autoscaler-recommender-status-actor
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-recommender
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vertical-pod-autoscaler-recommender-status-actor
subjects:
  - kind: ServiceAccount
    name: vertical-pod-autoscaler-recommender
    namespace: default
---
# Source: vertical-pod-autoscaler/templates/recommender-clusterrolebindings.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vertical-pod-autoscaler-recommender-checkpoint-actor
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-recommender
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vertical-pod-autoscaler-recommender-checkpoint-actor
subjects:
  - kind: ServiceAccount
    name: vertical-pod-autoscaler-recommender
    namespace: default
---
# Source: vertical-pod-autoscaler/templates/recommender-clusterrolebindings.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vertical-pod-autoscaler-recommender-target-reader
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-recommender
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vertical-pod-autoscaler-recommender-target-reader
subjects:
  - kind: ServiceAccount
    name: vertical-pod-autoscaler-recommender
    namespace: default
---
# Source: vertical-pod-autoscaler/templates/updater-clusterrolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vertical-pod-autoscaler-updater-in-place-binding
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: updater
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-updater
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vertical-pod-autoscaler-updater-in-place
subjects:
  - kind: ServiceAccount
    name: vertical-pod-autoscaler-updater
    namespace: default
---
# Source: vertical-pod-autoscaler/templates/updater-clusterrolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vertical-pod-autoscaler-updater-actor-binding
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: updater
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-updater
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vertical-pod-autoscaler-updater-actor
subjects:
  - kind: ServiceAccount
    name: vertical-pod-autoscaler-updater
    namespace: default
---
# Source: vertical-pod-autoscaler/templates/updater-clusterrolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vertical-pod-autoscaler-updater-target-reader-binding
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: updater
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-updater
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vertical-pod-autoscaler-updater-target-reader
subjects:
  - kind: ServiceAccount
    name: vertical-pod-autoscaler-updater
    namespace: default
---
# Source: vertical-pod-autoscaler/templates/updater-clusterrolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vertical-pod-autoscaler-updater-evictioner-binding
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: updater
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-updater
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vertical-pod-autoscaler-updater-evictioner
subjects:
  - kind: ServiceAccount
    name: vertical-pod-autoscaler-updater
    namespace: default
---
# Source: vertical-pod-autoscaler/templates/updater-clusterrolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vertical-pod-autoscaler-updater-status-reader-binding
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: updater
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-updater
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vertical-pod-autoscaler-updater-status-reader
subjects:
  - kind: ServiceAccount
    name: vertical-pod-autoscaler-updater
    namespace: default
---
# Source: vertical-pod-autoscaler/templates/recommender-leader-election-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: vertical-pod-autoscaler-recommender-leader-locking
  namespace: default
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-recommender
rules:
  - apiGroups:
      - "coordination.k8s.io"
    resources:
      - leases
    verbs:
      - create
  - apiGroups:
      - "coordination.k8s.io"
    resourceNames:
      - vpa-recommender-lease
    resources:
      - leases
    verbs:
      - get
      - watch
      - update
---
# Source: vertical-pod-autoscaler/templates/updater-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: vertical-pod-autoscaler-updater-leader-locking
  namespace: default
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: updater
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-updater
rules:
  - apiGroups:
      - "coordination.k8s.io"
    resources:
      - leases
    verbs:
      - create
  - apiGroups:
      - "coordination.k8s.io"
    resourceNames:
      - vpa-updater-lease
    resources:
      - leases
    verbs:
      - get
      - watch
      - update
---
# Source: vertical-pod-autoscaler/templates/recommender-leader-election-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: vertical-pod-autoscaler-recommender-leader-locking
  namespace: default
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-recommender
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: vertical-pod-autoscaler-recommender-leader-locking
subjects:
  - kind: ServiceAccount
    name: vertical-pod-autoscaler-recommender
    namespace: default
---
# Source: vertical-pod-autoscaler/templates/updater-rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: vertical-pod-autoscaler-updater-leader-locking-binding
  namespace: default
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: vertical-pod-autoscaler-updater-leader-locking
subjects:
  - kind: ServiceAccount
    name: vertical-pod-autoscaler-updater
    namespace: default
---
# Source: vertical-pod-autoscaler/templates/admission-controller-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: vpa-webhook
  namespace: default
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-controller
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-admission-controller
spec:
  type: ClusterIP
  ports:
    - port: 443
      protocol: TCP
      targetPort: 8000
  selector:
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/component: admission-controller
---
# Source: vertical-pod-autoscaler/templates/admission-controller-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: vertical-pod-autoscaler-admission-controller
  namespace: default
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-controller
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-admission-controller
spec:
  replicas: 2
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/name: vertical-pod-autoscaler
      app.kubernetes.io/instance: vertical-pod-autoscaler
      app.kubernetes.io/component: admission-controller
  template:
    metadata:
      labels:
        app.kubernetes.io/name: vertical-pod-autoscaler
        app.kubernetes.io/instance: vertical-pod-autoscaler
        app.kubernetes.io/component: admission-controller
    spec:
      serviceAccountName:  vertical-pod-autoscaler-admission-controller
      securityContext:
        runAsNonRoot: true
        runAsUser: 65534
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: app.kubernetes.io/component
                  operator: In
                  values:
                  - admission-controller
              topologyKey: kubernetes.io/hostname
            weight: 100
      containers:
        - name: admission-controller
          image: registry.k8s.io/autoscaling/vpa-admission-controller:1.6.0
          imagePullPolicy: IfNotPresent
          env:
            - name: NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
          args:
            - --v=4
            - --stderrthreshold=info
            - --register-webhook=false
            - --webhook-service=vpa-webhook
          ports:
            - containerPort: 8000
              protocol: TCP
            - containerPort: 8944
              name: prometheus
              protocol: TCP
          livenessProbe:
            httpGet:
              path: /health-check
              port: prometheus
              scheme: HTTP
            initialDelaySeconds: 5
            periodSeconds: 10
            failureThreshold: 3
          readinessProbe:
            httpGet:
              path: /health-check
              port: prometheus
              scheme: HTTP
            periodSeconds: 10
            failureThreshold: 3
          volumeMounts:
            - mountPath: /etc/tls-certs
              name: tls-certs
              readOnly: true
      volumes:
        - name: tls-certs
          secret:
            defaultMode: 420
            items:
            - key: ca
              path: caCert.pem
            - key: cert
              path: serverCert.pem
            - key: key
              path: serverKey.pem
            secretName: vpa-tls-certs
---
# Source: vertical-pod-autoscaler/templates/recommender-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: vertical-pod-autoscaler-recommender
  namespace: default
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: recommender
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-recommender
spec:
  replicas: 2
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/name: vertical-pod-autoscaler
      app.kubernetes.io/instance: vertical-pod-autoscaler
      app.kubernetes.io/component: recommender
  template:
    metadata:
      labels:
        app.kubernetes.io/name: vertical-pod-autoscaler
        app.kubernetes.io/instance: vertical-pod-autoscaler
        app.kubernetes.io/component: recommender
    spec:
      serviceAccountName: vertical-pod-autoscaler-recommender
      securityContext:
        runAsNonRoot: true
        runAsUser: 65534
      containers:
        - name: recommender
          image: registry.k8s.io/autoscaling/vpa-recommender:1.6.0
          imagePullPolicy: IfNotPresent
          env:
            - name: NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
          args:
            - --v=4
            - --stderrthreshold=info
            - --leader-elect=true
            - --leader-elect-resource-namespace=default
            - --leader-elect-resource-name=vpa-recommender-lease
            - --leader-elect-lease-duration=15s
            - --leader-elect-renew-deadline=10s
            - --leader-elect-retry-period=2s
          ports:
            - name: prometheus
              containerPort: 8942
              protocol: TCP
          livenessProbe:
            httpGet:
              path: /health-check
              port: prometheus
              scheme: HTTP
            initialDelaySeconds: 5
            periodSeconds: 10
            failureThreshold: 3
          readinessProbe:
            httpGet:
              path: /health-check
              port: prometheus
              scheme: HTTP
            periodSeconds: 10
            failureThreshold: 3
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: app.kubernetes.io/component
                  operator: In
                  values:
                  - recommender
              topologyKey: kubernetes.io/hostname
            weight: 100
---
# Source: vertical-pod-autoscaler/templates/updater-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: vertical-pod-autoscaler-updater
  namespace: default
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: updater
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-updater
spec:
  replicas: 2
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/name: vertical-pod-autoscaler
      app.kubernetes.io/instance: vertical-pod-autoscaler
      app.kubernetes.io/component: updater
  template:
    metadata:
      labels:
        app.kubernetes.io/name: vertical-pod-autoscaler
        app.kubernetes.io/instance: vertical-pod-autoscaler
        app.kubernetes.io/component: updater
    spec:
      serviceAccountName: vertical-pod-autoscaler-updater
      securityContext:
        runAsNonRoot: true
        runAsUser: 65534
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: app.kubernetes.io/component
                  operator: In
                  values:
                  - updater
              topologyKey: kubernetes.io/hostname
            weight: 100
      containers:
        - name: updater
          image: registry.k8s.io/autoscaling/vpa-updater:1.6.0
          imagePullPolicy: IfNotPresent
          env:
            - name: NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
          args:
            - --v=4
            - --stderrthreshold=info
            - --leader-elect=true
            - --leader-elect-resource-namespace=default
            - --leader-elect-resource-name=vpa-updater-lease
            - --leader-elect-lease-duration=15s
            - --leader-elect-renew-deadline=10s
            - --leader-elect-retry-period=2s
          ports:
            - name: prometheus
              containerPort: 8943
          livenessProbe:
            httpGet:
              path: /health-check
              port: prometheus
              scheme: HTTP
            initialDelaySeconds: 5
            periodSeconds: 10
            failureThreshold: 3
          readinessProbe:
            httpGet:
              path: /health-check
              port: prometheus
              scheme: HTTP
            periodSeconds: 10
            failureThreshold: 3
---
# Source: vertical-pod-autoscaler/templates/admission-controller-webhook.yaml
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  name: vertical-pod-autoscaler-webhook-config
  labels:
    helm.sh/chart: vertical-pod-autoscaler-0.9.0
    app.kubernetes.io/name: vertical-pod-autoscaler
    app.kubernetes.io/instance: vertical-pod-autoscaler
    app.kubernetes.io/version: "1.6.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-controller
    app.kubernetes.io/component-instance: vertical-pod-autoscaler-admission-controller
webhooks:
- admissionReviewVersions:
  - v1
  clientConfig:
    # caBundle will be injected by the certgen patch job (post-install/post-upgrade hook)
    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
