Skip to content
This repository was archived by the owner on Jan 13, 2026. It is now read-only.

Commit 25c6fda

Browse files
authored
Switch resources plugin and update auth. (#6157)
<!-- Before you open the request please review the following guidelines and tips to help it be more easily integrated: - Describe the scope of your change - i.e. what the change does. - Describe any known limitations with your change. - Please run any tests or examples that can exercise your modified code. Thank you for contributing! --> ### Description of the change <!-- Describe the scope of your change - i.e. what the change does. --> Switches the resources plugin (only) to the new connect gRPC. ### Benefits <!-- What benefits will be realized by the code change? --> One down, 4 to go. ### Possible drawbacks <!-- Describe any known limitations with your change --> ### Applicable issues <!-- Enter any applicable Issues here (You can reference an issue using #) --> -ref #6013 ### Additional information <!-- If there's anything else that's important and relevant to your pull request, mention that information here.--> One test, which was dependent on the implementation detail of the previous gRPC server, has been commented out. I want to revisit this before landing, to see whether I can create a similar double for the server, or remove that test. --------- Signed-off-by: Michael Nelson <minelson@vmware.com>
1 parent d83e4c0 commit 25c6fda

26 files changed

Lines changed: 661 additions & 623 deletions

cmd/kubeapps-apis/core/plugins/v1alpha1/plugins.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ type GRPCPluginRegistrationOptions struct {
5050
// clients of the K8s API server created by plugins.
5151
ClientQPS float32
5252
ClientBurst int
53+
54+
// The mux used for the connect gRPC routing
55+
Mux *http.ServeMux
5356
}
5457

5558
// PluginWithServer keeps a record of a GRPC server and its plugin detail.
@@ -69,7 +72,7 @@ type PluginsServer struct {
6972
clustersConfig kube.ClustersConfig
7073
}
7174

72-
func NewPluginsServer(serveOpts core.ServeOptions, registrar grpc.ServiceRegistrar, gwArgs core.GatewayHandlerArgs) (*PluginsServer, error) {
75+
func NewPluginsServer(serveOpts core.ServeOptions, registrar grpc.ServiceRegistrar, gwArgs core.GatewayHandlerArgs, mux *http.ServeMux) (*PluginsServer, error) {
7376
// Store the serveOptions in the global 'pluginsServeOpts' variable
7477

7578
// Find all .so plugins in the specified plugins directory.
@@ -87,7 +90,7 @@ func NewPluginsServer(serveOpts core.ServeOptions, registrar grpc.ServiceRegistr
8790
}
8891
ps.clustersConfig = clustersConfig
8992

90-
err = ps.registerPlugins(pluginPaths, registrar, gwArgs, serveOpts)
93+
err = ps.registerPlugins(pluginPaths, registrar, gwArgs, serveOpts, mux)
9194
if err != nil {
9295
return nil, fmt.Errorf("failed to register plugins: %w", err)
9396
}
@@ -119,7 +122,7 @@ func (s *PluginsServer) GetConfiguredPlugins(ctx context.Context, in *connect.Re
119122
}
120123

121124
// registerPlugins opens each plugin, looks up the register function and calls it with the registrar.
122-
func (s *PluginsServer) registerPlugins(pluginPaths []string, grpcReg grpc.ServiceRegistrar, gwArgs core.GatewayHandlerArgs, serveOpts core.ServeOptions) error {
125+
func (s *PluginsServer) registerPlugins(pluginPaths []string, grpcReg grpc.ServiceRegistrar, gwArgs core.GatewayHandlerArgs, serveOpts core.ServeOptions, mux *http.ServeMux) error {
123126
pluginsWithServers := []PluginWithServer{}
124127

125128
configGetter, err := createConfigGetter(serveOpts, s.clustersConfig)
@@ -138,7 +141,7 @@ func (s *PluginsServer) registerPlugins(pluginPaths []string, grpcReg grpc.Servi
138141
return err
139142
}
140143

141-
if grpcServer, err := s.registerGRPC(p, pluginDetail, grpcReg, configGetter, serveOpts); err != nil {
144+
if grpcServer, err := s.registerGRPC(p, pluginDetail, grpcReg, configGetter, serveOpts, mux); err != nil {
142145
return err
143146
} else {
144147
pluginsWithServers = append(pluginsWithServers, PluginWithServer{
@@ -163,7 +166,7 @@ func (s *PluginsServer) registerPlugins(pluginPaths []string, grpcReg grpc.Servi
163166

164167
// registerGRPC finds and calls the required function for registering the plugin for the GRPC server.
165168
func (s *PluginsServer) registerGRPC(p *plugin.Plugin, pluginDetail *plugins.Plugin, registrar grpc.ServiceRegistrar,
166-
configGetter core.KubernetesConfigGetter, serveOpts core.ServeOptions) (interface{}, error) {
169+
configGetter core.KubernetesConfigGetter, serveOpts core.ServeOptions, mux *http.ServeMux) (interface{}, error) {
167170
grpcRegFn, err := p.Lookup(grpcRegisterFunction)
168171
if err != nil {
169172
return nil, fmt.Errorf("unable to lookup %q for %v: %w", grpcRegisterFunction, pluginDetail, err)
@@ -185,6 +188,7 @@ func (s *PluginsServer) registerGRPC(p *plugin.Plugin, pluginDetail *plugins.Plu
185188
PluginConfigPath: serveOpts.PluginConfigPath,
186189
ClientQPS: serveOpts.QPS,
187190
ClientBurst: serveOpts.Burst,
191+
Mux: mux,
188192
})
189193
if err != nil {
190194
return nil, fmt.Errorf("plug-in %q failed to register due to: %v", pluginDetail, err)

cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/release_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -685,7 +685,7 @@ func TestCreateInstalledPackage(t *testing.T) {
685685
}
686686

687687
// check expected HelmReleass CRD has been created
688-
if ctrlClient, err := s.clientGetter.ControllerRuntime(context.Background(), s.kubeappsCluster); err != nil {
688+
if ctrlClient, err := s.clientGetter.ControllerRuntime(context.Background(), http.Header{}, s.kubeappsCluster); err != nil {
689689
t.Fatal(err)
690690
} else {
691691
key := types.NamespacedName{Namespace: tc.request.TargetContext.Namespace, Name: tc.request.Name}
@@ -901,7 +901,7 @@ func TestUpdateInstalledPackage(t *testing.T) {
901901
}
902902
ctx := context.Background()
903903
var actualRel helmv2.HelmRelease
904-
if ctrlClient, err := s.clientGetter.ControllerRuntime(ctx, s.kubeappsCluster); err != nil {
904+
if ctrlClient, err := s.clientGetter.ControllerRuntime(ctx, http.Header{}, s.kubeappsCluster); err != nil {
905905
t.Fatal(err)
906906
} else if err = ctrlClient.Get(ctx, key, &actualRel); err != nil {
907907
t.Fatal(err)
@@ -989,7 +989,7 @@ func TestDeleteInstalledPackage(t *testing.T) {
989989
}
990990
ctx := context.Background()
991991
var actualRel helmv2.HelmRelease
992-
if ctrlClient, err := s.clientGetter.ControllerRuntime(ctx, s.kubeappsCluster); err != nil {
992+
if ctrlClient, err := s.clientGetter.ControllerRuntime(ctx, http.Header{}, s.kubeappsCluster); err != nil {
993993
t.Fatal(err)
994994
} else if err = ctrlClient.Get(ctx, key, &actualRel); !errors.IsNotFound(err) {
995995
t.Errorf("mismatch expected, NotFound, got %+v", err)

cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo_auth.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"context"
88
"encoding/json"
99
"fmt"
10+
"net/http"
1011

1112
sourcev1 "github.com/fluxcd/source-controller/api/v1beta2"
1213
corev1 "github.com/vmware-tanzu/kubeapps/cmd/kubeapps-apis/gen/core/packages/v1alpha1"
@@ -61,7 +62,7 @@ func (s *Server) handleRepoSecretForCreate(
6162
// in that order because to set an owner ref you need object (i.e. repo) UID, which you only get
6263
// once the object's been created
6364
// create a secret first, if applicable
64-
if typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster); err != nil {
65+
if typedClient, err := s.clientGetter.Typed(ctx, http.Header{}, s.kubeappsCluster); err != nil {
6566
return nil, false, err
6667
} else if secret, err = typedClient.CoreV1().Secrets(repoName.Namespace).Create(ctx, secret, metav1.CreateOptions{}); err != nil {
6768
return nil, false, statuserror.FromK8sError("create", "secret", secret.GetGenerateName(), err)
@@ -91,7 +92,7 @@ func (s *Server) handleRepoSecretForUpdate(
9192
return nil, false, false, status.Errorf(codes.InvalidArgument, "Package repository cannot mix referenced secrets and user provided secret data")
9293
}
9394

94-
typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster)
95+
typedClient, err := s.clientGetter.Typed(ctx, http.Header{}, s.kubeappsCluster)
9596
if err != nil {
9697
return nil, false, false, err
9798
}
@@ -184,7 +185,7 @@ func (s *Server) validateUserManagedRepoSecret(
184185
var secret *apiv1.Secret
185186
if secretRef != "" {
186187
// check that the specified secret exists
187-
if typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster); err != nil {
188+
if typedClient, err := s.clientGetter.Typed(ctx, http.Header{}, s.kubeappsCluster); err != nil {
188189
return nil, err
189190
} else if secret, err = typedClient.CoreV1().Secrets(repoName.Namespace).Get(ctx, secretRef, metav1.GetOptions{}); err != nil {
190191
return nil, statuserror.FromK8sError("get", "secret", secretRef, err)
@@ -250,7 +251,7 @@ func (s *Server) setOwnerReferencesForRepoSecret(
250251
repo *sourcev1.HelmRepository) error {
251252

252253
if repo.Spec.SecretRef != nil && secret != nil {
253-
if typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster); err != nil {
254+
if typedClient, err := s.clientGetter.Typed(ctx, http.Header{}, s.kubeappsCluster); err != nil {
254255
return err
255256
} else {
256257
secretsInterface := typedClient.CoreV1().Secrets(repo.Namespace)
@@ -280,7 +281,7 @@ func (s *Server) getRepoTlsConfigAndAuth(ctx context.Context, repo sourcev1.Helm
280281
if s == nil || s.clientGetter == nil {
281282
return nil, nil, status.Errorf(codes.Internal, "unexpected state in clientGetterHolder instance")
282283
}
283-
typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster)
284+
typedClient, err := s.clientGetter.Typed(ctx, http.Header{}, s.kubeappsCluster)
284285
if err != nil {
285286
return nil, nil, err
286287
}

cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -804,7 +804,7 @@ func TestGetAvailablePackageSummaryAfterFluxHelmRepoDelete(t *testing.T) {
804804
}
805805

806806
ctx := context.Background()
807-
if ctrlClient, err := s.clientGetter.ControllerRuntime(ctx, s.kubeappsCluster); err != nil {
807+
if ctrlClient, err := s.clientGetter.ControllerRuntime(ctx, http.Header{}, s.kubeappsCluster); err != nil {
808808
t.Fatal(err)
809809
} else if err = ctrlClient.Delete(ctx, repo); err != nil {
810810
t.Fatal(err)
@@ -1416,7 +1416,7 @@ func TestAddPackageRepository(t *testing.T) {
14161416
}
14171417

14181418
// check expected HelmReleass CRD has been created
1419-
if ctrlClient, err := s.clientGetter.ControllerRuntime(ctx, s.kubeappsCluster); err != nil {
1419+
if ctrlClient, err := s.clientGetter.ControllerRuntime(ctx, http.Header{}, s.kubeappsCluster); err != nil {
14201420
t.Fatal(err)
14211421
} else {
14221422
var actualRepo sourcev1.HelmRepository
@@ -1444,7 +1444,7 @@ func TestAddPackageRepository(t *testing.T) {
14441444
}
14451445
opt2 := cmpopts.IgnoreFields(metav1.ObjectMeta{}, "Name", "GenerateName")
14461446
// check expected secret has been created
1447-
if typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster); err != nil {
1447+
if typedClient, err := s.clientGetter.Typed(ctx, http.Header{}, s.kubeappsCluster); err != nil {
14481448
t.Fatal(err)
14491449
} else if secret, err := typedClient.CoreV1().Secrets(nsname.Namespace).Get(ctx, actualRepo.Spec.SecretRef.Name, metav1.GetOptions{}); err != nil {
14501450
t.Fatal(err)
@@ -2224,11 +2224,11 @@ func TestUpdatePackageRepository(t *testing.T) {
22242224

22252225
// ensures the secret has been created/updated correctly
22262226
if !tc.userManagedSecrets && (tc.oldRepoSecret != nil || tc.expectedCreatedSecret != nil) {
2227-
typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster)
2227+
typedClient, err := s.clientGetter.Typed(ctx, http.Header{}, s.kubeappsCluster)
22282228
if err != nil {
22292229
t.Fatal(err)
22302230
}
2231-
ctrlClient, err := s.clientGetter.ControllerRuntime(ctx, s.kubeappsCluster)
2231+
ctrlClient, err := s.clientGetter.ControllerRuntime(ctx, http.Header{}, s.kubeappsCluster)
22322232
if err != nil {
22332233
t.Fatal(err)
22342234
}
@@ -2345,7 +2345,7 @@ func TestDeletePackageRepository(t *testing.T) {
23452345
}
23462346

23472347
ctx := context.Background()
2348-
ctrlClient, err := s.clientGetter.ControllerRuntime(ctx, s.kubeappsCluster)
2348+
ctrlClient, err := s.clientGetter.ControllerRuntime(ctx, http.Header{}, s.kubeappsCluster)
23492349
if err != nil {
23502350
t.Fatal(err)
23512351
}
@@ -2558,7 +2558,7 @@ func (s *Server) redisMockExpectGetFromRepoCache(mock redismock.ClientMock, filt
25582558

25592559
func (s *Server) redisMockSetValueForRepo(mock redismock.ClientMock, repo sourcev1.HelmRepository, oldValue []byte) (key string, bytes []byte, err error) {
25602560
bg := &clientgetter.FixedClusterClientProvider{ClientsFunc: func(ctx context.Context) (*clientgetter.ClientGetter, error) {
2561-
return s.clientGetter.GetClients(ctx, s.kubeappsCluster)
2561+
return s.clientGetter.GetClients(ctx, http.Header{}, s.kubeappsCluster)
25622562
}}
25632563
sinkNoCache := repoEventSink{clientGetter: bg}
25642564
return sinkNoCache.redisMockSetValueForRepo(mock, repo, oldValue)
@@ -2591,7 +2591,7 @@ func redisMockSetValueForRepo(mock redismock.ClientMock, key string, newValue, o
25912591

25922592
func (s *Server) redisKeyValueForRepo(r sourcev1.HelmRepository) (key string, byteArray []byte, err error) {
25932593
cg := &clientgetter.FixedClusterClientProvider{ClientsFunc: func(ctx context.Context) (*clientgetter.ClientGetter, error) {
2594-
return s.clientGetter.GetClients(ctx, s.kubeappsCluster)
2594+
return s.clientGetter.GetClients(ctx, http.Header{}, s.kubeappsCluster)
25952595
}}
25962596
sinkNoChartCache := repoEventSink{clientGetter: cg}
25972597
return sinkNoChartCache.redisKeyValueForRepo(r)

cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/server.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package main
66
import (
77
"context"
88
"fmt"
9+
"net/http"
910

1011
"github.com/vmware-tanzu/kubeapps/cmd/kubeapps-apis/plugins/pkg/resources"
1112

@@ -651,7 +652,7 @@ func (s *Server) GetPackageRepositoryPermissions(ctx context.Context, request *c
651652
if cluster == "" && namespace != "" {
652653
return nil, status.Errorf(codes.InvalidArgument, "cluster must be specified when namespace is present: %s", namespace)
653654
}
654-
typedClient, err := s.clientGetter.Typed(ctx, cluster)
655+
typedClient, err := s.clientGetter.Typed(ctx, http.Header{}, cluster)
655656
if err != nil {
656657
return nil, err
657658
}
@@ -687,7 +688,7 @@ func (s *Server) GetPackageRepositoryPermissions(ctx context.Context, request *c
687688
func (s *Server) newRepoEventSink() repoEventSink {
688689

689690
cg := &clientgetter.FixedClusterClientProvider{ClientsFunc: func(ctx context.Context) (*clientgetter.ClientGetter, error) {
690-
return s.clientGetter.GetClients(ctx, s.kubeappsCluster)
691+
return s.clientGetter.GetClients(ctx, http.Header{}, s.kubeappsCluster)
691692
}}
692693

693694
// notice a bit of inconsistency here, we are using the context
@@ -706,7 +707,7 @@ func (s *Server) newRepoEventSink() repoEventSink {
706707
}
707708

708709
func (s *Server) getClient(ctx context.Context, namespace string) (ctrlclient.Client, error) {
709-
client, err := s.clientGetter.ControllerRuntime(ctx, s.kubeappsCluster)
710+
client, err := s.clientGetter.ControllerRuntime(ctx, http.Header{}, s.kubeappsCluster)
710711
if err != nil {
711712
return nil, err
712713
}
@@ -715,7 +716,7 @@ func (s *Server) getClient(ctx context.Context, namespace string) (ctrlclient.Cl
715716

716717
// hasAccessToNamespace returns an error if the client does not have read access to a given namespace
717718
func (s *Server) hasAccessToNamespace(ctx context.Context, gvr schema.GroupVersionResource, namespace string) (bool, error) {
718-
typedCli, err := s.clientGetter.Typed(ctx, s.kubeappsCluster)
719+
typedCli, err := s.clientGetter.Typed(ctx, http.Header{}, s.kubeappsCluster)
719720
if err != nil {
720721
return false, err
721722
}

cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/server_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"context"
88
"fmt"
99
"io"
10+
"net/http"
1011
"strings"
1112
"testing"
1213
"time"
@@ -326,13 +327,13 @@ func newServer(t *testing.T,
326327
if clientGetter != nil {
327328
// if client getter returns an error, FLUSHDB call does not take place, because
328329
// newCacheWithRedisClient() raises an error before redisCli.FlushDB() call
329-
if _, err := clientGetter.GetClients(context.TODO(), ""); err == nil {
330+
if _, err := clientGetter.GetClients(context.TODO(), http.Header{}, ""); err == nil {
330331
mock.ExpectFlushDB().SetVal("OK")
331332
}
332333
}
333334

334335
backgroundClientGetter := &clientgetter.FixedClusterClientProvider{ClientsFunc: func(ctx context.Context) (*clientgetter.ClientGetter, error) {
335-
return clientGetter.GetClients(ctx, KubeappsCluster)
336+
return clientGetter.GetClients(ctx, http.Header{}, KubeappsCluster)
336337
}}
337338

338339
sink := repoEventSink{

cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/test_util_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ func newCtrlClient(repos []sourcev1.HelmRepository, charts []sourcev1.HelmChart,
393393

394394
func ctrlClientAndWatcher(t *testing.T, s *Server) (client.WithWatch, *watch.RaceFreeFakeWatcher, error) {
395395
ctx := context.Background()
396-
if ctrlClient, err := s.clientGetter.ControllerRuntime(ctx, s.kubeappsCluster); err != nil {
396+
if ctrlClient, err := s.clientGetter.ControllerRuntime(ctx, http.Header{}, s.kubeappsCluster); err != nil {
397397
return nil, nil, err
398398
} else if ww, ok := ctrlClient.(*withWatchWrapper); !ok {
399399
return nil, nil, fmt.Errorf("Could not cast %T to: *withWatchWrapper", ctrlClient)

cmd/kubeapps-apis/plugins/helm/packages/v1alpha1/repositories.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package main
55

66
import (
77
"context"
8+
"net/http"
89

910
"github.com/vmware-tanzu/kubeapps/cmd/apprepository-controller/pkg/apis/apprepository"
1011

@@ -61,7 +62,7 @@ func (s *Server) newRepo(ctx context.Context, repo *HelmRepository) (*corev1.Pac
6162
if repo.repoType == "" || !slices.Contains(ValidRepoTypes, repo.repoType) {
6263
return nil, status.Errorf(codes.InvalidArgument, "repository type [%s] not supported", repo.repoType)
6364
}
64-
typedClient, err := s.clientGetter.Typed(ctx, repo.cluster)
65+
typedClient, err := s.clientGetter.Typed(ctx, http.Header{}, repo.cluster)
6566
if err != nil {
6667
return nil, err
6768
}
@@ -310,7 +311,7 @@ func (s *Server) setOwnerReferencesForRepoSecret(
310311
repo *apprepov1alpha1.AppRepository) error {
311312

312313
if secret != nil {
313-
if typedClient, err := s.clientGetter.Typed(ctx, cluster); err != nil {
314+
if typedClient, err := s.clientGetter.Typed(ctx, http.Header{}, cluster); err != nil {
314315
return err
315316
} else {
316317
secretsInterface := typedClient.CoreV1().Secrets(repo.Namespace)
@@ -343,7 +344,7 @@ func (s *Server) updateRepo(ctx context.Context,
343344
if repo.name.Name == "" {
344345
return nil, status.Errorf(codes.InvalidArgument, "repository name may not be empty")
345346
}
346-
typedClient, err := s.clientGetter.Typed(ctx, repo.cluster)
347+
typedClient, err := s.clientGetter.Typed(ctx, http.Header{}, repo.cluster)
347348
if err != nil {
348349
return nil, err
349350
}
@@ -585,7 +586,7 @@ func (s *Server) GetPkgRepositories(ctx context.Context, cluster, namespace stri
585586
// getAccessiblePackageRepositories gather list of repositories to which the user has access per namespace
586587
func (s *Server) getAccessiblePackageRepositories(ctx context.Context, cluster string) ([]*apprepov1alpha1.AppRepository, error) {
587588
clusterTypedClientFunc := func() (kubernetes.Interface, error) {
588-
return s.clientGetter.Typed(ctx, cluster)
589+
return s.clientGetter.Typed(ctx, http.Header{}, cluster)
589590
}
590591
inClusterTypedClientFunc := func() (kubernetes.Interface, error) {
591592
return s.localServiceAccountClientGetter.Typed(context.Background())
@@ -630,7 +631,7 @@ func (s *Server) deleteRepo(ctx context.Context, cluster string, repoRef *corev1
630631
} else {
631632
// Cross-namespace owner references are disallowed by design.
632633
// We need to explicitly delete the repo secret from the namespace of the asset syncer.
633-
typedClient, err := s.clientGetter.Typed(ctx, cluster)
634+
typedClient, err := s.clientGetter.Typed(ctx, http.Header{}, cluster)
634635
if err != nil {
635636
return err
636637
}
@@ -650,7 +651,7 @@ func (s *Server) GetPackageRepositoryPermissions(ctx context.Context, request *c
650651
if cluster == "" && namespace != "" {
651652
return nil, status.Errorf(codes.InvalidArgument, "cluster must be specified when namespace is present: %s", namespace)
652653
}
653-
typedClient, err := s.clientGetter.Typed(ctx, cluster)
654+
typedClient, err := s.clientGetter.Typed(ctx, http.Header{}, cluster)
654655
if err != nil {
655656
return nil, err
656657
}

cmd/kubeapps-apis/plugins/helm/packages/v1alpha1/repositories_resources.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package main
66
import (
77
"context"
88
"fmt"
9+
"net/http"
910

1011
apprepov1alpha1 "github.com/vmware-tanzu/kubeapps/cmd/apprepository-controller/pkg/apis/apprepository/v1alpha1"
1112
"github.com/vmware-tanzu/kubeapps/cmd/kubeapps-apis/plugins/pkg/statuserror"
@@ -18,7 +19,7 @@ import (
1819
)
1920

2021
func (s *Server) getPkgRepositoryResource(ctx context.Context, cluster, namespace string) (dynamic.ResourceInterface, error) {
21-
dynClient, err := s.clientGetter.Dynamic(ctx, cluster)
22+
dynClient, err := s.clientGetter.Dynamic(ctx, http.Header{}, cluster)
2223
if err != nil {
2324
return nil, err
2425
}
@@ -48,7 +49,7 @@ func (s *Server) getPkgRepository(ctx context.Context, cluster, namespace, ident
4849
}
4950

5051
// Auth and TLS
51-
typedClient, err := s.clientGetter.Typed(ctx, cluster)
52+
typedClient, err := s.clientGetter.Typed(ctx, http.Header{}, cluster)
5253
if err != nil {
5354
return nil, nil, nil, err
5455
}

0 commit comments

Comments
 (0)