Avoid unnecessary patching when resources are being deleted #9763
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.
Type of change
Description
Currently, when diffing Kubernetes resources we do not ignore the deletion timestamp and the deletion grace period. As a result, we might patch a Kubernetes resource that is being deleted because these two fields trigger a diff. To avoid this, this adds them to the ignore lists.
One of the examples where this might cause a problem is when you delete a PVC -> it should not be deleted while being used by a pod. But because the operator patches the resource, it removes the finalizer and gets it deleted while still in use. In some environment, that seems to also wipe the PV and the data volume and fail the pod. In others, it seems the PV deletion will not happen until the pod rolls. But none of the cases is desired and this PR should mitigate it (the only other solution to deal with it even better in the future is using server-side-apply).
Checklist