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
Spec is not clear on what should happen when on a DeleteVolume call when
the volume has snapshots.
This patch clarifies the situation by explicitly mentioning that the
operation should complete and the snapshots should still be operational.
Closes: #346
Copy file name to clipboardExpand all lines: spec.md
+7-1Lines changed: 7 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1131,6 +1131,12 @@ This RPC will be called by the CO to deprovision a volume.
1131
1131
This operation MUST be idempotent.
1132
1132
If a volume corresponding to the specified `volume_id` does not exist or the artifacts associated with the volume do not exist anymore, the Plugin MUST reply `0 OK`.
1133
1133
1134
+
CSI plugins SHOULD treat volumes independent from their snapshots.
1135
+
1136
+
If the Controller Plugin supports deleting a volume without affecting its existing snapshots, then these snapshots MUST still be fully operational and acceptable as sources for new volumes as well as appear on `ListSnapshot` calls once the volume has been deleted.
1137
+
1138
+
When a Controller Plugin does not support deleting a volume without affecting its existing snapshots, then the volume MUST NOT be altered in any way by the request and the operation must return the `FAILED_PRECONDITION` error code and MAY include meaningful human-readable information in the `status.message` field.
1139
+
1134
1140
```protobuf
1135
1141
message DeleteVolumeRequest {
1136
1142
// The ID of the volume to be deprovisioned.
@@ -1156,7 +1162,7 @@ The CO MUST implement the specified error recovery behavior when it encounters t
| Volume in use | 9 FAILED_PRECONDITION | Indicates that the volume corresponding to the specified `volume_id` could not be deleted because it is in use by another resource. | Caller SHOULD ensure that there are no other resources using the volume, and then retry with exponential back off. |
1165
+
| Volume in use | 9 FAILED_PRECONDITION | Indicates that the volume corresponding to the specified `volume_id` could not be deleted because it is in use by another resource or has snapshots and the plugin doesn't treat them as independent entities. | Caller SHOULD ensure that there are no other resources using the volume and that it has no snapshots, and then retry with exponential back off. |
0 commit comments