@@ -131,6 +131,7 @@ type Operator struct {
131131 clientFactory clients.Factory
132132 muInstallPlan sync.Mutex
133133 resolverSourceProvider * resolver.RegistrySourceProvider
134+ operatorCacheProvider resolvercache.OperatorCacheProvider
134135}
135136
136137type CatalogSourceSyncFunc func (logger * logrus.Entry , in * v1alpha1.CatalogSource ) (out * v1alpha1.CatalogSource , continueSync bool , syncError error )
@@ -217,8 +218,9 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
217218 }
218219 op .sources = grpc .NewSourceStore (logger , 10 * time .Second , 10 * time .Minute , op .syncSourceState )
219220 op .resolverSourceProvider = resolver .SourceProviderFromRegistryClientProvider (op .sources , lister .OperatorsV1alpha1 ().CatalogSourceLister (), logger )
221+ op .operatorCacheProvider = resolver .NewOperatorCacheProvider (lister , crClient , op .resolverSourceProvider , logger )
220222 op .reconciler = reconciler .NewRegistryReconcilerFactory (lister , opClient , configmapRegistryImage , op .now , ssaClient , workloadUserID , opmImage , utilImage )
221- res := resolver .NewOperatorStepResolver (lister , crClient , operatorNamespace , op .resolverSourceProvider , logger )
223+ res := resolver .NewOperatorStepResolver (lister , crClient , operatorNamespace , op .operatorCacheProvider , logger )
222224 op .resolver = resolver .NewInstrumentedResolver (res , metrics .RegisterDependencyResolutionSuccess , metrics .RegisterDependencyResolutionFailure )
223225
224226 // Wire OLM CR sharedIndexInformers
@@ -360,7 +362,7 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
360362 subscription .WithAppendedReconcilers (subscription .ReconcilerFromLegacySyncHandler (op .syncSubscriptions )),
361363 subscription .WithRegistryReconcilerFactory (op .reconciler ),
362364 subscription .WithGlobalCatalogNamespace (op .namespace ),
363- subscription .WithSourceProvider (op .resolverSourceProvider ),
365+ subscription .WithOperatorCacheProvider (op .operatorCacheProvider ),
364366 )
365367 if err != nil {
366368 return nil , err
@@ -781,6 +783,7 @@ func (o *Operator) syncSourceState(state grpc.SourceState) {
781783
782784 o .logger .Infof ("state.Key.Namespace=%s state.Key.Name=%s state.State=%s" , state .Key .Namespace , state .Key .Name , state .State .String ())
783785 metrics .RegisterCatalogSourceState (state .Key .Name , state .Key .Namespace , state .State )
786+ metrics .RegisterCatalogSourceSnapshotsTotal (state .Key .Name , state .Key .Namespace )
784787
785788 switch state .State {
786789 case connectivity .Ready :
@@ -896,6 +899,7 @@ func (o *Operator) handleCatSrcDeletion(obj interface{}) {
896899 o .logger .WithField ("source" , sourceKey ).Info ("removed client for deleted catalogsource" )
897900
898901 metrics .DeleteCatalogSourceStateMetric (catsrc .GetName (), catsrc .GetNamespace ())
902+ metrics .DeleteCatalogSourceSnapshotsTotal (catsrc .GetName (), catsrc .GetNamespace ())
899903}
900904
901905func validateSourceType (logger * logrus.Entry , in * v1alpha1.CatalogSource ) (out * v1alpha1.CatalogSource , continueSync bool , _ error ) {
0 commit comments