Merge pull request #865 from wawa0210/fix-removeendpointslice

ignore NotFound error when deleting EndpointSlice
This commit is contained in:
karmada-bot 2021-10-26 16:38:27 +08:00 committed by GitHub
commit aed2e8ce66
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 6 deletions

View File

@ -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

View File

@ -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
}