Merge pull request #64374 from deads2k/scale-client

Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

move scaleClient from factory

rebase https://github.com/kubernetes/kubernetes/pull/64287

```release-note
NONE
```
This commit is contained in:
Kubernetes Submit Queue 2018-05-27 13:03:21 -07:00 committed by GitHub
commit b9e46f5422
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 37 additions and 8 deletions

View File

@ -220,7 +220,7 @@ func (o *ApplyOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) error {
return err return err
} }
o.Scaler, err = f.ScaleClient() o.Scaler, err = cmdutil.ScaleClientFn(f)
if err != nil { if err != nil {
return err return err
} }

View File

@ -214,7 +214,7 @@ func (o *RollingUpdateOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, a
return err return err
} }
o.ScaleClient, err = f.ScaleClient() o.ScaleClient, err = cmdutil.ScaleClientFn(f)
if err != nil { if err != nil {
return err return err
} }
@ -242,7 +242,6 @@ func (o *RollingUpdateOptions) Validate(cmd *cobra.Command, args []string) error
} }
func (o *RollingUpdateOptions) Run() error { func (o *RollingUpdateOptions) Run() error {
filename := "" filename := ""
if len(o.FilenameOptions.Filenames) > 0 { if len(o.FilenameOptions.Filenames) > 0 {
filename = o.FilenameOptions.Filenames[0] filename = o.FilenameOptions.Filenames[0]

View File

@ -289,7 +289,7 @@ func ScaleJob(info *resource.Info, jobsClient batchclient.JobsGetter, count uint
} }
func scaler(f cmdutil.Factory) (kubectl.Scaler, error) { func scaler(f cmdutil.Factory) (kubectl.Scaler, error) {
scalesGetter, err := f.ScaleClient() scalesGetter, err := cmdutil.ScaleClientFn(f)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -25,7 +25,6 @@ import (
"k8s.io/client-go/dynamic" "k8s.io/client-go/dynamic"
"k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes"
restclient "k8s.io/client-go/rest" restclient "k8s.io/client-go/rest"
scaleclient "k8s.io/client-go/scale"
api "k8s.io/kubernetes/pkg/apis/core" api "k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
@ -78,9 +77,6 @@ type Factory interface {
Validator(validate bool) (validation.Schema, error) Validator(validate bool) (validation.Schema, error)
// OpenAPISchema returns the schema openapi schema definition // OpenAPISchema returns the schema openapi schema definition
OpenAPISchema() (openapi.Resources, error) OpenAPISchema() (openapi.Resources, error)
// ScaleClient gives you back scale getter
ScaleClient() (scaleclient.ScalesGetter, error)
} }
func makePortsString(ports []api.ServicePort, useNodePort bool) string { func makePortsString(ports []api.ServicePort, useNodePort bool) string {

View File

@ -38,6 +38,8 @@ import (
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/yaml" "k8s.io/apimachinery/pkg/util/yaml"
"k8s.io/client-go/dynamic" "k8s.io/client-go/dynamic"
"k8s.io/client-go/rest"
"k8s.io/client-go/scale"
"k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/clientcmd"
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
"k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl"
@ -673,3 +675,35 @@ func genericDescriber(restClientGetter genericclioptions.RESTClientGetter, mappi
eventsClient := clientSet.Core() eventsClient := clientSet.Core()
return printersinternal.GenericDescriberFor(mapping, dynamicClient, eventsClient), nil return printersinternal.GenericDescriberFor(mapping, dynamicClient, eventsClient), nil
} }
// ScaleClientFunc provides a ScalesGetter
type ScaleClientFunc func(genericclioptions.RESTClientGetter) (scale.ScalesGetter, error)
// ScaleClientFn gives a way to easily override the function for unit testing if needed.
var ScaleClientFn ScaleClientFunc = scaleClient
// scaleClient gives you back scale getter
func scaleClient(restClientGetter genericclioptions.RESTClientGetter) (scale.ScalesGetter, error) {
discoveryClient, err := restClientGetter.ToDiscoveryClient()
if err != nil {
return nil, err
}
clientConfig, err := restClientGetter.ToRESTConfig()
if err != nil {
return nil, err
}
setKubernetesDefaults(clientConfig)
restClient, err := rest.RESTClientFor(clientConfig)
if err != nil {
return nil, err
}
resolver := scale.NewDiscoveryScaleKindResolver(discoveryClient)
mapper, err := restClientGetter.ToRESTMapper()
if err != nil {
return nil, err
}
return scale.New(restClient, mapper, dynamic.LegacyAPIPathResolverFunc, resolver), nil
}