Remove kubeconfigdir. Use a tempfile instead 12/90412/3
authorKiran Kamineni <kiran.k.kamineni@intel.com>
Mon, 24 Jun 2019 21:54:29 +0000 (14:54 -0700)
committerKiran Kamineni <kiran.k.kamineni@intel.com>
Tue, 16 Jul 2019 18:16:44 +0000 (11:16 -0700)
Kubeconfigdir does not need to be a configurable
parameter. We just create a local file and use that
to create the config after which it is not needed.

Issue-ID: MULTICLOUD-614
Change-Id: I2df561d50b620e24c5ae5266b7200210e0c11caf
Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
src/k8splugin/internal/app/client.go
src/k8splugin/internal/config/config.go
src/k8splugin/internal/connection/connection.go

index 4fdce59..8d2af29 100644 (file)
@@ -18,7 +18,6 @@ import (
        "os"
        "time"
 
-       "github.com/onap/multicloud-k8s/src/k8splugin/internal/config"
        "github.com/onap/multicloud-k8s/src/k8splugin/internal/connection"
        "github.com/onap/multicloud-k8s/src/k8splugin/internal/helm"
        "github.com/onap/multicloud-k8s/src/k8splugin/internal/plugin"
@@ -45,8 +44,9 @@ type KubernetesClient struct {
 // getKubeConfig uses the connectivity client to get the kubeconfig based on the name
 // of the cloudregion. This is written out to a file.
 func (k *KubernetesClient) getKubeConfig(cloudregion string) (string, error) {
+
        conn := connection.NewConnectionClient()
-       kubeConfigPath, err := conn.Download(cloudregion, config.GetConfiguration().KubeConfigDir)
+       kubeConfigPath, err := conn.Download(cloudregion)
        if err != nil {
                return "", pkgerrors.Wrap(err, "Downloading kubeconfig")
        }
index dc3f7a1..90204c9 100644 (file)
@@ -37,7 +37,6 @@ type Configuration struct {
        EtcdCert          string `json:"etcd-cert"`
        EtcdKey           string `json:"etcd-key"`
        EtcdCAFile        string `json:"etcd-ca-file"`
-       KubeConfigDir     string `json:"kube-config-dir"`
        OVNCentralAddress string `json:"ovn-central-address"`
        ServicePort       string `json:"service-port"`
 }
@@ -86,7 +85,6 @@ func defaultConfiguration() *Configuration {
                EtcdCert:          "etcd.cert",
                EtcdKey:           "etcd.key",
                EtcdCAFile:        "etcd-ca.cert",
-               KubeConfigDir:     cwd,
                OVNCentralAddress: "127.0.0.1",
                ServicePort:       "9015",
        }
index adb1e99..df1400b 100644 (file)
@@ -20,8 +20,6 @@ import (
        "encoding/base64"
        "encoding/json"
        "io/ioutil"
-       "log"
-       "path/filepath"
 
        "github.com/onap/multicloud-k8s/src/k8splugin/internal/db"
 
@@ -149,7 +147,6 @@ func (v *ConnectionClient) GetConnectivityRecordByName(connectionName string,
        }
 
        for _, value := range conn.OtherConnectivityList.ConnectivityRecords {
-               log.Println(value)
                if connectivityRecordName == value["connectivity-record-name"] {
                        return value, nil
                }
@@ -173,7 +170,7 @@ func (v *ConnectionClient) Delete(name string) error {
 // Download the connection information onto a kubeconfig file
 // The file is named after the name of the connection and will
 // be placed in the provided parent directory
-func (v *ConnectionClient) Download(name string, parentdir string) (string, error) {
+func (v *ConnectionClient) Download(name string) (string, error) {
 
        conn, err := v.Get(name)
        if err != nil {
@@ -186,11 +183,17 @@ func (v *ConnectionClient) Download(name string, parentdir string) (string, erro
                return "", pkgerrors.Wrap(err, "Converting from base64")
        }
 
-       target := filepath.Join(parentdir, conn.CloudRegion)
-       err = ioutil.WriteFile(target, kubeContent, 0644)
+       //Create temp file to write kubeconfig
+       //Assume this file will be deleted after usage by the consumer
+       tempF, err := ioutil.TempFile("", "kube-config-temp-")
+       if err != nil {
+               return "", pkgerrors.Wrap(err, "Creating temp file")
+       }
+
+       _, err = tempF.Write(kubeContent)
        if err != nil {
                return "", pkgerrors.Wrap(err, "Writing kubeconfig to file")
        }
 
-       return target, nil
+       return tempF.Name(), nil
 }