---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    exclude.release.openshift.io/internal-openshift-hosted: "true"
  creationTimestamp: "2022-03-08T10:13:45Z"
  generation: 1
  managedFields:
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:exclude.release.openshift.io/internal-openshift-hosted: {}
      f:spec:
        f:conversion:
          .: {}
          f:strategy: {}
        f:group: {}
        f:names:
          f:kind: {}
          f:listKind: {}
          f:plural: {}
          f:shortNames: {}
          f:singular: {}
        f:scope: {}
        f:versions: {}
      f:status:
        f:storedVersions: {}
    manager: cluster-version-operator
    operation: Update
    time: "2022-03-08T10:13:45Z"
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:status:
        f:acceptedNames:
          f:kind: {}
          f:listKind: {}
          f:plural: {}
          f:shortNames: {}
          f:singular: {}
        f:conditions: {}
    manager: kube-apiserver
    operation: Update
    time: "2022-03-08T10:13:46Z"
  name: clusterautoscalers.autoscaling.openshift.io
  resourceVersion: "857"
  selfLink: /apis/apiextensions.k8s.io/v1/customresourcedefinitions/clusterautoscalers.autoscaling.openshift.io
  uid: 77449f48-496f-48fa-92f4-1f8a0f106eea
spec:
  conversion:
    strategy: None
  group: autoscaling.openshift.io
  names:
    kind: ClusterAutoscaler
    listKind: ClusterAutoscalerList
    plural: clusterautoscalers
    shortNames:
    - ca
    singular: clusterautoscaler
  scope: Cluster
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: ClusterAutoscaler is the Schema for the clusterautoscalers API
        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: Desired state of ClusterAutoscaler resource
            properties:
              balanceSimilarNodeGroups:
                description: BalanceSimilarNodeGroups enables/disables the `--balance-similar-node-groups` cluster-autocaler feature. This feature will automatically identify node groups with the same instance type and the same set of labels and try to keep the respective sizes of those node groups balanced.
                type: boolean
              ignoreDaemonsetsUtilization:
                description: Enables/Disables `--ignore-daemonsets-utilization` CA feature flag. Should CA ignore DaemonSet pods when calculating resource utilization for scaling down. false by default
                type: boolean
              maxNodeProvisionTime:
                description: Maximum time CA waits for node to be provisioned. Expects an unsigned duration string of decimal numbers each with optional fraction and a unit suffix, eg "300ms", "1.5h" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
                pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
                type: string
              maxPodGracePeriod:
                description: Gives pods graceful termination time before scaling down
                format: int32
                type: integer
              podPriorityThreshold:
                description: 'To allow users to schedule "best-effort" pods, which shouldn''t trigger Cluster Autoscaler actions, but only run when there are spare resources available, More info: https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#how-does-cluster-autoscaler-work-with-pod-priority-and-preemption'
                format: int32
                type: integer
              resourceLimits:
                description: Constraints of autoscaling resources
                properties:
                  cores:
                    description: Minimum and maximum number of cores in cluster, in the format <min>:<max>. Cluster autoscaler will not scale the cluster beyond these numbers.
                    properties:
                      max:
                        format: int32
                        type: integer
                      min:
                        format: int32
                        minimum: 0
                        type: integer
                    required:
                    - max
                    - min
                    type: object
                  gpus:
                    description: Minimum and maximum number of different GPUs in cluster, in the format <gpu_type>:<min>:<max>. Cluster autoscaler will not scale the cluster beyond these numbers. Can be passed multiple times.
                    items:
                      properties:
                        max:
                          format: int32
                          minimum: 1
                          type: integer
                        min:
                          format: int32
                          minimum: 0
                          type: integer
                        type:
                          minLength: 1
                          type: string
                      required:
                      - max
                      - min
                      - type
                      type: object
                    type: array
                  maxNodesTotal:
                    description: Maximum number of nodes in all node groups. Cluster autoscaler will not grow the cluster beyond this number.
                    format: int32
                    minimum: 0
                    type: integer
                  memory:
                    description: Minimum and maximum number of gigabytes of memory in cluster, in the format <min>:<max>. Cluster autoscaler will not scale the cluster beyond these numbers.
                    properties:
                      max:
                        format: int32
                        type: integer
                      min:
                        format: int32
                        minimum: 0
                        type: integer
                    required:
                    - max
                    - min
                    type: object
                type: object
              scaleDown:
                description: Configuration of scale down operation
                properties:
                  delayAfterAdd:
                    description: How long after scale up that scale down evaluation resumes
                    pattern: ([0-9]*(\.[0-9]*)?[a-z]+)+
                    type: string
                  delayAfterDelete:
                    description: How long after node deletion that scale down evaluation resumes, defaults to scan-interval
                    pattern: ([0-9]*(\.[0-9]*)?[a-z]+)+
                    type: string
                  delayAfterFailure:
                    description: How long after scale down failure that scale down evaluation resumes
                    pattern: ([0-9]*(\.[0-9]*)?[a-z]+)+
                    type: string
                  enabled:
                    description: Should CA scale down the cluster
                    type: boolean
                  unneededTime:
                    description: How long a node should be unneeded before it is eligible for scale down
                    pattern: ([0-9]*(\.[0-9]*)?[a-z]+)+
                    type: string
                required:
                - enabled
                type: object
              skipNodesWithLocalStorage:
                description: Enables/Disables `--skip-nodes-with-local-storage` CA feature flag. If true cluster autoscaler will never delete nodes with pods with local storage, e.g. EmptyDir or HostPath. true by default at autoscaler
                type: boolean
            type: object
          status:
            description: Most recently observed status of ClusterAutoscaler resource
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ClusterAutoscaler
    listKind: ClusterAutoscalerList
    plural: clusterautoscalers
    shortNames:
    - ca
    singular: clusterautoscaler
  conditions:
  - lastTransitionTime: "2022-03-08T10:13:46Z"
    message: no conflicts found
    reason: NoConflicts
    status: "True"
    type: NamesAccepted
  - lastTransitionTime: "2022-03-08T10:13:46Z"
    message: the initial names have been accepted
    reason: InitialNamesAccepted
    status: "True"
    type: Established
  storedVersions:
  - v1
