detached e891c6e

fix(traffic): clarify backend protocol validation

commit
e891c6e7945a66beddf2462e95cc4e5422b6eaf1
author
brice · · 2026-06-29 22:33 UTC
parent
01ebc5c
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
2 files · +2 -2
M internal/domain/traffic.go +1 -1
@@ -507,7 +507,7 @@ func validateL4RouterService(router TrafficRouter, ref TrafficServiceRef, servic
507507 }
508508 backend := service.Backends[0]
509509 if backend.Protocol != want {
510- return fmt.Errorf("backend protocol %s does not match router protocol %s for router %q", backend.Protocol, want, router.Name)
510+ return fmt.Errorf("backend protocol %s does not match router protocol %s for router %q (expected backend protocol %s)", backend.Protocol, router.Protocol, router.Name, want)
511511 }
512512 return nil
513513 }
@@ -507,7 +507,7 @@ func validateL4RouterService(router TrafficRouter, ref TrafficServiceRef, servic
507 }507 }
508 backend := service.Backends[0]508 backend := service.Backends[0]
509 if backend.Protocol != want {509 if backend.Protocol != want {
510- return fmt.Errorf("backend protocol %s does not match router protocol %s for router %q", backend.Protocol, want, router.Name)510+ return fmt.Errorf("backend protocol %s does not match router protocol %s for router %q (expected backend protocol %s)", backend.Protocol, router.Protocol, router.Name, want)
511 }511 }
512 return nil512 return nil
513 }513 }
M internal/domain/traffic_test.go +1 -1
@@ -369,7 +369,7 @@ func TestTrafficGraphValidateBackendsAndL4Routers(t *testing.T) {
369369 name: "tls passthrough requires tcp network backend",
370370 router: TrafficRouter{Name: "tls", EntryPoint: "tls", Protocol: RouterProtocolTLSPassthrough, Rule: TrafficRule{SNI: "db.example.com"}, Service: "network_service:app:https"},
371371 services: []TrafficService{{Name: "network_service:app:https", Backends: []TrafficBackend{{Name: "app", Port: 443, Protocol: NetworkProtocolUDP}}}},
372- wantErr: "backend protocol udp does not match router protocol tcp",
372+ wantErr: "backend protocol udp does not match router protocol tls_passthrough",
373373 },
374374 {
375375 name: "l4 router rejects route ref",
@@ -369,7 +369,7 @@ func TestTrafficGraphValidateBackendsAndL4Routers(t *testing.T) {
369 name: "tls passthrough requires tcp network backend",369 name: "tls passthrough requires tcp network backend",
370 router: TrafficRouter{Name: "tls", EntryPoint: "tls", Protocol: RouterProtocolTLSPassthrough, Rule: TrafficRule{SNI: "db.example.com"}, Service: "network_service:app:https"},370 router: TrafficRouter{Name: "tls", EntryPoint: "tls", Protocol: RouterProtocolTLSPassthrough, Rule: TrafficRule{SNI: "db.example.com"}, Service: "network_service:app:https"},
371 services: []TrafficService{{Name: "network_service:app:https", Backends: []TrafficBackend{{Name: "app", Port: 443, Protocol: NetworkProtocolUDP}}}},371 services: []TrafficService{{Name: "network_service:app:https", Backends: []TrafficBackend{{Name: "app", Port: 443, Protocol: NetworkProtocolUDP}}}},
372- wantErr: "backend protocol udp does not match router protocol tcp",372+ wantErr: "backend protocol udp does not match router protocol tls_passthrough",
373 },373 },
374 {374 {
375 name: "l4 router rejects route ref",375 name: "l4 router rejects route ref",

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 7

Tags 106

↑↓ moveenter openesc close