@@ -71,8 +71,7 @@ func NewServiceImportController(kubeclient kubernetes.Interface,
7171 default :
7272 return sic .Handle (key )
7373 }
74- }).
75- WithEnqueueFilterFunc (preFilter )
74+ })
7675 _ , err := sic .localSIInformer .Informer ().AddEventHandler (yachtcontroller .DefaultResourceEventHandlerFuncs ())
7776 if err != nil {
7877 klog .Errorf ("failed to add event handler for serviceimport: %v" , err )
@@ -131,40 +130,19 @@ func (s *ServiceImportController) AddInitialInfoToServiceImport(si *v1alpha1.Ser
131130func (s * ServiceImportController ) getServiceImportFromEndpointSlice (obj interface {}) (* v1alpha1.ServiceImport , error ) {
132131 slice := obj .(* discoveryv1.EndpointSlice )
133132 rawServiceName , serviceExist := slice .Labels [known .LabelServiceName ]
134- rawServiceNamespace , serviceNamespaceExsit := slice .Labels [known .LabelServiceNameSpace ]
133+ _ , serviceNamespaceExsit := slice .Labels [known .LabelServiceNameSpace ]
135134 if serviceExist && serviceNamespaceExsit {
136- if siList , err := s .localSILister .ServiceImports (s .operatorNamespace ).List (
137- labels .SelectorFromSet (labels.Set {
138- known .LabelServiceName : rawServiceName ,
139- known .LabelServiceNameSpace : rawServiceNamespace ,
140- })); err == nil && len (siList ) > 0 {
141- return siList [0 ], nil
135+ if si , err := s .localSILister .ServiceImports (slice .Namespace ).Get (rawServiceName ); err == nil {
136+ return si , nil
142137 } else {
143- klog .Errorf ("failed to list ServiceImport for ServiceImport: %v" , err )
138+ klog .Errorf ("failed to list ServiceImport for EndpointSlice %s/%s: %v" ,
139+ slice .Namespace , slice .Name , err )
144140 }
145141 }
146142 klog .Infof ("can't resolve service import from this slice %s/%s" , slice .Namespace , slice .Name )
147143 return nil , fmt .Errorf ("can't resolve service import from this slice %s/%s" , slice .Namespace , slice .Name )
148144}
149145
150- // preFilter filter ServiceImport if has no label known.LabelServiceName and known.LabelServiceNameSpace
151- func preFilter (oldObj , newObj interface {}) (bool , error ) {
152- var si * v1alpha1.ServiceImport
153- if newObj == nil {
154- // Delete
155- si = oldObj .(* v1alpha1.ServiceImport )
156- } else {
157- // Add or Update
158- si = newObj .(* v1alpha1.ServiceImport )
159- }
160- _ , serviceExist := si .Labels [known .LabelServiceName ]
161- _ , serviceNamespaceExist := si .Labels [known .LabelServiceNameSpace ]
162- if ! serviceExist || ! serviceNamespaceExist {
163- return false , nil
164- }
165- return true , nil
166- }
167-
168146func (s * ServiceImportController ) Handle (obj interface {}) (requeueAfter * time.Duration , err error ) {
169147 ctx := context .Background ()
170148 key := obj .(string )
@@ -202,19 +180,20 @@ func (s *ServiceImportController) Handle(obj interface{}) (requeueAfter *time.Du
202180 si , err = s .mcsClientset .MulticlusterV1alpha1 ().ServiceImports (namespace ).Update (context .TODO (),
203181 si , metav1.UpdateOptions {})
204182 if err != nil {
183+ klog .Errorf ("failed to update serviceimport %s/%s, for %v" , si .Namespace , si .Name , err )
205184 d := time .Second
206185 return & d , err
207186 }
208187 }
209188
210189 // apply endpoint slices.
211190 srcLabelMap := labels.Set {
212- known .LabelServiceName : si .Labels [ known . LabelServiceName ] ,
213- known .LabelServiceNameSpace : si .Labels [ known . LabelServiceNameSpace ] ,
191+ known .LabelServiceName : si .Name ,
192+ known .LabelServiceNameSpace : si .Namespace ,
214193 }
215194 dstLabelMap := labels.Set {
216- known .LabelServiceName : si .Labels [ known . LabelServiceName ] ,
217- known .LabelServiceNameSpace : si .Labels [ known . LabelServiceNameSpace ] ,
195+ known .LabelServiceName : si .Name ,
196+ known .LabelServiceNameSpace : si .Namespace ,
218197 }
219198
220199 endpointSliceList , err := utils .RemoveNonexistentEndpointslice (s .sourceEndpointSlicesLister , "" ,
@@ -266,8 +245,8 @@ func (s *ServiceImportController) Run(ctx context.Context, delicatedNamespace st
266245
267246// recycleServiceImport recycle derived service and derived endpoint slices.
268247func (s * ServiceImportController ) recycleServiceImport (ctx context.Context , si * v1alpha1.ServiceImport ) error {
269- rawServiceName := si .Labels [ known . LabelServiceName ]
270- rawServiceNamespace := si .Labels [ known . LabelServiceNameSpace ]
248+ rawServiceName := si .Name
249+ rawServiceNamespace := si .Namespace
271250 // 1. recycle endpoint slices.
272251 if err := s .localk8sClient .DiscoveryV1 ().EndpointSlices (si .Namespace ).
273252 DeleteCollection (ctx , metav1.DeleteOptions {}, metav1.ListOptions {
0 commit comments