Skip to content

Add Geo PipelineReplicator and handle pipeline ref created event

Catalin Irimie requested to merge cat-geo-pipeline-ref-with-ssf into master

What does this MR do and why?

This adds a Geo event for when we create a persistent pipeline ref, to replicate this creation to all Geo secondary sites, instead of waiting for the next repository sync.

📰 Context

With !81989 (merged), in %14.9, we've changed the refspec that runners use, from:

+#{pipeline.sha}:refs/pipelines/#{pipeline.id}

To:

+refs/pipelines/#{pipeline.id}:refs/pipelines/#{pipeline.id}

This resulted in runners pulling from a secondary not working anymore, as a secondary doesn't get the new ref when the pipeline is created, rather on the next sync (which may not happen for a while if the repo is not particularly active)

Related to #360816 (closed)

How to set up and validate locally

It's probably easiest to run the ./qa/specs/features/browser_ui/6_release/pages/pages_pipeline_spec.rb:34 test - it would fail before this branch, it should succeed on this branch. (I've personally tested this on a GET env)

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Merge request reports