@@ -3,12 +3,12 @@ package ingress
3
3
import (
4
4
"context"
5
5
"encoding/json"
6
+ ec2types "github.com/aws/aws-sdk-go-v2/service/ec2/types"
7
+ elbv2types "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2/types"
6
8
"testing"
7
9
"time"
8
10
9
- awssdk "github.com/aws/aws-sdk-go/aws"
10
- ec2sdk "github.com/aws/aws-sdk-go/service/ec2"
11
- elbv2sdk "github.com/aws/aws-sdk-go/service/elbv2"
11
+ awssdk "github.com/aws/aws-sdk-go-v2/aws"
12
12
jsonpatch "github.com/evanphx/json-patch"
13
13
"github.com/go-logr/logr"
14
14
"github.com/golang/mock/gomock"
@@ -442,7 +442,7 @@ const baseStackJSON = `
442
442
443
443
func Test_defaultModelBuilder_Build (t * testing.T ) {
444
444
type resolveViaDiscoveryCall struct {
445
- subnets []* ec2sdk .Subnet
445
+ subnets []ec2types .Subnet
446
446
err error
447
447
}
448
448
type env struct {
@@ -453,7 +453,7 @@ func Test_defaultModelBuilder_Build(t *testing.T) {
453
453
err error
454
454
}
455
455
type describeSecurityGroupsResult struct {
456
- securityGroups []* ec2sdk .SecurityGroup
456
+ securityGroups []ec2types .SecurityGroup
457
457
err error
458
458
}
459
459
type fields struct {
@@ -576,7 +576,7 @@ func Test_defaultModelBuilder_Build(t *testing.T) {
576
576
}
577
577
578
578
resolveViaDiscoveryCallForInternalLB := resolveViaDiscoveryCall {
579
- subnets : []* ec2sdk .Subnet {
579
+ subnets : []ec2types .Subnet {
580
580
{
581
581
SubnetId : awssdk .String ("subnet-a" ),
582
582
CidrBlock : awssdk .String ("192.168.0.0/19" ),
@@ -588,7 +588,7 @@ func Test_defaultModelBuilder_Build(t *testing.T) {
588
588
},
589
589
}
590
590
resolveViaDiscoveryCallForInternetFacingLB := resolveViaDiscoveryCall {
591
- subnets : []* ec2sdk .Subnet {
591
+ subnets : []ec2types .Subnet {
592
592
{
593
593
SubnetId : awssdk .String ("subnet-c" ),
594
594
CidrBlock : awssdk .String ("192.168.64.0/19" ),
@@ -605,14 +605,15 @@ func Test_defaultModelBuilder_Build(t *testing.T) {
605
605
}
606
606
607
607
tests := []struct {
608
- name string
609
- env env
610
- defaultTargetType string
611
- enableIPTargetType * bool
612
- args args
613
- fields fields
614
- wantStackPatch string
615
- wantErr string
608
+ name string
609
+ env env
610
+ defaultTargetType string
611
+ defaultLoadBalancerScheme string
612
+ enableIPTargetType * bool
613
+ args args
614
+ fields fields
615
+ wantStackPatch string
616
+ wantErr string
616
617
}{
617
618
{
618
619
name : "Ingress - vanilla internal" ,
@@ -2152,53 +2153,53 @@ func Test_defaultModelBuilder_Build(t *testing.T) {
2152
2153
{
2153
2154
matchedLBs : []elbv2.LoadBalancerWithTags {
2154
2155
{
2155
- LoadBalancer : & elbv2sdk .LoadBalancer {
2156
+ LoadBalancer : & elbv2types .LoadBalancer {
2156
2157
LoadBalancerArn : awssdk .String ("lb-1" ),
2157
- AvailabilityZones : []* elbv2sdk .AvailabilityZone {
2158
+ AvailabilityZones : []elbv2types .AvailabilityZone {
2158
2159
{
2159
2160
SubnetId : awssdk .String ("subnet-e" ),
2160
2161
},
2161
2162
{
2162
2163
SubnetId : awssdk .String ("subnet-f" ),
2163
2164
},
2164
2165
},
2165
- Scheme : awssdk . String ( "internal" ) ,
2166
+ Scheme : elbv2types . LoadBalancerSchemeEnumInternal ,
2166
2167
},
2167
2168
Tags : map [string ]string {
2168
2169
"elbv2.k8s.aws/cluster" : "cluster-name" ,
2169
2170
"ingress.k8s.aws/stack" : "ns-1/ing-1" ,
2170
2171
},
2171
2172
},
2172
2173
{
2173
- LoadBalancer : & elbv2sdk .LoadBalancer {
2174
+ LoadBalancer : & elbv2types .LoadBalancer {
2174
2175
LoadBalancerArn : awssdk .String ("lb-2" ),
2175
- AvailabilityZones : []* elbv2sdk .AvailabilityZone {
2176
+ AvailabilityZones : []elbv2types .AvailabilityZone {
2176
2177
{
2177
2178
SubnetId : awssdk .String ("subnet-e" ),
2178
2179
},
2179
2180
{
2180
2181
SubnetId : awssdk .String ("subnet-f" ),
2181
2182
},
2182
2183
},
2183
- Scheme : awssdk . String ( "internal" ) ,
2184
+ Scheme : elbv2types . LoadBalancerSchemeEnumInternal ,
2184
2185
},
2185
2186
Tags : map [string ]string {
2186
2187
"keyA" : "valueA2" ,
2187
2188
"keyB" : "valueB2" ,
2188
2189
},
2189
2190
},
2190
2191
{
2191
- LoadBalancer : & elbv2sdk .LoadBalancer {
2192
+ LoadBalancer : & elbv2types .LoadBalancer {
2192
2193
LoadBalancerArn : awssdk .String ("lb-3" ),
2193
- AvailabilityZones : []* elbv2sdk .AvailabilityZone {
2194
+ AvailabilityZones : []elbv2types .AvailabilityZone {
2194
2195
{
2195
2196
SubnetId : awssdk .String ("subnet-e" ),
2196
2197
},
2197
2198
{
2198
2199
SubnetId : awssdk .String ("subnet-f" ),
2199
2200
},
2200
2201
},
2201
- Scheme : awssdk . String ( "internal" ) ,
2202
+ Scheme : elbv2types . LoadBalancerSchemeEnumInternal ,
2202
2203
},
2203
2204
Tags : map [string ]string {
2204
2205
"keyA" : "valueA3" ,
@@ -2339,7 +2340,7 @@ func Test_defaultModelBuilder_Build(t *testing.T) {
2339
2340
listLoadBalancersCalls : []listLoadBalancersCall {listLoadBalancerCallForEmptyLB },
2340
2341
describeSecurityGroupsResult : []describeSecurityGroupsResult {
2341
2342
{
2342
- securityGroups : []* ec2sdk .SecurityGroup {
2343
+ securityGroups : []ec2types .SecurityGroup {
2343
2344
{
2344
2345
GroupId : awssdk .String ("sg-manual" ),
2345
2346
},
@@ -2478,7 +2479,7 @@ func Test_defaultModelBuilder_Build(t *testing.T) {
2478
2479
listLoadBalancersCalls : []listLoadBalancersCall {listLoadBalancerCallForEmptyLB },
2479
2480
describeSecurityGroupsResult : []describeSecurityGroupsResult {
2480
2481
{
2481
- securityGroups : []* ec2sdk .SecurityGroup {
2482
+ securityGroups : []ec2types .SecurityGroup {
2482
2483
{
2483
2484
GroupId : awssdk .String ("sg-manual" ),
2484
2485
},
@@ -3628,6 +3629,108 @@ func Test_defaultModelBuilder_Build(t *testing.T) {
3628
3629
}
3629
3630
}
3630
3631
}
3632
+ }` ,
3633
+ },
3634
+ {
3635
+ name : "Ingress - vanilla with default-load-balancer-scheme internet-facing" ,
3636
+ env : env {
3637
+ svcs : []* corev1.Service {ns_1_svc_1 , ns_1_svc_2 , ns_1_svc_3 },
3638
+ },
3639
+ fields : fields {
3640
+ resolveViaDiscoveryCalls : []resolveViaDiscoveryCall {resolveViaDiscoveryCallForInternetFacingLB },
3641
+ listLoadBalancersCalls : []listLoadBalancersCall {listLoadBalancerCallForEmptyLB },
3642
+ enableBackendSG : true ,
3643
+ },
3644
+ defaultLoadBalancerScheme : string (elbv2model .LoadBalancerSchemeInternetFacing ),
3645
+ args : args {
3646
+ ingGroup : Group {
3647
+ ID : GroupID {Namespace : "ns-1" , Name : "ing-1" },
3648
+ Members : []ClassifiedIngress {
3649
+ {
3650
+ Ing : & networking.Ingress {ObjectMeta : metav1.ObjectMeta {
3651
+ Namespace : "ns-1" ,
3652
+ Name : "ing-1" ,
3653
+ },
3654
+ Spec : networking.IngressSpec {
3655
+ Rules : []networking.IngressRule {
3656
+ {
3657
+ Host : "app-1.example.com" ,
3658
+ IngressRuleValue : networking.IngressRuleValue {
3659
+ HTTP : & networking.HTTPIngressRuleValue {
3660
+ Paths : []networking.HTTPIngressPath {
3661
+ {
3662
+ Path : "/svc-1" ,
3663
+ Backend : networking.IngressBackend {
3664
+ Service : & networking.IngressServiceBackend {
3665
+ Name : ns_1_svc_1 .Name ,
3666
+ Port : networking.ServiceBackendPort {
3667
+ Name : "http" ,
3668
+ },
3669
+ },
3670
+ },
3671
+ },
3672
+ {
3673
+ Path : "/svc-2" ,
3674
+ Backend : networking.IngressBackend {
3675
+ Service : & networking.IngressServiceBackend {
3676
+ Name : ns_1_svc_2 .Name ,
3677
+ Port : networking.ServiceBackendPort {
3678
+ Name : "http" ,
3679
+ },
3680
+ },
3681
+ },
3682
+ },
3683
+ },
3684
+ },
3685
+ },
3686
+ },
3687
+ {
3688
+ Host : "app-2.example.com" ,
3689
+ IngressRuleValue : networking.IngressRuleValue {
3690
+ HTTP : & networking.HTTPIngressRuleValue {
3691
+ Paths : []networking.HTTPIngressPath {
3692
+ {
3693
+ Path : "/svc-3" ,
3694
+ Backend : networking.IngressBackend {
3695
+ Service : & networking.IngressServiceBackend {
3696
+ Name : ns_1_svc_3 .Name ,
3697
+ Port : networking.ServiceBackendPort {
3698
+ Name : "https" ,
3699
+ },
3700
+ },
3701
+ },
3702
+ },
3703
+ },
3704
+ },
3705
+ },
3706
+ },
3707
+ },
3708
+ },
3709
+ },
3710
+ },
3711
+ },
3712
+ },
3713
+ },
3714
+ wantStackPatch : `
3715
+ {
3716
+ "resources": {
3717
+ "AWS::ElasticLoadBalancingV2::LoadBalancer": {
3718
+ "LoadBalancer": {
3719
+ "spec": {
3720
+ "name": "k8s-ns1-ing1-159dd7a143",
3721
+ "scheme": "internet-facing",
3722
+ "subnetMapping": [
3723
+ {
3724
+ "subnetID": "subnet-c"
3725
+ },
3726
+ {
3727
+ "subnetID": "subnet-d"
3728
+ }
3729
+ ]
3730
+ }
3731
+ }
3732
+ }
3733
+ }
3631
3734
}` ,
3632
3735
},
3633
3736
}
@@ -3681,6 +3784,10 @@ func Test_defaultModelBuilder_Build(t *testing.T) {
3681
3784
if defaultTargetType == "" {
3682
3785
defaultTargetType = "instance"
3683
3786
}
3787
+ defaultLoadBalancerScheme := tt .defaultLoadBalancerScheme
3788
+ if defaultLoadBalancerScheme == "" {
3789
+ defaultLoadBalancerScheme = string (elbv2model .LoadBalancerSchemeInternal )
3790
+ }
3684
3791
3685
3792
b := & defaultModelBuilder {
3686
3793
k8sClient : k8sClient ,
@@ -3703,8 +3810,9 @@ func Test_defaultModelBuilder_Build(t *testing.T) {
3703
3810
featureGates : config .NewFeatureGates (),
3704
3811
logger : logr .New (& log.NullLogSink {}),
3705
3812
3706
- defaultSSLPolicy : "ELBSecurityPolicy-2016-08" ,
3707
- defaultTargetType : elbv2model .TargetType (defaultTargetType ),
3813
+ defaultSSLPolicy : "ELBSecurityPolicy-2016-08" ,
3814
+ defaultTargetType : elbv2model .TargetType (defaultTargetType ),
3815
+ defaultLoadBalancerScheme : elbv2model .LoadBalancerScheme (defaultLoadBalancerScheme ),
3708
3816
}
3709
3817
3710
3818
if tt .enableIPTargetType == nil {
@@ -3768,7 +3876,7 @@ func Test_defaultModelBuildTask_buildSSLRedirectConfig(t *testing.T) {
3768
3876
ingGroup Group
3769
3877
}
3770
3878
type args struct {
3771
- listenPortConfigByPort map [int64 ]listenPortConfig
3879
+ listenPortConfigByPort map [int32 ]listenPortConfig
3772
3880
}
3773
3881
tests := []struct {
3774
3882
name string
@@ -3818,7 +3926,7 @@ func Test_defaultModelBuildTask_buildSSLRedirectConfig(t *testing.T) {
3818
3926
},
3819
3927
},
3820
3928
args : args {
3821
- listenPortConfigByPort : map [int64 ]listenPortConfig {
3929
+ listenPortConfigByPort : map [int32 ]listenPortConfig {
3822
3930
80 : {
3823
3931
protocol : elbv2model .ProtocolHTTP ,
3824
3932
},
@@ -3874,7 +3982,7 @@ func Test_defaultModelBuildTask_buildSSLRedirectConfig(t *testing.T) {
3874
3982
},
3875
3983
},
3876
3984
args : args {
3877
- listenPortConfigByPort : map [int64 ]listenPortConfig {
3985
+ listenPortConfigByPort : map [int32 ]listenPortConfig {
3878
3986
80 : {
3879
3987
protocol : elbv2model .ProtocolHTTP ,
3880
3988
},
@@ -3933,7 +4041,7 @@ func Test_defaultModelBuildTask_buildSSLRedirectConfig(t *testing.T) {
3933
4041
},
3934
4042
},
3935
4043
args : args {
3936
- listenPortConfigByPort : map [int64 ]listenPortConfig {
4044
+ listenPortConfigByPort : map [int32 ]listenPortConfig {
3937
4045
80 : {
3938
4046
protocol : elbv2model .ProtocolHTTP ,
3939
4047
},
@@ -3989,7 +4097,7 @@ func Test_defaultModelBuildTask_buildSSLRedirectConfig(t *testing.T) {
3989
4097
},
3990
4098
},
3991
4099
args : args {
3992
- listenPortConfigByPort : map [int64 ]listenPortConfig {
4100
+ listenPortConfigByPort : map [int32 ]listenPortConfig {
3993
4101
80 : {
3994
4102
protocol : elbv2model .ProtocolHTTP ,
3995
4103
},
@@ -4073,7 +4181,7 @@ func Test_defaultModelBuildTask_buildSSLRedirectConfig(t *testing.T) {
4073
4181
},
4074
4182
},
4075
4183
args : args {
4076
- listenPortConfigByPort : map [int64 ]listenPortConfig {
4184
+ listenPortConfigByPort : map [int32 ]listenPortConfig {
4077
4185
80 : {
4078
4186
protocol : elbv2model .ProtocolHTTP ,
4079
4187
},
@@ -4160,7 +4268,7 @@ func Test_defaultModelBuildTask_buildSSLRedirectConfig(t *testing.T) {
4160
4268
},
4161
4269
},
4162
4270
args : args {
4163
- listenPortConfigByPort : map [int64 ]listenPortConfig {
4271
+ listenPortConfigByPort : map [int32 ]listenPortConfig {
4164
4272
80 : {
4165
4273
protocol : elbv2model .ProtocolHTTP ,
4166
4274
},
@@ -4253,7 +4361,7 @@ func Test_defaultModelBuildTask_buildSSLRedirectConfig(t *testing.T) {
4253
4361
},
4254
4362
},
4255
4363
args : args {
4256
- listenPortConfigByPort : map [int64 ]listenPortConfig {
4364
+ listenPortConfigByPort : map [int32 ]listenPortConfig {
4257
4365
80 : {
4258
4366
protocol : elbv2model .ProtocolHTTP ,
4259
4367
},
@@ -4346,7 +4454,7 @@ func Test_defaultModelBuildTask_buildSSLRedirectConfig(t *testing.T) {
4346
4454
},
4347
4455
},
4348
4456
args : args {
4349
- listenPortConfigByPort : map [int64 ]listenPortConfig {
4457
+ listenPortConfigByPort : map [int32 ]listenPortConfig {
4350
4458
80 : {
4351
4459
protocol : elbv2model .ProtocolHTTP ,
4352
4460
},
0 commit comments