ronnybremer opened a new issue, #2793:
URL: https://github.com/apache/apisix-ingress-controller/issues/2793

   ### Current Behavior
   
   A configured HTTPRoute pointing to an internal service can be configured 
with `appProtocol: kubernetes.io/ws`. However, if the service is of type 
`ExternalName` the same setting gets applied by Kubernetes but not read by the 
Apisix controller.
   This seems to be due to this code:
   
https://github.com/apache/apisix-ingress-controller/blob/11635a1e1fc76366984713177a92980d605e53f8/internal/adc/translator/httproute.go#L420-L446
   
   
   ### Expected Behavior
   
   I expect the appProtocol to be read from both internal end external services.
   
   ### Error Logs
   
   _No response_
   
   ### Steps to Reproduce
   
   1. Install Apisix with helm chart
   2. configure an internal service
   3. configure an external service
   4. create a HTTPRoute config for the internal service
   5. create a HTTPRoute config for the external service
   6. specify "appProtocol: kubernetes.io/ws" in both services
   7. kubectl apply both services and routes
   8. observe the Kubernetes resources get created correctly
   9. establish a web socket connection to the internal service and observe the 
connection gets established
   10. establish a web socket connection to the external service and observe 
the connection receiving an error due to the filtering of "connection: upgrade" 
form the request to the backend
   
   ```yaml
   ---
   apiVersion: v1
   kind: Service
   metadata:
     name: test-portal
   spec:
     selector:
       app: test-portal
     ports:
       - protocol: TCP
         port: 5000
         targetPort: 5000
         appProtocol: kubernetes.io/ws
   ---
   apiVersion: v1
   kind: Service
   metadata:
     name: test-portal-ext
   spec:
     ports:
       - protocol: TCP
         port: 8000
         appProtocol: kubernetes.io/ws
     type: ExternalName
     externalName: testportal.dev.local
   ```
   
   ### Environment
   
   - APISIX Ingress controller version: 2.1.0
   - Kubernetes cluster version: 1.35.0


-- 
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]

Reply via email to