Skip to content

gitaly: Remove configuration for Rugged's gitconfig search path

What does this MR do?

Gitaly is still using Rugged in its Ruby sidecar to provide a very limited set of RPCs that have not yet been ported to Go. While Rugged in the past required the gitconfig file to function correctly, nowadays it only requires the core.fsyncObjectFiles config entry. This entry must be set to true or otherwise it is trivial to end up with repository corruption.

This means that the gitconfig must be in a specific well-known state for Rugged to operate correctly. But currently there is still the option to set Rugged's gitconfig search path, which must in fact point to a path that contains a gitconfig with the mentioned config entry. This is quite fragile without any benefit for the administrator at all.

To fix this, Gitaly has introduced a fallback mode via 1 that causes it to write a Rugged-specific gitconfig file in case the Rugged search path is not set up. This allows us to now phase out support for setting this configuration altogether: it's not required, may cause repository corruption if misconfigured, and ultimately only makes the architecture harder to reason about given that we currently share this gitconfig file between multiple components.

Remove the ability to set Rugged's gitconfig search path without any replacement.

Changelog: removed

Related issues

gitaly#4230 (closed) gitaly#4232 (closed)

Checklist

See Definition of done.

For anything in this list which will not be completed, please provide a reason in the MR discussion

Required

  • Merge Request Title, and Description are up to date, accurate, and descriptive
  • MR targeting the appropriate branch
  • MR has a green pipeline on GitLab.com
  • Pipeline is green on dev.gitlab.org if the change is touching anything besides documentation or internal cookbooks
  • trigger-package has a green pipeline running against latest commit

Expected (please provide an explanation if not completing)

  • Test plan indicating conditions for success has been posted and passes
  • Documentation created/updated
  • Tests added
  • Integration tests added to GitLab QA
  • Equivalent MR/issue for the GitLab Chart opened

Merge request reports