Determine best way to offer a mitigation for 'stuck' instances and bindings #1723
Comments
|
I am pro the "svcat nuclear option". 💣 |
svcat should make it more promenent that a instance is scheduled to be deleted. Here's the issue that was on our old backlog for that: Azure/service-catalog-cli#70 UPDATE: I've copied that issue over #1728 |
|
The ansible-service-broker community was looking at tackling this from a broker perspective via openshift/ansible-service-broker#666. To echo the concern here, we want to make sure the user is fully aware that if they want the service-instance always deleted then they break the guarantee that all resources are cleaned up. So the solution the community is thinking of merging is a broker config option called |
|
tagging folks @pmorie @carolynvs ^ |
|
Even if the broker had a force delete, we may still want this cleanup functionality in service catalog for cases where the broker is not acting as expected, and the user really wants to remove the k8s resources. |
|
I didn't know about
To me that sounds less like a workaround and more like the exact appropriate thing to do given how the system works. Sure it would be nice to have a button to hit, but in the lack of any clear functionality provided to force-delete, is it really appropriate to go write server side code to solve this? |
I see this as a workaround in that our API doesn't have a way to deal with certain conditions. It's not unexpected to get into this state (or at least I seem to manage to do it often enough). If Service Catalog had an endpoint or flag to say "Hey this is totally borked, I give up and I just want to make it go away", service catalog could handle logging that it was asked to give up, remove the finalizer, and allow the resource to be deleted. It gives us more control over audit and mitigation, without telling people that it's expected that at times they will have to manually circumvent Service Catalog, which is an uncomfortable precedent to set. |
|
In conjunction with #1728, here's what I think may be a workable UX: |
|
I wrote an example plugin for kubecon that implements deleting finalizers off of a pod, which may help explain what this new svcat would need to do: |
|
#1723 (comment) |
|
On one hand, I think scripting this is going to end badly for someone. On the other, I ain't their momma, so why not? +1 for |
|
/assign @carolynvs |
We have a few different issues where instances or bindings can become 'stuck' after deletion due to a few different reasons:
See: #1551 #908
A workaround for these cases is to edit the resource and remove the finalizer token for the catalog. That's a workable stopgap for now; it's arguable that there should be a better way to remove instances/bindings in a bad state.
Some information that I can add to this:
--forceoption for kubectl is 100% client-side and does not differentiate theDeleteOptionssent to the API server in anyway for our resources--forcefor--nowAnother factor we must consider is that users, especially those new to Kubernetes, frequently believe that the catalog is somehow broken when an instance doesn't immediately disappear after it has been deleted. We don't want to give users a tool that they will use in an overly eager way and then run into problems because they used the method of last resort incorrectly as a convenience.
One possibility is that we could have a
svcatcommand that:-yas an optionThe text was updated successfully, but these errors were encountered: