Skip to content

Commit 75e4dea

Browse files
committed
[gateway/route] Enable retries by default
1 parent fcf9377 commit 75e4dea

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

pkg/gateway/gatewayapi/route.go

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,21 @@ func setRequestTimeout(irTimeout *ir.Timeout, d metav1.Duration) {
321321
}
322322
}
323323

324+
func setTCPKeepalive(irRoute *ir.HTTPRoute, idleTime, interval uint32) {
325+
// TODO(dilyevsky): Get this setting from the Proxy object. Put in reasonable defaults for now.
326+
// https://linear.app/apoxy/issue/APO-258/implement-tcpkeepalive-settting
327+
irRoute.TCPKeepalive = &ir.TCPKeepalive{
328+
IdleTime: ptr.To(idleTime),
329+
Interval: ptr.To(interval),
330+
}
331+
}
332+
333+
func setRetry(irRoute *ir.HTTPRoute) {
334+
// If this is not nil, defaults are set from:
335+
// https://github.com/apoxy-dev/apoxy-cli/blob/fcf9377eba517845286065afda7746a8bf1dc076/pkg/gateway/xds/translator/route.go#L105-L106
336+
irRoute.Retry = &ir.Retry{}
337+
}
338+
324339
func (t *Translator) processHTTPRouteRule(httpRoute *HTTPRouteContext, ruleIdx int, httpFiltersContext *HTTPFiltersContext, rule gwapiv1.HTTPRouteRule) ([]*ir.HTTPRoute, error) {
325340
var ruleRoutes []*ir.HTTPRoute
326341

@@ -330,12 +345,8 @@ func (t *Translator) processHTTPRouteRule(httpRoute *HTTPRouteContext, ruleIdx i
330345
Name: irRouteName(httpRoute, ruleIdx, -1),
331346
}
332347
processTimeout(irRoute, rule)
333-
// TODO(dilyevsky): Get this setting from the Proxy object. Put in reasonable defaults for now.
334-
// https://linear.app/apoxy/issue/APO-258/implement-tcpkeepalive-settting
335-
irRoute.TCPKeepalive = &ir.TCPKeepalive{
336-
IdleTime: ptr.To(uint32(30)),
337-
Interval: ptr.To(uint32(10)),
338-
}
348+
setTCPKeepalive(irRoute, 30, 10)
349+
setRetry(irRoute)
339350
applyHTTPFiltersContextToIRRoute(httpFiltersContext, irRoute)
340351
ruleRoutes = append(ruleRoutes, irRoute)
341352
}
@@ -348,12 +359,8 @@ func (t *Translator) processHTTPRouteRule(httpRoute *HTTPRouteContext, ruleIdx i
348359
Name: irRouteName(httpRoute, ruleIdx, matchIdx),
349360
}
350361
processTimeout(irRoute, rule)
351-
// TODO(dilyevsky): Get this setting from the Proxy object. Put in reasonable defaults for now.
352-
// https://linear.app/apoxy/issue/APO-258/implement-tcpkeepalive-settting
353-
irRoute.TCPKeepalive = &ir.TCPKeepalive{
354-
IdleTime: ptr.To(uint32(30)),
355-
Interval: ptr.To(uint32(10)),
356-
}
362+
setTCPKeepalive(irRoute, 30, 10)
363+
setRetry(irRoute)
357364

358365
if match.Path != nil {
359366
switch PathMatchTypeDerefOr(match.Path.Type, gwapiv1.PathMatchPathPrefix) {
@@ -577,6 +584,8 @@ func (t *Translator) processGRPCRouteRule(grpcRoute *GRPCRouteContext, ruleIdx i
577584
irRoute := &ir.HTTPRoute{
578585
Name: irRouteName(grpcRoute, ruleIdx, -1),
579586
}
587+
setTCPKeepalive(irRoute, 30, 10)
588+
setRetry(irRoute)
580589
applyHTTPFiltersContextToIRRoute(httpFiltersContext, irRoute)
581590
ruleRoutes = append(ruleRoutes, irRoute)
582591
}
@@ -588,6 +597,8 @@ func (t *Translator) processGRPCRouteRule(grpcRoute *GRPCRouteContext, ruleIdx i
588597
irRoute := &ir.HTTPRoute{
589598
Name: irRouteName(grpcRoute, ruleIdx, matchIdx),
590599
}
600+
setTCPKeepalive(irRoute, 30, 10)
601+
setRetry(irRoute)
591602

592603
for _, headerMatch := range match.Headers {
593604
switch HeaderMatchTypeDerefOr(headerMatch.Type, gwapiv1.HeaderMatchExact) {

0 commit comments

Comments
 (0)