Skip to content

Commit 12bc6a4

Browse files
committed
Attempt to address remaining errors
1 parent 3065a30 commit 12bc6a4

File tree

2 files changed

+83
-36
lines changed

2 files changed

+83
-36
lines changed

Diff for: pkg/service/model_build_target_group.go

+10-17
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,8 @@ func (t *defaultModelBuildTask) buildTargetGroupBindingNetworking(_ context.Cont
477477
Protocol: &protocolTCP,
478478
Port: &tgPort,
479479
})
480+
case corev1.Protocol("TCP_UDP"):
481+
fallthrough
480482
case corev1.ProtocolUDP:
481483
ports = append(ports, elbv2api.NetworkingPort{
482484
Protocol: &protocolUDP,
@@ -560,18 +562,19 @@ func (t *defaultModelBuildTask) buildTargetGroupBindingNetworkingLegacy(ctx cont
560562
trafficSource := loadBalancerSubnetCIDRs
561563
defaultRangeUsed := false
562564
var trafficPorts []elbv2api.NetworkingPort
563-
switch networkingProtocol {
564-
case elbv2api.NetworkingProtocolTCP_UDP:
565-
tcpProtocol := elbv2api.NetworkingProtocolTCP
566-
udpProtocol := elbv2api.NetworkingProtocolUDP
565+
if networkingProtocol == elbv2api.NetworkingProtocolUDP || t.preserveClientIP {
567566
trafficSource = t.getLoadBalancerSourceRanges(ctx)
568567
if len(trafficSource) == 0 {
569-
trafficSource, err = t.getDefaultIPSourceRanges(ctx, targetGroupIPAddressType, port.Protocol, scheme)
568+
trafficSource, err = t.getDefaultIPSourceRanges(ctx, targetGroupIPAddressType, tgProtocol, scheme)
570569
if err != nil {
571570
return nil, err
572571
}
573572
defaultRangeUsed = true
574573
}
574+
}
575+
if networkingProtocol == elbv2api.NetworkingProtocolTCP_UDP {
576+
tcpProtocol := elbv2api.NetworkingProtocolTCP
577+
udpProtocol := elbv2api.NetworkingProtocolUDP
575578
trafficPorts = []elbv2api.NetworkingPort{
576579
{
577580
Port: &tgPort,
@@ -582,17 +585,7 @@ func (t *defaultModelBuildTask) buildTargetGroupBindingNetworkingLegacy(ctx cont
582585
Protocol: &udpProtocol,
583586
},
584587
}
585-
default:
586-
if networkingProtocol == elbv2api.NetworkingProtocolUDP || t.preserveClientIP {
587-
trafficSource = t.getLoadBalancerSourceRanges(ctx)
588-
if len(trafficSource) == 0 {
589-
trafficSource, err = t.getDefaultIPSourceRanges(ctx, targetGroupIPAddressType, port.Protocol, scheme)
590-
if err != nil {
591-
return nil, err
592-
}
593-
defaultRangeUsed = true
594-
}
595-
}
588+
} else {
596589
trafficPorts = []elbv2api.NetworkingPort{
597590
{
598591
Port: &tgPort,
@@ -633,7 +626,7 @@ func (t *defaultModelBuildTask) getDefaultIPSourceRanges(ctx context.Context, ta
633626
if targetGroupIPAddressType == elbv2model.TargetGroupIPAddressTypeIPv6 {
634627
defaultSourceRanges = t.defaultIPv6SourceRanges
635628
}
636-
if (protocol == corev1.ProtocolUDP || t.preserveClientIP) && scheme == elbv2model.LoadBalancerSchemeInternal {
629+
if (protocol == corev1.Protocol("TCP_UDP") || protocol == corev1.ProtocolUDP || t.preserveClientIP) && scheme == elbv2model.LoadBalancerSchemeInternal {
637630
vpcInfo, err := t.vpcInfoProvider.FetchVPCInfo(ctx, t.vpcID, networking.FetchVPCInfoWithoutCache())
638631
if err != nil {
639632
return nil, err

Diff for: pkg/service/model_builder_test.go

+73-19
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ package service
22

33
import (
44
"context"
5-
ec2types "github.com/aws/aws-sdk-go-v2/service/ec2/types"
6-
elbv2types "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2/types"
75
"testing"
86
"time"
97

8+
ec2types "github.com/aws/aws-sdk-go-v2/service/ec2/types"
9+
elbv2types "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2/types"
10+
1011
awssdk "github.com/aws/aws-sdk-go-v2/aws"
1112
"github.com/go-logr/logr"
1213
"github.com/golang/mock/gomock"
@@ -2289,6 +2290,46 @@ func Test_defaultModelBuilderTask_Build(t *testing.T) {
22892290
{
22902291
"id":"app/tcpudp-protocol",
22912292
"resources":{
2293+
"AWS::EC2::SecurityGroup":{
2294+
"ManagedLBSecurityGroup":{
2295+
"spec":{
2296+
"description":"[k8s] Managed SecurityGroup for LoadBalancer",
2297+
"groupName":"k8s-app-tcpudppr-06a9156bf8",
2298+
"ingress":[
2299+
{
2300+
"fromPort":80,
2301+
"ipProtocol":"tcp",
2302+
"ipRanges":[
2303+
{
2304+
"cidrIP":"0.0.0.0/0"
2305+
}
2306+
],
2307+
"toPort":80
2308+
},
2309+
{
2310+
"fromPort":80,
2311+
"ipProtocol":"udp",
2312+
"ipRanges":[
2313+
{
2314+
"cidrIP":"0.0.0.0/0"
2315+
}
2316+
],
2317+
"toPort":80
2318+
},
2319+
{
2320+
"fromPort":83,
2321+
"ipProtocol":"tcp",
2322+
"ipRanges":[
2323+
{
2324+
"cidrIP":"0.0.0.0/0"
2325+
}
2326+
],
2327+
"toPort":83
2328+
}
2329+
]
2330+
}
2331+
}
2332+
},
22922333
"AWS::ElasticLoadBalancingV2::Listener":{
22932334
"80":{
22942335
"spec":{
@@ -2343,6 +2384,11 @@ func Test_defaultModelBuilderTask_Build(t *testing.T) {
23432384
"name":"k8s-app-tcpudppr-2af705447d",
23442385
"type":"network",
23452386
"scheme":"internet-facing",
2387+
"securityGroups":[
2388+
{
2389+
"$ref":"#/resources/AWS::EC2::SecurityGroup/ManagedLBSecurityGroup/status/groupID"
2390+
}
2391+
],
23462392
"ipAddressType":"ipv4",
23472393
"subnetMapping":[
23482394
{
@@ -2369,6 +2415,7 @@ func Test_defaultModelBuilderTask_Build(t *testing.T) {
23692415
"healthCheckConfig":{
23702416
"port":"traffic-port",
23712417
"protocol":"TCP",
2418+
"timeoutSeconds":10,
23722419
"unhealthyThresholdCount":3,
23732420
"healthyThresholdCount":3,
23742421
"intervalSeconds":10
@@ -2391,6 +2438,7 @@ func Test_defaultModelBuilderTask_Build(t *testing.T) {
23912438
"healthCheckConfig":{
23922439
"port":"traffic-port",
23932440
"protocol":"TCP",
2441+
"timeoutSeconds":10,
23942442
"unhealthyThresholdCount":3,
23952443
"healthyThresholdCount":3,
23962444
"intervalSeconds":10
@@ -2418,6 +2466,7 @@ func Test_defaultModelBuilderTask_Build(t *testing.T) {
24182466
"$ref":"#/resources/AWS::ElasticLoadBalancingV2::TargetGroup/app/tcpudp-protocol:80/status/targetGroupARN"
24192467
},
24202468
"targetType":"instance",
2469+
"vpcID":"vpc-xxx",
24212470
"serviceRef":{
24222471
"name":"tcpudp-protocol",
24232472
"port":80
@@ -2428,18 +2477,20 @@ func Test_defaultModelBuilderTask_Build(t *testing.T) {
24282477
{
24292478
"from":[
24302479
{
2431-
"ipBlock":{
2432-
"cidr":"0.0.0.0/0"
2480+
"securityGroup": {
2481+
"groupID": {
2482+
"$ref": "#/resources/AWS::EC2::SecurityGroup/ManagedLBSecurityGroup/status/groupID"
2483+
}
24332484
}
24342485
}
24352486
],
24362487
"ports":[
24372488
{
2438-
"protocol":"TCP",
2489+
"protocol":"UDP",
24392490
"port":31223
24402491
},
24412492
{
2442-
"protocol":"UDP",
2493+
"protocol":"TCP",
24432494
"port":31223
24442495
}
24452496
]
@@ -2463,6 +2514,7 @@ func Test_defaultModelBuilderTask_Build(t *testing.T) {
24632514
"$ref":"#/resources/AWS::ElasticLoadBalancingV2::TargetGroup/app/tcpudp-protocol:83/status/targetGroupARN"
24642515
},
24652516
"targetType":"instance",
2517+
"vpcID":"vpc-xxx",
24662518
"serviceRef":{
24672519
"name":"tcpudp-protocol",
24682520
"port":83
@@ -2473,8 +2525,10 @@ func Test_defaultModelBuilderTask_Build(t *testing.T) {
24732525
{
24742526
"from":[
24752527
{
2476-
"ipBlock":{
2477-
"cidr":"0.0.0.0/0"
2528+
"securityGroup": {
2529+
"groupID": {
2530+
"$ref": "#/resources/AWS::EC2::SecurityGroup/ManagedLBSecurityGroup/status/groupID"
2531+
}
24782532
}
24792533
}
24802534
],
@@ -2495,7 +2549,7 @@ func Test_defaultModelBuilderTask_Build(t *testing.T) {
24952549
}
24962550
}
24972551
`,
2498-
wantNumResources: 7,
2552+
wantNumResources: 8,
24992553
},
25002554
{
25012555
testName: "list load balancers error",
@@ -3628,7 +3682,7 @@ func Test_defaultModelBuilderTask_Build(t *testing.T) {
36283682
],
36293683
"ports":[
36303684
{
3631-
"port": 80,
3685+
"port": 80,
36323686
"protocol":"TCP"
36333687
}
36343688
]
@@ -3881,12 +3935,12 @@ func Test_defaultModelBuilderTask_Build(t *testing.T) {
38813935
}
38823936
],
38833937
"ports":[
3884-
{
3885-
"port": 80,
3938+
{
3939+
"port": 80,
38863940
"protocol":"TCP"
38873941
},
3888-
{
3889-
"port": 8888,
3942+
{
3943+
"port": 8888,
38903944
"protocol":"TCP"
38913945
}
38923946
]
@@ -4520,9 +4574,9 @@ func Test_defaultModelBuilderTask_Build(t *testing.T) {
45204574
"from":[
45214575
{
45224576
"securityGroup":{
4523-
"groupID": {
4524-
"$ref": "#/resources/AWS::EC2::SecurityGroup/ManagedLBSecurityGroup/status/groupID"
4525-
}
4577+
"groupID": {
4578+
"$ref": "#/resources/AWS::EC2::SecurityGroup/ManagedLBSecurityGroup/status/groupID"
4579+
}
45264580
}
45274581
}
45284582
],
@@ -4564,8 +4618,8 @@ func Test_defaultModelBuilderTask_Build(t *testing.T) {
45644618
{
45654619
"securityGroup":{
45664620
"groupID": {
4567-
"$ref": "#/resources/AWS::EC2::SecurityGroup/ManagedLBSecurityGroup/status/groupID"
4568-
}
4621+
"$ref": "#/resources/AWS::EC2::SecurityGroup/ManagedLBSecurityGroup/status/groupID"
4622+
}
45694623
}
45704624
}
45714625
],

0 commit comments

Comments
 (0)