@@ -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"
@@ -114,7 +115,7 @@ type Operator struct {
114
115
subQueueSet * queueinformer.ResourceQueueSet
115
116
ipQueueSet * queueinformer.ResourceQueueSet
116
117
ogQueueSet * queueinformer.ResourceQueueSet
117
- nsResolveQueue workqueue.TypedRateLimitingInterface [any ]
118
+ nsResolveQueue workqueue.TypedRateLimitingInterface [types. NamespacedName ]
118
119
namespace string
119
120
recorder record.EventRecorder
120
121
sources * grpc.SourceStore
@@ -268,8 +269,8 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
268
269
// Wire InstallPlans
269
270
ipInformer := crInformerFactory .Operators ().V1alpha1 ().InstallPlans ()
270
271
op .lister .OperatorsV1alpha1 ().RegisterInstallPlanLister (metav1 .NamespaceAll , ipInformer .Lister ())
271
- ipQueue := workqueue .NewTypedRateLimitingQueueWithConfig [any ](workqueue .DefaultTypedControllerRateLimiter [any ](),
272
- workqueue.TypedRateLimitingQueueConfig [any ]{
272
+ ipQueue := workqueue .NewTypedRateLimitingQueueWithConfig [types. NamespacedName ](workqueue .DefaultTypedControllerRateLimiter [types. NamespacedName ](),
273
+ workqueue.TypedRateLimitingQueueConfig [types. NamespacedName ]{
273
274
Name : "ips" ,
274
275
})
275
276
op .ipQueueSet .Set (metav1 .NamespaceAll , ipQueue )
@@ -290,8 +291,8 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
290
291
291
292
operatorGroupInformer := crInformerFactory .Operators ().V1 ().OperatorGroups ()
292
293
op .lister .OperatorsV1 ().RegisterOperatorGroupLister (metav1 .NamespaceAll , operatorGroupInformer .Lister ())
293
- ogQueue := workqueue .NewTypedRateLimitingQueueWithConfig [any ](workqueue .DefaultTypedControllerRateLimiter [any ](),
294
- workqueue.TypedRateLimitingQueueConfig [any ]{
294
+ ogQueue := workqueue .NewTypedRateLimitingQueueWithConfig [types. NamespacedName ](workqueue .DefaultTypedControllerRateLimiter [types. NamespacedName ](),
295
+ workqueue.TypedRateLimitingQueueConfig [types. NamespacedName ]{
295
296
Name : "ogs" ,
296
297
})
297
298
op .ogQueueSet .Set (metav1 .NamespaceAll , ogQueue )
@@ -312,8 +313,8 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
312
313
// Wire CatalogSources
313
314
catsrcInformer := crInformerFactory .Operators ().V1alpha1 ().CatalogSources ()
314
315
op .lister .OperatorsV1alpha1 ().RegisterCatalogSourceLister (metav1 .NamespaceAll , catsrcInformer .Lister ())
315
- catsrcQueue := workqueue .NewTypedRateLimitingQueueWithConfig [any ](workqueue .DefaultTypedControllerRateLimiter [any ](),
316
- workqueue.TypedRateLimitingQueueConfig [any ]{
316
+ catsrcQueue := workqueue .NewTypedRateLimitingQueueWithConfig [types. NamespacedName ](workqueue .DefaultTypedControllerRateLimiter [types. NamespacedName ](),
317
+ workqueue.TypedRateLimitingQueueConfig [types. NamespacedName ]{
317
318
Name : "catsrcs" ,
318
319
})
319
320
op .catsrcQueueSet .Set (metav1 .NamespaceAll , catsrcQueue )
@@ -323,7 +324,8 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
323
324
queueinformer .WithLogger (op .logger ),
324
325
queueinformer .WithQueue (catsrcQueue ),
325
326
queueinformer .WithInformer (catsrcInformer .Informer ()),
326
- queueinformer .WithSyncer (queueinformer .LegacySyncHandler (op .syncCatalogSources ).ToSyncerWithDelete (op .handleCatSrcDeletion )),
327
+ queueinformer .WithSyncer (queueinformer .LegacySyncHandler (op .syncCatalogSources ).ToSyncer ()),
328
+ queueinformer .WithDeletionHandler (op .handleCatSrcDeletion ),
327
329
)
328
330
if err != nil {
329
331
return nil , err
@@ -341,8 +343,8 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
341
343
subIndexer := subInformer .Informer ().GetIndexer ()
342
344
op .catalogSubscriberIndexer [metav1 .NamespaceAll ] = subIndexer
343
345
344
- subQueue := workqueue .NewTypedRateLimitingQueueWithConfig [any ](workqueue .DefaultTypedControllerRateLimiter [any ](),
345
- workqueue.TypedRateLimitingQueueConfig [any ]{
346
+ subQueue := workqueue .NewTypedRateLimitingQueueWithConfig [types. NamespacedName ](workqueue .DefaultTypedControllerRateLimiter [types. NamespacedName ](),
347
+ workqueue.TypedRateLimitingQueueConfig [types. NamespacedName ]{
346
348
Name : "subs" ,
347
349
})
348
350
op .subQueueSet .Set (metav1 .NamespaceAll , subQueue )
@@ -355,7 +357,7 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
355
357
subscription .WithCatalogInformer (catsrcInformer .Informer ()),
356
358
subscription .WithInstallPlanInformer (ipInformer .Informer ()),
357
359
subscription .WithSubscriptionQueue (subQueue ),
358
- subscription .WithAppendedReconcilers (subscription .ReconcilerFromLegacySyncHandler (op .syncSubscriptions , nil )),
360
+ subscription .WithAppendedReconcilers (subscription .ReconcilerFromLegacySyncHandler (op .syncSubscriptions )),
359
361
subscription .WithRegistryReconcilerFactory (op .reconciler ),
360
362
subscription .WithGlobalCatalogNamespace (op .namespace ),
361
363
subscription .WithSourceProvider (op .resolverSourceProvider ),
@@ -415,7 +417,7 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
415
417
logger := op .logger .WithFields (logrus.Fields {"gvr" : gvr .String (), "index" : idx })
416
418
logger .Info ("registering labeller" )
417
419
418
- queue := workqueue .NewTypedRateLimitingQueueWithConfig [any ](workqueue .DefaultTypedControllerRateLimiter [any ](), workqueue.TypedRateLimitingQueueConfig [any ]{
420
+ queue := workqueue .NewTypedRateLimitingQueueWithConfig [types. NamespacedName ](workqueue .DefaultTypedControllerRateLimiter [types. NamespacedName ](), workqueue.TypedRateLimitingQueueConfig [types. NamespacedName ]{
419
421
Name : gvr .String (),
420
422
})
421
423
queueInformer , err := queueinformer .NewQueueInformer (
@@ -560,7 +562,7 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
560
562
logger := op .logger .WithFields (logrus.Fields {"gvr" : gvr .String ()})
561
563
logger .Info ("registering owner reference fixer" )
562
564
563
- queue := workqueue .NewTypedRateLimitingQueueWithConfig [any ](workqueue .DefaultTypedControllerRateLimiter [any ](), workqueue.TypedRateLimitingQueueConfig [any ]{
565
+ queue := workqueue .NewTypedRateLimitingQueueWithConfig [types. NamespacedName ](workqueue .DefaultTypedControllerRateLimiter [types. NamespacedName ](), workqueue.TypedRateLimitingQueueConfig [types. NamespacedName ]{
564
566
Name : gvr .String (),
565
567
})
566
568
queueInformer , err := queueinformer .NewQueueInformer (
@@ -670,13 +672,14 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
670
672
}
671
673
672
674
// Generate and register QueueInformers for k8s resources
673
- k8sSyncer := queueinformer .LegacySyncHandler (op .syncObject ).ToSyncerWithDelete ( op . handleDeletion )
675
+ k8sSyncer := queueinformer .LegacySyncHandler (op .syncObject ).ToSyncer ( )
674
676
for _ , informer := range sharedIndexInformers {
675
677
queueInformer , err := queueinformer .NewQueueInformer (
676
678
ctx ,
677
679
queueinformer .WithLogger (op .logger ),
678
680
queueinformer .WithInformer (informer ),
679
681
queueinformer .WithSyncer (k8sSyncer ),
682
+ queueinformer .WithDeletionHandler (op .handleDeletion ),
680
683
)
681
684
if err != nil {
682
685
return nil , err
@@ -724,7 +727,8 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
724
727
ctx ,
725
728
queueinformer .WithLogger (op .logger ),
726
729
queueinformer .WithInformer (crdInformer ),
727
- queueinformer .WithSyncer (queueinformer .LegacySyncHandler (op .syncObject ).ToSyncerWithDelete (op .handleDeletion )),
730
+ queueinformer .WithSyncer (queueinformer .LegacySyncHandler (op .syncObject ).ToSyncer ()),
731
+ queueinformer .WithDeletionHandler (op .handleDeletion ),
728
732
)
729
733
if err != nil {
730
734
return nil , err
@@ -745,8 +749,8 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
745
749
// Namespace sync for resolving subscriptions
746
750
namespaceInformer := informers .NewSharedInformerFactory (op .opClient .KubernetesInterface (), resyncPeriod ()).Core ().V1 ().Namespaces ()
747
751
op .lister .CoreV1 ().RegisterNamespaceLister (namespaceInformer .Lister ())
748
- op .nsResolveQueue = workqueue .NewTypedRateLimitingQueueWithConfig [any ](workqueue .DefaultTypedControllerRateLimiter [any ](),
749
- workqueue.TypedRateLimitingQueueConfig [any ]{
752
+ op .nsResolveQueue = workqueue .NewTypedRateLimitingQueueWithConfig [types. NamespacedName ](workqueue .DefaultTypedControllerRateLimiter [types. NamespacedName ](),
753
+ workqueue.TypedRateLimitingQueueConfig [types. NamespacedName ]{
750
754
Name : "resolve" ,
751
755
})
752
756
namespaceQueueInformer , err := queueinformer .NewQueueInformer (
@@ -787,12 +791,12 @@ func (o *Operator) syncSourceState(state grpc.SourceState) {
787
791
788
792
if err == nil {
789
793
for ns := range namespaces {
790
- o .nsResolveQueue .Add (ns )
794
+ o .nsResolveQueue .Add (types. NamespacedName { Name : ns } )
791
795
}
792
796
}
793
797
}
794
798
795
- o .nsResolveQueue .Add (state .Key .Namespace )
799
+ o .nsResolveQueue .Add (types. NamespacedName { Name : state .Key .Namespace } )
796
800
}
797
801
if err := o .catsrcQueueSet .Requeue (state .Key .Namespace , state .Key .Name ); err != nil {
798
802
o .logger .WithError (err ).Info ("couldn't requeue catalogsource from catalog status change" )
@@ -873,18 +877,16 @@ func (o *Operator) handleDeletion(obj interface{}) {
873
877
func (o * Operator ) handleCatSrcDeletion (obj interface {}) {
874
878
catsrc , ok := obj .(metav1.Object )
875
879
if ! ok {
880
+ tombstone , ok := obj .(cache.DeletedFinalStateUnknown )
876
881
if ! ok {
877
- tombstone , ok := obj .(cache.DeletedFinalStateUnknown )
878
- if ! ok {
879
- utilruntime .HandleError (fmt .Errorf ("couldn't get object from tombstone %#v" , obj ))
880
- return
881
- }
882
+ utilruntime .HandleError (fmt .Errorf ("couldn't get object from tombstone %#v" , obj ))
883
+ return
884
+ }
882
885
883
- catsrc , ok = tombstone .Obj .(metav1.Object )
884
- if ! ok {
885
- utilruntime .HandleError (fmt .Errorf ("tombstone contained object that is not a Namespace %#v" , obj ))
886
- return
887
- }
886
+ catsrc , ok = tombstone .Obj .(metav1.Object )
887
+ if ! ok {
888
+ utilruntime .HandleError (fmt .Errorf ("tombstone contained object that is not a Namespace %#v" , obj ))
889
+ return
888
890
}
889
891
}
890
892
sourceKey := registry.CatalogKey {Name : catsrc .GetName (), Namespace : catsrc .GetNamespace ()}
@@ -1411,7 +1413,7 @@ func (o *Operator) syncResolvingNamespace(obj interface{}) error {
1411
1413
}
1412
1414
1413
1415
logger .Info ("unpacking is not complete yet, requeueing" )
1414
- o .nsResolveQueue .AddAfter (namespace , 5 * time .Second )
1416
+ o .nsResolveQueue .AddAfter (types. NamespacedName { Name : namespace } , 5 * time .Second )
1415
1417
return nil
1416
1418
}
1417
1419
}
@@ -1506,7 +1508,7 @@ func (o *Operator) syncSubscriptions(obj interface{}) error {
1506
1508
return fmt .Errorf ("casting Subscription failed" )
1507
1509
}
1508
1510
1509
- o .nsResolveQueue .Add (sub .GetNamespace ())
1511
+ o .nsResolveQueue .Add (types. NamespacedName { Name : sub .GetNamespace ()} )
1510
1512
1511
1513
return nil
1512
1514
}
@@ -1520,7 +1522,7 @@ func (o *Operator) syncOperatorGroups(obj interface{}) error {
1520
1522
return fmt .Errorf ("casting OperatorGroup failed" )
1521
1523
}
1522
1524
1523
- o .nsResolveQueue .Add (og .GetNamespace ())
1525
+ o .nsResolveQueue .Add (types. NamespacedName { Name : og .GetNamespace ()} )
1524
1526
1525
1527
return nil
1526
1528
}
0 commit comments