Add Gitaly grpc client-side load-balancing configs
What does this MR do and why?
This MR adds grpc.enable_retries and grpc.service_config configs to Gitaly channel arguments. Those configurations enable round-robin client-side load-balancing. Afterward, the requests are distributed to subchannels returned by the name resolver. This setting is good for DNS service discovery only. If Gitaly is accessed via a single URL, they don't have any effect.
The comments above the configs describe in details how they behave. This issue Implement a custom DNS resolver working well wi... (gitaly#4529 - closed) contain a series of experiments describing how those configs work in practice.
Screenshots or screen recordings
N/A. This MR does not yield any user-facing changes.
How to set up and validate locally
Please see Implement a custom DNS resolver working well wi... (gitaly#4529 - closed) for more information.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.