apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.19.0
    helm.sh/resource-policy: keep
  name: cephnfses.ceph.rook.io
spec:
  group: ceph.rook.io
  names:
    kind: CephNFS
    listKind: CephNFSList
    plural: cephnfses
    shortNames:
      - nfs
    singular: cephnfs
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .status.phase
          name: Phase
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v1
      schema:
        openAPIV3Schema:
          description: CephNFS represents a Ceph NFS
          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: NFSGaneshaSpec represents the spec of an nfs ganesha server
              properties:
                rados:
                  description: RADOS is the Ganesha RADOS specification
                  nullable: true
                  properties:
                    namespace:
                      description: |-
                        The namespace inside the Ceph pool (set by 'pool') where shared NFS-Ganesha config is stored.
                        This setting is deprecated as it is internally set to the name of the CephNFS.
                      type: string
                    pool:
                      description: |-
                        The Ceph pool used store the shared configuration for NFS-Ganesha daemons.
                        This setting is deprecated, as it is internally required to be ".nfs".
                      type: string
                  type: object
                security:
                  description: Security allows specifying security configurations for the NFS cluster
                  nullable: true
                  properties:
                    kerberos:
                      description: Kerberos configures NFS-Ganesha to secure NFS client connections with Kerberos.
                      nullable: true
                      properties:
                        configFiles:
                          description: |-
                            ConfigFiles defines where the Kerberos configuration should be sourced from. Config files
                            will be placed into the `/etc/krb5.conf.rook/` directory.

                            If this is left empty, Rook will not add any files. This allows you to manage the files
                            yourself however you wish. For example, you may build them into your custom Ceph container
                            image or use the Vault agent injector to securely add the files via annotations on the
                            CephNFS spec (passed to the NFS server pods).

                            Rook configures Kerberos to log to stderr. We suggest removing logging sections from config
                            files to avoid consuming unnecessary disk space from logging to files.
                          properties:
                            volumeSource:
                              properties:
                                configMap:
                                  properties:
                                    defaultMode:
                                      format: int32
                                      type: integer
                                    items:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          mode:
                                            format: int32
                                            type: integer
                                          path:
                                            type: string
                                        required:
                                          - key
                                          - path
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    name:
                                      default: ""
                                      type: string
                                    optional:
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                                emptyDir:
                                  properties:
                                    medium:
                                      type: string
                                    sizeLimit:
                                      anyOf:
                                        - type: integer
                                        - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                  type: object
                                hostPath:
                                  properties:
                                    path:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                    - path
                                  type: object
                                persistentVolumeClaim:
                                  properties:
                                    claimName:
                                      type: string
                                    readOnly:
                                      type: boolean
                                  required:
                                    - claimName
                                  type: object
                                projected:
                                  properties:
                                    defaultMode:
                                      format: int32
                                      type: integer
                                    sources:
                                      items:
                                        properties:
                                          clusterTrustBundle:
                                            properties:
                                              labelSelector:
                                                properties:
                                                  matchExpressions:
                                                    items:
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              name:
                                                type: string
                                              optional:
                                                type: boolean
                                              path:
                                                type: string
                                              signerName:
                                                type: string
                                            required:
                                              - path
                                            type: object
                                          configMap:
                                            properties:
                                              items:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    mode:
                                                      format: int32
                                                      type: integer
                                                    path:
                                                      type: string
                                                  required:
                                                    - key
                                                    - path
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              name:
                                                default: ""
                                                type: string
                                              optional:
                                                type: boolean
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          downwardAPI:
                                            properties:
                                              items:
                                                items:
                                                  properties:
                                                    fieldRef:
                                                      properties:
                                                        apiVersion:
                                                          type: string
                                                        fieldPath:
                                                          type: string
                                                      required:
                                                        - fieldPath
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    mode:
                                                      format: int32
                                                      type: integer
                                                    path:
                                                      type: string
                                                    resourceFieldRef:
                                                      properties:
                                                        containerName:
                                                          type: string
                                                        divisor:
                                                          anyOf:
                                                            - type: integer
                                                            - type: string
                                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                          x-kubernetes-int-or-string: true
                                                        resource:
                                                          type: string
                                                      required:
                                                        - resource
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  required:
                                                    - path
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            type: object
                                          podCertificate:
                                            properties:
                                              certificateChainPath:
                                                type: string
                                              credentialBundlePath:
                                                type: string
                                              keyPath:
                                                type: string
                                              keyType:
                                                type: string
                                              maxExpirationSeconds:
                                                format: int32
                                                type: integer
                                              signerName:
                                                type: string
                                              userAnnotations:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                            required:
                                              - keyType
                                              - signerName
                                            type: object
                                          secret:
                                            properties:
                                              items:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    mode:
                                                      format: int32
                                                      type: integer
                                                    path:
                                                      type: string
                                                  required:
                                                    - key
                                                    - path
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              name:
                                                default: ""
                                                type: string
                                              optional:
                                                type: boolean
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          serviceAccountToken:
                                            properties:
                                              audience:
                                                type: string
                                              expirationSeconds:
                                                format: int64
                                                type: integer
                                              path:
                                                type: string
                                            required:
                                              - path
                                            type: object
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                secret:
                                  properties:
                                    defaultMode:
                                      format: int32
                                      type: integer
                                    items:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          mode:
                                            format: int32
                                            type: integer
                                          path:
                                            type: string
                                        required:
                                          - key
                                          - path
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    optional:
                                      type: boolean
                                    secretName:
                                      type: string
                                  type: object
                              type: object
                          type: object
                        domainName:
                          description: DomainName should be set to the Kerberos Realm.
                          type: string
                        keytabFile:
                          description: |-
                            KeytabFile defines where the Kerberos keytab should be sourced from. The keytab file will be
                            placed into `/etc/krb5.keytab`. If this is left empty, Rook will not add the file.
                            This allows you to manage the `krb5.keytab` file yourself however you wish. For example, you
                            may build it into your custom Ceph container image or use the Vault agent injector to
                            securely add the file via annotations on the CephNFS spec (passed to the NFS server pods).
                          properties:
                            volumeSource:
                              properties:
                                configMap:
                                  properties:
                                    defaultMode:
                                      format: int32
                                      type: integer
                                    items:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          mode:
                                            format: int32
                                            type: integer
                                          path:
                                            type: string
                                        required:
                                          - key
                                          - path
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    name:
                                      default: ""
                                      type: string
                                    optional:
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                                emptyDir:
                                  properties:
                                    medium:
                                      type: string
                                    sizeLimit:
                                      anyOf:
                                        - type: integer
                                        - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                  type: object
                                hostPath:
                                  properties:
                                    path:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                    - path
                                  type: object
                                persistentVolumeClaim:
                                  properties:
                                    claimName:
                                      type: string
                                    readOnly:
                                      type: boolean
                                  required:
                                    - claimName
                                  type: object
                                projected:
                                  properties:
                                    defaultMode:
                                      format: int32
                                      type: integer
                                    sources:
                                      items:
                                        properties:
                                          clusterTrustBundle:
                                            properties:
                                              labelSelector:
                                                properties:
                                                  matchExpressions:
                                                    items:
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              name:
                                                type: string
                                              optional:
                                                type: boolean
                                              path:
                                                type: string
                                              signerName:
                                                type: string
                                            required:
                                              - path
                                            type: object
                                          configMap:
                                            properties:
                                              items:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    mode:
                                                      format: int32
                                                      type: integer
                                                    path:
                                                      type: string
                                                  required:
                                                    - key
                                                    - path
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              name:
                                                default: ""
                                                type: string
                                              optional:
                                                type: boolean
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          downwardAPI:
                                            properties:
                                              items:
                                                items:
                                                  properties:
                                                    fieldRef:
                                                      properties:
                                                        apiVersion:
                                                          type: string
                                                        fieldPath:
                                                          type: string
                                                      required:
                                                        - fieldPath
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    mode:
                                                      format: int32
                                                      type: integer
                                                    path:
                                                      type: string
                                                    resourceFieldRef:
                                                      properties:
                                                        containerName:
                                                          type: string
                                                        divisor:
                                                          anyOf:
                                                            - type: integer
                                                            - type: string
                                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                          x-kubernetes-int-or-string: true
                                                        resource:
                                                          type: string
                                                      required:
                                                        - resource
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  required:
                                                    - path
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            type: object
                                          podCertificate:
                                            properties:
                                              certificateChainPath:
                                                type: string
                                              credentialBundlePath:
                                                type: string
                                              keyPath:
                                                type: string
                                              keyType:
                                                type: string
                                              maxExpirationSeconds:
                                                format: int32
                                                type: integer
                                              signerName:
                                                type: string
                                              userAnnotations:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                            required:
                                              - keyType
                                              - signerName
                                            type: object
                                          secret:
                                            properties:
                                              items:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    mode:
                                                      format: int32
                                                      type: integer
                                                    path:
                                                      type: string
                                                  required:
                                                    - key
                                                    - path
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              name:
                                                default: ""
                                                type: string
                                              optional:
                                                type: boolean
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          serviceAccountToken:
                                            properties:
                                              audience:
                                                type: string
                                              expirationSeconds:
                                                format: int64
                                                type: integer
                                              path:
                                                type: string
                                            required:
                                              - path
                                            type: object
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                secret:
                                  properties:
                                    defaultMode:
                                      format: int32
                                      type: integer
                                    items:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          mode:
                                            format: int32
                                            type: integer
                                          path:
                                            type: string
                                        required:
                                          - key
                                          - path
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    optional:
                                      type: boolean
                                    secretName:
                                      type: string
                                  type: object
                              type: object
                          type: object
                        principalName:
                          default: nfs
                          description: |-
                            PrincipalName corresponds directly to NFS-Ganesha's NFS_KRB5:PrincipalName config. In
                            practice, this is the service prefix of the principal name. The default is "nfs".
                            This value is combined with (a) the namespace and name of the CephNFS (with a hyphen between)
                            and (b) the Realm configured in the user-provided krb5.conf to determine the full principal
                            name: <principalName>/<namespace>-<name>@<realm>. e.g., nfs/rook-ceph-my-nfs@example.net.
                            See https://github.com/nfs-ganesha/nfs-ganesha/wiki/RPCSEC_GSS for more detail.
                          type: string
                      type: object
                    sssd:
                      description: |-
                        SSSD enables integration with System Security Services Daemon (SSSD). SSSD can be used to
                        provide user ID mapping from a number of sources. See https://sssd.io for more information
                        about the SSSD project.
                      nullable: true
                      properties:
                        sidecar:
                          description: Sidecar tells Rook to run SSSD in a sidecar alongside the NFS-Ganesha server in each NFS pod.
                          properties:
                            additionalFiles:
                              description: |-
                                AdditionalFiles defines any number of additional files that should be mounted into the SSSD
                                sidecar with a directory root of `/etc/sssd/rook-additional/`.
                                These files may be referenced by the sssd.conf config file.
                              items:
                                description: |-
                                  AdditionalVolumeMount represents the source from where additional files in pod containers
                                  should come from and what subdirectory they are made available in.
                                properties:
                                  subPath:
                                    description: |-
                                      SubPath defines the sub-path (subdirectory) of the directory root where the volumeSource will
                                      be mounted. All files/keys in the volume source's volume will be mounted to the subdirectory.
                                      This is not the same as the Kubernetes `subPath` volume mount option.
                                      Each subPath definition must be unique and must not contain ':'.
                                    minLength: 1
                                    pattern: ^[^:]+$
                                    type: string
                                  volumeSource:
                                    properties:
                                      configMap:
                                        properties:
                                          defaultMode:
                                            format: int32
                                            type: integer
                                          items:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                mode:
                                                  format: int32
                                                  type: integer
                                                path:
                                                  type: string
                                              required:
                                                - key
                                                - path
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          name:
                                            default: ""
                                            type: string
                                          optional:
                                            type: boolean
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      emptyDir:
                                        properties:
                                          medium:
                                            type: string
                                          sizeLimit:
                                            anyOf:
                                              - type: integer
                                              - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                        type: object
                                      hostPath:
                                        properties:
                                          path:
                                            type: string
                                          type:
                                            type: string
                                        required:
                                          - path
                                        type: object
                                      persistentVolumeClaim:
                                        properties:
                                          claimName:
                                            type: string
                                          readOnly:
                                            type: boolean
                                        required:
                                          - claimName
                                        type: object
                                      projected:
                                        properties:
                                          defaultMode:
                                            format: int32
                                            type: integer
                                          sources:
                                            items:
                                              properties:
                                                clusterTrustBundle:
                                                  properties:
                                                    labelSelector:
                                                      properties:
                                                        matchExpressions:
                                                          items:
                                                            properties:
                                                              key:
                                                                type: string
                                                              operator:
                                                                type: string
                                                              values:
                                                                items:
                                                                  type: string
                                                                type: array
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        matchLabels:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    name:
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                    path:
                                                      type: string
                                                    signerName:
                                                      type: string
                                                  required:
                                                    - path
                                                  type: object
                                                configMap:
                                                  properties:
                                                    items:
                                                      items:
                                                        properties:
                                                          key:
                                                            type: string
                                                          mode:
                                                            format: int32
                                                            type: integer
                                                          path:
                                                            type: string
                                                        required:
                                                          - key
                                                          - path
                                                        type: object
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                    name:
                                                      default: ""
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                downwardAPI:
                                                  properties:
                                                    items:
                                                      items:
                                                        properties:
                                                          fieldRef:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              fieldPath:
                                                                type: string
                                                            required:
                                                              - fieldPath
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          mode:
                                                            format: int32
                                                            type: integer
                                                          path:
                                                            type: string
                                                          resourceFieldRef:
                                                            properties:
                                                              containerName:
                                                                type: string
                                                              divisor:
                                                                anyOf:
                                                                  - type: integer
                                                                  - type: string
                                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                                x-kubernetes-int-or-string: true
                                                              resource:
                                                                type: string
                                                            required:
                                                              - resource
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        required:
                                                          - path
                                                        type: object
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                  type: object
                                                podCertificate:
                                                  properties:
                                                    certificateChainPath:
                                                      type: string
                                                    credentialBundlePath:
                                                      type: string
                                                    keyPath:
                                                      type: string
                                                    keyType:
                                                      type: string
                                                    maxExpirationSeconds:
                                                      format: int32
                                                      type: integer
                                                    signerName:
                                                      type: string
                                                    userAnnotations:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                  required:
                                                    - keyType
                                                    - signerName
                                                  type: object
                                                secret:
                                                  properties:
                                                    items:
                                                      items:
                                                        properties:
                                                          key:
                                                            type: string
                                                          mode:
                                                            format: int32
                                                            type: integer
                                                          path:
                                                            type: string
                                                        required:
                                                          - key
                                                          - path
                                                        type: object
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                    name:
                                                      default: ""
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                serviceAccountToken:
                                                  properties:
                                                    audience:
                                                      type: string
                                                    expirationSeconds:
                                                      format: int64
                                                      type: integer
                                                    path:
                                                      type: string
                                                  required:
                                                    - path
                                                  type: object
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      secret:
                                        properties:
                                          defaultMode:
                                            format: int32
                                            type: integer
                                          items:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                mode:
                                                  format: int32
                                                  type: integer
                                                path:
                                                  type: string
                                              required:
                                                - key
                                                - path
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          optional:
                                            type: boolean
                                          secretName:
                                            type: string
                                        type: object
                                    type: object
                                required:
                                  - subPath
                                  - volumeSource
                                type: object
                              type: array
                            debugLevel:
                              description: |-
                                DebugLevel sets the debug level for SSSD. If unset or set to 0, Rook does nothing. Otherwise,
                                this may be a value between 1 and 10. See SSSD docs for more info:
                                https://sssd.io/troubleshooting/basics.html#sssd-debug-logs
                              maximum: 10
                              minimum: 0
                              type: integer
                            image:
                              description: Image defines the container image that should be used for the SSSD sidecar.
                              minLength: 1
                              type: string
                            resources:
                              description: Resources allow specifying resource requests/limits on the SSSD sidecar container.
                              properties:
                                claims:
                                  description: |-
                                    Claims lists the names of resources, defined in spec.resourceClaims,
                                    that are used by this container.

                                    This field depends on the
                                    DynamicResourceAllocation feature gate.

                                    This field is immutable. It can only be set for containers.
                                  items:
                                    description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                    properties:
                                      name:
                                        description: |-
                                          Name must match the name of one entry in pod.spec.resourceClaims of
                                          the Pod where this field is used. It makes that resource available
                                          inside a container.
                                        type: string
                                      request:
                                        description: |-
                                          Request is the name chosen for a request in the referenced claim.
                                          If empty, everything from the claim is made available, otherwise
                                          only the result of this request.
                                        type: string
                                    required:
                                      - name
                                    type: object
                                  type: array
                                  x-kubernetes-list-map-keys:
                                    - name
                                  x-kubernetes-list-type: map
                                limits:
                                  additionalProperties:
                                    anyOf:
                                      - type: integer
                                      - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  description: |-
                                    Limits describes the maximum amount of compute resources allowed.
                                    More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                  type: object
                                requests:
                                  additionalProperties:
                                    anyOf:
                                      - type: integer
                                      - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  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. Requests cannot exceed Limits.
                                    More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                  type: object
                              type: object
                            sssdConfigFile:
                              description: |-
                                SSSDConfigFile defines where the SSSD configuration should be sourced from. The config file
                                will be placed into `/etc/sssd/sssd.conf`. If this is left empty, Rook will not add the file.
                                This allows you to manage the `sssd.conf` file yourself however you wish. For example, you
                                may build it into your custom Ceph container image or use the Vault agent injector to
                                securely add the file via annotations on the CephNFS spec (passed to the NFS server pods).
                              properties:
                                volumeSource:
                                  properties:
                                    configMap:
                                      properties:
                                        defaultMode:
                                          format: int32
                                          type: integer
                                        items:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              mode:
                                                format: int32
                                                type: integer
                                              path:
                                                type: string
                                            required:
                                              - key
                                              - path
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        name:
                                          default: ""
                                          type: string
                                        optional:
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    emptyDir:
                                      properties:
                                        medium:
                                          type: string
                                        sizeLimit:
                                          anyOf:
                                            - type: integer
                                            - type: string
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                      type: object
                                    hostPath:
                                      properties:
                                        path:
                                          type: string
                                        type:
                                          type: string
                                      required:
                                        - path
                                      type: object
                                    persistentVolumeClaim:
                                      properties:
                                        claimName:
                                          type: string
                                        readOnly:
                                          type: boolean
                                      required:
                                        - claimName
                                      type: object
                                    projected:
                                      properties:
                                        defaultMode:
                                          format: int32
                                          type: integer
                                        sources:
                                          items:
                                            properties:
                                              clusterTrustBundle:
                                                properties:
                                                  labelSelector:
                                                    properties:
                                                      matchExpressions:
                                                        items:
                                                          properties:
                                                            key:
                                                              type: string
                                                            operator:
                                                              type: string
                                                            values:
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  name:
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                  path:
                                                    type: string
                                                  signerName:
                                                    type: string
                                                required:
                                                  - path
                                                type: object
                                              configMap:
                                                properties:
                                                  items:
                                                    items:
                                                      properties:
                                                        key:
                                                          type: string
                                                        mode:
                                                          format: int32
                                                          type: integer
                                                        path:
                                                          type: string
                                                      required:
                                                        - key
                                                        - path
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  name:
                                                    default: ""
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              downwardAPI:
                                                properties:
                                                  items:
                                                    items:
                                                      properties:
                                                        fieldRef:
                                                          properties:
                                                            apiVersion:
                                                              type: string
                                                            fieldPath:
                                                              type: string
                                                          required:
                                                            - fieldPath
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        mode:
                                                          format: int32
                                                          type: integer
                                                        path:
                                                          type: string
                                                        resourceFieldRef:
                                                          properties:
                                                            containerName:
                                                              type: string
                                                            divisor:
                                                              anyOf:
                                                                - type: integer
                                                                - type: string
                                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                              x-kubernetes-int-or-string: true
                                                            resource:
                                                              type: string
                                                          required:
                                                            - resource
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      required:
                                                        - path
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                              podCertificate:
                                                properties:
                                                  certificateChainPath:
                                                    type: string
                                                  credentialBundlePath:
                                                    type: string
                                                  keyPath:
                                                    type: string
                                                  keyType:
                                                    type: string
                                                  maxExpirationSeconds:
                                                    format: int32
                                                    type: integer
                                                  signerName:
                                                    type: string
                                                  userAnnotations:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                required:
                                                  - keyType
                                                  - signerName
                                                type: object
                                              secret:
                                                properties:
                                                  items:
                                                    items:
                                                      properties:
                                                        key:
                                                          type: string
                                                        mode:
                                                          format: int32
                                                          type: integer
                                                        path:
                                                          type: string
                                                      required:
                                                        - key
                                                        - path
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  name:
                                                    default: ""
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              serviceAccountToken:
                                                properties:
                                                  audience:
                                                    type: string
                                                  expirationSeconds:
                                                    format: int64
                                                    type: integer
                                                  path:
                                                    type: string
                                                required:
                                                  - path
                                                type: object
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    secret:
                                      properties:
                                        defaultMode:
                                          format: int32
                                          type: integer
                                        items:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              mode:
                                                format: int32
                                                type: integer
                                              path:
                                                type: string
                                            required:
                                              - key
                                              - path
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        optional:
                                          type: boolean
                                        secretName:
                                          type: string
                                      type: object
                                  type: object
                              type: object
                          required:
                            - image
                          type: object
                      type: object
                  type: object
                server:
                  description: Server is the Ganesha Server specification
                  properties:
                    active:
                      description: The number of active Ganesha servers
                      type: integer
                    annotations:
                      additionalProperties:
                        type: string
                      description: The annotations-related configuration to add/set on each Pod related object.
                      nullable: true
                      type: object
                      x-kubernetes-preserve-unknown-fields: true
                    hostNetwork:
                      description: Whether host networking is enabled for the Ganesha server. If not set, the network settings from the cluster CR will be applied.
                      nullable: true
                      type: boolean
                    image:
                      description: |-
                        Image is the container image used to launch the Ceph NFS (Ganesha) daemon(s).
                        The image must include the NFS Ganesha binaries, such as are included with the official Ceph releases. E.g.: quay.io/ceph/ceph:<tag>
                        If not specified, the Ceph image defined in the CephCluster is used.
                        Overriding the CephCluster defined image is not normally necessary when using the official Ceph images.
                        The image must contain the NFS Ganesha and dbus packages.
                        If the SSSD sidecar is enabled, the image must also contain the sssd-client package.
                      maxLength: 1572864
                      minLength: 1
                      type: string
                    imagePullPolicy:
                      description: |-
                        ImagePullPolicy describes a policy for if/when to pull a container image
                        One of Always, Never, IfNotPresent.
                        This field only has effect if an image is specified.
                      enum:
                        - IfNotPresent
                        - Always
                        - Never
                        - ""
                      type: string
                    labels:
                      additionalProperties:
                        type: string
                      description: The labels-related configuration to add/set on each Pod related object.
                      nullable: true
                      type: object
                      x-kubernetes-preserve-unknown-fields: true
                    livenessProbe:
                      description: |-
                        A liveness-probe to verify that Ganesha server has valid run-time state.
                        If LivenessProbe.Disabled is false and LivenessProbe.Probe is nil uses default probe.
                      properties:
                        disabled:
                          description: Disabled determines whether probe is disable or not
                          type: boolean
                        probe:
                          description: |-
                            Probe describes a health check to be performed against a container to determine whether it is
                            alive or ready to receive traffic.
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              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
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: |-
                                Minimum consecutive failures for the probe to be considered failed after having succeeded.
                                Defaults to 3. Minimum value is 1.
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ""
                                  description: |-
                                    Service is the name of the service to place in the gRPC HealthCheckRequest
                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).

                                    If this is not specified, the default behavior is defined by gRPC.
                                  type: string
                              required:
                                - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET 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.
                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                      - name
                                      - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                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
                            initialDelaySeconds:
                              description: |-
                                Number of seconds after the container has started before liveness probes are initiated.
                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                              format: int32
                              type: integer
                            periodSeconds:
                              description: |-
                                How often (in seconds) to perform the probe.
                                Default to 10 seconds. Minimum value is 1.
                              format: int32
                              type: integer
                            successThreshold:
                              description: |-
                                Minimum consecutive successes for the probe to be considered successful after having failed.
                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              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
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: |-
                                Number of seconds after which the probe times out.
                                Defaults to 1 second. Minimum value is 1.
                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                              format: int32
                              type: integer
                          type: object
                      type: object
                    logLevel:
                      description: LogLevel set logging level
                      type: string
                    placement:
                      nullable: true
                      properties:
                        nodeAffinity:
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              items:
                                properties:
                                  preference:
                                    properties:
                                      matchExpressions:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - key
                                            - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchFields:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - key
                                            - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  weight:
                                    format: int32
                                    type: integer
                                required:
                                  - preference
                                  - weight
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            requiredDuringSchedulingIgnoredDuringExecution:
                              properties:
                                nodeSelectorTerms:
                                  items:
                                    properties:
                                      matchExpressions:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - key
                                            - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchFields:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - key
                                            - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  type: array
                                  x-kubernetes-list-type: atomic
                              required:
                                - nodeSelectorTerms
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                        podAffinity:
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              items:
                                properties:
                                  podAffinityTerm:
                                    properties:
                                      labelSelector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                                - key
                                                - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      mismatchLabelKeys:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      namespaceSelector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                                - key
                                                - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      namespaces:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      topologyKey:
                                        type: string
                                    required:
                                      - topologyKey
                                    type: object
                                  weight:
                                    format: int32
                                    type: integer
                                required:
                                  - podAffinityTerm
                                  - weight
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            requiredDuringSchedulingIgnoredDuringExecution:
                              items:
                                properties:
                                  labelSelector:
                                    properties:
                                      matchExpressions:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - key
                                            - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  mismatchLabelKeys:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  namespaceSelector:
                                    properties:
                                      matchExpressions:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - key
                                            - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  namespaces:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  topologyKey:
                                    type: string
                                required:
                                  - topologyKey
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        podAntiAffinity:
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              items:
                                properties:
                                  podAffinityTerm:
                                    properties:
                                      labelSelector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                                - key
                                                - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      mismatchLabelKeys:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      namespaceSelector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                                - key
                                                - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      namespaces:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      topologyKey:
                                        type: string
                                    required:
                                      - topologyKey
                                    type: object
                                  weight:
                                    format: int32
                                    type: integer
                                required:
                                  - podAffinityTerm
                                  - weight
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            requiredDuringSchedulingIgnoredDuringExecution:
                              items:
                                properties:
                                  labelSelector:
                                    properties:
                                      matchExpressions:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - key
                                            - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  mismatchLabelKeys:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  namespaceSelector:
                                    properties:
                                      matchExpressions:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - key
                                            - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  namespaces:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  topologyKey:
                                    type: string
                                required:
                                  - topologyKey
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        tolerations:
                          items:
                            properties:
                              effect:
                                type: string
                              key:
                                type: string
                              operator:
                                type: string
                              tolerationSeconds:
                                format: int64
                                type: integer
                              value:
                                type: string
                            type: object
                          type: array
                        topologySpreadConstraints:
                          items:
                            properties:
                              labelSelector:
                                properties:
                                  matchExpressions:
                                    items:
                                      properties:
                                        key:
                                          type: string
                                        operator:
                                          type: string
                                        values:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      required:
                                        - key
                                        - operator
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  matchLabels:
                                    additionalProperties:
                                      type: string
                                    type: object
                                type: object
                                x-kubernetes-map-type: atomic
                              matchLabelKeys:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              maxSkew:
                                format: int32
                                type: integer
                              minDomains:
                                format: int32
                                type: integer
                              nodeAffinityPolicy:
                                type: string
                              nodeTaintsPolicy:
                                type: string
                              topologyKey:
                                type: string
                              whenUnsatisfiable:
                                type: string
                            required:
                              - maxSkew
                              - topologyKey
                              - whenUnsatisfiable
                            type: object
                          type: array
                      type: object
                      x-kubernetes-preserve-unknown-fields: true
                    priorityClassName:
                      description: PriorityClassName sets the priority class on the pods
                      type: string
                    resources:
                      description: Resources set resource requests and limits
                      nullable: true
                      properties:
                        claims:
                          description: |-
                            Claims lists the names of resources, defined in spec.resourceClaims,
                            that are used by this container.

                            This field depends on the
                            DynamicResourceAllocation feature gate.

                            This field is immutable. It can only be set for containers.
                          items:
                            description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                            properties:
                              name:
                                description: |-
                                  Name must match the name of one entry in pod.spec.resourceClaims of
                                  the Pod where this field is used. It makes that resource available
                                  inside a container.
                                type: string
                              request:
                                description: |-
                                  Request is the name chosen for a request in the referenced claim.
                                  If empty, everything from the claim is made available, otherwise
                                  only the result of this request.
                                type: string
                            required:
                              - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                            - name
                          x-kubernetes-list-type: map
                        limits:
                          additionalProperties:
                            anyOf:
                              - type: integer
                              - type: string
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          description: |-
                            Limits describes the maximum amount of compute resources allowed.
                            More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                          type: object
                        requests:
                          additionalProperties:
                            anyOf:
                              - type: integer
                              - type: string
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          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. Requests cannot exceed Limits.
                            More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                          type: object
                      type: object
                      x-kubernetes-preserve-unknown-fields: true
                  required:
                    - active
                  type: object
              required:
                - server
              type: object
            status:
              description: NFSStatus represents the status of Ceph NFS
              properties:
                cephx:
                  properties:
                    daemon:
                      description: Daemon shows the CephX key status for local Ceph daemons associated with this resources.
                      properties:
                        keyCephVersion:
                          description: |-
                            KeyCephVersion reports the Ceph version that created the current generation's keys. This is
                            same string format as reported by `CephCluster.status.version.version` to allow them to be
                            compared. E.g., `20.2.0-0`.
                            For all newly-created resources, this field set to the version of Ceph that created the key.
                            The special value "Uninitialized" indicates that keys are being created for the first time.
                            An empty string indicates that the version is unknown, as expected in brownfield deployments.
                          type: string
                        keyGeneration:
                          description: |-
                            KeyGeneration represents the CephX key generation for the last successful reconcile.
                            For all newly-created resources, this field is set to `1`.
                            When keys are rotated due to any rotation policy, the generation is incremented or updated to
                            the configured policy generation.
                            Generation `0` indicates that keys existed prior to the implementation of key tracking.
                          format: int32
                          type: integer
                      type: object
                  type: object
                conditions:
                  items:
                    description: Condition represents a status condition on any Rook-Ceph Custom Resource.
                    properties:
                      lastHeartbeatTime:
                        format: date-time
                        type: string
                      lastTransitionTime:
                        format: date-time
                        type: string
                      message:
                        type: string
                      reason:
                        description: ConditionReason is a reason for a condition
                        type: string
                      status:
                        type: string
                      type:
                        description: ConditionType represent a resource's status
                        type: string
                    type: object
                  type: array
                observedGeneration:
                  description: ObservedGeneration is the latest generation observed by the controller.
                  format: int64
                  type: integer
                phase:
                  type: string
              type: object
              x-kubernetes-preserve-unknown-fields: true
          required:
            - metadata
            - spec
          type: object
      served: true
      storage: true
      subresources:
        status: {}
