Describe the problem/challenge you have
Localpv-zfs is very flexible in the sense that it reflects a lot of volume/dataset parameters in the StorageClass. For specific workloads (e.g. a Postgres database), one might desire some special recordsize/compression/etc options on the block level.
However, it is challenging for admins and confusing for users to have a separate storageclass for each possible set of parameters.
Describe the solution you'd like
I am not a ZFS expert but afaik, parameters may differ between datasets/zvols, even in the same pool.
Thus, it would be very handy to have the option to override those on a per-PVC level where necessary. This could be achieved with a set of annotations, such as
kind: PersistentVolumeClaim
metadata:
name: my-zfs-pvc
annotations:
zfs.csi.openebs.io/recordsize: 16k
zfs.csi.openebs.io/compression: zstd
spec:
storageClassName: local-zfs
Anything else you would like to add:
An option to enable/disable this feature might be desirable for those who want to strictly enforce parameters set in the storageclass. Ideally, admins would decide which parameters are changeable and which ones aren't.
Describe the problem/challenge you have
Localpv-zfs is very flexible in the sense that it reflects a lot of volume/dataset parameters in the StorageClass. For specific workloads (e.g. a Postgres database), one might desire some special recordsize/compression/etc options on the block level.
However, it is challenging for admins and confusing for users to have a separate storageclass for each possible set of parameters.
Describe the solution you'd like
I am not a ZFS expert but afaik, parameters may differ between datasets/zvols, even in the same pool.
Thus, it would be very handy to have the option to override those on a per-PVC level where necessary. This could be achieved with a set of annotations, such as
Anything else you would like to add:
An option to enable/disable this feature might be desirable for those who want to strictly enforce parameters set in the storageclass. Ideally, admins would decide which parameters are changeable and which ones aren't.