Commit 8ca3a2f3 authored by Achilleas Pipinellis's avatar Achilleas Pipinellis

Add TOC

[ci skip]
parent 8527a4c1
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
- [GitLab Geo](#gitlab-geo)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# GitLab Geo # GitLab Geo
* [Overview](overview.md) * [Overview](overview.md)
## GitLab Geo (EE) # GitLab Geo
GitLab Geo allows you to replicate your GitLab instance to other > **Note:**
geographical locations as a read-only fully operational version. This feature was introduced in GitLab 8.5 EE.
When Geo is enabled, we reffer to your original instance as a **primary** GitLab Geo allows you to replicate your GitLab instance to other geographical
node and the replicated read-only ones as **secondaries**. locations as a read-only fully operational version.
### Setup instructions When Geo is enabled, we refer to your original instance as a **primary** node
and the replicated read-only ones as **secondaries**.
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
- [Setup instructions](#setup-instructions)
- [Primary Node](#primary-node)
- [Secondary Node](#secondary-node)
- [Current limitations](#current-limitations)
- [Frequently Asked Questions](#frequently-asked-questions)
- [Can I use Geo in a disaster recovery situation?](#can-i-use-geo-in-a-disaster-recovery-situation)
- [What data is replicated to a secondary node?](#what-data-is-replicated-to-a-secondary-node)
- [Can I git push to a secondary node?](#can-i-git-push-to-a-secondary-node)
- [How long does it take to have a commit replicated to a secondary node?](#how-long-does-it-take-to-have-a-commit-replicated-to-a-secondary-node)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## Setup instructions
GitLab Geo requires some additional work installing and configuring your GitLab Geo requires some additional work installing and configuring your
instance, than a normal setup. instance, than a normal setup.
#### Primary Node ### Primary Node
To turn your GitLab instance into a primary Geo node, go to To turn your GitLab instance into a primary Geo node, go to
**Admin Area > Geo Nodes** (`/admin/geo_nodes`). **Admin Area > Geo Nodes** (`/admin/geo_nodes`).
...@@ -26,8 +45,6 @@ configure in your `gitlab.yml` (source based install) or ...@@ -26,8 +45,6 @@ configure in your `gitlab.yml` (source based install) or
The **Public Key** field must contain the SSH public key of the user that The **Public Key** field must contain the SSH public key of the user that
your GitLab instance runs on (unless changed, should be the user `git`). your GitLab instance runs on (unless changed, should be the user `git`).
---
![Geo Nodes Screen](img/geo-nodes-screen.png) ![Geo Nodes Screen](img/geo-nodes-screen.png)
--- ---
...@@ -39,53 +56,49 @@ You will need to setup your database into a **Master <-> Slave** replication ...@@ -39,53 +56,49 @@ You will need to setup your database into a **Master <-> Slave** replication
topology, and your Primary node should always point to a database's topology, and your Primary node should always point to a database's
Master instance. Master instance.
#### Secondary Node ### Secondary Node
To install a secondary node, you must follow your a normal GitLab install To install a secondary node, you must follow your a normal GitLab install
instructions with some extra requirements: instructions with some extra requirements:
* You should point your database connection to a Slave replicated instance. - You should point your database connection to a Slave replicated instance.
* Your secondary node should be allowed to comunicate by HTTP/HTTPS and - Your secondary node should be allowed to communicate by HTTP/HTTPS and
SSH with your primary node (make sure your firewall is not blocking that). SSH with your primary node (make sure your firewall is not blocking that).
---
### Current limitations ## Current limitations
* You cannot push code to secondary nodes - You cannot push code to secondary nodes
* Git LFS is not supported yet - Git LFS is not supported yet
* Git Annex is not supported yet - Git Annex is not supported yet
* Wiki's are not being replicated yet - Wiki's are not being replicated yet
* Git clone from secondaries by HTTP/HTTPS only (ssh-keys - Git clone from secondaries by HTTP/HTTPS only (ssh-keys aren't being
aren't being replicated yet) replicated yet)
---
### Frequently Asked Questions ## Frequently Asked Questions
* Can I use Geo in a disaster recovery situation? ### Can I use Geo in a disaster recovery situation?
> There are limitations to what we replicate (see Current limitations). There are limitations to what we replicate (see Current limitations).
In an extreme data-loss situation you can make a secondary Geo into your In an extreme data-loss situation you can make a secondary Geo into your
primary, but this is not officially supported yet. primary, but this is not officially supported yet.
* What data is replicated to a secondary node? ### What data is replicated to a secondary node?
> We currently replicate project repositories and whole database. This We currently replicate project repositories and the whole database. This
means user accounts, issues, merge requests, groups, project data, etc means user accounts, issues, merge requests, groups, project data, etc.,
will be available for query. will be available for query.
We currently don't replicate user generated attachments / avatars or any We currently don't replicate user generated attachments / avatars or any
other file in `public/upload`. We also don't replicate LFS / Annex or other file in `public/upload`. We also don't replicate LFS / Annex or
artifacts data (`shared/folder`). artifacts data (`shared/folder`).
* Can I git push to a secondary node? ### Can I git push to a secondary node?
> No. All writing operations (this includes git push) must be done in your No. All writing operations (this includes `git push`) must be done in your
primary node. primary node.
* How long does it take to have a commit replicated to a secondary node? ### How long does it take to have a commit replicated to a secondary node?
> All replication operations are async and are queued to be dispatched All replication operations are asynchronous and are queued to be dispatched in
in a batched request at every 10 seconds. Besides that, it depends on a a batched request every 10 seconds. Besides that, it depends on a lot of other
lot of other factors including the ammount of traffic, how big your factors including the amount of traffic, how big your commit is, the
commit is, the connectivity between your nodes, your hardware, etc. connectivity between your nodes, your hardware, etc.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment