gitaly: Make Rails Gitaly client retries configurable
The current retry settings for the Gitaly client in Rails is hardcoded and not configurable.
This poses a problem for Gitaly on Kubernetes, because the Pod start time is longer than the maximum amount of time the Gitaly client retries before returning an error to the client. The current retry settings always expire before the Gitaly Pod can start, which leads to errors being returned to the client.
This gap between the moment Rails returns errors and the time the Gitaly Pod finally starts is what is preventing, in part, Gitaly on Kubernetes from going GA. This is a blocker for us.
This commit fixes that by making those settings configurable. It will enable users of Gitaly on Kubernetes to set the settings according to the time it takes for their Gitaly Pod to start, which will greatly enhance the user experience for Gitaly on Kubernetes.
cc @vyaklushin
References
- Related issue: #584430
- Discussion about Gitaly on Kubernetes going GA: &20030 (comment 2950326382)
- Related GDK MR: gitlab-development-kit!5571 (merged)
- Related Omnibus MR: omnibus-gitlab!9015
- Related Helm Chart MR: gitlab-org/charts/gitlab!4725 (merged)
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.