@@ -556,7 +556,8 @@ func Test_defaultModelBuilderTask_buildLoadBalancerSubnets(t *testing.T) {
556
556
listLoadBalancersCalls []listLoadBalancerCall
557
557
resolveViaDiscoveryCalls []resolveSubnetResults
558
558
resolveViaNameOrIDSlilceCalls []resolveSubnetResults
559
- want map [string ]string
559
+ want []* ec2.Subnet
560
+ wantErr error
560
561
}{
561
562
{
562
563
name : "subnet auto-discovery" ,
@@ -579,9 +580,15 @@ func Test_defaultModelBuilderTask_buildLoadBalancerSubnets(t *testing.T) {
579
580
},
580
581
},
581
582
},
582
- want : map [string ]string {
583
- "elbv2.k8s.aws/cluster" : "cluster-name" ,
584
- "service.k8s.aws/stack" : "namespace/serviceName" ,
583
+ want : []* ec2.Subnet {
584
+ {
585
+ SubnetId : aws .String ("subnet-a" ),
586
+ CidrBlock : aws .String ("192.168.0.0/19" ),
587
+ },
588
+ {
589
+ SubnetId : aws .String ("subnet-b" ),
590
+ CidrBlock : aws .String ("192.168.32.0/19" ),
591
+ },
585
592
},
586
593
},
587
594
{
@@ -610,13 +617,19 @@ func Test_defaultModelBuilderTask_buildLoadBalancerSubnets(t *testing.T) {
610
617
},
611
618
},
612
619
},
613
- want : map [string ]string {
614
- "elbv2.k8s.aws/cluster" : "cluster-name" ,
615
- "service.k8s.aws/stack" : "namespace/serviceName" ,
620
+ want : []* ec2.Subnet {
621
+ {
622
+ SubnetId : aws .String ("subnet-abc" ),
623
+ CidrBlock : aws .String ("192.168.0.0/19" ),
624
+ },
625
+ {
626
+ SubnetId : aws .String ("subnet-xyz" ),
627
+ CidrBlock : aws .String ("192.168.0.0/19" ),
628
+ },
616
629
},
617
630
},
618
631
{
619
- name : "subnet resolve via Name or ID" ,
632
+ name : "subnet resolve via Name or ID, with existing LB and scheme wouldn't change " ,
620
633
svc : & corev1.Service {},
621
634
scheme : elbv2 .LoadBalancerSchemeInternal ,
622
635
provider : tracking .NewDefaultProvider ("service.k8s.aws" , "cluster-name" ),
@@ -635,6 +648,7 @@ func Test_defaultModelBuilderTask_buildLoadBalancerSubnets(t *testing.T) {
635
648
SubnetId : aws .String ("subnet-d" ),
636
649
},
637
650
},
651
+ Scheme : aws .String ("internal" ),
638
652
},
639
653
Tags : map [string ]string {
640
654
"elbv2.k8s.aws/cluster" : "cluster-name" ,
@@ -658,9 +672,70 @@ func Test_defaultModelBuilderTask_buildLoadBalancerSubnets(t *testing.T) {
658
672
},
659
673
},
660
674
},
661
- want : map [string ]string {
662
- "elbv2.k8s.aws/cluster" : "cluster-name" ,
663
- "service.k8s.aws/stack" : "namespace/serviceName" ,
675
+ want : []* ec2.Subnet {
676
+ {
677
+ SubnetId : aws .String ("subnet-c" ),
678
+ CidrBlock : aws .String ("192.168.0.0/19" ),
679
+ },
680
+ {
681
+ SubnetId : aws .String ("subnet-d" ),
682
+ CidrBlock : aws .String ("192.168.0.0/19" ),
683
+ },
684
+ },
685
+ },
686
+ {
687
+ name : "subnet auto discovery, with existing LB and scheme would change" ,
688
+ svc : & corev1.Service {},
689
+ scheme : elbv2 .LoadBalancerSchemeInternal ,
690
+ provider : tracking .NewDefaultProvider ("service.k8s.aws" , "cluster-name" ),
691
+ args : args {stack : core .NewDefaultStack (core.StackID {Namespace : "namespace" , Name : "serviceName" })},
692
+ listLoadBalancersCalls : []listLoadBalancerCall {
693
+ {
694
+ sdkLBs : []elbv2deploy.LoadBalancerWithTags {
695
+ {
696
+ LoadBalancer : & elbv2sdk.LoadBalancer {
697
+ LoadBalancerArn : aws .String ("lb-1" ),
698
+ AvailabilityZones : []* elbv2sdk.AvailabilityZone {
699
+ {
700
+ SubnetId : aws .String ("subnet-c" ),
701
+ },
702
+ {
703
+ SubnetId : aws .String ("subnet-d" ),
704
+ },
705
+ },
706
+ Scheme : aws .String ("internet-facing" ),
707
+ },
708
+ Tags : map [string ]string {
709
+ "elbv2.k8s.aws/cluster" : "cluster-name" ,
710
+ "service.k8s.aws/stack" : "namespace/serviceName" ,
711
+ },
712
+ },
713
+ },
714
+ },
715
+ },
716
+ resolveViaDiscoveryCalls : []resolveSubnetResults {
717
+ {
718
+ subnets : []* ec2.Subnet {
719
+ {
720
+ SubnetId : aws .String ("subnet-a" ),
721
+ CidrBlock : aws .String ("192.168.0.0/19" ),
722
+ },
723
+ {
724
+ SubnetId : aws .String ("subnet-b" ),
725
+ CidrBlock : aws .String ("192.168.0.0/19" ),
726
+ },
727
+ },
728
+ },
729
+ },
730
+ want : []* ec2.Subnet {
731
+ {
732
+ SubnetId : aws .String ("subnet-a" ),
733
+ CidrBlock : aws .String ("192.168.0.0/19" ),
734
+ },
735
+ {
736
+ SubnetId : aws .String ("subnet-b" ),
737
+ CidrBlock : aws .String ("192.168.0.0/19" ),
738
+ },
664
739
},
665
740
},
666
741
}
@@ -695,10 +770,13 @@ func Test_defaultModelBuilderTask_buildLoadBalancerSubnets(t *testing.T) {
695
770
trackingProvider : trackingProvider ,
696
771
elbv2TaggingManager : elbv2TaggingManager ,
697
772
}
698
- var got = tt .provider .StackTags (tt .args .stack )
699
- assert .Equal (t , tt .want , got )
700
-
701
- builder .buildLoadBalancerSubnets (context .Background (), tt .scheme )
773
+ got , err := builder .buildLoadBalancerSubnets (context .Background (), tt .scheme )
774
+ if tt .wantErr != nil {
775
+ assert .EqualError (t , err , tt .wantErr .Error ())
776
+ } else {
777
+ assert .NoError (t , err )
778
+ assert .Equal (t , tt .want , got )
779
+ }
702
780
})
703
781
}
704
782
}
0 commit comments