From 067dfb2935c76c02b5e76a55eb715b0123cc6772 Mon Sep 17 00:00:00 2001 From: Chuan Miao Date: Tue, 1 Oct 2019 15:01:49 +0200 Subject: [PATCH] Add 'NewConfigMapOutofCluster' method for manual testing --- go.mod | 2 ++ go.sum | 4 ++++ pkg/writer/configmap.go | 24 ++++++++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/go.mod b/go.mod index e7085aa..fa704ca 100644 --- a/go.mod +++ b/go.mod @@ -25,6 +25,8 @@ require ( github.com/hashicorp/raft v1.1.1 // indirect github.com/hashicorp/serf v0.0.0-20161007004122-1d4fa605f6ff // indirect github.com/hosting-de-labs/go-netbox v0.0.0-20190731091136-f55aa11994e5 + github.com/howeyc/gopass v0.0.0-20190910152052-7cb4b85ec19c // indirect + github.com/imdario/mergo v0.3.7 // indirect github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7 // indirect github.com/juju/ratelimit v0.0.0-20151125201925-77ed1c8a0121 // indirect github.com/namsral/flag v1.7.4-pre diff --git a/go.sum b/go.sum index 6e3140e..24cc8f5 100644 --- a/go.sum +++ b/go.sum @@ -169,6 +169,10 @@ github.com/hashicorp/serf v0.0.0-20161007004122-1d4fa605f6ff h1:3QdMaUEV3zE0VcBg github.com/hashicorp/serf v0.0.0-20161007004122-1d4fa605f6ff/go.mod h1:h/Ru6tmZazX7WO/GDmwdpS975F019L4t5ng5IgwbNrE= github.com/hosting-de-labs/go-netbox v0.0.0-20190731091136-f55aa11994e5 h1:+uPHEFii0HoUN2eT6xoMtkiap7iT+XshD2CG8jYswyw= github.com/hosting-de-labs/go-netbox v0.0.0-20190731091136-f55aa11994e5/go.mod h1:JFo3C4JO3jZ2NGnFGZkEsh1tVwm1bpvprBoxX8y2gvc= +github.com/howeyc/gopass v0.0.0-20190910152052-7cb4b85ec19c h1:aY2hhxLhjEAbfXOx2nRJxCXezC6CO2V/yN+OCr1srtk= +github.com/howeyc/gopass v0.0.0-20190910152052-7cb4b85ec19c/go.mod h1:lADxMC39cJJqL93Duh1xhAs4I2Zs8mKS89XWXFGp9cs= +github.com/imdario/mergo v0.3.7 h1:Y+UAYTZ7gDEuOfhxKWy+dvb5dRQ6rJjFSdX2HZY1/gI= +github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7 h1:SMvOWPJCES2GdFracYbBQh93GXac8fq7HeN6JnpduB8= github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= diff --git a/pkg/writer/configmap.go b/pkg/writer/configmap.go index 474db31..d25f6bc 100644 --- a/pkg/writer/configmap.go +++ b/pkg/writer/configmap.go @@ -18,6 +18,8 @@ package writer import ( "fmt" + "os" + "path/filepath" "github.com/go-kit/kit/log" "github.com/go-kit/kit/log/level" @@ -26,6 +28,7 @@ import ( "k8s.io/client-go/kubernetes" v1 "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" ) type ConfigMap struct { @@ -53,6 +56,27 @@ func NewConfigMap(cmName, namespace string, logger log.Logger) (cw *ConfigMap, e }, err } +func NewConfigMapOutofCluster(cmName, namespace string, logger log.Logger) (cw *ConfigMap, err error) { + home := os.Getenv("HOME") + kubeconfig := filepath.Join(home, ".kube", "config") + config, err := clientcmd.BuildConfigFromFlags("", kubeconfig) + if err != nil { + return nil, err + } + + clientset, err := kubernetes.NewForConfig(config) + if err != nil { + return cw, err + } + + return &ConfigMap{ + client: clientset, + configMap: cmName, + logger: logger, + ns: namespace, + }, err +} + func (c *ConfigMap) getConfigMap() (*v1.ConfigMap, error) { configMap, err := c.client.CoreV1().ConfigMaps(c.ns).Get(c.configMap, metav1.GetOptions{}) if err != nil {