func TryToDelete()

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
}