From f63f9ef7c9f58683b9dd71c09aec5ddffa29beb1 Mon Sep 17 00:00:00 2001 From: louisehong Date: Thu, 3 Sep 2020 13:50:23 +0800 Subject: [PATCH] stage --- install/exec.go | 14 +++++--------- k8s/node.go | 17 +++++++++++++---- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/install/exec.go b/install/exec.go index dbedc151c118..03536ac60a24 100644 --- a/install/exec.go +++ b/install/exec.go @@ -10,7 +10,8 @@ type ExecFlag struct { Src string Cmd string Label string - Nodes []string + // map["hostname"] -> ip + Nodes map[string]string SealConfig } @@ -63,17 +64,12 @@ func (e *ExecFlag) execByNode() { wg.Wait() } -func (e *ExecFlag) getNodesByLabel() error { +func (e *ExecFlag) getNodesByLabel() ([]string, error) { k8sClient, err := k8s.NewClient(k8s.KubeDefaultConfigPath, nil) if err != nil { - return err + return nil, err } - nodes, err := k8s.GetNodeByLabel(k8sClient, e.Label) - if err != nil { - return err - } - e.Nodes = nodes - return nil + return k8s.GetNodeByLabel(k8sClient, e.Label) } // execByNode is exec cmd in Node diff --git a/k8s/node.go b/k8s/node.go index 622d17bee446..1fe170a06d8c 100644 --- a/k8s/node.go +++ b/k8s/node.go @@ -1,6 +1,5 @@ package k8s - import ( "context" v1 "k8s.io/api/core/v1" @@ -8,8 +7,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/kubernetes" + "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/transport" + "k8s.io/client-go/util/homedir" + "path/filepath" "strings" "time" ) @@ -25,10 +27,17 @@ const ( func NewClient(kubeConfigPath string, k8sWrapTransport transport.WrapperFunc) (*kubernetes.Clientset, error) { // use the current admin kubeconfig - config, err := clientcmd.BuildConfigFromFlags("", kubeConfigPath) - if err != nil { - return nil, err + var config *rest.Config + var err error + if home := homedir.HomeDir(); home != "" && kubeConfigPath != "" { + kubeConfigPath = filepath.Join(home, ".kube", "config") } + if config, err = rest.InClusterConfig(); err != nil { + if config, err = clientcmd.BuildConfigFromFlags("", kubeConfigPath); err != nil { + return nil, err + } + } + if k8sWrapTransport != nil { config.WrapTransport = k8sWrapTransport }