@@ -30,6 +30,7 @@ import (
30
30
"k8s.io/apimachinery/pkg/runtime"
31
31
"k8s.io/apimachinery/pkg/runtime/schema"
32
32
"k8s.io/apimachinery/pkg/selection"
33
+ "k8s.io/apimachinery/pkg/types"
33
34
utilerrors "k8s.io/apimachinery/pkg/util/errors"
34
35
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
35
36
"k8s.io/apimachinery/pkg/util/sets"
@@ -270,7 +271,10 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
270
271
// Wire InstallPlans
271
272
ipInformer := crInformerFactory .Operators ().V1alpha1 ().InstallPlans ()
272
273
op .lister .OperatorsV1alpha1 ().RegisterInstallPlanLister (metav1 .NamespaceAll , ipInformer .Lister ())
273
- ipQueue := workqueue .NewNamedRateLimitingQueue (workqueue .DefaultControllerRateLimiter (), "ips" )
274
+ ipQueue := workqueue .NewRateLimitingQueueWithConfig (workqueue .DefaultControllerRateLimiter (),
275
+ workqueue.RateLimitingQueueConfig {
276
+ Name : "ips" ,
277
+ })
274
278
op .ipQueueSet .Set (metav1 .NamespaceAll , ipQueue )
275
279
ipQueueInformer , err := queueinformer .NewQueueInformer (
276
280
ctx ,
@@ -289,7 +293,10 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
289
293
290
294
operatorGroupInformer := crInformerFactory .Operators ().V1 ().OperatorGroups ()
291
295
op .lister .OperatorsV1 ().RegisterOperatorGroupLister (metav1 .NamespaceAll , operatorGroupInformer .Lister ())
292
- ogQueue := workqueue .NewNamedRateLimitingQueue (workqueue .DefaultControllerRateLimiter (), "ogs" )
296
+ ogQueue := workqueue .NewRateLimitingQueueWithConfig (workqueue .DefaultControllerRateLimiter (),
297
+ workqueue.RateLimitingQueueConfig {
298
+ Name : "ogs" ,
299
+ })
293
300
op .ogQueueSet .Set (metav1 .NamespaceAll , ogQueue )
294
301
operatorGroupQueueInformer , err := queueinformer .NewQueueInformer (
295
302
ctx ,
@@ -308,15 +315,19 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
308
315
// Wire CatalogSources
309
316
catsrcInformer := crInformerFactory .Operators ().V1alpha1 ().CatalogSources ()
310
317
op .lister .OperatorsV1alpha1 ().RegisterCatalogSourceLister (metav1 .NamespaceAll , catsrcInformer .Lister ())
311
- catsrcQueue := workqueue .NewNamedRateLimitingQueue (workqueue .DefaultControllerRateLimiter (), "catsrcs" )
318
+ catsrcQueue := workqueue .NewRateLimitingQueueWithConfig (workqueue .DefaultControllerRateLimiter (),
319
+ workqueue.RateLimitingQueueConfig {
320
+ Name : "catsrcs" ,
321
+ })
312
322
op .catsrcQueueSet .Set (metav1 .NamespaceAll , catsrcQueue )
313
323
catsrcQueueInformer , err := queueinformer .NewQueueInformer (
314
324
ctx ,
315
325
queueinformer .WithMetricsProvider (metrics .NewMetricsCatalogSource (op .lister .OperatorsV1alpha1 ().CatalogSourceLister ())),
316
326
queueinformer .WithLogger (op .logger ),
317
327
queueinformer .WithQueue (catsrcQueue ),
318
328
queueinformer .WithInformer (catsrcInformer .Informer ()),
319
- queueinformer .WithSyncer (queueinformer .LegacySyncHandler (op .syncCatalogSources ).ToSyncerWithDelete (op .handleCatSrcDeletion )),
329
+ queueinformer .WithSyncer (queueinformer .LegacySyncHandler (op .syncCatalogSources ).ToSyncer ()),
330
+ queueinformer .WithDeletionHandler (op .handleCatSrcDeletion ),
320
331
)
321
332
if err != nil {
322
333
return nil , err
@@ -334,7 +345,10 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
334
345
subIndexer := subInformer .Informer ().GetIndexer ()
335
346
op .catalogSubscriberIndexer [metav1 .NamespaceAll ] = subIndexer
336
347
337
- subQueue := workqueue .NewNamedRateLimitingQueue (workqueue .DefaultControllerRateLimiter (), "subs" )
348
+ subQueue := workqueue .NewRateLimitingQueueWithConfig (workqueue .DefaultControllerRateLimiter (),
349
+ workqueue.RateLimitingQueueConfig {
350
+ Name : "subs" ,
351
+ })
338
352
op .subQueueSet .Set (metav1 .NamespaceAll , subQueue )
339
353
subSyncer , err := subscription .NewSyncer (
340
354
ctx ,
@@ -345,7 +359,7 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
345
359
subscription .WithCatalogInformer (catsrcInformer .Informer ()),
346
360
subscription .WithInstallPlanInformer (ipInformer .Informer ()),
347
361
subscription .WithSubscriptionQueue (subQueue ),
348
- subscription .WithAppendedReconcilers (subscription .ReconcilerFromLegacySyncHandler (op .syncSubscriptions , nil )),
362
+ subscription .WithAppendedReconcilers (subscription .ReconcilerFromLegacySyncHandler (op .syncSubscriptions )),
349
363
subscription .WithRegistryReconcilerFactory (op .reconciler ),
350
364
subscription .WithGlobalCatalogNamespace (op .namespace ),
351
365
subscription .WithOperatorCacheProvider (op .operatorCacheProvider ),
@@ -660,13 +674,14 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
660
674
}
661
675
662
676
// Generate and register QueueInformers for k8s resources
663
- k8sSyncer := queueinformer .LegacySyncHandler (op .syncObject ).ToSyncerWithDelete ( op . handleDeletion )
677
+ k8sSyncer := queueinformer .LegacySyncHandler (op .syncObject ).ToSyncer ( )
664
678
for _ , informer := range sharedIndexInformers {
665
679
queueInformer , err := queueinformer .NewQueueInformer (
666
680
ctx ,
667
681
queueinformer .WithLogger (op .logger ),
668
682
queueinformer .WithInformer (informer ),
669
683
queueinformer .WithSyncer (k8sSyncer ),
684
+ queueinformer .WithDeletionHandler (op .handleDeletion ),
670
685
)
671
686
if err != nil {
672
687
return nil , err
@@ -714,7 +729,8 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
714
729
ctx ,
715
730
queueinformer .WithLogger (op .logger ),
716
731
queueinformer .WithInformer (crdInformer ),
717
- queueinformer .WithSyncer (queueinformer .LegacySyncHandler (op .syncObject ).ToSyncerWithDelete (op .handleDeletion )),
732
+ queueinformer .WithSyncer (queueinformer .LegacySyncHandler (op .syncObject ).ToSyncer ()),
733
+ queueinformer .WithDeletionHandler (op .handleDeletion ),
718
734
)
719
735
if err != nil {
720
736
return nil , err
@@ -735,7 +751,10 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
735
751
// Namespace sync for resolving subscriptions
736
752
namespaceInformer := informers .NewSharedInformerFactory (op .opClient .KubernetesInterface (), resyncPeriod ()).Core ().V1 ().Namespaces ()
737
753
op .lister .CoreV1 ().RegisterNamespaceLister (namespaceInformer .Lister ())
738
- op .nsResolveQueue = workqueue .NewNamedRateLimitingQueue (workqueue .DefaultControllerRateLimiter (), "resolver" )
754
+ op .nsResolveQueue = workqueue .NewRateLimitingQueueWithConfig (workqueue .DefaultControllerRateLimiter (),
755
+ workqueue.RateLimitingQueueConfig {
756
+ Name : "resolve" ,
757
+ })
739
758
namespaceQueueInformer , err := queueinformer .NewQueueInformer (
740
759
ctx ,
741
760
queueinformer .WithLogger (op .logger ),
@@ -775,12 +794,12 @@ func (o *Operator) syncSourceState(state grpc.SourceState) {
775
794
776
795
if err == nil {
777
796
for ns := range namespaces {
778
- o .nsResolveQueue .Add (ns )
797
+ o .nsResolveQueue .Add (types. NamespacedName { Name : ns } )
779
798
}
780
799
}
781
800
}
782
801
783
- o .nsResolveQueue .Add (state .Key .Namespace )
802
+ o .nsResolveQueue .Add (types. NamespacedName { Name : state .Key .Namespace } )
784
803
}
785
804
if err := o .catsrcQueueSet .Requeue (state .Key .Namespace , state .Key .Name ); err != nil {
786
805
o .logger .WithError (err ).Info ("couldn't requeue catalogsource from catalog status change" )
@@ -861,18 +880,16 @@ func (o *Operator) handleDeletion(obj interface{}) {
861
880
func (o * Operator ) handleCatSrcDeletion (obj interface {}) {
862
881
catsrc , ok := obj .(metav1.Object )
863
882
if ! ok {
883
+ tombstone , ok := obj .(cache.DeletedFinalStateUnknown )
864
884
if ! ok {
865
- tombstone , ok := obj .(cache.DeletedFinalStateUnknown )
866
- if ! ok {
867
- utilruntime .HandleError (fmt .Errorf ("couldn't get object from tombstone %#v" , obj ))
868
- return
869
- }
885
+ utilruntime .HandleError (fmt .Errorf ("couldn't get object from tombstone %#v" , obj ))
886
+ return
887
+ }
870
888
871
- catsrc , ok = tombstone .Obj .(metav1.Object )
872
- if ! ok {
873
- utilruntime .HandleError (fmt .Errorf ("tombstone contained object that is not a Namespace %#v" , obj ))
874
- return
875
- }
889
+ catsrc , ok = tombstone .Obj .(metav1.Object )
890
+ if ! ok {
891
+ utilruntime .HandleError (fmt .Errorf ("tombstone contained object that is not a Namespace %#v" , obj ))
892
+ return
876
893
}
877
894
}
878
895
sourceKey := registry.CatalogKey {Name : catsrc .GetName (), Namespace : catsrc .GetNamespace ()}
@@ -1400,7 +1417,7 @@ func (o *Operator) syncResolvingNamespace(obj interface{}) error {
1400
1417
}
1401
1418
1402
1419
logger .Info ("unpacking is not complete yet, requeueing" )
1403
- o .nsResolveQueue .AddAfter (namespace , 5 * time .Second )
1420
+ o .nsResolveQueue .AddAfter (types. NamespacedName { Name : namespace } , 5 * time .Second )
1404
1421
return nil
1405
1422
}
1406
1423
}
@@ -1482,7 +1499,7 @@ func (o *Operator) syncSubscriptions(obj interface{}) error {
1482
1499
return fmt .Errorf ("casting Subscription failed" )
1483
1500
}
1484
1501
1485
- o .nsResolveQueue .Add (sub .GetNamespace ())
1502
+ o .nsResolveQueue .Add (types. NamespacedName { Name : sub .GetNamespace ()} )
1486
1503
1487
1504
return nil
1488
1505
}
@@ -1496,7 +1513,7 @@ func (o *Operator) syncOperatorGroups(obj interface{}) error {
1496
1513
return fmt .Errorf ("casting OperatorGroup failed" )
1497
1514
}
1498
1515
1499
- o .nsResolveQueue .Add (og .GetNamespace ())
1516
+ o .nsResolveQueue .Add (types. NamespacedName { Name : og .GetNamespace ()} )
1500
1517
1501
1518
return nil
1502
1519
}
0 commit comments