GitOps High Availability: The Missing Piece in Multi-Cloud Strategies
While many organizations focus on multi-cloud strategies for resilience, there’s a critical gap that often gets overlooked: What happens when your Git repository provider goes down?
For teams running large-scale infrastructure with GitOps workflows, a GitHub or Bitbucket outage means complete deployment paralysis. Your entire operation comes to a halt not because your infrastructure failed, but because ArgoCD (or Flux, or other GitOps tools) can’t reach the source of truth.
The Solution: Git Repository Failover
We need GitOps tools to support automatic repository failover. Imagine ArgoCD detecting that the primary Git repository is unreachable and seamlessly switching to a synchronized secondary repository (GitLab, Bitbucket, self-hosted Gitea, etc.). This would work similar to how databases handle failover:
- Primary repository: GitHub (active)
- Secondary repository: GitLab (synchronized mirror)
- Automatic detection: ArgoCD monitors repository health
- Failover trigger: When primary becomes unavailable for X seconds, switch to secondary
- Fallback: When primary recovers, switch back (or stay on secondary until manual intervention)
Current Workarounds (and their limitations):
- Manual repo URL changes in ArgoCD Applications → requires human intervention during an outage
- Git repository mirrors → exist, but ArgoCD doesn’t auto-failover to them
- Multiple ArgoCD instances → doesn’t solve the git provider issue
Why This Matters:
- GitHub has had multiple outages (most recently impacting Actions, API, and Git operations)
- Bitbucket Cloud has experienced downtime
- Even self-hosted solutions can face connectivity issues
- In production environments, every minute of deployment freeze has business impact
This would be truly revolutionary for GitOps maturity; moving from “single point of dependency” to genuine infrastructure resilience. Just as we’ve eliminated SPOFs in compute, storage, and networking, it’s time to do the same for our GitOps source of truth.
Call to Action:
Has anyone solved this elegantly? Are there patterns or tools I’m missing? Would love to hear how others are addressing Git provider availability in their GitOps pipelines.


