in controllers/helper/helper.go [238:268]
func TryToDelete(ctx context.Context, k8sClient client.Client, instance client.Object,
finalizerName string, deleteFunc func() error,
) error {
if instance.GetDeletionTimestamp().IsZero() {
finalizers := instance.GetFinalizers()
if !ContainsString(finalizers, finalizerName) {
finalizers = append(finalizers, finalizerName)
instance.SetFinalizers(finalizers)
if err := k8sClient.Update(ctx, instance); err != nil {
return errors.Wrap(err, "unable to update instance finalizer")
}
}
return nil
}
if err := deleteFunc(); err != nil {
return errors.Wrap(err, "unable to perform delete function")
}
finalizers := instance.GetFinalizers()
finalizers = RemoveString(finalizers, finalizerName)
instance.SetFinalizers(finalizers)
if err := k8sClient.Update(ctx, instance); err != nil {
return errors.Wrap(err, "unable to remove finalizer from instance")
}
return nil
}