Copilot commented on code in PR #2601:
URL:
https://github.com/apache/apisix-ingress-controller/pull/2601#discussion_r2427652713
##########
internal/adc/translator/apisixroute.go:
##########
@@ -352,50 +355,55 @@ func (t *Translator) translateApisixRouteHTTPBackend(tctx
*provider.TranslateCon
upstream = u
}
var (
- err error
- nodes adc.UpstreamNodes
+ err error
+ nodes adc.UpstreamNodes
+ protocol string
)
if backend.ResolveGranularity == apiv2.ResolveGranularityService {
- nodes, err =
t.translateApisixRouteBackendResolveGranularityService(tctx, auNN, backend)
+ nodes, protocol, err =
t.translateApisixRouteBackendResolveGranularityService(tctx, auNN, backend)
} else {
- nodes, err =
t.translateApisixRouteBackendResolveGranularityEndpoint(tctx, auNN, backend)
+ nodes, protocol, err =
t.translateApisixRouteBackendResolveGranularityEndpoint(tctx, auNN, backend)
}
if err != nil {
return nil, err
}
upstream.Nodes = nodes
+ upstream.Scheme = appProtocolToUpstreamScheme(protocol)
+ if protocol == "kubernetes.io/ws" || protocol == "kubernetes.io/wss" {
+ *enableWebsocket = ptr.To(true)
Review Comment:
Potential nil pointer dereference. `enableWebsocket` could be nil when
dereferencing. Should check `enableWebsocket != nil` before assignment.
```suggestion
if enableWebsocket != nil {
*enableWebsocket = ptr.To(true)
}
```
##########
internal/adc/translator/httproute.go:
##########
@@ -825,3 +833,16 @@ func (t *Translator)
translateHTTPRouteHeaderMatchToVars(header gatewayv1.HTTPHe
}
return HeaderMatchToVars(matchType, string(header.Name), header.Value)
}
+
+func appProtocolToUpstreamScheme(appProtocol string) string {
+ switch appProtocol {
+ case "http":
+ return apiv2.SchemeHTTP
+ case "https":
+ return apiv2.SchemeHTTPS
+ case "kubernetes.io/wss":
+ return apiv2.SchemeHTTPS
+ default:
+ return ""
+ }
+}
Review Comment:
The function only handles `kubernetes.io/wss` but not `kubernetes.io/ws`.
Based on the websocket detection logic elsewhere, `kubernetes.io/ws` should
likely return `apiv2.SchemeHTTP`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]