{{- if .Values.crds.managed }}
 
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.0
  creationTimestamp: null
  name: daemonsets.apps.kruise.io
spec:
  group: apps.kruise.io
  names:
    kind: DaemonSet
    listKind: DaemonSetList
    plural: daemonsets
    shortNames:
    - daemon
    - ads
    singular: daemonset
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: The desired number of pods.
      jsonPath: .status.desiredNumberScheduled
      name: DESIRED
      type: integer
    - description: The current number of pods.
      jsonPath: .status.currentNumberScheduled
      name: CURRENT
      type: integer
    - description: The ready number of pods.
      jsonPath: .status.numberReady
      name: READY
      type: integer
    - description: The updated number of pods.
      jsonPath: .status.updatedNumberScheduled
      name: UP-TO-DATE
      type: integer
    - description: The updated number of pods.
      jsonPath: .status.numberAvailable
      name: AVAILABLE
      type: integer
    - description: CreationTimestamp is a timestamp representing the server time when
        this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC.
      jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    - description: The containers of currently  daemonset.
      jsonPath: .spec.template.spec.containers[*].name
      name: CONTAINERS
      priority: 1
      type: string
    - description: The images of currently advanced daemonset.
      jsonPath: .spec.template.spec.containers[*].image
      name: IMAGES
      priority: 1
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: DaemonSet is the Schema for the daemonsets 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: DaemonSetSpec defines the desired state of DaemonSet
            properties:
              burstReplicas:
                anyOf:
                - type: integer
                - type: string
                description: BurstReplicas is a rate limiter for booting pods on a
                  lot of pods. The default value is 250
                x-kubernetes-int-or-string: true
              lifecycle:
                description: Lifecycle defines the lifecycle hooks for Pods pre-delete,
                  in-place update. Currently, we only support pre-delete hook for
                  Advanced DaemonSet.
                properties:
                  inPlaceUpdate:
                    description: InPlaceUpdate is the hook before Pod to update and
                      after Pod has been updated.
                    properties:
                      finalizersHandler:
                        items:
                          type: string
                        type: array
                      labelsHandler:
                        additionalProperties:
                          type: string
                        type: object
                      markPodNotReady:
                        description: 'MarkPodNotReady = true means: - Pod will be
                          set to ''NotReady'' at preparingDelete/preparingUpdate state.
                          - Pod will be restored to ''Ready'' at Updated state if
                          it was set to ''NotReady'' at preparingUpdate state. Currently,
                          MarkPodNotReady only takes effect on InPlaceUpdate & PreDelete
                          hook. Default to false.'
                        type: boolean
                    type: object
                  preDelete:
                    description: PreDelete is the hook before Pod to be deleted.
                    properties:
                      finalizersHandler:
                        items:
                          type: string
                        type: array
                      labelsHandler:
                        additionalProperties:
                          type: string
                        type: object
                      markPodNotReady:
                        description: 'MarkPodNotReady = true means: - Pod will be
                          set to ''NotReady'' at preparingDelete/preparingUpdate state.
                          - Pod will be restored to ''Ready'' at Updated state if
                          it was set to ''NotReady'' at preparingUpdate state. Currently,
                          MarkPodNotReady only takes effect on InPlaceUpdate & PreDelete
                          hook. Default to false.'
                        type: boolean
                    type: object
                  preNormal:
                    description: PreNormal is the hook after Pod to be created and
                      ready to be Normal.
                    properties:
                      finalizersHandler:
                        items:
                          type: string
                        type: array
                      labelsHandler:
                        additionalProperties:
                          type: string
                        type: object
                      markPodNotReady:
                        description: 'MarkPodNotReady = true means: - Pod will be
                          set to ''NotReady'' at preparingDelete/preparingUpdate state.
                          - Pod will be restored to ''Ready'' at Updated state if
                          it was set to ''NotReady'' at preparingUpdate state. Currently,
                          MarkPodNotReady only takes effect on InPlaceUpdate & PreDelete
                          hook. Default to false.'
                        type: boolean
                    type: object
                type: object
              minReadySeconds:
                description: The minimum number of seconds for which a newly created
                  DaemonSet pod should be ready without any of its container crashing,
                  for it to be considered available. Defaults to 0 (pod will be considered
                  available as soon as it is ready).
                format: int32
                type: integer
              revisionHistoryLimit:
                description: The number of old history to retain to allow rollback.
                  This is a pointer to distinguish between explicit zero and not specified.
                  Defaults to 10.
                format: int32
                type: integer
              selector:
                description: 'A label query over pods that are managed by the daemon
                  set. Must match in order to be controlled. It must match the pod
                  template''s labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors'
                properties:
                  matchExpressions:
                    description: matchExpressions is a list of label selector requirements.
                      The requirements are ANDed.
                    items:
                      description: A label selector requirement is a selector that
                        contains values, a key, and an operator that relates the key
                        and values.
                      properties:
                        key:
                          description: key is the label key that the selector applies
                            to.
                          type: string
                        operator:
                          description: operator represents a key's relationship to
                            a set of values. Valid operators are In, NotIn, Exists
                            and DoesNotExist.
                          type: string
                        values:
                          description: values is an array of string values. If the
                            operator is In or NotIn, the values array must be non-empty.
                            If the operator is Exists or DoesNotExist, the values
                            array must be empty. This array is replaced during a strategic
                            merge patch.
                          items:
                            type: string
                          type: array
                      required:
                      - key
                      - operator
                      type: object
                    type: array
                  matchLabels:
                    additionalProperties:
                      type: string
                    description: matchLabels is a map of {key,value} pairs. A single
                      {key,value} in the matchLabels map is equivalent to an element
                      of matchExpressions, whose key field is "key", the operator
                      is "In", and the values array contains only "value". The requirements
                      are ANDed.
                    type: object
                type: object
              template:
                description: 'An object that describes the pod that will be created.
                  The DaemonSet will create exactly one copy of this pod on every
                  node that matches the template''s node selector (or on every node
                  if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template'
                x-kubernetes-preserve-unknown-fields: true
              updateStrategy:
                description: An update strategy to replace existing DaemonSet pods
                  with new pods.
                properties:
                  rollingUpdate:
                    description: Rolling update config params. Present only if type
                      = "RollingUpdate".
                    properties:
                      maxSurge:
                        anyOf:
                        - type: integer
                        - type: string
                        description: 'The maximum number of nodes with an existing
                          available DaemonSet pod that can have an updated DaemonSet
                          pod during during an update. Value can be an absolute number
                          (ex: 5) or a percentage of desired pods (ex: 10%). This
                          can not be 0 if MaxUnavailable is 0. Absolute number is
                          calculated from percentage by rounding up to a minimum of
                          1. Default value is 0. Example: when this is set to 30%,
                          at most 30% of the total number of nodes that should be
                          running the daemon pod (i.e. status.desiredNumberScheduled)
                          can have their a new pod created before the old pod is marked
                          as deleted. The update starts by launching new pods on 30%
                          of nodes. Once an updated pod is available (Ready for at
                          least minReadySeconds) the old DaemonSet pod on that node
                          is marked deleted. If the old pod becomes unavailable for
                          any reason (Ready transitions to false, is evicted, or is
                          drained) an updated pod is immediatedly created on that
                          node without considering surge limits. Allowing surge implies
                          the possibility that the resources consumed by the daemonset
                          on any given node can double if the readiness check fails,
                          and so resource intensive daemonsets should take into account
                          that they may cause evictions during disruption. This is
                          beta field and enabled/disabled by DaemonSetUpdateSurge
                          feature gate.'
                        x-kubernetes-int-or-string: true
                      maxUnavailable:
                        anyOf:
                        - type: integer
                        - type: string
                        description: 'The maximum number of DaemonSet pods that can
                          be unavailable during the update. Value can be an absolute
                          number (ex: 5) or a percentage of total number of DaemonSet
                          pods at the start of the update (ex: 10%). Absolute number
                          is calculated from percentage by rounding up. This cannot
                          be 0 if MaxSurge is 0 Default value is 1. Example: when
                          this is set to 30%, at most 30% of the total number of nodes
                          that should be running the daemon pod (i.e. status.desiredNumberScheduled)
                          can have their pods stopped for an update at any given time.
                          The update starts by stopping at most 30% of those DaemonSet
                          pods and then brings up new DaemonSet pods in their place.
                          Once the new pods are available, it then proceeds onto other
                          DaemonSet pods, thus ensuring that at least 70% of original
                          number of DaemonSet pods are available at all times during
                          the update.'
                        x-kubernetes-int-or-string: true
                      partition:
                        description: The number of DaemonSet pods remained to be old
                          version. Default value is 0. Maximum value is status.DesiredNumberScheduled,
                          which means no pod will be updated.
                        format: int32
                        type: integer
                      paused:
                        description: Indicates that the daemon set is paused and will
                          not be processed by the daemon set controller.
                        type: boolean
                      rollingUpdateType:
                        description: Type is to specify which kind of rollingUpdate.
                        type: string
                      selector:
                        description: A label query over nodes that are managed by
                          the daemon set RollingUpdate. Must match in order to be
                          controlled. It must match the node's labels.
                        properties:
                          matchExpressions:
                            description: matchExpressions is a list of label selector
                              requirements. The requirements are ANDed.
                            items:
                              description: A label selector requirement is a selector
                                that contains values, a key, and an operator that
                                relates the key and values.
                              properties:
                                key:
                                  description: key is the label key that the selector
                                    applies to.
                                  type: string
                                operator:
                                  description: operator represents a key's relationship
                                    to a set of values. Valid operators are In, NotIn,
                                    Exists and DoesNotExist.
                                  type: string
                                values:
                                  description: values is an array of string values.
                                    If the operator is In or NotIn, the values array
                                    must be non-empty. If the operator is Exists or
                                    DoesNotExist, the values array must be empty.
                                    This array is replaced during a strategic merge
                                    patch.
                                  items:
                                    type: string
                                  type: array
                              required:
                              - key
                              - operator
                              type: object
                            type: array
                          matchLabels:
                            additionalProperties:
                              type: string
                            description: matchLabels is a map of {key,value} pairs.
                              A single {key,value} in the matchLabels map is equivalent
                              to an element of matchExpressions, whose key field is
                              "key", the operator is "In", and the values array contains
                              only "value". The requirements are ANDed.
                            type: object
                        type: object
                    type: object
                  type:
                    description: Type of daemon set update. Can be "RollingUpdate"
                      or "OnDelete". Default is RollingUpdate.
                    type: string
                type: object
            required:
            - selector
            - template
            type: object
          status:
            description: DaemonSetStatus defines the observed state of DaemonSet
            properties:
              collisionCount:
                description: Count of hash collisions for the DaemonSet. The DaemonSet
                  controller uses this field as a collision avoidance mechanism when
                  it needs to create the name for the newest ControllerRevision.
                format: int32
                type: integer
              conditions:
                description: Represents the latest available observations of a DaemonSet's
                  current state.
                items:
                  description: DaemonSetCondition describes the state of a DaemonSet
                    at a certain point.
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of DaemonSet condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              currentNumberScheduled:
                description: 'The number of nodes that are running at least 1 daemon
                  pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/'
                format: int32
                type: integer
              daemonSetHash:
                description: DaemonSetHash is the controller-revision-hash, which
                  represents the latest version of the DaemonSet.
                type: string
              desiredNumberScheduled:
                description: 'The total number of nodes that should be running the
                  daemon pod (including nodes correctly running the daemon pod). More
                  info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/'
                format: int32
                type: integer
              numberAvailable:
                description: The number of nodes that should be running the daemon
                  pod and have one or more of the daemon pod running and available
                  (ready for at least spec.minReadySeconds)
                format: int32
                type: integer
              numberMisscheduled:
                description: 'The number of nodes that are running the daemon pod,
                  but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/'
                format: int32
                type: integer
              numberReady:
                description: The number of nodes that should be running the daemon
                  pod and have one or more of the daemon pod running and ready.
                format: int32
                type: integer
              numberUnavailable:
                description: The number of nodes that should be running the daemon
                  pod and have none of the daemon pod running and available (ready
                  for at least spec.minReadySeconds)
                format: int32
                type: integer
              observedGeneration:
                description: The most recent generation observed by the daemon set
                  controller.
                format: int64
                type: integer
              updatedNumberScheduled:
                description: The total number of nodes that are running updated daemon
                  pod
                format: int32
                type: integer
            required:
            - currentNumberScheduled
            - daemonSetHash
            - desiredNumberScheduled
            - numberMisscheduled
            - numberReady
            - updatedNumberScheduled
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
{{- end }}
