Gitaly/Praefect: Protect users from duplicate storage name definitions
Summary
It is possible for users to define external Gitaly and/or Praefect storage targets that share the same name. We should implement a check-config which has the ability to protect against this.
Found in !1757 (comment 508255905), but not specific to that MR.
Configuration Used
The following will result in some seriously odd errors, and will be hard to debug for those unfamiliar with the culprit:
global:
gitaly:
internal:
names:
- nearline-storage
external:
- name: default
hostname: gitaly-default.infra.internal
port: 8075
praefect:
enabled: true