@@ -31,7 +31,6 @@ import (
3131 "github.com/containers/image/v5/types"
3232 "github.com/spf13/cobra"
3333 rbacv1 "k8s.io/api/rbac/v1"
34- apiextensionsv1client "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1"
3534 "k8s.io/apimachinery/pkg/labels"
3635 k8slabels "k8s.io/apimachinery/pkg/labels"
3736 "k8s.io/apimachinery/pkg/selection"
@@ -60,19 +59,13 @@ import (
6059 "github.com/operator-framework/operator-controller/internal/operator-controller/action"
6160 "github.com/operator-framework/operator-controller/internal/operator-controller/applier"
6261 "github.com/operator-framework/operator-controller/internal/operator-controller/authentication"
63- "github.com/operator-framework/operator-controller/internal/operator-controller/authorization"
6462 "github.com/operator-framework/operator-controller/internal/operator-controller/catalogmetadata/cache"
6563 catalogclient "github.com/operator-framework/operator-controller/internal/operator-controller/catalogmetadata/client"
6664 "github.com/operator-framework/operator-controller/internal/operator-controller/contentmanager"
6765 "github.com/operator-framework/operator-controller/internal/operator-controller/controllers"
6866 "github.com/operator-framework/operator-controller/internal/operator-controller/features"
6967 "github.com/operator-framework/operator-controller/internal/operator-controller/finalizers"
7068 "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"
7669 "github.com/operator-framework/operator-controller/internal/operator-controller/scheme"
7770 sharedcontrollers "github.com/operator-framework/operator-controller/internal/shared/controllers"
7871 fsutil "github.com/operator-framework/operator-controller/internal/shared/util/fs"
@@ -417,45 +410,50 @@ func run() error {
417410 },
418411 }
419412
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+ // }
425418
426- preflights := []applier.Preflight {
427- crdupgradesafety .NewPreflight (aeClient .CustomResourceDefinitions ()),
428- }
419+ // preflights := []applier.Preflight{
420+ // crdupgradesafety.NewPreflight(aeClient.CustomResourceDefinitions()),
421+ // }
429422
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 (),
434432 }
435433
436434 // determine if a certificate provider should be set in the bundle renderer and feature support for the provider
437435 // 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+ // }
447445
448446 // 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+ // }
459457
460458 cm := contentmanager .NewManager (clientRestConfigMapper , mgr .GetConfig (), mgr .GetRESTMapper ())
461459 err = clusterExtensionFinalizers .Register (controllers .ClusterExtensionCleanupContentManagerCacheFinalizer , finalizers .FinalizerFunc (func (ctx context.Context , obj client.Object ) (crfinalizer.Result , error ) {
@@ -475,7 +473,18 @@ func run() error {
475473 return err
476474 }
477475 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+ })
479488
480489 // Cache scoping
481490 req1 , err := labels .NewRequirement (
@@ -485,20 +494,25 @@ func run() error {
485494 }
486495 o .DefaultLabelSelector = labels .NewSelector ().Add (* req1 )
487496
488- return c , o , nil
497+ return saConfig , o , nil
489498 }
490- accessManager := managedcache .NewObjectBoundAccessManager [* ocv1.ClusterExtension ](
499+
500+ accessManager := managedcache .NewObjectBoundAccessManager (
491501 ctrl .Log .WithName ("accessmanager" ), mapFunc , restConfig , crcache.Options {
492502 Scheme : mgr .GetScheme (), Mapper : mgr .GetRESTMapper (),
493503 })
504+ if err := mgr .Add (accessManager ); err != nil {
505+ setupLog .Error (err , "unable to register AccessManager" )
506+ return err
507+ }
494508 // Boxcutter
495509
496510 if err = (& controllers.ClusterExtensionReconciler {
497511 Client : cl ,
498512 Resolver : resolver ,
499513 ImageCache : imageCache ,
500514 ImagePuller : imagePuller ,
501- Applier : helmApplier ,
515+ Applier : boxcutterApplier ,
502516 InstalledBundleGetter : & controllers.DefaultInstalledBundleGetter {ActionClientGetter : acg },
503517 Finalizers : clusterExtensionFinalizers ,
504518 Manager : cm ,
0 commit comments