PR simplyblock/simplyblock-csi#294 introduces setting IOPS values using annotations.
simplybk/qos-rw-iops: "1000"
This will essentially remove the need for having to create a storage class. The storage class serves two purposes: IOPS via qos_rw_iops in CSI parameters, and it's also the storageClassName reference on every PVC (data, WAL, autoscaler, db, storage). If we migrate to annotations, we'd use the base SIMPLYBLOCK_CSI_STORAGE_CLASS directly and drop the per-branch storage class entirely.
But with this approach when a branch is cloned/restored it will use the SIMPLYBLOCK_CSI_STORAGE_CLASS storage class which doesn't have IOPS QOS set. So we need to explicitly call update_branch_volume_iops as a second step.
Test cases:
- create a new branch should have IOPS set correctly
- Resize IOPS should should work correctly
- Branch clone with the default values should inherit the IOPS from the parent branch
- Branch restore with default parameters should inherit IOPS from the parent branch
- Branch clone/branch restore with override IOPS should work correctly
PR simplyblock/simplyblock-csi#294 introduces setting IOPS values using annotations.
This will essentially remove the need for having to create a storage class. The storage class serves two purposes: IOPS via
qos_rw_iopsin CSI parameters, and it's also thestorageClassNamereference on every PVC (data, WAL, autoscaler, db, storage). If we migrate to annotations, we'd use the base SIMPLYBLOCK_CSI_STORAGE_CLASS directly and drop the per-branch storage class entirely.But with this approach when a branch is cloned/restored it will use the
SIMPLYBLOCK_CSI_STORAGE_CLASSstorage class which doesn't have IOPS QOS set. So we need to explicitly callupdate_branch_volume_iopsas a second step.Test cases: