@@ -30,10 +30,8 @@ import (
3030 apiextensionsv1client "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1"
3131 k8slabels "k8s.io/apimachinery/pkg/labels"
3232 "k8s.io/apimachinery/pkg/selection"
33- "k8s.io/apimachinery/pkg/types"
3433 corev1client "k8s.io/client-go/kubernetes/typed/core/v1"
3534 _ "k8s.io/client-go/plugin/pkg/client/auth"
36- "k8s.io/client-go/rest"
3735 ctrl "sigs.k8s.io/controller-runtime"
3836 crcache "sigs.k8s.io/controller-runtime/pkg/cache"
3937 "sigs.k8s.io/controller-runtime/pkg/client"
@@ -162,41 +160,21 @@ func main() {
162160 os .Exit (1 )
163161 }
164162
165- installNamespaceMapper := helmclient .ObjectToStringMapper (func (obj client.Object ) (string , error ) {
166- ext := obj .(* ocv1alpha1.ClusterExtension )
167- return ext .Spec .InstallNamespace , nil
168- })
169163 coreClient , err := corev1client .NewForConfig (mgr .GetConfig ())
170164 if err != nil {
171165 setupLog .Error (err , "unable to create core client" )
172166 os .Exit (1 )
173167 }
174168 tokenGetter := authentication .NewTokenGetter (coreClient , authentication .WithExpirationDuration (1 * time .Hour ))
175-
176- restConfigMapper := func (ctx context.Context , o client.Object , c * rest.Config ) (* rest.Config , error ) {
177- cExt , ok := o .(* ocv1alpha1.ClusterExtension )
178- if ! ok {
179- return c , nil
180- }
181- namespacedName := types.NamespacedName {
182- Name : cExt .Spec .ServiceAccount .Name ,
183- Namespace : cExt .Spec .InstallNamespace ,
184- }
185- tempConfig := rest .AnonymousClientConfig (c )
186- tempConfig .WrapTransport = func (rt http.RoundTripper ) http.RoundTripper {
187- return & authentication.TokenInjectingRoundTripper {
188- Tripper : rt ,
189- TokenGetter : tokenGetter ,
190- Key : namespacedName ,
191- }
192- }
193- return tempConfig , nil
194- }
169+ clientRestConfigMapper := action .ServiceAccountRestConfigMapper (tokenGetter )
195170
196171 cfgGetter , err := helmclient .NewActionConfigGetter (mgr .GetConfig (), mgr .GetRESTMapper (),
197- helmclient .StorageNamespaceMapper (installNamespaceMapper ),
198- helmclient .ClientNamespaceMapper (installNamespaceMapper ),
199- helmclient .RestConfigMapper (restConfigMapper ),
172+ helmclient .StorageDriverMapper (action .ChunkedStorageDriverMapper (coreClient , mgr .GetAPIReader (), systemNamespace )),
173+ helmclient .ClientNamespaceMapper (func (obj client.Object ) (string , error ) {
174+ ext := obj .(* ocv1alpha1.ClusterExtension )
175+ return ext .Spec .InstallNamespace , nil
176+ }),
177+ helmclient .ClientRestConfigMapper (clientRestConfigMapper ),
200178 )
201179 if err != nil {
202180 setupLog .Error (err , "unable to config for creating helm client" )
@@ -283,7 +261,7 @@ func main() {
283261 Applier : applier ,
284262 InstalledBundleGetter : & controllers.DefaultInstalledBundleGetter {ActionClientGetter : acg },
285263 Finalizers : clusterExtensionFinalizers ,
286- Watcher : contentmanager .New (restConfigMapper , mgr .GetConfig (), mgr .GetRESTMapper ()),
264+ Watcher : contentmanager .New (clientRestConfigMapper , mgr .GetConfig (), mgr .GetRESTMapper ()),
287265 }).SetupWithManager (mgr ); err != nil {
288266 setupLog .Error (err , "unable to create controller" , "controller" , "ClusterExtension" )
289267 os .Exit (1 )
0 commit comments