Skip to content

Commit c3707a6

Browse files
authored
Merge pull request #347 from Akrog/clarify-delete-volume
Define DeleteVolume behavior with snapshots
2 parents 110da57 + a249266 commit c3707a6

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

spec.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1132,6 +1132,12 @@ This RPC will be called by the CO to deprovision a volume.
11321132
This operation MUST be idempotent.
11331133
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`.
11341134

1135+
CSI plugins SHOULD treat volumes independent from their snapshots.
1136+
1137+
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.
1138+
1139+
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.
1140+
11351141
```protobuf
11361142
message DeleteVolumeRequest {
11371143
// The ID of the volume to be deprovisioned.
@@ -1157,7 +1163,7 @@ The CO MUST implement the specified error recovery behavior when it encounters t
11571163

11581164
| Condition | gRPC Code | Description | Recovery Behavior |
11591165
|-----------|-----------|-------------|-------------------|
1160-
| 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. |
1166+
| 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. |
11611167

11621168

11631169
#### `ControllerPublishVolume`

0 commit comments

Comments
 (0)