Skip to content

Commit dc75a39

Browse files
Inode1rudrakhp
authored andcommitted
fix: missing onInvalidMessage for ClientTrafficPolicy (#7417)
Signed-off-by: i.makarychev <[email protected]> Signed-off-by: i.makarychev <[email protected]>
1 parent 319c406 commit dc75a39

File tree

3 files changed

+6
-49
lines changed

3 files changed

+6
-49
lines changed

internal/gatewayapi/clienttrafficpolicy.go

Lines changed: 3 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -449,9 +449,11 @@ func (t *Translator) translateClientTrafficPolicyForListener(policy *egv1a1.Clie
449449
}
450450

451451
// Translate HTTP2 Settings
452-
if err = translateHTTP2Settings(policy.Spec.HTTP2, httpIR); err != nil {
452+
if h2, err := buildIRHTTP2Settings(policy.Spec.HTTP2); err != nil {
453453
err = perr.WithMessage(err, "HTTP2")
454454
errs = errors.Join(errs, err)
455+
} else {
456+
httpIR.HTTP2 = h2
455457
}
456458

457459
// enable http3 if set and TLS is enabled
@@ -745,52 +747,6 @@ func translateHTTP1Settings(http1Settings *egv1a1.HTTP1Settings, connection *ir.
745747
return nil
746748
}
747749

748-
func translateHTTP2Settings(http2Settings *egv1a1.HTTP2Settings, httpIR *ir.HTTPListener) error {
749-
if http2Settings == nil {
750-
return nil
751-
}
752-
753-
var (
754-
http2 = &ir.HTTP2Settings{}
755-
errs error
756-
)
757-
758-
if http2Settings.InitialStreamWindowSize != nil {
759-
initialStreamWindowSize, ok := http2Settings.InitialStreamWindowSize.AsInt64()
760-
switch {
761-
case !ok:
762-
errs = errors.Join(errs, fmt.Errorf("invalid InitialStreamWindowSize value %s", http2Settings.InitialStreamWindowSize.String()))
763-
case initialStreamWindowSize < MinHTTP2InitialStreamWindowSize || initialStreamWindowSize > MaxHTTP2InitialStreamWindowSize:
764-
errs = errors.Join(errs, fmt.Errorf("InitialStreamWindowSize value %s is out of range, must be between %d and %d",
765-
http2Settings.InitialStreamWindowSize.String(),
766-
MinHTTP2InitialStreamWindowSize,
767-
MaxHTTP2InitialStreamWindowSize))
768-
default:
769-
http2.InitialStreamWindowSize = ptr.To(uint32(initialStreamWindowSize))
770-
}
771-
}
772-
773-
if http2Settings.InitialConnectionWindowSize != nil {
774-
initialConnectionWindowSize, ok := http2Settings.InitialConnectionWindowSize.AsInt64()
775-
switch {
776-
case !ok:
777-
errs = errors.Join(errs, fmt.Errorf("invalid InitialConnectionWindowSize value %s", http2Settings.InitialConnectionWindowSize.String()))
778-
case initialConnectionWindowSize < MinHTTP2InitialConnectionWindowSize || initialConnectionWindowSize > MaxHTTP2InitialConnectionWindowSize:
779-
errs = errors.Join(errs, fmt.Errorf("InitialConnectionWindowSize value %s is out of range, must be between %d and %d",
780-
http2Settings.InitialConnectionWindowSize.String(),
781-
MinHTTP2InitialConnectionWindowSize,
782-
MaxHTTP2InitialConnectionWindowSize))
783-
default:
784-
http2.InitialConnectionWindowSize = ptr.To(uint32(initialConnectionWindowSize))
785-
}
786-
}
787-
788-
http2.MaxConcurrentStreams = http2Settings.MaxConcurrentStreams
789-
790-
httpIR.HTTP2 = http2
791-
return errs
792-
}
793-
794750
func translateHealthCheckSettings(healthCheckSettings *egv1a1.HealthCheckSettings, httpIR *ir.HTTPListener) {
795751
// Return early if not set
796752
if healthCheckSettings == nil {

internal/gatewayapi/testdata/clienttrafficpolicy-http2.in.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ clientTrafficPolicies:
99
initialStreamWindowSize: 64Ki
1010
initialConnectionWindowSize: 32Mi
1111
maxConcurrentStreams: 200
12+
onInvalidMessage: TerminateConnection
1213
targetRef:
1314
group: gateway.networking.k8s.io
1415
kind: Gateway

internal/gatewayapi/testdata/clienttrafficpolicy-http2.out.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ clientTrafficPolicies:
99
initialConnectionWindowSize: 32Mi
1010
initialStreamWindowSize: 64Ki
1111
maxConcurrentStreams: 200
12+
onInvalidMessage: TerminateConnection
1213
targetRef:
1314
group: gateway.networking.k8s.io
1415
kind: Gateway
@@ -191,6 +192,7 @@ xdsIR:
191192
initialConnectionWindowSize: 65536
192193
initialStreamWindowSize: 33554432
193194
maxConcurrentStreams: 200
195+
resetStreamOnError: false
194196
isHTTP2: false
195197
metadata:
196198
kind: Gateway
@@ -206,8 +208,6 @@ xdsIR:
206208
externalPort: 8080
207209
hostnames:
208210
- www.example.com
209-
http2:
210-
maxConcurrentStreams: 200
211211
isHTTP2: false
212212
metadata:
213213
kind: Gateway

0 commit comments

Comments
 (0)