diff --git a/pkg/util/annotation.go b/pkg/util/annotation.go index 8f6ddcb..87ade3c 100644 --- a/pkg/util/annotation.go +++ b/pkg/util/annotation.go @@ -27,18 +27,19 @@ func GetZone(labels map[string]string) (string, bool) { func GetInstanceType(labels map[string]string) (string, bool) { if _, ok := labels[v1.LabelInstanceType]; ok { return labels[v1.LabelInstanceType], true - } else if _, ok := labels["node.kubernetes.io/instance-type"]; ok { - return labels["node.kubernetes.io/instance-type"], true + } else if _, ok := labels[v1.LabelInstanceTypeStable]; ok { + return labels[v1.LabelInstanceTypeStable], true } else { return "", false } } func GetOperatingSystem(labels map[string]string) (string, bool) { + betaLabel := "beta.kubernetes.io/os" if _, ok := labels[v1.LabelOSStable]; ok { return labels[v1.LabelOSStable], true - } else if _, ok := labels["beta.kubernetes.io/os"]; ok { - return labels["beta.kubernetes.io/os"], true + } else if _, ok := lables[betaLabel]; ok { + return lables[betaLabel], true } else { return "", false } diff --git a/pkg/util/annotation_test.go b/pkg/util/annotation_test.go new file mode 100644 index 0000000..b53160b --- /dev/null +++ b/pkg/util/annotation_test.go @@ -0,0 +1,360 @@ +package util + +import ( + "testing" + + v1 "k8s.io/api/core/v1" +) + +func TestGetRegion(t *testing.T) { + tests := []struct { + name string + labels map[string]string + want string + want1 bool + }{ + { + name: "base", + labels: map[string]string{ + v1.LabelTopologyRegion: v1.LabelTopologyRegion, + }, + want: v1.LabelTopologyRegion, + want1: true, + }, + { + name: "LabelZoneRegion", + labels: map[string]string{ + v1.LabelZoneRegion: v1.LabelZoneRegion, + }, + want: v1.LabelZoneRegion, + want1: true, + }, + { + name: "not found", + labels: map[string]string{}, + want: "", + want1: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, got1 := GetRegion(tt.labels) + if got != tt.want { + t.Errorf("GetRegion() got = %v, want %v", got, tt.want) + } + if got1 != tt.want1 { + t.Errorf("GetRegion() got1 = %v, want %v", got1, tt.want1) + } + }) + } +} + +func TestGetZone(t *testing.T) { + tests := []struct { + name string + labels map[string]string + want string + want1 bool + }{ + { + name: "base", + labels: map[string]string{ + v1.LabelTopologyZone: v1.LabelTopologyZone, + }, + want: v1.LabelTopologyZone, + want1: true, + }, + { + name: "LabelZoneFailureDomain", + labels: map[string]string{ + v1.LabelZoneFailureDomain: v1.LabelZoneFailureDomain, + }, + want: v1.LabelZoneFailureDomain, + want1: true, + }, + { + name: "not found", + labels: map[string]string{}, + want: "", + want1: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, got1 := GetZone(tt.labels) + if got != tt.want { + t.Errorf("GetZone() got = %v, want %v", got, tt.want) + } + if got1 != tt.want1 { + t.Errorf("GetZone() got1 = %v, want %v", got1, tt.want1) + } + }) + } +} + +func TestGetInstanceType(t *testing.T) { + tests := []struct { + name string + labels map[string]string + want string + want1 bool + }{ + { + name: "base", + labels: map[string]string{ + v1.LabelInstanceType: v1.LabelInstanceType, + }, + want: v1.LabelInstanceType, + want1: true, + }, + { + name: "LabelInstanceTypeStable", + labels: map[string]string{ + v1.LabelInstanceTypeStable: v1.LabelInstanceTypeStable, + }, + want: v1.LabelInstanceTypeStable, + want1: true, + }, + { + name: "not found", + labels: map[string]string{}, + want: "", + want1: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, got1 := GetInstanceType(tt.labels) + if got != tt.want { + t.Errorf("GetInstanceType() got = %v, want %v", got, tt.want) + } + if got1 != tt.want1 { + t.Errorf("GetInstanceType() got1 = %v, want %v", got1, tt.want1) + } + }) + } +} + +func TestGetOperatingSystem(t *testing.T) { + betaLabel := "beta.kubernetes.io/os" + tests := []struct { + name string + labels map[string]string + want string + want1 bool + }{ + { + name: "base", + labels: map[string]string{ + v1.LabelOSStable: v1.LabelOSStable, + }, + want: v1.LabelOSStable, + want1: true, + }, + { + name: "betaLabel", + labels: map[string]string{ + betaLabel: betaLabel, + }, + want: betaLabel, + want1: true, + }, + { + name: "not found", + labels: map[string]string{}, + want: "", + want1: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, got1 := GetOperatingSystem(tt.labels) + if got != tt.want { + t.Errorf("GetOperatingSystem() got = %v, want %v", got, tt.want) + } + if got1 != tt.want1 { + t.Errorf("GetOperatingSystem() got1 = %v, want %v", got1, tt.want1) + } + }) + } +} + + +import ( + "testing" + + v1 "k8s.io/api/core/v1" +) + +func TestGetRegion(t *testing.T) { + tests := []struct { + name string + labels map[string]string + want string + want1 bool + }{ + { + name: "base", + labels: map[string]string{ + v1.LabelTopologyRegion: v1.LabelTopologyRegion, + }, + want: v1.LabelTopologyRegion, + want1: true, + }, + { + name: "LabelZoneRegion", + labels: map[string]string{ + v1.LabelZoneRegion: v1.LabelZoneRegion, + }, + want: v1.LabelZoneRegion, + want1: true, + }, + { + name: "not found", + labels: map[string]string{}, + want: "", + want1: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, got1 := GetRegion(tt.labels) + if got != tt.want { + t.Errorf("GetRegion() got = %v, want %v", got, tt.want) + } + if got1 != tt.want1 { + t.Errorf("GetRegion() got1 = %v, want %v", got1, tt.want1) + } + }) + } +} + +func TestGetZone(t *testing.T) { + tests := []struct { + name string + labels map[string]string + want string + want1 bool + }{ + { + name: "base", + labels: map[string]string{ + v1.LabelTopologyZone: v1.LabelTopologyZone, + }, + want: v1.LabelTopologyZone, + want1: true, + }, + { + name: "LabelZoneFailureDomain", + labels: map[string]string{ + v1.LabelZoneFailureDomain: v1.LabelZoneFailureDomain, + }, + want: v1.LabelZoneFailureDomain, + want1: true, + }, + { + name: "not found", + labels: map[string]string{}, + want: "", + want1: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, got1 := GetZone(tt.labels) + if got != tt.want { + t.Errorf("GetZone() got = %v, want %v", got, tt.want) + } + if got1 != tt.want1 { + t.Errorf("GetZone() got1 = %v, want %v", got1, tt.want1) + } + }) + } +} + +func TestGetInstanceType(t *testing.T) { + tests := []struct { + name string + labels map[string]string + want string + want1 bool + }{ + { + name: "base", + labels: map[string]string{ + v1.LabelInstanceType: v1.LabelInstanceType, + }, + want: v1.LabelInstanceType, + want1: true, + }, + { + name: "LabelInstanceTypeStable", + labels: map[string]string{ + v1.LabelInstanceTypeStable: v1.LabelInstanceTypeStable, + }, + want: v1.LabelInstanceTypeStable, + want1: true, + }, + { + name: "not found", + labels: map[string]string{}, + want: "", + want1: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, got1 := GetInstanceType(tt.labels) + if got != tt.want { + t.Errorf("GetInstanceType() got = %v, want %v", got, tt.want) + } + if got1 != tt.want1 { + t.Errorf("GetInstanceType() got1 = %v, want %v", got1, tt.want1) + } + }) + } +} + +func TestGetOperatingSystem(t *testing.T) { + betaLabel := "beta.kubernetes.io/os" + tests := []struct { + name string + labels map[string]string + want string + want1 bool + }{ + { + name: "base", + labels: map[string]string{ + v1.LabelOSStable: v1.LabelOSStable, + }, + want: v1.LabelOSStable, + want1: true, + }, + { + name: "betaLabel", + labels: map[string]string{ + betaLabel: betaLabel, + }, + want: betaLabel, + want1: true, + }, + { + name: "not found", + labels: map[string]string{}, + want: "", + want1: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, got1 := GetOperatingSystem(tt.labels) + if got != tt.want { + t.Errorf("GetOperatingSystem() got = %v, want %v", got, tt.want) + } + if got1 != tt.want1 { + t.Errorf("GetOperatingSystem() got1 = %v, want %v", got1, tt.want1) + } + }) + } +}