From 597abca96e9c698b6e7ca63edd2101d1e9677a09 Mon Sep 17 00:00:00 2001 From: wawa0210 Date: Mon, 25 Oct 2021 20:33:31 +0800 Subject: [PATCH] Delete EndpointSlice should consider the situation that it no longer exists Signed-off-by: wawa0210 --- pkg/controllers/mcs/endpointslice_controller.go | 5 ++++- pkg/util/helper/mcs.go | 13 ++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) 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 }