diff options
author | Patrick Bajao <ebajao@gitlab.com> | 2023-02-15 08:16:06 +0000 |
---|---|---|
committer | Patrick Bajao <ebajao@gitlab.com> | 2023-02-15 08:16:06 +0000 |
commit | 84324a0f22c5ee708d5174e76a2cba17702a5eca (patch) | |
tree | 2d8c73bf50affc370512299a99ad123811aff601 /internal/gitaly/gitaly.go | |
parent | c099100e01b47e39926318f56fe3247d080de070 (diff) | |
parent | 11227dd8a136f8735fc2d3d434345f2c24112f87 (diff) | |
download | gitlab-shell-84324a0f22c5ee708d5174e76a2cba17702a5eca.tar.gz |
Merge branch 'qmnguyen0711/add-client-side-load-balancing-options' into 'main'
Add DNS discovery support to Gitaly via client-side load-balancing options
See merge request https://gitlab.com/gitlab-org/gitlab-shell/-/merge_requests/717
Merged-by: Patrick Bajao <ebajao@gitlab.com>
Approved-by: Oscar Tovar <otovar@gitlab.com>
Approved-by: Ash McKenzie <amckenzie@gitlab.com>
Approved-by: Patrick Bajao <ebajao@gitlab.com>
Reviewed-by: Ash McKenzie <amckenzie@gitlab.com>
Reviewed-by: Quang-Minh Nguyen <qmnguyen@gitlab.com>
Reviewed-by: Oscar Tovar <otovar@gitlab.com>
Co-authored-by: Quang-Minh Nguyen <qmnguyen@gitlab.com>
Diffstat (limited to 'internal/gitaly/gitaly.go')
-rw-r--r-- | internal/gitaly/gitaly.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/internal/gitaly/gitaly.go b/internal/gitaly/gitaly.go index f83c8b5..7f549cc 100644 --- a/internal/gitaly/gitaly.go +++ b/internal/gitaly/gitaly.go @@ -116,6 +116,16 @@ func (c *Client) newConnection(ctx context.Context, cmd Command) (conn *grpc.Cli ), ), ), + + // In https://gitlab.com/groups/gitlab-org/-/epics/8971, we added DNS discovery support to Praefect. This was + // done by making two changes: + // - Configure client-side round-robin load-balancing in client dial options. We added that as a default option + // inside gitaly client in gitaly client since v15.9.0 + // - Configure DNS resolving. Due to some technical limitations, we don't use gRPC's built-in DNS resolver. + // Instead, we implement our own DNS resolver. This resolver is exposed via the following configuration. + // Afterward, workhorse can detect and handle DNS discovery automatically. The user needs to setup and set + // Gitaly address to something like "dns:gitaly.service.dc1.consul" + gitalyclient.WithGitalyDNSResolver(gitalyclient.DefaultDNSResolverBuilderConfig()), ) if cmd.Token != "" { |