If the problem you're trying to solve is QoS / IO provisioning, join the conversation on the
QoS doc we started a couple of weeks ago!
I think one of the key issues is to define what you're actually trying to solve. For example, above it's been suggested both to change the volume and also to add resources to the pod---but those are quite different; for example when doing it at the pod level what do you do in a ROX case where the maximum IO for a volume is exceeded?
Similarly, with modifying the volume are you talking about changing the PV or the PVC? If the PV, typically only an admin has privileges to change the cluster-level object and not an application dev. If the IO request lives on the PVC, then the application dev can change it, but practically there needs to be quota and other cluster level management. That should probably live in the storage class... but the details need to be worked out.
In the doc at the top of the thread, the suggestion is to make the storage class modifiable. This opens up some edge cases (eg is it okay to change the provisioner of a volume?), as well as preventing application developers from having fine grained control over IO requests (because they'd be limited to selecting from the set of storage classes).
Anyway because of these issues, in the
QoS doc I'm trying to start by pinning down what problems we're trying to solve before designing the solution. Please join the conversation! (and I'll link the doc above into it).