@@ -47,7 +47,8 @@ import (
47
47
"github.com/operator-framework/operator-controller/internal/controllers"
48
48
"github.com/operator-framework/operator-controller/internal/httputil"
49
49
"github.com/operator-framework/operator-controller/internal/labels"
50
- crdupgradesafety "github.com/operator-framework/operator-controller/internal/rukpak/preflights/crdupgradesafety"
50
+ "github.com/operator-framework/operator-controller/internal/resolve"
51
+ "github.com/operator-framework/operator-controller/internal/rukpak/preflights/crdupgradesafety"
51
52
"github.com/operator-framework/operator-controller/internal/rukpak/source"
52
53
"github.com/operator-framework/operator-controller/internal/version"
53
54
"github.com/operator-framework/operator-controller/pkg/features"
@@ -153,25 +154,6 @@ func main() {
153
154
os .Exit (1 )
154
155
}
155
156
156
- certPool , err := httputil .NewCertPool (caCertDir )
157
- if err != nil {
158
- setupLog .Error (err , "unable to create CA certificate pool" )
159
- os .Exit (1 )
160
- }
161
-
162
- httpClient , err := httputil .BuildHTTPClient (certPool )
163
- if err != nil {
164
- setupLog .Error (err , "unable to create catalogd http client" )
165
- }
166
-
167
- cl := mgr .GetClient ()
168
- catalogsCachePath := filepath .Join (cachePath , "catalogs" )
169
- if err := os .MkdirAll (catalogsCachePath , 0700 ); err != nil {
170
- setupLog .Error (err , "unable to create catalogs cache directory" )
171
- os .Exit (1 )
172
- }
173
- catalogClient := catalogclient .New (cl , cache .NewFilesystemCache (catalogsCachePath , httpClient ))
174
-
175
157
installNamespaceMapper := helmclient .ObjectToStringMapper (func (obj client.Object ) (string , error ) {
176
158
ext := obj .(* ocv1alpha1.ClusterExtension )
177
159
return ext .Spec .InstallNamespace , nil
@@ -194,14 +176,19 @@ func main() {
194
176
os .Exit (1 )
195
177
}
196
178
197
- clusterExtensionFinalizers := crfinalizer .NewFinalizers ()
179
+ certPool , err := httputil .NewCertPool (caCertDir )
180
+ if err != nil {
181
+ setupLog .Error (err , "unable to create CA certificate pool" )
182
+ os .Exit (1 )
183
+ }
198
184
unpacker := & source.ImageRegistry {
199
185
BaseCachePath : filepath .Join (cachePath , "unpack" ),
200
186
// TODO: This needs to be derived per extension via ext.Spec.InstallNamespace
201
187
AuthNamespace : systemNamespace ,
202
188
CaCertPool : certPool ,
203
189
}
204
190
191
+ clusterExtensionFinalizers := crfinalizer .NewFinalizers ()
205
192
domain := ocv1alpha1 .GroupVersion .Group
206
193
cleanupUnpackCacheKey := fmt .Sprintf ("%s/cleanup-unpack-cache" , domain )
207
194
if err := clusterExtensionFinalizers .Register (cleanupUnpackCacheKey , finalizerFunc (func (ctx context.Context , obj client.Object ) (crfinalizer.Result , error ) {
@@ -222,9 +209,36 @@ func main() {
222
209
crdupgradesafety .NewPreflight (aeClient .CustomResourceDefinitions ()),
223
210
}
224
211
212
+ cl := mgr .GetClient ()
213
+ httpClient , err := httputil .BuildHTTPClient (certPool )
214
+ if err != nil {
215
+ setupLog .Error (err , "unable to create catalogd http client" )
216
+ os .Exit (1 )
217
+ }
218
+
219
+ catalogsCachePath := filepath .Join (cachePath , "catalogs" )
220
+ if err := os .MkdirAll (catalogsCachePath , 0700 ); err != nil {
221
+ setupLog .Error (err , "unable to create catalogs cache directory" )
222
+ os .Exit (1 )
223
+ }
224
+ catalogClient := catalogclient .New (cache .NewFilesystemCache (catalogsCachePath , httpClient ))
225
+
226
+ resolver := & resolve.CatalogResolver {
227
+ WalkCatalogsFunc : resolve .CatalogWalker (
228
+ func (ctx context.Context , option ... client.ListOption ) ([]catalogd.ClusterCatalog , error ) {
229
+ var catalogs catalogd.ClusterCatalogList
230
+ if err := cl .List (ctx , & catalogs , option ... ); err != nil {
231
+ return nil , err
232
+ }
233
+ return catalogs .Items , nil
234
+ },
235
+ catalogClient .GetPackage ,
236
+ ),
237
+ }
238
+
225
239
if err = (& controllers.ClusterExtensionReconciler {
226
240
Client : cl ,
227
- BundleProvider : catalogClient ,
241
+ Resolver : resolver ,
228
242
ActionClientGetter : acg ,
229
243
Unpacker : unpacker ,
230
244
InstalledBundleGetter : & controllers.DefaultInstalledBundleGetter {ActionClientGetter : acg },
0 commit comments