-
Notifications
You must be signed in to change notification settings - Fork 4k
Description
👋,
PR #7620 (issue #7605) introduced the io.grpc.xds.bootstrap property as an alternative to the GRPC_XDS_BOOTSTRAP env var. This makes it possible to programmatically provide the xDS config (i.e. via System.setProperty). However, it by no means make it simple to unit test client/servers using xDS.
I see a need for unit tests with a transient xDS server running as part of the test (i.e. io.envoyproxy.controlplane:java-control-plane or similar) to allow clients to discover a server via xDS, all within a unit test.
While this works in single test isolation having multiple such tests running in parallell seems problematic given that these test then either need to use the same bootstrap config and thus the same host:port for xDS across all tests or risk concurrency issues when multiple tests want to use their own bootstrap config and point to it using System.setProperty.
Does my reasoning make sense or am I coming at this the wrong way? Is there an approach on how to unit test gRPC with xDS that I simply missed?