diff --git a/pkg/controllers/mcs/endpointslice_controller.go b/pkg/controllers/mcs/endpointslice_controller.go index 189e10ec0..5b56ff9de 100644 --- a/pkg/controllers/mcs/endpointslice_controller.go +++ b/pkg/controllers/mcs/endpointslice_controller.go @@ -38,10 +38,13 @@ func (c *EndpointSliceController) Reconcile(ctx context.Context, req controllerr if err := c.Client.Get(context.TODO(), req.NamespacedName, work); err != nil { if apierrors.IsNotFound(err) { // Cleanup derived EndpointSlices after work has been removed. - return helper.DeleteEndpointSlice(c.Client, labels.Set{ + err = helper.DeleteEndpointSlice(c.Client, labels.Set{ workv1alpha1.WorkNamespaceLabel: req.Namespace, workv1alpha1.WorkNameLabel: req.Name, }) + if err == nil { + return controllerruntime.Result{}, nil + } } return controllerruntime.Result{Requeue: true}, err diff --git a/pkg/util/helper/mcs.go b/pkg/util/helper/mcs.go index 108278391..3fe815157 100644 --- a/pkg/util/helper/mcs.go +++ b/pkg/util/helper/mcs.go @@ -4,10 +4,10 @@ import ( "context" discoveryv1beta1 "k8s.io/api/discovery/v1beta1" + apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/errors" "k8s.io/klog/v2" - controllerruntime "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -47,11 +47,14 @@ func GetEndpointSlices(c client.Client, ls labels.Set) (*discoveryv1beta1.Endpoi } // DeleteEndpointSlice will delete all EndpointSlice objects by labels. -func DeleteEndpointSlice(c client.Client, selector labels.Set) (controllerruntime.Result, error) { +func DeleteEndpointSlice(c client.Client, selector labels.Set) error { endpointSliceList, err := GetEndpointSlices(c, selector) if err != nil { + if apierrors.IsNotFound(err) { + return nil + } klog.Errorf("Failed to get endpointslices by label %v: %v", selector, err) - return controllerruntime.Result{Requeue: true}, err + return err } var errs []error @@ -63,8 +66,8 @@ func DeleteEndpointSlice(c client.Client, selector labels.Set) (controllerruntim } if len(errs) > 0 { - return controllerruntime.Result{Requeue: true}, errors.NewAggregate(errs) + return errors.NewAggregate(errs) } - return controllerruntime.Result{}, nil + return nil }