apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/name: ibm-monitoring
    app.kubernetes.io/instance: common-monitoring
    app.kubernetes.io/managed-by: ibm-monitoring-exporters-operator
  name: exporters.monitoring.operator.ibm.com
spec:
  group: monitoring.operator.ibm.com
  names:
    kind: Exporter
    listKind: ExporterList
    plural: exporters
    singular: exporter
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Exporter is the Schema for the exporters 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: ExporterSpec defines the desired state of Exporter
            properties:
              certs:
                description: Configurations for tls certifications
                properties:
                  autoClean:
                    description: If it is false, user can create secret manually before
                      creating CR and operator will not recreate it if secret exists
                      already If it is true, operator will recreate secret if it is
                      not created by certificate (cert-manager)
                    type: boolean
                  exporterSecret:
                    description: Exorters' tls cert. Define the secret name. It will
                      not be recreated when existing It should be generated by cert
                      manager so there should be ca.crt in the secret
                    type: string
                  issuer:
                    description: The clusterissuer name.
                    type: string
                required:
                - exporterSecret
                type: object
              collectd:
                description: Configurations for collectd deployment
                properties:
                  collectorPort:
                    format: int32
                    type: integer
                  enable:
                    type: boolean
                  image:
                    type: string
                  metricsPort:
                    format: int32
                    type: integer
                  resource:
                    description: ResourceRequirements describes the compute resource
                      requirements.
                    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
                  routerResource:
                    description: ResourceRequirements describes the compute resource
                      requirements.
                    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
                  serviceAccount:
                    description: SCC privileged should have been added to the service
                      account already by administrator
                    type: string
                required:
                - enable
                type: object
              imagePolicy:
                description: Image pull policy
                type: string
              imagePullSecrets:
                description: Extra image pull secrets
                items:
                  type: string
                type: array
              kubeStateMetrics:
                description: Configurations for kube-state-metrics deployment
                properties:
                  enable:
                    type: boolean
                  image:
                    type: string
                  port:
                    format: int32
                    type: integer
                  resource:
                    description: ResourceRequirements describes the compute resource
                      requirements.
                    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
                  routerResource:
                    description: ResourceRequirements describes the compute resource
                      requirements.
                    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
                  serviceAccount:
                    description: SCC privileged should have been added to the service
                      account already by administrator
                    type: string
                required:
                - enable
                type: object
              nodeExporter:
                description: Configurations for node-exporter daemonset
                properties:
                  enable:
                    type: boolean
                  healtyPort:
                    format: int32
                    type: integer
                  hostPort:
                    format: int32
                    type: integer
                  image:
                    type: string
                  resource:
                    description: ResourceRequirements describes the compute resource
                      requirements.
                    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
                  routerResource:
                    description: ResourceRequirements describes the compute resource
                      requirements.
                    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
                  serviceAccount:
                    description: //SCC privileged should have been added to the service
                      account already by administrator
                    type: string
                  servicePort:
                    format: int32
                    type: integer
                required:
                - enable
                type: object
              nodeSelector:
                additionalProperties:
                  type: string
                type: object
              routerImage:
                description: Router image repo and tag
                type: string
            type: object
          status:
            description: ExporterStatus defines the observed state of Exporter
            properties:
              cert:
                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
                  Status of tls certification'
                type: string
              collectd:
                description: Status of collectd deployment
                properties:
                  availableReplicas:
                    description: Total number of available pods (ready for at least
                      minReadySeconds) targeted by this deployment.
                    format: int32
                    type: integer
                  collisionCount:
                    description: Count of hash collisions for the Deployment. The
                      Deployment controller uses this field as a collision avoidance
                      mechanism when it needs to create the name for the newest ReplicaSet.
                    format: int32
                    type: integer
                  conditions:
                    description: Represents the latest available observations of a
                      deployment's current state.
                    items:
                      description: DeploymentCondition describes the state of a deployment
                        at a certain point.
                      properties:
                        lastTransitionTime:
                          description: Last time the condition transitioned from one
                            status to another.
                          format: date-time
                          type: string
                        lastUpdateTime:
                          description: The last time this condition was updated.
                          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 deployment condition.
                          type: string
                      required:
                      - status
                      - type
                      type: object
                    type: array
                  observedGeneration:
                    description: The generation observed by the deployment controller.
                    format: int64
                    type: integer
                  readyReplicas:
                    description: Total number of ready pods targeted by this deployment.
                    format: int32
                    type: integer
                  replicas:
                    description: Total number of non-terminated pods targeted by this
                      deployment (their labels match the selector).
                    format: int32
                    type: integer
                  unavailableReplicas:
                    description: Total number of unavailable pods targeted by this
                      deployment. This is the total number of pods that are still
                      required for the deployment to have 100% available capacity.
                      They may either be pods that are running but not yet available
                      or pods that still have not been created.
                    format: int32
                    type: integer
                  updatedReplicas:
                    description: Total number of non-terminated pods targeted by this
                      deployment that have the desired template spec.
                    format: int32
                    type: integer
                type: object
              kubeState:
                description: Status of kube-state-metrics deployment
                properties:
                  availableReplicas:
                    description: Total number of available pods (ready for at least
                      minReadySeconds) targeted by this deployment.
                    format: int32
                    type: integer
                  collisionCount:
                    description: Count of hash collisions for the Deployment. The
                      Deployment controller uses this field as a collision avoidance
                      mechanism when it needs to create the name for the newest ReplicaSet.
                    format: int32
                    type: integer
                  conditions:
                    description: Represents the latest available observations of a
                      deployment's current state.
                    items:
                      description: DeploymentCondition describes the state of a deployment
                        at a certain point.
                      properties:
                        lastTransitionTime:
                          description: Last time the condition transitioned from one
                            status to another.
                          format: date-time
                          type: string
                        lastUpdateTime:
                          description: The last time this condition was updated.
                          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 deployment condition.
                          type: string
                      required:
                      - status
                      - type
                      type: object
                    type: array
                  observedGeneration:
                    description: The generation observed by the deployment controller.
                    format: int64
                    type: integer
                  readyReplicas:
                    description: Total number of ready pods targeted by this deployment.
                    format: int32
                    type: integer
                  replicas:
                    description: Total number of non-terminated pods targeted by this
                      deployment (their labels match the selector).
                    format: int32
                    type: integer
                  unavailableReplicas:
                    description: Total number of unavailable pods targeted by this
                      deployment. This is the total number of pods that are still
                      required for the deployment to have 100% available capacity.
                      They may either be pods that are running but not yet available
                      or pods that still have not been created.
                    format: int32
                    type: integer
                  updatedReplicas:
                    description: Total number of non-terminated pods targeted by this
                      deployment that have the desired template spec.
                    format: int32
                    type: integer
                type: object
              nodeExporter:
                description: Status of node-exporter 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
                  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
                - desiredNumberScheduled
                - numberMisscheduled
                - numberReady
                type: object
              routerConfigmap:
                description: Status of router configmap
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
