Skip to content

Commit

Permalink
runtime: add util func for creating rest mapper
Browse files Browse the repository at this point in the history
Add a new util func `NewDynamicRESTMapper(restConfig *rest.Config)` in
`runtime/client` for creating new RESTMapper objects.

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
  • Loading branch information
aryan9600 committed May 4, 2023
1 parent 5928deb commit fefd860
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 11 deletions.
18 changes: 18 additions & 0 deletions runtime/client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@ import (
"context"

"github.com/spf13/pflag"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/client-go/rest"
"sigs.k8s.io/cli-utils/pkg/flowcontrol"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
)

const (
Expand Down Expand Up @@ -82,3 +84,19 @@ func GetConfigOrDie(opts Options) *rest.Config {
config.Burst = opts.Burst
return config
}

// NewDynamicRESTMapper creates a new HTTP client using the provided config.
// It then returns a dynamic RESTMapper created using the HTTP client and
// the config. The returned RESTMapper dynamically discovers resource types
// at runtime.
func NewDynamicRESTMapper(restConfig *rest.Config) (meta.RESTMapper, error) {
httpClient, err := rest.HTTPClientFor(restConfig)
if err != nil {
return nil, err
}
restMapper, err := apiutil.NewDynamicRESTMapper(restConfig, httpClient)
if err != nil {
return nil, err
}
return restMapper, nil
}
13 changes: 2 additions & 11 deletions runtime/client/impersonator.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ import (
"k8s.io/client-go/tools/clientcmd"
"sigs.k8s.io/cli-utils/pkg/kstatus/polling"
rc "sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
"sigs.k8s.io/controller-runtime/pkg/client/config"

"github.com/fluxcd/pkg/apis/meta"
Expand Down Expand Up @@ -132,11 +131,7 @@ func (i *Impersonator) clientForServiceAccountOrDefault() (rc.Client, *polling.S
}
i.setImpersonationConfig(restConfig)

httpClient, err := rest.HTTPClientFor(restConfig)
if err != nil {
return nil, nil, err
}
restMapper, err := apiutil.NewDynamicRESTMapper(restConfig, httpClient)
restMapper, err := NewDynamicRESTMapper(restConfig)
if err != nil {
return nil, nil, err
}
Expand Down Expand Up @@ -168,11 +163,7 @@ func (i *Impersonator) clientForKubeConfig(ctx context.Context) (rc.Client, *pol
restConfig = KubeConfig(restConfig, i.kubeConfigOpts)
i.setImpersonationConfig(restConfig)

httpClient, err := rest.HTTPClientFor(restConfig)
if err != nil {
return nil, nil, err
}
restMapper, err := apiutil.NewDynamicRESTMapper(restConfig, httpClient)
restMapper, err := NewDynamicRESTMapper(restConfig)
if err != nil {
return nil, nil, err
}
Expand Down

0 comments on commit fefd860

Please sign in to comment.