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

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.7.0
  creationTimestamp: null
  name: containerrecreaterequests.apps.kruise.io
spec:
  group: apps.kruise.io
  names:
    kind: ContainerRecreateRequest
    listKind: ContainerRecreateRequestList
    plural: containerrecreaterequests
    shortNames:
    - crr
    singular: containerrecreaterequest
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Phase of this ContainerRecreateRequest.
      jsonPath: .status.phase
      name: PHASE
      type: string
    - description: Pod name of this ContainerRecreateRequest.
      jsonPath: .spec.podName
      name: POD
      type: string
    - description: Pod name of this ContainerRecreateRequest.
      jsonPath: .metadata.labels.crr\.apps\.kruise\.io/node-name
      name: NODE
      type: string
    - 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
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: ContainerRecreateRequest is the Schema for the containerrecreaterequests
          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: ContainerRecreateRequestSpec defines the desired state of
              ContainerRecreateRequest
            properties:
              activeDeadlineSeconds:
                description: ActiveDeadlineSeconds is the deadline duration of this
                  ContainerRecreateRequest.
                format: int64
                type: integer
              containers:
                description: Containers contains the containers that need to recreate
                  in the Pod.
                items:
                  description: ContainerRecreateRequestContainer defines the container
                    that need to recreate.
                  properties:
                    name:
                      description: Name of the container that need to recreate. It
                        must be existing in the real pod.Spec.Containers.
                      type: string
                    ports:
                      description: Ports is synced from the real container in Pod
                        spec during this ContainerRecreateRequest creating. Populated
                        by the system. Read-only.
                      items:
                        description: ContainerPort represents a network port in a
                          single container.
                        properties:
                          containerPort:
                            description: Number of port to expose on the pod's IP
                              address. This must be a valid port number, 0 < x < 65536.
                            format: int32
                            type: integer
                          hostIP:
                            description: What host IP to bind the external port to.
                            type: string
                          hostPort:
                            description: Number of port to expose on the host. If
                              specified, this must be a valid port number, 0 < x <
                              65536. If HostNetwork is specified, this must match
                              ContainerPort. Most containers do not need this.
                            format: int32
                            type: integer
                          name:
                            description: If specified, this must be an IANA_SVC_NAME
                              and unique within the pod. Each named port in a pod
                              must have a unique name. Name for the port that can
                              be referred to by services.
                            type: string
                          protocol:
                            default: TCP
                            description: Protocol for port. Must be UDP, TCP, or SCTP.
                              Defaults to "TCP".
                            type: string
                        required:
                        - containerPort
                        type: object
                      type: array
                    preStop:
                      description: PreStop is synced from the real container in Pod
                        spec during this ContainerRecreateRequest creating. Populated
                        by the system. Read-only.
                      properties:
                        exec:
                          description: One and only one of the following should be
                            specified. Exec specifies the action to take.
                          properties:
                            command:
                              description: Command is the command line to execute
                                inside the container, the working directory for the
                                command  is root ('/') in the container's filesystem.
                                The command is simply exec'd, it is not run inside
                                a shell, so traditional shell instructions ('|', etc)
                                won't work. To use a shell, you need to explicitly
                                call out to that shell. Exit status of 0 is treated
                                as live/healthy and non-zero is unhealthy.
                              items:
                                type: string
                              type: array
                          type: object
                        httpGet:
                          description: HTTPGet specifies the http request to perform.
                          properties:
                            host:
                              description: Host name to connect to, defaults to the
                                pod IP. You probably want to set "Host" in httpHeaders
                                instead.
                              type: string
                            httpHeaders:
                              description: Custom headers to set in the request. HTTP
                                allows repeated headers.
                              items:
                                description: HTTPHeader describes a custom header
                                  to be used in HTTP probes
                                properties:
                                  name:
                                    description: The header field name
                                    type: string
                                  value:
                                    description: The header field value
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            path:
                              description: Path to access on the HTTP server.
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              description: Name or number of the port to access on
                                the container. Number must be in the range 1 to 65535.
                                Name must be an IANA_SVC_NAME.
                              x-kubernetes-int-or-string: true
                            scheme:
                              description: Scheme to use for connecting to the host.
                                Defaults to HTTP.
                              type: string
                          required:
                          - port
                          type: object
                        tcpSocket:
                          description: 'TCPSocket specifies an action involving a
                            TCP port. TCP hooks not yet supported TODO: implement
                            a realistic TCP lifecycle hook'
                          properties:
                            host:
                              description: 'Optional: Host name to connect to, defaults
                                to the pod IP.'
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              description: Number or name of the port to access on
                                the container. Number must be in the range 1 to 65535.
                                Name must be an IANA_SVC_NAME.
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                      type: object
                    statusContext:
                      description: StatusContext is synced from the real Pod status
                        during this ContainerRecreateRequest creating. Populated by
                        the system. Read-only.
                      properties:
                        containerID:
                          description: Container's ID in the format 'docker://<container_id>'.
                          type: string
                        restartCount:
                          description: The number of times the container has been
                            restarted, currently based on the number of dead containers
                            that have not yet been removed. Note that this is calculated
                            from dead containers. But those containers are subject
                            to garbage collection. This value will get capped at 5
                            by GC.
                          format: int32
                          type: integer
                      required:
                      - containerID
                      - restartCount
                      type: object
                  required:
                  - name
                  type: object
                type: array
              podName:
                description: PodName is name of the Pod that owns the recreated containers.
                type: string
              strategy:
                description: Strategy defines strategies for containers recreation.
                properties:
                  failurePolicy:
                    description: FailurePolicy decides whether to continue if one
                      container fails to recreate
                    type: string
                  forceRecreate:
                    description: ForceRecreate indicates whether to force kill the
                      container even if the previous container is starting.
                    type: boolean
                  minStartedSeconds:
                    description: Minimum number of seconds for which a newly created
                      container should be started and ready without any of its container
                      crashing, for it to be considered Succeeded. Defaults to 0 (container
                      will be considered Succeeded as soon as it is started and ready)
                    format: int32
                    type: integer
                  orderedRecreate:
                    description: OrderedRecreate indicates whether to recreate the
                      next container only if the previous one has recreated completely.
                    type: boolean
                  terminationGracePeriodSeconds:
                    description: TerminationGracePeriodSeconds is the optional duration
                      in seconds to wait the container terminating gracefully. Value
                      must be non-negative integer. The value zero indicates delete
                      immediately. If this value is nil, we will use pod.Spec.TerminationGracePeriodSeconds
                      as default value.
                    format: int64
                    type: integer
                  unreadyGracePeriodSeconds:
                    description: UnreadyGracePeriodSeconds is the optional duration
                      in seconds to mark Pod as not ready over this duration before
                      executing preStop hook and stopping the container.
                    format: int64
                    type: integer
                type: object
              ttlSecondsAfterFinished:
                description: TTLSecondsAfterFinished is the TTL duration after this
                  ContainerRecreateRequest has completed.
                format: int32
                type: integer
            required:
            - containers
            - podName
            type: object
          status:
            description: ContainerRecreateRequestStatus defines the observed state
              of ContainerRecreateRequest
            properties:
              completionTime:
                description: Represents time when the ContainerRecreateRequest was
                  completed. It is not guaranteed to be set in happens-before order
                  across separate operations. It is represented in RFC3339 form and
                  is in UTC.
                format: date-time
                type: string
              containerRecreateStates:
                description: ContainerRecreateStates contains the recreation states
                  of the containers.
                items:
                  description: ContainerRecreateRequestContainerRecreateState contains
                    the recreation state of the container.
                  properties:
                    isKilled:
                      description: Containers are killed by kruise daemon
                      type: boolean
                    message:
                      description: A human readable message indicating details about
                        this state.
                      type: string
                    name:
                      description: Name of the container.
                      type: string
                    phase:
                      description: Phase indicates the recreation phase of the container.
                      type: string
                  required:
                  - name
                  - phase
                  type: object
                type: array
              message:
                description: A human readable message indicating details about this
                  ContainerRecreateRequest.
                type: string
              phase:
                description: Phase of this ContainerRecreateRequest, e.g. Pending,
                  Recreating, Completed
                type: string
            required:
            - phase
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
{{- end }}
