apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: mustgatherservices.operator.ibm.com
  labels:
    app.kubernetes.io/instance: ibm-healthcheck-operator
    app.kubernetes.io/managed-by: ibm-healthcheck-operator
    app.kubernetes.io/name: ibm-healthcheck-operator
spec:
  group: operator.ibm.com
  names:
    kind: MustGatherService
    listKind: MustGatherServiceList
    plural: mustgatherservices
    singular: mustgatherservice
  scope: Namespaced
  versions:
  - name: v1alpha1
    served: true
    storage: true
    subresources:
      status: {}
    schema:
      openAPIV3Schema:
        description: MustGatherService is the Schema for the mustgatherservices 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: MustGatherServiceSpec defines the desired state of MustGatherService
            properties:
              mustGather:
                description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
                  Important: Run "operator-sdk generate k8s" to regenerate code after
                  modifying this file Add custom validation using kubebuilder tags:
                  https://book-v1.book.kubebuilder.io/beyond_basics/generating_crd.html'
                properties:
                  command:
                    description: MustGatherService startup command, default value is
                      "/bin/must-gather-service -v 1"
                    items:
                      type: string
                    type: array
                  hostNetwork:
                    description: MustGatherService deployment hostnetwork, default is
                      false
                    type: boolean
                  image:
                    description: deprecated, define image in operator.yaml
                    properties:
                      pullPolicy:
                        description: image pull policy, default is IfNotPresent
                        type: string
                      repository:
                        description: image repository, default is empty
                        type: string
                      tag:
                        description: image tag, default is empty
                        type: string
                    required:
                    - repository
                    - tag
                    type: object
                  name:
                    description: MustGatherService deployment name
                    type: string
                  nodeSelector:
                    additionalProperties:
                      type: string
                    description: MustGatherService deployment node selector, default
                      is empty
                    type: object
                  replicas:
                    description: MustGatherService pod replicas, default is 1
                    format: int32
                    type: integer
                  resources:
                    description: resources defines the desired state of Resources
                    properties:
                      limits:
                        properties:
                          cpu:
                            type: string
                          memory:
                            type: string
                        type: object
                      requests:
                        properties:
                          cpu:
                            type: string
                          memory:
                            type: string
                        type: object
                    type: object
                  securityContext:
                    description: MustGatherService deployment security context, default
                      is empty
                    properties:
                      allowPrivilegeEscalation:
                        description: 'AllowPrivilegeEscalation controls whether a process
                          can gain more privileges than its parent process. This bool
                          directly controls if the no_new_privs flag will be set on
                          the container process. AllowPrivilegeEscalation is true always
                          when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN'
                        type: boolean
                      capabilities:
                        description: The capabilities to add/drop when running containers.
                          Defaults to the default set of capabilities granted by the
                          container runtime.
                        properties:
                          add:
                            description: Added capabilities
                            items:
                              description: Capability represent POSIX capabilities type
                              type: string
                            type: array
                          drop:
                            description: Removed capabilities
                            items:
                              description: Capability represent POSIX capabilities type
                              type: string
                            type: array
                        type: object
                      privileged:
                        description: Run container in privileged mode. Processes in
                          privileged containers are essentially equivalent to root on
                          the host. Defaults to false.
                        type: boolean
                      procMount:
                        description: procMount denotes the type of proc mount to use
                          for the containers. The default is DefaultProcMount which
                          uses the container runtime defaults for readonly paths and
                          masked paths. This requires the ProcMountType feature flag
                          to be enabled.
                        type: string
                      readOnlyRootFilesystem:
                        description: Whether this container has a read-only root filesystem.
                          Default is false.
                        type: boolean
                      runAsGroup:
                        description: The GID to run the entrypoint of the container
                          process. Uses runtime default if unset. May also be set in
                          PodSecurityContext.  If set in both SecurityContext and PodSecurityContext,
                          the value specified in SecurityContext takes precedence.
                        format: int64
                        type: integer
                      runAsNonRoot:
                        description: Indicates that the container must run as a non-root
                          user. If true, the Kubelet will validate the image at runtime
                          to ensure that it does not run as UID 0 (root) and fail to
                          start the container if it does. If unset or false, no such
                          validation will be performed. May also be set in PodSecurityContext.  If
                          set in both SecurityContext and PodSecurityContext, the value
                          specified in SecurityContext takes precedence.
                        type: boolean
                      runAsUser:
                        description: The UID to run the entrypoint of the container
                          process. Defaults to user specified in image metadata if unspecified.
                          May also be set in PodSecurityContext.  If set in both SecurityContext
                          and PodSecurityContext, the value specified in SecurityContext
                          takes precedence.
                        format: int64
                        type: integer
                      seLinuxOptions:
                        description: The SELinux context to be applied to the container.
                          If unspecified, the container runtime will allocate a random
                          SELinux context for each container.  May also be set in PodSecurityContext.  If
                          set in both SecurityContext and PodSecurityContext, the value
                          specified in SecurityContext takes precedence.
                        properties:
                          level:
                            description: Level is SELinux level label that applies to
                              the container.
                            type: string
                          role:
                            description: Role is a SELinux role label that applies to
                              the container.
                            type: string
                          type:
                            description: Type is a SELinux type label that applies to
                              the container.
                            type: string
                          user:
                            description: User is a SELinux user label that applies to
                              the container.
                            type: string
                        type: object
                      windowsOptions:
                        description: The Windows specific settings applied to all containers.
                          If unspecified, the options from the PodSecurityContext will
                          be used. If set in both SecurityContext and PodSecurityContext,
                          the value specified in SecurityContext takes precedence.
                        properties:
                          gmsaCredentialSpec:
                            description: GMSACredentialSpec is where the GMSA admission
                              webhook (https://github.com/kubernetes-sigs/windows-gmsa)
                              inlines the contents of the GMSA credential spec named
                              by the GMSACredentialSpecName field. This field is alpha-level
                              and is only honored by servers that enable the WindowsGMSA
                              feature flag.
                            type: string
                          gmsaCredentialSpecName:
                            description: GMSACredentialSpecName is the name of the GMSA
                              credential spec to use. This field is alpha-level and
                              is only honored by servers that enable the WindowsGMSA
                              feature flag.
                            type: string
                          runAsUserName:
                            description: The UserName in Windows to run the entrypoint
                              of the container process. Defaults to the user specified
                              in image metadata if unspecified. May also be set in PodSecurityContext.
                              If set in both SecurityContext and PodSecurityContext,
                              the value specified in SecurityContext takes precedence.
                              This field is alpha-level and it is only honored by servers
                              that enable the WindowsRunAsUserName feature flag.
                            type: string
                        type: object
                    type: object
                  serviceAccountName:
                    description: MustGatherService deployment ServiceAccountName, default
                      is default
                    type: string
                  tolerations:
                    description: MustGatherService deployment tolerations, default is
                      empty
                    items:
                      description: The pod this Toleration is attached to tolerates
                        any taint that matches the triple <key,value,effect> using the
                        matching operator <operator>.
                      properties:
                        effect:
                          description: Effect indicates the taint effect to match. Empty
                            means match all taint effects. When specified, allowed values
                            are NoSchedule, PreferNoSchedule and NoExecute.
                          type: string
                        key:
                          description: Key is the taint key that the toleration applies
                            to. Empty means match all taint keys. If the key is empty,
                            operator must be Exists; this combination means to match
                            all values and all keys.
                          type: string
                        operator:
                          description: Operator represents a key's relationship to the
                            value. Valid operators are Exists and Equal. Defaults to
                            Equal. Exists is equivalent to wildcard for value, so that
                            a pod can tolerate all taints of a particular category.
                          type: string
                        tolerationSeconds:
                          description: TolerationSeconds represents the period of time
                            the toleration (which must be of effect NoExecute, otherwise
                            this field is ignored) tolerates the taint. By default,
                            it is not set, which means tolerate the taint forever (do
                            not evict). Zero and negative values will be treated as
                            0 (evict immediately) by the system.
                          format: int64
                          type: integer
                        value:
                          description: Value is the taint value the toleration matches
                            to. If the operator is Exists, the value should be empty,
                            otherwise just a regular string.
                          type: string
                      type: object
                    type: array
                required:
                - name
                type: object
              persistentVolumeClaim:
                description: persistentVolumeClaim defines the desired persistent volume
                  claim
                properties:
                  name:
                    description: MustGatherService pvc name
                    type: string
                  resources:
                    description: resources defines the request storage size
                    properties:
                      limits:
                        additionalProperties:
                          type: string
                        description: 'Limits describes the maximum amount of compute
                          resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                        type: object
                      requests:
                        additionalProperties:
                          type: string
                        description: 'Requests describes the minimum amount of compute
                          resources required. If Requests is omitted for a container,
                          it defaults to Limits if that is explicitly specified, otherwise
                          to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                        type: object
                    type: object
                  storageClassName:
                    description: storageClassName defines the storageclass name, default
                      is default storageclass in cluster
                    type: string
                required:
                - name
                type: object
            type: object
          status:
            description: MustGatherServiceStatus defines the observed state of MustGatherService
            properties:
              mustGatherServiceNodes:
                description: 'INSERT ADDITIONAL STATUS FIELD - define observed state
                  of cluster Important: Run "operator-sdk generate k8s" to regenerate
                  code after modifying this file Add custom validation using kubebuilder
                  tags: https://book-v1.book.kubebuilder.io/beyond_basics/generating_crd.html
                  MustGatherServiceNodes are the names of the MustGatherService pods'
                items:
                  type: string
                type: array
            type: object
        type: object          
