@@ -2,6 +2,9 @@ package ingress
2
2
3
3
import (
4
4
"context"
5
+ "testing"
6
+ "time"
7
+
5
8
awssdk "github.com/aws/aws-sdk-go/aws"
6
9
"github.com/golang/mock/gomock"
7
10
"github.com/google/go-cmp/cmp"
@@ -16,8 +19,6 @@ import (
16
19
"sigs.k8s.io/aws-load-balancer-controller/pkg/annotations"
17
20
"sigs.k8s.io/aws-load-balancer-controller/pkg/equality"
18
21
testclient "sigs.k8s.io/controller-runtime/pkg/client/fake"
19
- "testing"
20
- "time"
21
22
)
22
23
23
24
func Test_defaultGroupLoader_Load (t * testing.T ) {
@@ -2617,27 +2618,80 @@ func Test_defaultGroupLoader_sortGroupMembers(t *testing.T) {
2617
2618
wantErr : errors .New ("failed to load Ingress group order for ingress: namespace/ingress: failed to parse int64 annotation, alb.ingress.kubernetes.io/group.order: x: strconv.ParseInt: parsing \" x\" : invalid syntax" ),
2618
2619
},
2619
2620
{
2620
- name : "invalid group order range " ,
2621
+ name : "two ingress with the same order should be sorted lexically " ,
2621
2622
members : []ClassifiedIngress {
2622
2623
{
2623
2624
Ing : & networking.Ingress {
2624
2625
ObjectMeta : metav1.ObjectMeta {
2625
2626
Namespace : "namespace" ,
2626
- Name : "ingress" ,
2627
+ Name : "ingress-b" ,
2628
+ Annotations : map [string ]string {
2629
+ "kubernetes.io/ingress.class" : "alb" ,
2630
+ "alb.ingress.kubernetes.io/group.name" : "awesome-group" ,
2631
+ "alb.ingress.kubernetes.io/group.order" : "42" ,
2632
+ },
2633
+ },
2634
+ },
2635
+ },
2636
+ {
2637
+ Ing : & networking.Ingress {
2638
+ ObjectMeta : metav1.ObjectMeta {
2639
+ Namespace : "namespace" ,
2640
+ Name : "ingress-a" ,
2627
2641
Annotations : map [string ]string {
2628
2642
"kubernetes.io/ingress.class" : "alb" ,
2629
- "alb.ingress.kubernetes.io/group.order" : "1001" ,
2643
+ "alb.ingress.kubernetes.io/group.name" : "awesome-group" ,
2644
+ "alb.ingress.kubernetes.io/group.order" : "42" ,
2645
+ },
2646
+ },
2647
+ },
2648
+ },
2649
+ },
2650
+ want : []ClassifiedIngress {
2651
+ {
2652
+ Ing : & networking.Ingress {
2653
+ ObjectMeta : metav1.ObjectMeta {
2654
+ Namespace : "namespace" ,
2655
+ Name : "ingress-a" ,
2656
+ Annotations : map [string ]string {
2657
+ "kubernetes.io/ingress.class" : "alb" ,
2658
+ "alb.ingress.kubernetes.io/group.name" : "awesome-group" ,
2659
+ "alb.ingress.kubernetes.io/group.order" : "42" ,
2660
+ },
2661
+ },
2662
+ },
2663
+ },
2664
+ {
2665
+ Ing : & networking.Ingress {
2666
+ ObjectMeta : metav1.ObjectMeta {
2667
+ Namespace : "namespace" ,
2668
+ Name : "ingress-b" ,
2669
+ Annotations : map [string ]string {
2670
+ "kubernetes.io/ingress.class" : "alb" ,
2671
+ "alb.ingress.kubernetes.io/group.name" : "awesome-group" ,
2672
+ "alb.ingress.kubernetes.io/group.order" : "42" ,
2630
2673
},
2631
2674
},
2632
2675
},
2633
2676
},
2634
2677
},
2635
- want : nil ,
2636
- wantErr : errors .New ("explicit Ingress group order must be within [1:1000], Ingress: namespace/ingress, order: 1001" ),
2637
2678
},
2638
2679
{
2639
- name : "two ingress shouldn't have same explicit order " ,
2680
+ name : "negative orders are allow " ,
2640
2681
members : []ClassifiedIngress {
2682
+ {
2683
+ Ing : & networking.Ingress {
2684
+ ObjectMeta : metav1.ObjectMeta {
2685
+ Namespace : "namespace" ,
2686
+ Name : "ingress-b" ,
2687
+ Annotations : map [string ]string {
2688
+ "kubernetes.io/ingress.class" : "alb" ,
2689
+ "alb.ingress.kubernetes.io/group.name" : "awesome-group" ,
2690
+ "alb.ingress.kubernetes.io/group.order" : "0" ,
2691
+ },
2692
+ },
2693
+ },
2694
+ },
2641
2695
{
2642
2696
Ing : & networking.Ingress {
2643
2697
ObjectMeta : metav1.ObjectMeta {
@@ -2646,7 +2700,22 @@ func Test_defaultGroupLoader_sortGroupMembers(t *testing.T) {
2646
2700
Annotations : map [string ]string {
2647
2701
"kubernetes.io/ingress.class" : "alb" ,
2648
2702
"alb.ingress.kubernetes.io/group.name" : "awesome-group" ,
2649
- "alb.ingress.kubernetes.io/group.order" : "42" ,
2703
+ "alb.ingress.kubernetes.io/group.order" : "-1" ,
2704
+ },
2705
+ },
2706
+ },
2707
+ },
2708
+ },
2709
+ want : []ClassifiedIngress {
2710
+ {
2711
+ Ing : & networking.Ingress {
2712
+ ObjectMeta : metav1.ObjectMeta {
2713
+ Namespace : "namespace" ,
2714
+ Name : "ingress-a" ,
2715
+ Annotations : map [string ]string {
2716
+ "kubernetes.io/ingress.class" : "alb" ,
2717
+ "alb.ingress.kubernetes.io/group.name" : "awesome-group" ,
2718
+ "alb.ingress.kubernetes.io/group.order" : "-1" ,
2650
2719
},
2651
2720
},
2652
2721
},
@@ -2659,14 +2728,12 @@ func Test_defaultGroupLoader_sortGroupMembers(t *testing.T) {
2659
2728
Annotations : map [string ]string {
2660
2729
"kubernetes.io/ingress.class" : "alb" ,
2661
2730
"alb.ingress.kubernetes.io/group.name" : "awesome-group" ,
2662
- "alb.ingress.kubernetes.io/group.order" : "42 " ,
2731
+ "alb.ingress.kubernetes.io/group.order" : "0 " ,
2663
2732
},
2664
2733
},
2665
2734
},
2666
2735
},
2667
2736
},
2668
- want : nil ,
2669
- wantErr : errors .New ("conflict Ingress group order: 42" ),
2670
2737
},
2671
2738
}
2672
2739
for _ , tt := range tests {
0 commit comments