Skip to content

Commit

Permalink
fix: pull region from node labels if well known label is present (kei…
Browse files Browse the repository at this point in the history
…koproj#59)

Signed-off-by: Jonah Back <jonah@jonahback.com>
Signed-off-by: shaoxt <shaoxt@gmail.com>
  • Loading branch information
backjo authored and shaoxt committed Dec 21, 2021
1 parent d410263 commit abc3ef9
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 4 deletions.
15 changes: 11 additions & 4 deletions pkg/reaper/nodereaper/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -245,10 +245,17 @@ func getNodeAgeMinutes(n *v1.Node) int {
}

func getNodeRegion(n *v1.Node) string {
providerID := n.Spec.ProviderID
splitProviderID := strings.Split(providerID, "/")
regionFullName := splitProviderID[len(splitProviderID)-2]
regionName := regionFullName[:len(regionFullName)-1]
var regionName = ""
labels := n.GetLabels()
if labels != nil {
regionName = labels["topology.kubernetes.io/region"]
}
if regionName == "" {
providerID := n.Spec.ProviderID
splitProviderID := strings.Split(providerID, "/")
regionFullName := splitProviderID[len(splitProviderID)-2]
regionName = regionFullName[:len(regionFullName)-1]
}
return regionName
}

Expand Down
24 changes: 24 additions & 0 deletions pkg/reaper/nodereaper/nodereaper_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1623,6 +1623,30 @@ func TestProviderIDParser(t *testing.T) {
}
}

func TestRegionDetection(t *testing.T) {
// TestDescription: Region value in annotation should take priority over providerId
reaper := newFakeReaperContext()
reaper.AsgValidation = false
reaper.DryRun = true

node := v1.Node{
Spec: v1.NodeSpec{
ProviderID: "aws:///us-west-2a/i-1234567890abcdef0",
},
ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{
"topology.kubernetes.io/region": "us-east-2",
}},
}

providerRegion := getNodeRegion(&node)
expectedRegion := "us-east-2"

if providerRegion != expectedRegion {
t.Fatalf("expected Region: %v, got: %v", expectedRegion, providerRegion)
}
}


func TestSkipLabelReaper(t *testing.T) {
reaper := newFakeReaperContext()
reaper.ReapUnknown = true
Expand Down

0 comments on commit abc3ef9

Please sign in to comment.