hashicorp / hashicorp/consul

Proxyless grpc via xDS

Open
#10,339 12 comments 35 reactions 0 assignees View on GitHub
theme/connect theme/envoy/xds type/enhancement
Dominant language
Go
Stars
30.1k
Forks
4.6k
Avg merge
1d 18h
Merged PRs (30d)
39

Description

#### Feature Description

Support (or document) proxyless grpc via xDS. Relevant gRFCs:

https://github.com/grpc/proposal/blob/master/A27-xds-global-load-balancing.md
https://github.com/grpc/proposal/blob/master/A28-xds-traffic-splitting-and-routing.md
https://github.com/grpc/proposal/blob/master/A30-xds-v3.md

#### Use Case(s)

I would like to set up gRPC services to connect to consul's grpc endpoint with a bootstrap file: https://github.com/grpc/proposal/blob/master/A27-xds-global-load-balancing.md#xdsclient-and-bootstrap-file

I can then connect to any grpc service in my catalog via xds:///my-service-name

This should allow me to load balance across services without having to have envoy proxies, reducing operational complexity.

I tried this without success. My grpc service connects to consul's xDS service makes a discovery request but then times out. I know the gRPC endpoint is meant for consul connect and envoy but it doesn't seem much of a stretch to broaden the usage to proxyless grpc.

Contributor guide

Open the contributing guide

Research direction

Start with the referenced A27, A28, and A30 gRFCs and the Consul xDS endpoint/bootstrap-file behavior. Reproduce the xds:///my-service-name discovery timeout, then define whether the outcome is proxyless gRPC support or documentation of the supported configuration and limitations.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, grpc
Domain
distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.