diff --git a/software/gitlab/instance-gitlab.cfg.in b/software/gitlab/instance-gitlab.cfg.in index 381723bdf7d544c67b5d98db0f9e752733bb938e..236e0b3e80706cc84abba3c390b20c36f162fa99 100644 --- a/software/gitlab/instance-gitlab.cfg.in +++ b/software/gitlab/instance-gitlab.cfg.in @@ -18,6 +18,8 @@ parts = gitlab-work gitlab-shell-work + service-unicorn + service-postgresql service-redis @@ -77,6 +79,7 @@ srv = ${:home}/srv startup = ${:etc}/run service = ${:etc}/service promise = ${:etc}/promise +promise.slow = ${:promise}.slow # gitlab: etc/ log/ ... [gitlab-dir] @@ -433,6 +436,63 @@ srv = ${unicorn-dir:srv} log = ${unicorn-dir:log} socket = ${:srv}/unicorn.socket +[service-unicorn] +recipe = slapos.cookbook:wrapper +wrapper-path = ${directory:service}/unicorn +command-line = ${gitlab-unicorn:wrapper-path} + -E production + -c ${unicorn.rb:rendered} + ${gitlab-work:location}/config.ru + + +depend = + ${promise-unicorn:recipe} + ${promise-gitlab-app:recipe} + ${promise-gitlab-shell:recipe} + + ${logrotate-entry-unicorn:recipe} +# gitlab is a service "run" under unicorn +# gitlab-shell is called by gitlab +# -> associate their logs rotation to here + ${logrotate-entry-gitlab:recipe} + + +[promise-unicorn] +<= promise-byurl +url = --unix-socket ${unicorn:socket} http:/ + +[promise-rakebase] +recipe = slapos.cookbook:wrapper +# FIXME gitlab-rake is too slow to load and promise timeouts +# that's why we instantiate to <promise>.slow/ (and this way promises are not run) +wrapper-path = !py!'${directory:promise.slow}/' + '${:_buildout_section_name_}'[8:] +rake = ${gitlab-rake:wrapper-path} + + +[promise-gitlab-app] +<= promise-rakebase +command-line = ${:rake} gitlab:app:check + +[promise-gitlab-shell] +<= promise-rakebase +command-line = ${:rake} gitlab:gitlab_shell:check + +# very slow +# rake gitlab:repo:check (fsck all repos) + + +[logrotate-entry-unicorn] +<= logrotate-entry +log = ${unicorn:log}/*.log + +[logrotate-entry-gitlab] +<= logrotate-entry +log = ${gitlab:log}/*.log + +[logrotate-entry-gitlab-shell] +<= logrotate-entry +log = ${gitlab-shell:log}/*.log + #############