@@ -15,14 +15,12 @@ import (
15
15
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
16
16
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
17
17
"k8s.io/client-go/tools/cache"
18
- "k8s.io/client-go/util/workqueue"
19
18
"k8s.io/kubernetes/pkg/util/labels"
20
19
21
20
operatorsv1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/apis/operators/v1alpha1"
22
21
"github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned"
23
22
"github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/informers/externalversions"
24
23
"github.com/operator-framework/operator-lifecycle-manager/pkg/lib/queueinformer"
25
- "github.com/operator-framework/operator-lifecycle-manager/pkg/metrics"
26
24
"github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators"
27
25
)
28
26
@@ -51,7 +49,7 @@ func newRegistryClient(source *operatorsv1alpha1.CatalogSource, conn *grpc.Clien
51
49
52
50
// RegistryProvider aggregates several `CatalogSources` and establishes gRPC connections to their registry servers.
53
51
type RegistryProvider struct {
54
- * queueinformer.Operator
52
+ queueinformer.Operator
55
53
56
54
mu sync.RWMutex
57
55
globalNamespace string
@@ -60,30 +58,32 @@ type RegistryProvider struct {
60
58
61
59
var _ PackageManifestProvider = & RegistryProvider {}
62
60
63
- func NewRegistryProvider (crClient versioned.Interface , operator * queueinformer.Operator , wakeupInterval time.Duration , watchedNamespaces []string , globalNamespace string ) * RegistryProvider {
61
+ func NewRegistryProvider (ctx context. Context , crClient versioned.Interface , operator queueinformer.Operator , wakeupInterval time.Duration , watchedNamespaces []string , globalNamespace string ) ( * RegistryProvider , error ) {
64
62
p := & RegistryProvider {
65
63
Operator : operator ,
66
64
67
65
globalNamespace : globalNamespace ,
68
66
clients : make (map [sourceKey ]registryClient ),
69
67
}
70
68
71
- sourceHandlers := & cache.ResourceEventHandlerFuncs {
72
- DeleteFunc : p .catalogSourceDeleted ,
73
- }
74
69
for _ , namespace := range watchedNamespaces {
75
- factory := externalversions .NewSharedInformerFactoryWithOptions (crClient , wakeupInterval , externalversions .WithNamespace (namespace ))
76
- sourceInformer := factory .Operators ().V1alpha1 ().CatalogSources ()
70
+ informerFactory := externalversions .NewSharedInformerFactoryWithOptions (crClient , wakeupInterval , externalversions .WithNamespace (namespace ))
71
+ catsrcInformer := informerFactory .Operators ().V1alpha1 ().CatalogSources ()
77
72
78
73
// Register queue and QueueInformer
79
74
logrus .WithField ("namespace" , namespace ).Info ("watching catalogsources" )
80
- queueName := fmt .Sprintf ("%s/catalogsources" , namespace )
81
- sourceQueue := workqueue .NewNamedRateLimitingQueue (workqueue .DefaultControllerRateLimiter (), queueName )
82
- sourceQueueInformer := queueinformer .NewInformer (sourceQueue , sourceInformer .Informer (), p .syncCatalogSource , sourceHandlers , queueName , metrics .NewMetricsNil (), logrus .New ())
83
- p .RegisterQueueInformer (sourceQueueInformer )
75
+ catsrcQueueInformer , err := queueinformer .NewQueueInformer (
76
+ ctx ,
77
+ queueinformer .WithInformer (catsrcInformer .Informer ()),
78
+ queueinformer .WithSyncer (queueinformer .LegacySyncHandler (p .syncCatalogSource ).ToSyncerWithDelete (p .catalogSourceDeleted )),
79
+ )
80
+ if err != nil {
81
+ return nil , err
82
+ }
83
+ p .RegisterQueueInformer (catsrcQueueInformer )
84
84
}
85
85
86
- return p
86
+ return p , nil
87
87
}
88
88
89
89
func (p * RegistryProvider ) getClient (key sourceKey ) (registryClient , bool ) {
0 commit comments