Caddy can proxy grpc requests by specifying versions h2c on the http transport, I believe.
I’m not sure what you mean by “config driven by Consul”. I assume you mean synced config changes in a cluster? Caddy v2 provides a config API, so you can push configuration changes to all your Caddy instances at once. If that’s not enough for you, you could open up a feature request on Github to open up discussion about supporting that kind of functionality.
I could but it would complicate the Architecture in many ways. Also one of the reasons for trying to move away from envoy is that with CaddyV2 we can embed so much into one binary using the plugins architecture of Caddy. So yes we could but i prefer to try to get things working only with caddyv2 to gain all the benefits of that architecture.
So, I found a caddy grpc-web project on GitHub , but it looks like it only supports caddy v1.
If you do NOT use Envoy then you have to use the Improbable proxy. The magic keyword in that golang code is “WrappedGrpcServer”. Here is a list of Project using this technique: Sign in to GitHub · GitHub