WIP: Delete Volume when creation fails with status ERROR - #1452
Conversation
Signed-off-by: Niclas Schad <niclas.schad@stackit.cloud>
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
| return nil, status.Error(codes.AlreadyExists, "Volume Already exists with same name and different capacity") | ||
| } | ||
| if *vols[0].Status != stackitclient.VolumeAvailableStatus { | ||
| return nil, status.Error(codes.Internal, fmt.Sprintf("Volume %s is not in available state", *vols[0].Id)) |
There was a problem hiding this comment.
I needs to be also handled here or?
There was a problem hiding this comment.
No, we can't. This would remove volumes that can potentially have data in it. Think about this scenario
- User creates Volume with data unrelated to SKE or any CSI
- Volume enters bad state due to reasons ™️
- User tries to import Volume (which is possible) back into Kubernetes
- Volume is now managed by CSI and will be deleted because of 2.) instead of being stuck.
| return nil, status.Errorf(codes.Internal, "Failed to get volumes: %v", err) | ||
| } | ||
|
|
||
| if len(vols) == 1 { |
There was a problem hiding this comment.
We should BTW also error when we find more than 1 volume or?
There was a problem hiding this comment.
We do
} else if len(vols) > 1 {
Just below that
Signed-off-by: Niclas Schad <niclas.schad@stackit.cloud>
Signed-off-by: Niclas Schad <niclas.schad@stackit.cloud>
How to categorize this PR?
/kind enhancement
What this PR does / why we need it:
The idea is to automatically delete the volume when status is
ERROR. We do this there is no left-over volumes even though the CreateVolume RPC failed.Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Breaking changes: