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.
Intended users
- Systems administrators
Proposal
- 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
Further details
- 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
N/A
Documentation
- Remove note from https://docs.gitlab.com/ee/administration/custom_hooks.html
Testing
N/A
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?
- Premium
Links / references
This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.