Delete EndpointSlice should consider the situation that it no longer exists
Signed-off-by: wawa0210 <xiaozhang0210@hotmail.com>
This commit is contained in:
parent
dfe22abff3
commit
597abca96e
|
@ -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 err := c.Client.Get(context.TODO(), req.NamespacedName, work); err != nil {
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
// Cleanup derived EndpointSlices after work has been removed.
|
// 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.WorkNamespaceLabel: req.Namespace,
|
||||||
workv1alpha1.WorkNameLabel: req.Name,
|
workv1alpha1.WorkNameLabel: req.Name,
|
||||||
})
|
})
|
||||||
|
if err == nil {
|
||||||
|
return controllerruntime.Result{}, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return controllerruntime.Result{Requeue: true}, err
|
return controllerruntime.Result{Requeue: true}, err
|
||||||
|
|
|
@ -4,10 +4,10 @@ import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
discoveryv1beta1 "k8s.io/api/discovery/v1beta1"
|
discoveryv1beta1 "k8s.io/api/discovery/v1beta1"
|
||||||
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
"k8s.io/apimachinery/pkg/util/errors"
|
"k8s.io/apimachinery/pkg/util/errors"
|
||||||
"k8s.io/klog/v2"
|
"k8s.io/klog/v2"
|
||||||
controllerruntime "sigs.k8s.io/controller-runtime"
|
|
||||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||||
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
|
"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.
|
// 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)
|
endpointSliceList, err := GetEndpointSlices(c, selector)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if apierrors.IsNotFound(err) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
klog.Errorf("Failed to get endpointslices by label %v: %v", selector, err)
|
klog.Errorf("Failed to get endpointslices by label %v: %v", selector, err)
|
||||||
return controllerruntime.Result{Requeue: true}, err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
var errs []error
|
var errs []error
|
||||||
|
@ -63,8 +66,8 @@ func DeleteEndpointSlice(c client.Client, selector labels.Set) (controllerruntim
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
return controllerruntime.Result{Requeue: true}, errors.NewAggregate(errs)
|
return errors.NewAggregate(errs)
|
||||||
}
|
}
|
||||||
|
|
||||||
return controllerruntime.Result{}, nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue