Skip to content

Commit 5871cd7

Browse files
committed
Rename Regional -> IsRegional, Add method to get default cluster name
1 parent 0ae208e commit 5871cd7

File tree

2 files changed

+59
-8
lines changed

2 files changed

+59
-8
lines changed

pkg/kubetmuxp/kubetmuxp.go

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,19 @@ type Cluster struct {
2222
Envs `yaml:"envs"`
2323
}
2424

25-
// Regional tells if a cluster is a regional cluster
26-
func (c Cluster) Regional() (bool, error) {
25+
// DefaultContextName returns default context name
26+
func (c Cluster) DefaultContextName(project string) (string, error) {
27+
if regional, err := c.IsRegional(); err != nil {
28+
return "", err
29+
} else if regional {
30+
return fmt.Sprintf("gke_%s_%s_%s", project, c.Region, c.Name), nil
31+
} else {
32+
return fmt.Sprintf("gke_%s_%s_%s", project, c.Zone, c.Name), nil
33+
}
34+
}
35+
36+
// IsRegional tells if a cluster is a regional cluster
37+
func (c Cluster) IsRegional() (bool, error) {
2738
if c.Region != "" && c.Zone != "" {
2839
return false, fmt.Errorf("Only one of region or zone should be given")
2940
}
@@ -70,7 +81,7 @@ func (c *Config) Load() error {
7081
}
7182

7283
// Process processes kube-tmuxp configs
73-
func (c *Config) Process() error {
84+
func (c Config) Process() error {
7485
kubeCfgsDir := c.kubeCfg.KubeCfgsDir()
7586
for _, project := range c.Projects {
7687
for _, cluster := range project.Clusters {
@@ -83,14 +94,16 @@ func (c *Config) Process() error {
8394
}
8495

8596
fmt.Println("Adding context...")
86-
if regional, err := cluster.Regional(); err != nil {
97+
if regional, err := cluster.IsRegional(); err != nil {
8798
return err
8899
} else if regional {
89100
c.kubeCfg.AddRegionalCluster(project.Name, cluster.Name, cluster.Region, kubeCfgFile)
90101
} else {
91102
c.kubeCfg.AddZonalCluster(project.Name, cluster.Name, cluster.Zone, kubeCfgFile)
92103
}
93104

105+
fmt.Println("Renaming context...")
106+
94107
fmt.Println("")
95108
}
96109
}

pkg/kubetmuxp/kubetmuxp_test.go

Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,14 @@ projects:
8888
})
8989
}
9090

91-
func TestRegional(t *testing.T) {
91+
func TestIsRegional(t *testing.T) {
9292
t.Run("should return true when region alone is given", func(t *testing.T) {
9393
cluster := kubetmuxp.Cluster{
9494
Name: "test",
9595
Region: "test-region",
9696
}
9797

98-
regional, err := cluster.Regional()
98+
regional, err := cluster.IsRegional()
9999

100100
assert.Nil(t, err)
101101
assert.True(t, regional)
@@ -107,7 +107,7 @@ func TestRegional(t *testing.T) {
107107
Zone: "test-zone",
108108
}
109109

110-
regional, err := cluster.Regional()
110+
regional, err := cluster.IsRegional()
111111

112112
assert.Nil(t, err)
113113
assert.False(t, regional)
@@ -120,7 +120,45 @@ func TestRegional(t *testing.T) {
120120
Zone: "test-zone",
121121
}
122122

123-
_, err := cluster.Regional()
123+
_, err := cluster.IsRegional()
124+
125+
assert.EqualError(t, err, "Only one of region or zone should be given")
126+
})
127+
}
128+
129+
func TestGeneratedContextName(t *testing.T) {
130+
t.Run("should return default context name for regional cluster", func(t *testing.T) {
131+
cluster := kubetmuxp.Cluster{
132+
Name: "test-cluster",
133+
Region: "test-region",
134+
}
135+
136+
name, err := cluster.DefaultContextName("test-project")
137+
138+
assert.Nil(t, err)
139+
assert.Equal(t, "gke_test-project_test-region_test-cluster", name)
140+
})
141+
142+
t.Run("should return default context name for zonal cluster", func(t *testing.T) {
143+
cluster := kubetmuxp.Cluster{
144+
Name: "test-cluster",
145+
Zone: "test-zone",
146+
}
147+
148+
name, err := cluster.DefaultContextName("test-project")
149+
150+
assert.Nil(t, err)
151+
assert.Equal(t, "gke_test-project_test-zone_test-cluster", name)
152+
})
153+
154+
t.Run("should return error if cluster type (regional or zonal) cannot be determined", func(t *testing.T) {
155+
cluster := kubetmuxp.Cluster{
156+
Name: "test-cluster",
157+
Region: "test-region",
158+
Zone: "test-zone",
159+
}
160+
161+
_, err := cluster.DefaultContextName("test-project")
124162

125163
assert.EqualError(t, err, "Only one of region or zone should be given")
126164
})

0 commit comments

Comments
 (0)