Geo: Support custom hooks
Summary (for the Release Post; describes potential future state)
GitLab Geo now replicates server-side Git Hooks to all secondaries. Even though all push operations happen on the primary node, this ensures that in the case of a planned fail-over Git Hook data is preserved and no data will be lost.
Problem to solve
All customer data that is relevant to the customer's workflow should be replicated via Geo; however, this is not yet the case. We are working towards this state.
GitLab supports server-side Git Hooks, which allows certain scripts to be run automatically on the server. Even though Git Hooks are only active on the primary, where all push operations are received, Git Hooks are important customer data that should be synced to secondaries*. This is not the case right now and means that when a secondary is promoted to a primary because of a fail-over the Git Hooks will be lost.
- Systems administrators
- Customers can add Git Hooks to their repositories
- Git Hook data is replicated (and verified) to all secondaries
- When a secondary is promoted to a primary the replicated Git Hook data should be usable automatically
- Hooks are standalone files that are not under version control. We would need Gitaly support to access them.
- What content is present in Git Hooks? Is it context dependent?
There was a bit of communication on this topic on Slack.
Permissions and Security
- Remove note from https://docs.gitlab.com/ee/administration/custom_hooks.html
What does success look like, and how can we measure that?
- Hooks are synced from the primary to all secondaries.
What is the type of buyer?
Links / references