@@ -11,14 +11,14 @@ import (
11
11
12
12
// KubeConfig exposes methods to perform actions on kubeconfig
13
13
type KubeConfig struct {
14
- filesystem filesystem.FileSystem
15
- commander commander.Commander
16
- dir string
14
+ filesystem filesystem.FileSystem
15
+ commander commander.Commander
16
+ kubeCfgsDir string
17
17
}
18
18
19
19
// Delete deletes the kubeconfig file for the given context
20
20
func (k KubeConfig ) Delete (context string ) error {
21
- file := path .Join (k .dir , context )
21
+ file := path .Join (k .kubeCfgsDir , context )
22
22
23
23
if err := k .filesystem .Remove (file ); err != nil && ! os .IsNotExist (err ) {
24
24
return err
@@ -30,7 +30,7 @@ func (k KubeConfig) Delete(context string) error {
30
30
// AddRegionalCluster imports Kubernetes context for
31
31
// regional Kubernetes cluster
32
32
func (k KubeConfig ) AddRegionalCluster (project string , cluster string , region string , context string ) error {
33
- kubeconfig := path .Join (k .dir , context )
33
+ kubeCfgFile := path .Join (k .kubeCfgsDir , context )
34
34
args := []string {
35
35
"beta" ,
36
36
"container" ,
@@ -43,7 +43,7 @@ func (k KubeConfig) AddRegionalCluster(project string, cluster string, region st
43
43
envs := []string {
44
44
"CLOUDSDK_CONTAINER_USE_V1_API_CLIENT=false" ,
45
45
"CLOUDSDK_CONTAINER_USE_V1_API=false" ,
46
- fmt .Sprintf ("KUBECONFIG=%s" , kubeconfig ),
46
+ fmt .Sprintf ("KUBECONFIG=%s" , kubeCfgFile ),
47
47
}
48
48
if _ , err := k .commander .Execute ("gcloud" , args , envs ); err != nil {
49
49
return err
@@ -55,7 +55,7 @@ func (k KubeConfig) AddRegionalCluster(project string, cluster string, region st
55
55
// AddZonalCluster imports Kubernetes context for
56
56
// zonal Kubernetes cluster
57
57
func (k KubeConfig ) AddZonalCluster (project string , cluster string , zone string , context string ) error {
58
- kubeconfig := path .Join (k .dir , context )
58
+ kubeCfgFile := path .Join (k .kubeCfgsDir , context )
59
59
args := []string {
60
60
"container" ,
61
61
"clusters" ,
@@ -65,7 +65,7 @@ func (k KubeConfig) AddZonalCluster(project string, cluster string, zone string,
65
65
fmt .Sprintf ("--project=%s" , project ),
66
66
}
67
67
envs := []string {
68
- fmt .Sprintf ("KUBECONFIG=%s" , kubeconfig ),
68
+ fmt .Sprintf ("KUBECONFIG=%s" , kubeCfgFile ),
69
69
}
70
70
if _ , err := k .commander .Execute ("gcloud" , args , envs ); err != nil {
71
71
return err
@@ -76,15 +76,15 @@ func (k KubeConfig) AddZonalCluster(project string, cluster string, zone string,
76
76
77
77
// RenameContext renames a Kubernetes context
78
78
func (k KubeConfig ) RenameContext (oldCtx string , newCtx string ) error {
79
- kubeconfig := path .Join (k .dir , newCtx )
79
+ kubeCfgFile := path .Join (k .kubeCfgsDir , newCtx )
80
80
args := []string {
81
81
"config" ,
82
82
"rename-context" ,
83
83
oldCtx ,
84
84
newCtx ,
85
85
}
86
86
envs := []string {
87
- fmt .Sprintf ("KUBECONFIG=%s" , kubeconfig ),
87
+ fmt .Sprintf ("KUBECONFIG=%s" , kubeCfgFile ),
88
88
}
89
89
if _ , err := k .commander .Execute ("kubectl" , args , envs ); err != nil {
90
90
return err
@@ -93,6 +93,11 @@ func (k KubeConfig) RenameContext(oldCtx string, newCtx string) error {
93
93
return nil
94
94
}
95
95
96
+ // KubeCfgsDir returns the directory in which kube configs are stored
97
+ func (k KubeConfig ) KubeCfgsDir () string {
98
+ return k .kubeCfgsDir
99
+ }
100
+
96
101
// New returns a new KubeConfig
97
102
func New (fs filesystem.FileSystem , cmdr commander.Commander ) (KubeConfig , error ) {
98
103
home , err := fs .HomeDir ()
@@ -102,8 +107,8 @@ func New(fs filesystem.FileSystem, cmdr commander.Commander) (KubeConfig, error)
102
107
kubeConfigsDir := path .Join (home , ".kube/configs" )
103
108
104
109
return KubeConfig {
105
- filesystem : fs ,
106
- commander : cmdr ,
107
- dir : kubeConfigsDir ,
110
+ filesystem : fs ,
111
+ commander : cmdr ,
112
+ kubeCfgsDir : kubeConfigsDir ,
108
113
}, nil
109
114
}
0 commit comments