############################################## ########### ############ ########### ZFSSnapshot CRD ############ ########### ############ ############################################## # ZFSSnapshot 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: zfssnapshots.zfs.openebs.io spec: group: zfs.openebs.io names: kind: ZFSSnapshot listKind: ZFSSnapshotList plural: zfssnapshots shortNames: - zfssnap singular: zfssnapshot scope: Namespaced versions: - name: v1 schema: openAPIV3Schema: description: ZFSSnapshot represents a ZFS Snapshot of the zfsvolume 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: 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 status: description: SnapStatus string that reflects if the snapshot was created successfully properties: state: type: string type: object required: - spec - status type: object served: true storage: true - name: v1alpha1 schema: openAPIV3Schema: description: ZFSSnapshot represents a ZFS Snapshot of the zfsvolume 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: 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|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 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 status: description: SnapStatus string that reflects if the snapshot was created successfully properties: state: type: string type: object required: - spec - status type: object served: true storage: false status: acceptedNames: kind: "" plural: "" conditions: [] storedVersions: []