Skip to content

Commit 0a246d8

Browse files
committed
saylor comments
1 parent 15ef453 commit 0a246d8

File tree

5 files changed

+175
-156
lines changed

5 files changed

+175
-156
lines changed

internal/mode/static/state/dataplane/configuration.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ func buildPassthroughServers(g *graph.Graph) []Layer4VirtualServer {
142142
func buildStreamUpstreams(
143143
ctx context.Context,
144144
listeners []*graph.Listener,
145-
resolver resolver.ServiceResolver,
145+
serviceResolver resolver.ServiceResolver,
146146
ipFamily IPFamilyType,
147147
) []Upstream {
148148
// There can be duplicate upstreams if multiple routes reference the same upstream.
@@ -175,7 +175,7 @@ func buildStreamUpstreams(
175175

176176
allowedAddressType := getAllowedAddressType(ipFamily)
177177

178-
eps, err := resolver.Resolve(ctx, br.SvcNsName, br.ServicePort, allowedAddressType)
178+
eps, err := serviceResolver.Resolve(ctx, br.SvcNsName, br.ServicePort, allowedAddressType)
179179
if err != nil {
180180
errMsg = err.Error()
181181
}

internal/mode/static/state/graph/gateway_listener.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,7 @@ func (c *listenerConfigurator) configure(listener v1.Listener) *Listener {
213213

214214
// resolvers might add different conditions to the listener, so we run them all.
215215

216-
for _, resolver := range c.
217-
conflictResolvers {
216+
for _, resolver := range c.conflictResolvers {
218217
resolver(l)
219218
}
220219

@@ -437,7 +436,7 @@ func createPortConflictResolver() listenerConflictResolver {
437436
secureProtocolGroup int = 0
438437
insecureProtocolGroup int = 1
439438
)
440-
protocolGoups := map[v1.ProtocolType]int{
439+
protocolGroups := map[v1.ProtocolType]int{
441440
v1.TLSProtocolType: secureProtocolGroup,
442441
v1.HTTPProtocolType: insecureProtocolGroup,
443442
v1.HTTPSProtocolType: secureProtocolGroup,
@@ -469,14 +468,14 @@ func createPortConflictResolver() listenerConflictResolver {
469468

470469
protocolGroup, ok := portProtocolOwner[port]
471470
if !ok {
472-
portProtocolOwner[port] = protocolGoups[l.Source.Protocol]
471+
portProtocolOwner[port] = protocolGroups[l.Source.Protocol]
473472
listenersByPort[port] = append(listenersByPort[port], l)
474473
return
475474
}
476475

477476
// if protocol group owner doesn't match the listener's protocol group we mark the port as conflicted,
478477
// and invalidate all listeners we've seen for this port.
479-
if protocolGroup != protocolGoups[l.Source.Protocol] {
478+
if protocolGroup != protocolGroups[l.Source.Protocol] {
480479
conflictedPorts[port] = true
481480
for _, listener := range listenersByPort[port] {
482481
listener.Valid = false

internal/mode/static/state/graph/gateway_listener_test.go

Lines changed: 92 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -516,53 +516,99 @@ func TestValidateListenerPort(t *testing.T) {
516516
}
517517

518518
func TestListenerNamesHaveOverlap(t *testing.T) {
519-
g := NewWithT(t)
520-
g.Expect(haveOverlap(nil, nil)).To(BeTrue())
521-
522-
g.Expect(haveOverlap(
523-
(*v1.Hostname)(helpers.GetPointer("*.example.com")),
524-
(*v1.Hostname)(helpers.GetPointer("*.example.com")),
525-
)).To(BeTrue())
526-
527-
g.Expect(haveOverlap(
528-
(*v1.Hostname)(helpers.GetPointer("cafe.example.com")),
529-
(*v1.Hostname)(helpers.GetPointer("app.example.com")),
530-
)).To(BeFalse())
531-
532-
g.Expect(haveOverlap(
533-
(*v1.Hostname)(helpers.GetPointer("cafe.example.com")),
534-
nil,
535-
)).To(BeTrue())
536-
537-
g.Expect(haveOverlap(
538-
nil,
539-
(*v1.Hostname)(helpers.GetPointer("cafe.example.com")),
540-
)).To(BeTrue())
541-
542-
g.Expect(haveOverlap(
543-
(*v1.Hostname)(helpers.GetPointer("*.example.com")),
544-
(*v1.Hostname)(helpers.GetPointer("*.example.org")),
545-
)).To(BeFalse())
519+
tests := []struct {
520+
hostname1 *v1.Hostname
521+
hostname2 *v1.Hostname
522+
expectResult bool
523+
}{
524+
{
525+
hostname1: (*v1.Hostname)(helpers.GetPointer("*.example.com")),
526+
hostname2: (*v1.Hostname)(helpers.GetPointer("*.example.com")),
527+
expectResult: true,
528+
},
529+
{
530+
hostname1: nil,
531+
hostname2: nil,
532+
expectResult: true,
533+
},
534+
{
535+
hostname1: (*v1.Hostname)(helpers.GetPointer("cafe.example.com")),
536+
hostname2: (*v1.Hostname)(helpers.GetPointer("app.example.com")),
537+
expectResult: false,
538+
},
539+
{
540+
hostname1: (*v1.Hostname)(helpers.GetPointer("cafe.example.com")),
541+
hostname2: nil,
542+
expectResult: true,
543+
},
544+
{
545+
hostname1: nil,
546+
hostname2: (*v1.Hostname)(helpers.GetPointer("cafe.example.com")),
547+
expectResult: true,
548+
},
549+
{
550+
hostname1: (*v1.Hostname)(helpers.GetPointer("*.example.com")),
551+
hostname2: (*v1.Hostname)(helpers.GetPointer("*.example.org")),
552+
expectResult: false,
553+
},
554+
{
555+
hostname1: (*v1.Hostname)(helpers.GetPointer("*.example.com")),
556+
hostname2: (*v1.Hostname)(helpers.GetPointer("cafe.example.com")),
557+
expectResult: true,
558+
},
559+
}
560+
561+
for _, test := range tests {
562+
g := NewWithT(t)
563+
g.Expect(haveOverlap(test.hostname1, test.hostname2)).To(Equal(test.expectResult))
564+
}
546565
}
547566

548567
func TestValidateTLSFieldOnTLSListener(t *testing.T) {
549-
g := NewWithT(t)
550-
cond, valid := validateTLSFieldOnTLSListener(v1.Listener{})
551-
g.Expect(valid).To(BeFalse())
552-
g.Expect(cond).To(Equal(staticConds.NewListenerUnsupportedValue(
553-
"TLS: Required value: tls must be defined for TLS listener",
554-
)))
555-
556-
cond, valid = validateTLSFieldOnTLSListener(v1.Listener{TLS: nil})
557-
g.Expect(valid).To(BeFalse())
558-
g.Expect(cond).To(Equal(staticConds.NewListenerUnsupportedValue(
559-
"TLS: Required value: tls must be defined for TLS listener",
560-
)))
561-
562-
mode := v1.GatewayTLSConfig{Mode: helpers.GetPointer(v1.TLSModeTerminate)}
563-
cond, valid = validateTLSFieldOnTLSListener(v1.Listener{TLS: &mode})
564-
g.Expect(valid).To(BeFalse())
565-
g.Expect(cond).To(Equal(staticConds.NewListenerUnsupportedValue(
566-
"TLS.Mode: Required value: Mode must be passthrough for TLS listener",
567-
)))
568+
tests := []struct {
569+
listener v1.Listener
570+
expectedCond []conditions.Condition
571+
expectValid bool
572+
}{
573+
{
574+
listener: v1.Listener{},
575+
expectedCond: staticConds.NewListenerUnsupportedValue(
576+
"TLS: Required value: tls must be defined for TLS listener",
577+
),
578+
expectValid: false,
579+
},
580+
{
581+
listener: v1.Listener{},
582+
expectedCond: staticConds.NewListenerUnsupportedValue(
583+
"TLS: Required value: tls must be defined for TLS listener",
584+
),
585+
expectValid: false,
586+
},
587+
{
588+
listener: v1.Listener{TLS: nil},
589+
expectedCond: staticConds.NewListenerUnsupportedValue(
590+
"TLS: Required value: tls must be defined for TLS listener",
591+
),
592+
expectValid: false,
593+
},
594+
{
595+
listener: v1.Listener{TLS: &v1.GatewayTLSConfig{Mode: helpers.GetPointer(v1.TLSModeTerminate)}},
596+
expectedCond: staticConds.NewListenerUnsupportedValue(
597+
"TLS.Mode: Required value: Mode must be passthrough for TLS listener",
598+
),
599+
expectValid: false,
600+
},
601+
{
602+
listener: v1.Listener{TLS: &v1.GatewayTLSConfig{Mode: helpers.GetPointer(v1.TLSModePassthrough)}},
603+
expectValid: true,
604+
},
605+
}
606+
for _, test := range tests {
607+
g := NewWithT(t)
608+
609+
cond, valid := validateTLSFieldOnTLSListener(test.listener)
610+
611+
g.Expect(cond).To(BeEquivalentTo(test.expectedCond))
612+
g.Expect(valid).To(BeEquivalentTo(test.expectValid))
613+
}
568614
}

internal/mode/static/state/graph/gateway_test.go

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ func TestBuildGateway(t *testing.T) {
352352
}
353353
return lastCreatedGateway
354354
}
355-
getLastCreatedGetaway := func() *v1.Gateway {
355+
getLastCreatedGateway := func() *v1.Gateway {
356356
return lastCreatedGateway
357357
}
358358

@@ -379,7 +379,7 @@ func TestBuildGateway(t *testing.T) {
379379
gateway: createGateway(gatewayCfg{listeners: []v1.Listener{foo80Listener1, foo8080Listener}}),
380380
gatewayClass: validGC,
381381
expected: &Gateway{
382-
Source: getLastCreatedGetaway(),
382+
Source: getLastCreatedGateway(),
383383
Listeners: []*Listener{
384384
{
385385
Name: "foo-80-1",
@@ -410,7 +410,7 @@ func TestBuildGateway(t *testing.T) {
410410
),
411411
gatewayClass: validGC,
412412
expected: &Gateway{
413-
Source: getLastCreatedGetaway(),
413+
Source: getLastCreatedGateway(),
414414
Listeners: []*Listener{
415415
{
416416
Name: "foo-443-https-1",
@@ -441,7 +441,7 @@ func TestBuildGateway(t *testing.T) {
441441
gateway: createGateway(gatewayCfg{listeners: []v1.Listener{listenerAllowedRoutes}}),
442442
gatewayClass: validGC,
443443
expected: &Gateway{
444-
Source: getLastCreatedGetaway(),
444+
Source: getLastCreatedGateway(),
445445
Listeners: []*Listener{
446446
{
447447
Name: "listener-with-allowed-routes",
@@ -488,7 +488,7 @@ func TestBuildGateway(t *testing.T) {
488488
},
489489
},
490490
expected: &Gateway{
491-
Source: getLastCreatedGetaway(),
491+
Source: getLastCreatedGateway(),
492492
Listeners: []*Listener{
493493
{
494494
Name: "listener-cross-ns-secret",
@@ -509,7 +509,7 @@ func TestBuildGateway(t *testing.T) {
509509
gateway: createGateway(gatewayCfg{listeners: []v1.Listener{crossNamespaceSecretListener}}),
510510
gatewayClass: validGC,
511511
expected: &Gateway{
512-
Source: getLastCreatedGetaway(),
512+
Source: getLastCreatedGateway(),
513513
Listeners: []*Listener{
514514
{
515515
Name: "listener-cross-ns-secret",
@@ -532,7 +532,7 @@ func TestBuildGateway(t *testing.T) {
532532
gateway: createGateway(gatewayCfg{listeners: []v1.Listener{listenerInvalidSelector}}),
533533
gatewayClass: validGC,
534534
expected: &Gateway{
535-
Source: getLastCreatedGetaway(),
535+
Source: getLastCreatedGateway(),
536536
Listeners: []*Listener{
537537
{
538538
Name: "listener-with-invalid-selector",
@@ -557,7 +557,7 @@ func TestBuildGateway(t *testing.T) {
557557
gateway: createGateway(gatewayCfg{listeners: []v1.Listener{invalidProtocolListener}}),
558558
gatewayClass: validGC,
559559
expected: &Gateway{
560-
Source: getLastCreatedGetaway(),
560+
Source: getLastCreatedGateway(),
561561
Listeners: []*Listener{
562562
{
563563
Name: "invalid-protocol",
@@ -587,7 +587,7 @@ func TestBuildGateway(t *testing.T) {
587587
),
588588
gatewayClass: validGC,
589589
expected: &Gateway{
590-
Source: getLastCreatedGetaway(),
590+
Source: getLastCreatedGateway(),
591591
Listeners: []*Listener{
592592
{
593593
Name: "invalid-port",
@@ -636,7 +636,7 @@ func TestBuildGateway(t *testing.T) {
636636
),
637637
gatewayClass: validGC,
638638
expected: &Gateway{
639-
Source: getLastCreatedGetaway(),
639+
Source: getLastCreatedGateway(),
640640
Listeners: []*Listener{
641641
{
642642
Name: "invalid-hostname",
@@ -665,7 +665,7 @@ func TestBuildGateway(t *testing.T) {
665665
gateway: createGateway(gatewayCfg{listeners: []v1.Listener{invalidTLSConfigListener}}),
666666
gatewayClass: validGC,
667667
expected: &Gateway{
668-
Source: getLastCreatedGetaway(),
668+
Source: getLastCreatedGateway(),
669669
Listeners: []*Listener{
670670
{
671671
Name: "invalid-tls-config",
@@ -701,7 +701,7 @@ func TestBuildGateway(t *testing.T) {
701701
),
702702
gatewayClass: validGC,
703703
expected: &Gateway{
704-
Source: getLastCreatedGetaway(),
704+
Source: getLastCreatedGateway(),
705705
Listeners: []*Listener{
706706
{
707707
Name: "foo-80-1",
@@ -799,7 +799,7 @@ func TestBuildGateway(t *testing.T) {
799799
),
800800
gatewayClass: validGC,
801801
expected: &Gateway{
802-
Source: getLastCreatedGetaway(),
802+
Source: getLastCreatedGateway(),
803803
Listeners: []*Listener{
804804
{
805805
Name: "foo-80-1",
@@ -878,7 +878,7 @@ func TestBuildGateway(t *testing.T) {
878878
),
879879
gatewayClass: validGC,
880880
expected: &Gateway{
881-
Source: getLastCreatedGetaway(),
881+
Source: getLastCreatedGateway(),
882882
Valid: false,
883883
Conditions: staticConds.NewGatewayUnsupportedValue("spec." +
884884
"addresses: Forbidden: addresses are not supported",
@@ -897,7 +897,7 @@ func TestBuildGateway(t *testing.T) {
897897
),
898898
gatewayClass: invalidGC,
899899
expected: &Gateway{
900-
Source: getLastCreatedGetaway(),
900+
Source: getLastCreatedGateway(),
901901
Valid: false,
902902
Conditions: staticConds.NewGatewayInvalid("GatewayClass is invalid"),
903903
},
@@ -909,7 +909,7 @@ func TestBuildGateway(t *testing.T) {
909909
),
910910
gatewayClass: nil,
911911
expected: &Gateway{
912-
Source: getLastCreatedGetaway(),
912+
Source: getLastCreatedGateway(),
913913
Valid: false,
914914
Conditions: staticConds.NewGatewayInvalid("GatewayClass doesn't exist"),
915915
},
@@ -921,7 +921,7 @@ func TestBuildGateway(t *testing.T) {
921921
),
922922
gatewayClass: validGC,
923923
expected: &Gateway{
924-
Source: getLastCreatedGetaway(),
924+
Source: getLastCreatedGateway(),
925925
Valid: true,
926926
Listeners: []*Listener{
927927
{
@@ -956,7 +956,7 @@ func TestBuildGateway(t *testing.T) {
956956
),
957957
gatewayClass: validGC,
958958
expected: &Gateway{
959-
Source: getLastCreatedGetaway(),
959+
Source: getLastCreatedGateway(),
960960
Valid: true,
961961
Listeners: []*Listener{
962962
{
@@ -992,7 +992,7 @@ func TestBuildGateway(t *testing.T) {
992992
),
993993
gatewayClass: validGC,
994994
expected: &Gateway{
995-
Source: getLastCreatedGetaway(),
995+
Source: getLastCreatedGateway(),
996996
Valid: true,
997997
Listeners: []*Listener{
998998
{

0 commit comments

Comments
 (0)