Modify default kubernetes client's apiserver url (#1204)

* Modify default kubernetes client's apiserver url
This commit is contained in:
Hang Yan 2019-12-24 00:47:10 -10:00 committed by GitHub
parent f3d54d7848
commit d52fd0d877
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -18,6 +18,9 @@ package kubernetes
import (
"fmt"
"github.com/spf13/pflag"
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
"os"
"reflect"
"regexp"
"strconv"
@ -57,6 +60,8 @@ import (
"github.com/spf13/cast"
"k8s.io/kubernetes/pkg/api/meta"
"k8s.io/kubernetes/pkg/labels"
utilflag "k8s.io/kubernetes/pkg/util/flag"
)
// Kubernetes implements Transformer interface and represents Kubernetes transformer
@ -1143,10 +1148,41 @@ func (k *Kubernetes) UpdateController(obj runtime.Object, updateTemplate func(*a
return nil
}
// DefaultClientConfig get default client config.
// This function is copied from library , we just overrides the apiserver url
func DefaultClientConfig(flags *pflag.FlagSet) clientcmd.ClientConfig {
loadingRules := clientcmd.NewDefaultClientConfigLoadingRules()
// use the standard defaults for this client command
// DEPRECATED: remove and replace with something more accurate
loadingRules.DefaultClientConfig = &clientcmd.DefaultClientConfig
flags.StringVar(&loadingRules.ExplicitPath, "kubeconfig", "", "Path to the kubeconfig file to use for CLI requests.")
clusterDefaults := clientcmd.ClusterDefaults
clusterDefaults.Server = "https://127.0.0.1:6443"
overrides := &clientcmd.ConfigOverrides{ClusterDefaults: clusterDefaults}
flagNames := clientcmd.RecommendedConfigOverrideFlags("")
// short flagnames are disabled by default. These are here for compatibility with existing scripts
flagNames.ClusterOverrideFlags.APIServer.ShortName = "s"
clientcmd.BindOverrideFlags(overrides, flags, flagNames)
clientConfig := clientcmd.NewInteractiveDeferredLoadingClientConfig(loadingRules, overrides, os.Stdin)
return clientConfig
}
// GetKubernetesClient creates the k8s Client, returns k8s client and namespace
func (k *Kubernetes) GetKubernetesClient() (*client.Client, string, error) {
// generate a new client config
flags := pflag.NewFlagSet("", pflag.ContinueOnError)
flags.SetNormalizeFunc(utilflag.WarnWordSepNormalizeFunc) // Warn for "_" flags
oc := DefaultClientConfig(flags)
// initialize Kubernetes client
factory := cmdutil.NewFactory(nil)
factory := cmdutil.NewFactory(oc)
clientConfig, err := factory.ClientConfig()
if err != nil {
return nil, "", err