@@ -52,6 +52,7 @@ import (
52
52
"github.com/operator-framework/operator-controller/internal/controllers"
53
53
"github.com/operator-framework/operator-controller/internal/httputil"
54
54
"github.com/operator-framework/operator-controller/internal/labels"
55
+ "github.com/operator-framework/operator-controller/internal/resolve"
55
56
"github.com/operator-framework/operator-controller/internal/version"
56
57
"github.com/operator-framework/operator-controller/pkg/features"
57
58
"github.com/operator-framework/operator-controller/pkg/scheme"
@@ -155,14 +156,6 @@ func main() {
155
156
os .Exit (1 )
156
157
}
157
158
158
- httpClient , err := httputil .BuildHTTPClient (caCertDir )
159
- if err != nil {
160
- setupLog .Error (err , "unable to create catalogd http client" )
161
- }
162
-
163
- cl := mgr .GetClient ()
164
- catalogClient := catalogclient .New (cache .NewFilesystemCache (cachePath , httpClient ))
165
-
166
159
installNamespaceMapper := helmclient .ObjectToStringMapper (func (obj client.Object ) (string , error ) {
167
160
ext := obj .(* ocv1alpha1.ClusterExtension )
168
161
return ext .Spec .InstallNamespace , nil
@@ -229,17 +222,37 @@ func main() {
229
222
crdupgradesafety .NewPreflight (aeClient .CustomResourceDefinitions ()),
230
223
}
231
224
225
+ cl := mgr .GetClient ()
226
+ httpClient , err := httputil .BuildHTTPClient (caCertDir )
227
+ if err != nil {
228
+ setupLog .Error (err , "unable to create catalogd http client" )
229
+ }
230
+ catalogClient := catalogclient .New (cache .NewFilesystemCache (cachePath , httpClient ))
231
+
232
+ resolver := & resolve.CatalogResolver {
233
+ WalkCatalogsFunc : resolve .CatalogWalker (
234
+ func (ctx context.Context , option ... client.ListOption ) ([]catalogd.ClusterCatalog , error ) {
235
+ var catalogs catalogd.ClusterCatalogList
236
+ if err := cl .List (ctx , & catalogs , option ... ); err != nil {
237
+ return nil , err
238
+ }
239
+ return catalogs .Items , nil
240
+ },
241
+ catalogClient .GetPackage ,
242
+ ),
243
+ }
244
+
232
245
if err = (& controllers.ClusterExtensionReconciler {
233
- Client : cl ,
234
- CatalogPackageProvider : catalogClient ,
235
- ActionClientGetter : acg ,
236
- Unpacker : unpacker ,
237
- Storage : localStorage ,
238
- InstalledBundleGetter : & controllers. DefaultInstalledBundleGetter { ActionClientGetter : acg } ,
239
- Handler : registryv1handler .HandlerFunc (registry .HandleBundleDeployment ),
240
- Finalizers : clusterExtensionFinalizers ,
241
- CaCertDir : caCertDir ,
242
- Preflights : preflights ,
246
+ Client : cl ,
247
+ InstalledBundleGetter : & controllers. DefaultInstalledBundleGetter { ActionClientGetter : acg } ,
248
+ Resolver : resolver ,
249
+ ActionClientGetter : acg ,
250
+ Unpacker : unpacker ,
251
+ Storage : localStorage ,
252
+ Handler : registryv1handler .HandlerFunc (registry .HandleBundleDeployment ),
253
+ Finalizers : clusterExtensionFinalizers ,
254
+ CaCertDir : caCertDir ,
255
+ Preflights : preflights ,
243
256
}).SetupWithManager (mgr ); err != nil {
244
257
setupLog .Error (err , "unable to create controller" , "controller" , "ClusterExtension" )
245
258
os .Exit (1 )
0 commit comments