Is it possible to tweak the envoy.yaml file to make it proxy multiple gRPC endpoints? If so, how?
It is possible. You can create a route config to route the request by service name. Create a RouteMatch based in path prefix which is the gRPC service name, each service will route to different gRPC backend defined in different clusters.
@qiwzhang Can you point me to some example code / documentation on this topic?
The gRPC services are on TCP layer, not HTTP, therefore it is not possible to differentiate multiple endpoints by path.
Instead, header-based separation is possible, using route configs like this:
# ...
- match:
prefix: "/"
headers:
- name: x-service
exact_match: my-awesome-service
# ...
Please share if you find a way to differentiate gRPC by path. Thank you!
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or other activity occurs. Thank you for your contributions.
This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted". Thank you for your contributions.
It is possible. You can create a route config to route the request by service name. Create a RouteMatch based in path prefix which is the gRPC service name, each service will route to different gRPC backend defined in different clusters.
Can you please share an example? @qiwzhang
Most helpful comment
The gRPC services are on TCP layer, not HTTP, therefore it is not possible to differentiate multiple endpoints by path.
Instead, header-based separation is possible, using route configs like this:
Please share if you find a way to differentiate gRPC by path. Thank you!