Add lazy cleanup of PVC on Mysql cluster deletion #125
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Initial fix #73 set ownership for pvcs to mysql CRD. Kubernetes deletes the pvcs along with the CRD using its garbage cleaning design. The pods belonging to the statefulset created by CRD are not immediately terminated. Kubernetes pods have certain grace period before deletion. As a result, the PVCs get deleted first and pods later.
This works well on GKE, but causes issues on other implementations. E.g. I used it on a cluster with Datera storage provider. Datera seems to keep the volume information in the PVCs. When the PVC is deleted along with Mysql CRD, it looses that information. So when kubelet tries to delete the pod, the volume cannot be disconnected.
This fix creates a cleanup worker like reconcile worker in operator to wait till pods are deleted before deleting the corresponding pvcs.