---
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:
  - name: v1
    additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type="Ready")].status
      description: The Nginx Status
      name: Ready
      type: string
    schema:
     openAPIV3Schema:
      description: CSIScaleOperator is the Schema for the csiscaleoperator API
      type: object
      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
            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
            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
            resizer:
              description: Resizer image for csi (issues volume resize requests).
              type: string
            resizerNodeSelector:
              description: Node selector for resizer 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
            trigger:
              description: A generic trigger to be used in kickin off the ansible operator.
              type: string
            spectrumScale:
              description: Image name for the csi spectrum scale plugin container.
              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.
              type: array
              items:
                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.
              type: array
              items:
                properties:
                  key:
                    description: Node taint key name
                    type: string
                  operator:
                    description: Valid values are "Exists" and "Equal". 
                    type: string
                    enum: ["Exists", "Equal"]
                  value:
                    description: Required if operator is "Equal"
                    type: string
                  effect:
                    description: 
                      Valid values are "NoSchedule", "PreferNoSchedule" and "NoExecute". 
                      An empty effect matches all effects with given key.
                    type: string
                    enum: ["NoSchedule", "PreferNoSchedule", "NoExecute", ""]
                  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
                type: object
                required:
                  - key
                  - operator
                  - effect
            kubeletRootDirPath:
              description: The kubelet root directory path.
              type: string
            csipspname:
              description: PSP name for IBM Spectrum Scale CSI pods.
              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
    served: true
    storage: true
    subresources:
      status: {}

