argoproj-labs / argocd-agent

Redefining the multi cluster story of Argo CD
Apache License 2.0
81 stars 15 forks source link

feat: Remove hard requirements for HTTP/2 #190

Closed chetan-rns closed 1 month ago

chetan-rns commented 1 month ago

gRPC relies on HTTP/2 for multiplexing requests and is required for bi-directional streaming. However, intermediate infra components (load balancers, proxy, etc.) could be incompatible with HTTP/2 and may downgrade to HTTP/1.1. For these cases, we provide an option to use gRPC over WebSocket for bi-directional streaming that doesn't require HTTP/2. https://github.com/stackrox/go-grpc-http1 handles the translation between gRPC and WebSocket.