In this document I'll explain how did I separate the omnibus gitlab build to multiple services.
I followed the guides to make the service to be compatible with 2K users. More details can be found here https://docs.gitlab.com/ee/administration/reference_architectures/2k_users.html
To add more workers we have a few components that need to be edited:
- Increase the
scalefield ingitlabservice. - For each scaled container,
docker-composeadds_(int)extension to container name. once you will increase the scale field, you will get anothergitlab_gitlab_3for example. - In
ingressservice you should editexternal_linksfield and add the new mapped service. - In
nginx.conf- you should add the new service to the following upstreams:load_balancer_httpload_balancer_httpsload_balancer_ssh
- Once all configured, run
start.shagain and the components will get updated
- HTTPS certificate
- Backups
The migration from omnibus config to this running setup should include several changes:
- Change the mounts according to your correct omnibus setup
(see
GITLAB_DATA_FOLDERin config.dev for more details per service in the compose files). - Copy
config.template.envand populate the values acording to the right setup. - Copy
gitlab-secrets.jsonand the host SSH keys from the gitlab config directory.
- You should consider if you even want to use those compose files and not just run the omnibus setup
- If you still consist, the setup should go up out of the box, but it takes time, so be patient.