@@ -31,7 +31,6 @@ import (
31
31
"github.com/containers/image/v5/types"
32
32
"github.com/spf13/cobra"
33
33
rbacv1 "k8s.io/api/rbac/v1"
34
- apiextensionsv1client "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1"
35
34
"k8s.io/apimachinery/pkg/labels"
36
35
k8slabels "k8s.io/apimachinery/pkg/labels"
37
36
"k8s.io/apimachinery/pkg/selection"
@@ -60,19 +59,13 @@ import (
60
59
"github.com/operator-framework/operator-controller/internal/operator-controller/action"
61
60
"github.com/operator-framework/operator-controller/internal/operator-controller/applier"
62
61
"github.com/operator-framework/operator-controller/internal/operator-controller/authentication"
63
- "github.com/operator-framework/operator-controller/internal/operator-controller/authorization"
64
62
"github.com/operator-framework/operator-controller/internal/operator-controller/catalogmetadata/cache"
65
63
catalogclient "github.com/operator-framework/operator-controller/internal/operator-controller/catalogmetadata/client"
66
64
"github.com/operator-framework/operator-controller/internal/operator-controller/contentmanager"
67
65
"github.com/operator-framework/operator-controller/internal/operator-controller/controllers"
68
66
"github.com/operator-framework/operator-controller/internal/operator-controller/features"
69
67
"github.com/operator-framework/operator-controller/internal/operator-controller/finalizers"
70
68
"github.com/operator-framework/operator-controller/internal/operator-controller/resolve"
71
- "github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/convert"
72
- "github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/preflights/crdupgradesafety"
73
- "github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/render"
74
- "github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/render/certproviders"
75
- "github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/render/registryv1"
76
69
"github.com/operator-framework/operator-controller/internal/operator-controller/scheme"
77
70
sharedcontrollers "github.com/operator-framework/operator-controller/internal/shared/controllers"
78
71
fsutil "github.com/operator-framework/operator-controller/internal/shared/util/fs"
@@ -417,45 +410,50 @@ func run() error {
417
410
},
418
411
}
419
412
420
- aeClient , err := apiextensionsv1client .NewForConfig (mgr .GetConfig ())
421
- if err != nil {
422
- setupLog .Error (err , "unable to create apiextensions client" )
423
- return err
424
- }
413
+ // aeClient, err := apiextensionsv1client.NewForConfig(mgr.GetConfig())
414
+ // if err != nil {
415
+ // setupLog.Error(err, "unable to create apiextensions client")
416
+ // return err
417
+ // }
425
418
426
- preflights := []applier.Preflight {
427
- crdupgradesafety .NewPreflight (aeClient .CustomResourceDefinitions ()),
428
- }
419
+ // preflights := []applier.Preflight{
420
+ // crdupgradesafety.NewPreflight(aeClient.CustomResourceDefinitions()),
421
+ // }
429
422
430
- // determine if PreAuthorizer should be enabled based on feature gate
431
- var preAuth authorization.PreAuthorizer
432
- if features .OperatorControllerFeatureGate .Enabled (features .PreflightPermissions ) {
433
- preAuth = authorization .NewRBACPreAuthorizer (mgr .GetClient ())
423
+ // // determine if PreAuthorizer should be enabled based on feature gate
424
+ // var preAuth authorization.PreAuthorizer
425
+ // if features.OperatorControllerFeatureGate.Enabled(features.PreflightPermissions) {
426
+ // preAuth = authorization.NewRBACPreAuthorizer(mgr.GetClient())
427
+ // }
428
+
429
+ boxcutterApplier := & applier.Boxcutter {
430
+ Client : mgr .GetClient (),
431
+ Scheme : mgr .GetScheme (),
434
432
}
435
433
436
434
// determine if a certificate provider should be set in the bundle renderer and feature support for the provider
437
435
// based on the feature flag
438
- var certProvider render.CertificateProvider
439
- var isWebhookSupportEnabled bool
440
- if features .OperatorControllerFeatureGate .Enabled (features .WebhookProviderCertManager ) {
441
- certProvider = certproviders.CertManagerCertificateProvider {}
442
- isWebhookSupportEnabled = true
443
- } else if features .OperatorControllerFeatureGate .Enabled (features .WebhookProviderOpenshiftServiceCA ) {
444
- certProvider = certproviders.OpenshiftServiceCaCertificateProvider {}
445
- isWebhookSupportEnabled = true
446
- }
436
+ // var certProvider render.CertificateProvider
437
+ // var isWebhookSupportEnabled bool
438
+ // if features.OperatorControllerFeatureGate.Enabled(features.WebhookProviderCertManager) {
439
+ // certProvider = certproviders.CertManagerCertificateProvider{}
440
+ // isWebhookSupportEnabled = true
441
+ // } else if features.OperatorControllerFeatureGate.Enabled(features.WebhookProviderOpenshiftServiceCA) {
442
+ // certProvider = certproviders.OpenshiftServiceCaCertificateProvider{}
443
+ // isWebhookSupportEnabled = true
444
+ // }
447
445
448
446
// now initialize the helmApplier, assigning the potentially nil preAuth
449
- helmApplier := & applier.Helm {
450
- ActionClientGetter : acg ,
451
- Preflights : preflights ,
452
- BundleToHelmChartConverter : & convert.BundleToHelmChartConverter {
453
- BundleRenderer : registryv1 .Renderer ,
454
- CertificateProvider : certProvider ,
455
- IsWebhookSupportEnabled : isWebhookSupportEnabled ,
456
- },
457
- PreAuthorizer : preAuth ,
458
- }
447
+ // helmApplier := &applier.Helm{
448
+ // ActionClientGetter: acg,
449
+ // Preflights: preflights,
450
+ // BundleToHelmChartConverter: &convert.BundleToHelmChartConverter{
451
+ // BundleRenderer: registryv1.Renderer,
452
+ // CertificateProvider: certProvider,
453
+ // IsWebhookSupportEnabled: isWebhookSupportEnabled,
454
+ // },
455
+ // PreAuthorizer: preAuth,
456
+ // }
459
457
460
458
cm := contentmanager .NewManager (clientRestConfigMapper , mgr .GetConfig (), mgr .GetRESTMapper ())
461
459
err = clusterExtensionFinalizers .Register (controllers .ClusterExtensionCleanupContentManagerCacheFinalizer , finalizers .FinalizerFunc (func (ctx context.Context , obj client.Object ) (crfinalizer.Result , error ) {
@@ -475,7 +473,18 @@ func run() error {
475
473
return err
476
474
}
477
475
mapFunc := func (ctx context.Context , ce * ocv1.ClusterExtension , c * rest.Config , o crcache.Options ) (* rest.Config , crcache.Options , error ) {
478
- // TODO: Rest Config Mapping / change ServiceAccount
476
+ saKey := client.ObjectKey {
477
+ Name : ce .Spec .ServiceAccount .Name ,
478
+ Namespace : ce .Spec .Namespace ,
479
+ }
480
+ saConfig := rest .AnonymousClientConfig (c )
481
+ saConfig .Wrap (func (rt http.RoundTripper ) http.RoundTripper {
482
+ return & authentication.TokenInjectingRoundTripper {
483
+ Tripper : rt ,
484
+ TokenGetter : tokenGetter ,
485
+ Key : saKey ,
486
+ }
487
+ })
479
488
480
489
// Cache scoping
481
490
req1 , err := labels .NewRequirement (
@@ -485,20 +494,25 @@ func run() error {
485
494
}
486
495
o .DefaultLabelSelector = labels .NewSelector ().Add (* req1 )
487
496
488
- return c , o , nil
497
+ return saConfig , o , nil
489
498
}
490
- accessManager := managedcache .NewObjectBoundAccessManager [* ocv1.ClusterExtension ](
499
+
500
+ accessManager := managedcache .NewObjectBoundAccessManager (
491
501
ctrl .Log .WithName ("accessmanager" ), mapFunc , restConfig , crcache.Options {
492
502
Scheme : mgr .GetScheme (), Mapper : mgr .GetRESTMapper (),
493
503
})
504
+ if err := mgr .Add (accessManager ); err != nil {
505
+ setupLog .Error (err , "unable to register AccessManager" )
506
+ return err
507
+ }
494
508
// Boxcutter
495
509
496
510
if err = (& controllers.ClusterExtensionReconciler {
497
511
Client : cl ,
498
512
Resolver : resolver ,
499
513
ImageCache : imageCache ,
500
514
ImagePuller : imagePuller ,
501
- Applier : helmApplier ,
515
+ Applier : boxcutterApplier ,
502
516
InstalledBundleGetter : & controllers.DefaultInstalledBundleGetter {ActionClientGetter : acg },
503
517
Finalizers : clusterExtensionFinalizers ,
504
518
Manager : cm ,
0 commit comments