

##############################################
###########                       ############
###########   ZFSRestore CRD      ############
###########                       ############
##############################################

# ZFSRestores CRD is autogenerated via `make manifests` command.
# Do the modification in the code and run the `make manifests` command
# to generate the CRD definition

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.0
  creationTimestamp: null
  name: zfsrestores.zfs.openebs.io
spec:
  group: zfs.openebs.io
  names:
    kind: ZFSRestore
    listKind: ZFSRestoreList
    plural: zfsrestores
    singular: zfsrestore
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: ZFSRestore describes a cstor restore resource created as a custom
          resource
        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: ZFSRestoreSpec is the spec for a ZFSRestore resource
            properties:
              ownerNodeID:
                description: owner node name where restore volume is present
                minLength: 1
                type: string
              restoreSrc:
                description: it can be ip:port in case of restore from remote or volumeName
                  in case of local restore
                minLength: 1
                pattern: ^([0-9]+.[0-9]+.[0-9]+.[0-9]+:[0-9]+)$
                type: string
              volumeName:
                description: volume name to where restore has to be performed
                minLength: 1
                type: string
            required:
            - ownerNodeID
            - restoreSrc
            - volumeName
            type: object
          status:
            description: ZFSRestoreStatus is to hold result of action.
            enum:
            - Init
            - Done
            - Failed
            - Pending
            - InProgress
            - Invalid
            type: string
          volSpec:
            description: VolumeInfo defines ZFS volume parameters for all modes in
              which ZFS volumes can be created like - ZFS volume with filesystem,
              ZFS Volume exposed as zfs or ZFS volume exposed as raw block device.
              Some of the parameters can be only set during creation time (as specified
              in the details of the parameter), and a few are editable. In case of
              Cloned volumes, the parameters are assigned the same values as the source
              volume.
            properties:
              capacity:
                description: Capacity of the volume
                minLength: 1
                type: string
              compression:
                description: 'Compression specifies the block-level compression algorithm
                  to be applied to the ZFS Volume. The value "on" indicates ZFS to
                  use the default compression algorithm. The default compression algorithm
                  used by ZFS will be either lzjb or, if the lz4_compress feature
                  is enabled, lz4. Compression property can be edited after the volume
                  has been created. The change will only be applied to the newly-written
                  data. For instance, if the Volume was created with "off" and the
                  next day the compression was modified to "on", the data written
                  prior to setting "on" will not be compressed. Default Value: off.'
                pattern: ^(on|off|lzjb|zstd|zstd-[1-9]|zstd-1[0-9]|gzip|gzip-[1-9]|zle|lz4)$
                type: string
              dedup:
                description: 'Deduplication is the process for removing redundant
                  data at the block level, reducing the total amount of data stored.
                  If a file system has the dedup property enabled, duplicate data
                  blocks are removed synchronously. The result is that only unique
                  data is stored and common components are shared among files. Deduplication
                  can consume significant processing power (CPU) and memory as well
                  as generate additional disk IO. Before creating a pool with deduplication
                  enabled, ensure that you have planned your hardware requirements
                  appropriately and implemented appropriate recovery practices, such
                  as regular backups. As an alternative to deduplication consider
                  using compression=lz4, as a less resource-intensive alternative.
                  should be enabled on the zvol. Dedup property can be edited after
                  the volume has been created. Default Value: off.'
                enum:
                - "on"
                - "off"
                type: string
              encryption:
                description: 'Enabling the encryption feature allows for the creation
                  of encrypted filesystems and volumes. ZFS will encrypt file and
                  zvol data, file attributes, ACLs, permission bits, directory listings,
                  FUID mappings, and userused / groupused data. ZFS will not encrypt
                  metadata related to the pool structure, including dataset and snapshot
                  names, dataset hierarchy, properties, file size, file holes, and
                  deduplication tables (though the deduplicated data itself is encrypted).
                  Default Value: off.'
                pattern: ^(on|off|aes-128-[c,g]cm|aes-192-[c,g]cm|aes-256-[c,g]cm)$
                type: string
              fsType:
                description: 'FsType specifies filesystem type for the zfs volume/dataset.
                  If FsType is provided as "zfs", then the driver will create a ZFS
                  dataset, formatting is not required as underlying filesystem is
                  ZFS anyway. If FsType is ext2, ext3, ext4 or xfs, then the driver
                  will create a ZVOL and format the volume accordingly. FsType can
                  not be modified once volume has been provisioned. Default Value:
                  ext4.'
                type: string
              keyformat:
                description: KeyFormat specifies format of the encryption key The
                  supported KeyFormats are passphrase, raw, hex.
                enum:
                - passphrase
                - raw
                - hex
                type: string
              keylocation:
                description: KeyLocation is the location of key for the encryption
                type: string
              ownerNodeID:
                description: OwnerNodeID is the Node ID where the ZPOOL is running
                  which is where the volume has been provisioned. OwnerNodeID can
                  not be edited after the volume has been provisioned.
                minLength: 1
                type: string
              poolName:
                description: poolName specifies the name of the pool where the volume
                  has been created. PoolName can not be edited after the volume has
                  been provisioned.
                minLength: 1
                type: string
              recordsize:
                description: 'Specifies a suggested block size for files in the file
                  system. The size specified must be a power of two greater than or
                  equal to 512 and less than or equal to 128 Kbytes. RecordSize property
                  can be edited after the volume has been created. Changing the file
                  system''s recordsize affects only files created afterward; existing
                  files are unaffected. Default Value: 128k.'
                minLength: 1
                type: string
              shared:
                description: Shared specifies whether the volume can be shared among
                  multiple pods. If it is not set to "yes", then the ZFS-LocalPV Driver
                  will not allow the volumes to be mounted by more than one pods.
                enum:
                - "yes"
                - "no"
                type: string
              snapname:
                description: SnapName specifies the name of the snapshot where the
                  volume has been cloned from. Snapname can not be edited after the
                  volume has been provisioned.
                type: string
              thinProvision:
                description: 'ThinProvision describes whether space reservation for
                  the source volume is required or not. The value "yes" indicates
                  that volume should be thin provisioned and "no" means thick provisioning
                  of the volume. If thinProvision is set to "yes" then volume can
                  be provisioned even if the ZPOOL does not have the enough capacity.
                  If thinProvision is set to "no" then volume can be provisioned only
                  if the ZPOOL has enough capacity and capacity required by volume
                  can be reserved. ThinProvision can not be modified once volume has
                  been provisioned. Default Value: no.'
                enum:
                - "yes"
                - "no"
                type: string
              volblocksize:
                description: 'VolBlockSize specifies the block size for the zvol.
                  The volsize can only be set to a multiple of volblocksize, and cannot
                  be zero. VolBlockSize can not be edited after the volume has been
                  provisioned. Default Value: 8k.'
                minLength: 1
                type: string
              volumeType:
                description: volumeType determines whether the volume is of type "DATASET"
                  or "ZVOL". If fstype provided in the storageclass is "zfs", a volume
                  of type dataset will be created. If "ext4", "ext3", "ext2" or "xfs"
                  is mentioned as fstype in the storageclass, then a volume of type
                  zvol will be created, which will be further formatted as the fstype
                  provided in the storageclass. VolumeType can not be modified once
                  volume has been provisioned.
                enum:
                - ZVOL
                - DATASET
                type: string
            required:
            - capacity
            - ownerNodeID
            - poolName
            - volumeType
            type: object
        required:
        - spec
        - status
        type: object
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
