From b5b7056c750f71056354dedaa857c8a62479dd67 Mon Sep 17 00:00:00 2001 From: Dinesh Date: Wed, 5 Jun 2019 23:15:02 +0530 Subject: [PATCH 1/2] Extract getKubeValues into a method --- cmd/common.go | 60 ++++++++++++++++++++++----------------------------- 1 file changed, 26 insertions(+), 34 deletions(-) diff --git a/cmd/common.go b/cmd/common.go index 4e39ae179..cde8f7faa 100644 --- a/cmd/common.go +++ b/cmd/common.go @@ -166,23 +166,7 @@ func NewStore(cfg *CommonConfig) (store.Store, error) { } s = store.NewKVBackedStore(kvstore, storePath) case "kubernetes": - kubeClientConfig := util.NewKubeClientConfig(cfg.KubeConfig, cfg.KubeContext, cfg.KubeNamespace) - kubecfg, err := kubeClientConfig.ClientConfig() - if err != nil { - return nil, err - } - kubecli, err := kubernetes.NewForConfig(kubecfg) - if err != nil { - return nil, fmt.Errorf("cannot create kubernetes client: %v", err) - } - var podName string - if !cfg.IsStolonCtl { - podName, err = util.PodName() - if err != nil { - return nil, err - } - } - namespace, _, err := kubeClientConfig.Namespace() + kubecli, podName, namespace, err := getKubeValues(cfg) if err != nil { return nil, err } @@ -212,23 +196,7 @@ func NewElection(cfg *CommonConfig, uid string) (store.Election, error) { } election = store.NewKVBackedElection(kvstore, filepath.Join(storePath, common.SentinelLeaderKey), uid) case "kubernetes": - kubeClientConfig := util.NewKubeClientConfig(cfg.KubeConfig, cfg.KubeContext, cfg.KubeNamespace) - kubecfg, err := kubeClientConfig.ClientConfig() - if err != nil { - return nil, err - } - kubecli, err := kubernetes.NewForConfig(kubecfg) - if err != nil { - return nil, fmt.Errorf("cannot create kubernetes client: %v", err) - } - var podName string - if !cfg.IsStolonCtl { - podName, err = util.PodName() - if err != nil { - return nil, err - } - } - namespace, _, err := kubeClientConfig.Namespace() + kubecli, podName, namespace, err := getKubeValues(cfg) if err != nil { return nil, err } @@ -240,3 +208,27 @@ func NewElection(cfg *CommonConfig, uid string) (store.Election, error) { return election, nil } + +func getKubeValues(cfg *CommonConfig) (*kubernetes.Clientset, string, string, error) { + kubeClientConfig := util.NewKubeClientConfig(cfg.KubeConfig, cfg.KubeContext, cfg.KubeNamespace) + kubecfg, err := kubeClientConfig.ClientConfig() + if err != nil { + return nil, "", "", err + } + kubecli, err := kubernetes.NewForConfig(kubecfg) + if err != nil { + return nil, "", "", fmt.Errorf("cannot create kubernetes client: %v", err) + } + var podName string + if !cfg.IsStolonCtl { + podName, err = util.PodName() + if err != nil { + return nil, "", "", err + } + } + namespace, _, err := kubeClientConfig.Namespace() + if err != nil { + return nil, "", "", err + } + return kubecli, podName, namespace, nil +} From 2f4c21cae59c2edfa373c6781faea6def33755ac Mon Sep 17 00:00:00 2001 From: Dinesh Date: Wed, 5 Jun 2019 23:49:05 +0530 Subject: [PATCH 2/2] Add timeout for kube client --- cmd/common.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmd/common.go b/cmd/common.go index cde8f7faa..017457963 100644 --- a/cmd/common.go +++ b/cmd/common.go @@ -20,6 +20,7 @@ import ( "path/filepath" "github.com/prometheus/client_golang/prometheus" + "github.com/sorintlab/stolon/internal/cluster" "github.com/sorintlab/stolon/internal/common" "github.com/sorintlab/stolon/internal/store" "github.com/sorintlab/stolon/internal/util" @@ -215,6 +216,7 @@ func getKubeValues(cfg *CommonConfig) (*kubernetes.Clientset, string, string, er if err != nil { return nil, "", "", err } + kubecfg.Timeout = cluster.DefaultStoreTimeout kubecli, err := kubernetes.NewForConfig(kubecfg) if err != nil { return nil, "", "", fmt.Errorf("cannot create kubernetes client: %v", err)