GitLab Software Release - first version
Hello up there,
Here comes SlapOS port of GitLab. We start from GitLab 8.2.X as that is what we currently run on KVM on lab.nexedi.com, so that our data can be straightforwardly migrated.
The SR compiles all needed software and organized all (sub-)services in one partition and interconnects them with unix sockets for security and speed reasons (see patch "gitlab: Make a plan to base instance layout on gitlab-omnibus and to interconnect all internal services").
Services configuration files are originally taken from omnibus-gitlab "distribution" and incrementally ported to slapos variant. This way we establish a (imho) good path on how to track upstream changes and minimize our delta & effort supporting it.
GitLab itself is patched (above patches that were already applied by upstream):
- to support HTTP(S) only
- to show site's ICP number
- to speedup raw blob downloading ~ 17x times ( see patch "gitlab: Optimize raw blob downloading" for details and https://gitlab.com/gitlab-org/gitlab-workhorse/merge_requests/17 )
Overall it should work and we should finally be able to migrate slapos.git (because of raw blob downloading is not not slow now) to GitLab and all other Nexedi git repositories.
Test GitLab instance instantiated from this SR is available here for play:
https://softinst62804.host.vifib.net
Please review and thanks beforehand for feedback,
Kirill
P.S.
Somewhat outdated, but this picture on GitLab architecture might help to understand how parts are glued together:
https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/architecture.md
P.P.S.
Native resiliency is not implemented yet, but we should be able to use gitlab inside resilient webrunner already.