@@ -20,6 +20,7 @@ import (
2020 "k8s.io/client-go/kubernetes"
2121 "k8s.io/client-go/rest"
2222 "k8s.io/client-go/tools/clientcmd"
23+ "k8s.io/client-go/tools/clientcmd/api"
2324 "k8s.io/client-go/tools/portforward"
2425 "k8s.io/client-go/tools/remotecommand"
2526 "k8s.io/client-go/transport/spdy"
@@ -78,14 +79,39 @@ func GetClientConfig() (*rest.Config, error) {
7879 return clientcmd .BuildConfigFromFlags ("" , clientcmd .RecommendedHomeFile )
7980 }
8081
81- return & rest.Config {
82- Host : * config .Cluster .APIServer ,
83- TLSClientConfig : rest.TLSClientConfig {
84- CAData : []byte (* config .Cluster .CaCert ),
85- CertData : []byte (* config .Cluster .User .ClientCert ),
86- KeyData : []byte (* config .Cluster .User .ClientKey ),
87- },
88- }, nil
82+ // We create a new config object here
83+ kubeAuthInfo := api .NewAuthInfo ()
84+ if config .Cluster .User != nil {
85+ if config .Cluster .User .ClientCert != nil {
86+ kubeAuthInfo .ClientCertificateData = []byte (* config .Cluster .User .ClientCert )
87+ }
88+ if config .Cluster .User .ClientKey != nil {
89+ kubeAuthInfo .ClientKeyData = []byte (* config .Cluster .User .ClientKey )
90+ }
91+ if config .Cluster .User .Token != nil {
92+ kubeAuthInfo .Token = * config .Cluster .User .Token
93+ }
94+ }
95+
96+ kubeCluster := api .NewCluster ()
97+ if config .Cluster .APIServer != nil {
98+ kubeCluster .Server = * config .Cluster .APIServer
99+ }
100+ if config .Cluster .CaCert != nil {
101+ kubeCluster .CertificateAuthorityData = []byte (* config .Cluster .CaCert )
102+ }
103+
104+ kubeContext := api .NewContext ()
105+ kubeContext .Cluster = "devspace"
106+ kubeContext .AuthInfo = "devspace"
107+
108+ kubeConfig := api .NewConfig ()
109+ kubeConfig .AuthInfos ["devspace" ] = kubeAuthInfo
110+ kubeConfig .Clusters ["devspace" ] = kubeCluster
111+ kubeConfig .Contexts ["devspace" ] = kubeContext
112+ kubeConfig .CurrentContext = "devspace"
113+
114+ return clientcmd .NewNonInteractiveClientConfig (* kubeConfig , "devspace" , & clientcmd.ConfigOverrides {}, clientcmd .NewDefaultClientConfigLoadingRules ()).ClientConfig ()
89115}
90116
91117// IsMinikube returns true if the Kubernetes cluster is a minikube
0 commit comments