Gitlab Shell on the file servers needs to be configured with an API endpoint
Conversation: gitlab-org/gitaly#353 (closed) and gitlab-org/gitaly#349 (closed)
Blocks: gitlab-org/gitaly#368 (closed) and gitlab-org/gitaly#225 (closed)
Now that gitlab-org/gitaly#467 (closed) has, the Gitaly team intend to being testing git push over https and ssh in GitLab release 10.0.
Since the file servers do not run unicorn processes (as these would be under-utilised while consuming resources), GitLab Shell running on the file servers needs to be configured with an endpoint base URL to which it will send /internal/post-receive
requests.
gitlab_rails['internal_api_url'] = 'https://gitlab.com'
As as example of this, see https://gitlab.com/gitlab-org/gitaly/blob/master/_support/test-cluster/gitaly1/etc-gitlab/gitlab.rb#L22
API Rates
git pushes over http peak at about 7 pushes/second while git push over ssh peak at about 10 pushes/second. With 3 API calls per push, or 60 API calls per second at peak, I expect a rate of 5 to 10 requests issued per second per backend file server, so should come in under rate limits. (Awaiting confirmation for this from @ahmadsherif).
Internal API
If an internal API LB already exists, it would be preferential to configure internal_api_url
to point to the internal address, rather than https://gitlab.com
. However, it this has not already been configured I think we can start testing without it (by pointing at https://gitlab.com
) for several reasons:
- The volume is traffic is relatively small
- We will scale the features up slowly as per the Gitaly testing process
- In the even of issues, we can switch it off immediately
Gitlab Version
This change can be deployed on either 9.5.x or 10.0.x servers. There is no need to wait for 10.0 in order to roll thisout.