{{- if .Values.crds.managed }}

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.7.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: DesiredNumber
      type: integer
    - description: The current number of pods.
      jsonPath: .status.currentNumberScheduled
      name: CurrentNumber
      type: integer
    - description: The updated number of pods.
      jsonPath: .status.updatedNumberScheduled
      name: UpdatedNumberScheduled
      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. 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. 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: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
{{- end }}
