apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/instance: ibm-spectrum-scale-csi-operator
    app.kubernetes.io/managed-by: ibm-spectrum-scale-csi-operator
    app.kubernetes.io/name: ibm-spectrum-scale-csi-operator
    release: ibm-spectrum-scale-csi-operator
  name: csiscaleoperators.csi.ibm.com
spec:
  group: csi.ibm.com
  names:
    categories:
    - scale
    kind: CSIScaleOperator
    listKind: CSIScaleOperatorList
    plural: csiscaleoperators
    singular: csiscaleoperator
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: The Nginx Status
      jsonPath: .status.conditions[?(@.type="Ready")].status
      name: Ready
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: CSIScaleOperator is the Schema for the csiscaleoperator 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:
            properties:
              attacher:
                description: Attacher image for csi (actually attaches to the storage).
                type: string
              attacherNodeSelector:
                description: Node selector for attacher sidecar.
                items:
                  properties:
                    key:
                      description: Key for node selector.
                      type: string
                    value:
                      description: Value for key.
                      type: string
                  type: object
                type: array
              clusters:
                description: A collection of gpfs cluster properties for the csi driver to mount.
                items:
                  properties:
                    cacert:
                      description: A string specifying a cacert resource name.
                      type: string
                    id:
                      description: The cluster id of the gpfs cluster specified (mandatory).
                      type: string
                    primary:
                      description: The primary file system for the GPFS cluster.
                      properties:
                        inodeLimit:
                          description: Inode limit for Primary Fileset.
                          type: string
                        primaryFs:
                          description: The name of the primary filesystem.
                          type: string
                        primaryFset:
                          description: The name of the primary fileset, created in primaryFs.
                          type: string
                        remoteCluster:
                          description: Remote cluster ID.
                          type: string
                      type: object
                    restApi:
                      description: A collection of targets for REST calls.
                      items:
                        properties:
                          guiHost:
                            description: The hostname of the REST server.
                            type: string
                          guiPort:
                            description: The port number running the REST server.
                            type: integer
                        type: object
                      type: array
                    secrets:
                      description: A string specifying a secret resource name.
                      type: string
                    secureSslMode:
                      description: Require a secure SSL connection to connect to GPFS.
                      type: boolean
                  type: object
                required:
                - id
                type: array
              driverRegistrar:
                description: Sidecar container image for the csi spectrum scale plugin pods.
                type: string
              imagePullSecrets:
                description: A passthrough option that distributes an imagePullSecrets array to the containers generated by the csi scale operator. Please refer to official k8s documentation for your environment for more details.
                items:
                  type: string
                type: array
              kubeletRootDirPath:
                description: The kubelet root directory path.
                type: string
              livenessprobe:
                description: Sidecar liveness probe image for the csi spectrum scale plugin pods.
                type: string
              nodeMapping:
                description: Mapping of K8s node with SpectrumScale node.
                items:
                  properties:
                    k8sNode:
                      description: K8s node name.
                      type: string
                    spectrumscaleNode:
                      description: SpectrumScale node name.
                      type: string
                  type: object
                type: array
              pluginNodeSelector:
                description: Node selector for SpectrumScale CSI Plugin.
                items:
                  properties:
                    key:
                      description: Key for node selector.
                      type: string
                    value:
                      description: Value for key.
                      type: string
                  type: object
                type: array
              provisioner:
                description: Provisioner image for csi (actually issues provision requests).
                type: string
              provisionerNodeSelector:
                description: Node selector for provisioner sidecar.
                items:
                  properties:
                    key:
                      description: Key for node selector.
                      type: string
                    value:
                      description: Value for key.
                      type: string
                  type: object
                type: array
              secretCounter:
                description: An internal counter used by the operator to trigger reloads on secret change.
                type: integer
              snapshotter:
                description: Snapshotter image for csi (issues volume snapshot requests).
                type: string
              snapshotterNodeSelector:
                description: Node selector for snapshotter sidecar.
                items:
                  properties:
                    key:
                      description: Key for node selector.
                      type: string
                    value:
                      description: Value for key.
                      type: string
                  type: object
                type: array
              spectrumScale:
                description: Image name for the csi spectrum scale plugin container.
                type: string
              tolerations:
                description: Array of tolerations that will be distribued to CSI pods. Please refer to official k8s documentation for your environment for more details.
                items:
                  properties:
                    effect:
                      description: Valid values are "NoSchedule", "PreferNoSchedule" and "NoExecute". An empty effect matches all effects with given key.
                      enum:
                      - NoSchedule
                      - PreferNoSchedule
                      - NoExecute
                      - ""
                      type: string
                    key:
                      description: Node taint key name
                      type: string
                    operator:
                      description: Valid values are "Exists" and "Equal".
                      enum:
                      - Exists
                      - Equal
                      type: string
                    tolerationSeconds:
                      description: Used only when effect is "NoExecute". It determines how long the pod will stay bound to the node after the taint is added.
                      type: integer
                    value:
                      description: Required if operator is "Equal"
                      type: string
                  required:
                  - key
                  - operator
                  - effect
                  type: object
                type: array
              trigger:
                description: A generic trigger to be used in kickin off the ansible operator.
                type: string
            type: object
          status:
            properties:
              conditions:
                description: The active status of the operator
                items:
                  properties:
                    Ready:
                      description: Indicates that the plugin is running.
                      type: boolean
                  type: object
                type: array
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
