You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -997,7 +983,10 @@ Why should this KEP _not_ be implemented?
997
983
-->
998
984
999
985
## Alternatives
1000
-
Instead of adding new fields to CSI GRPC `ControllerModifyVolume`, we could add a new GRPC `ControllerModifyVolumeTopology`:
986
+
987
+
### New GRPC
988
+
989
+
Instead of adding new fields to CSI GRPC `ControllerModifyVolume`, we could add a new GRPC `ControllerModifyVolumeTopology` (Other candidate names: `ControllerMigrateVolume`):
| Maintenance Difficulty | ✅ Low | ⚠️ High, need to also modify ControllerModifyVolumeTopology when making changes to ControllerModifyVolume |
1032
1022
| Implementation Complexity | ✅ Low | ⚠️ High, SPs will have to implement a new GRPC if they want to support topology modification even if they have implemented ControllerModifyVolume |
1033
1023
| Side Effects | ⚠️ Will impede the GA process of K8s VAC | ✅ No influence on other features |
1034
1024
1025
+
### User Specified Topology Requirement
1026
+
1027
+
Currently we don't support user specified topology requirement.
1028
+
We've considered a design:
1029
+
* Add `accessibility_requirements` in `ModifyVolumeRequest`, like that in `CreateVolumeRequest`
1030
+
* Add `allowedTopologies` in `VolumeAttributeClass`, like that in `StorageClass`
1031
+
1032
+
But facing a lot of unresolved questions:
1033
+
* How to merge `allowedTopologies` from `VolumeAttributeClass`, `StorageClass`?
1034
+
* Should we use `allowedTopologies` from `StorageClass` if it is not specified in `VolumeAttributeClass`?
1035
+
* Should we consider the topology of the currently attached nodes?
1036
+
* Should we consider the topology of all the nodes in the cluster?
1037
+
1038
+
In most cases, SP can determine the desired topology of a volume from the `mutable_parameters`, or from the currently attached nodes.
1039
+
An exception could be: modifying a volume from regional to zonal, and it is not attached to any node.
1040
+
In this case, SP will need more information from the CO to determine the desired zone.
1041
+
But we don't have such use case now, we decided leave it as a future work.
1042
+
1035
1043
<!--
1036
1044
What other approaches did you consider, and why did you rule them out? These do
1037
1045
not need to be as detailed as the proposal, but should include enough
0 commit comments