Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
1576052a
Commit
1576052a
authored
Oct 16, 2020
by
Marcel Amirault
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make workhorse naming consistent in the docs
parent
da82ee96
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
32 additions
and
32 deletions
+32
-32
README.md
README.md
+4
-4
doc/architecture/gitlab_features.md
doc/architecture/gitlab_features.md
+22
-22
doc/development/tests.md
doc/development/tests.md
+1
-1
doc/operations/configuration.md
doc/operations/configuration.md
+4
-4
doc/operations/install.md
doc/operations/install.md
+1
-1
No files found.
README.md
View file @
1576052a
#
gitlab-w
orkhorse
#
GitLab W
orkhorse
Git
lab-w
orkhorse is a smart reverse proxy for GitLab. It handles
Git
Lab W
orkhorse is a smart reverse proxy for GitLab. It handles
"large" HTTP requests such as file downloads, file uploads, Git
"large" HTTP requests such as file downloads, file uploads, Git
push/pull and Git archive downloads.
push/pull and Git archive downloads.
...
@@ -9,12 +9,12 @@ GitLab](doc/architecture/gitlab_features.md) that would not work efficiently wit
...
@@ -9,12 +9,12 @@ GitLab](doc/architecture/gitlab_features.md) that would not work efficiently wit
## Documentation
## Documentation
Workhorse documentation is available in the
[
`doc` folder of this repos
t
itory
](
doc/
)
.
Workhorse documentation is available in the
[
`doc` folder of this repository
](
doc/
)
.
*
Architectural overview
*
Architectural overview
*
[
GitLab features that rely on Workhorse
](
doc/architecture/gitlab_features.md
)
*
[
GitLab features that rely on Workhorse
](
doc/architecture/gitlab_features.md
)
*
[
Websocket channel support
](
doc/architecture/channel.md
)
*
[
Websocket channel support
](
doc/architecture/channel.md
)
*
Operating
w
orkhorse
*
Operating
W
orkhorse
*
[
Source installation
](
doc/operations/install.md
)
*
[
Source installation
](
doc/operations/install.md
)
*
[
Workhorse configuration
](
doc/operations/configuration.md
)
*
[
Workhorse configuration
](
doc/operations/configuration.md
)
*
[
Contributing
](
CONTRIBUTING.md
)
*
[
Contributing
](
CONTRIBUTING.md
)
...
...
doc/architecture/gitlab_features.md
View file @
1576052a
...
@@ -13,7 +13,7 @@ Examples of features that rely on Workhorse:
...
@@ -13,7 +13,7 @@ Examples of features that rely on Workhorse:
Git clone, pull and push are slow because they transfer large amounts
Git clone, pull and push are slow because they transfer large amounts
of data and because each is CPU intensive on the GitLab side. Without
of data and because each is CPU intensive on the GitLab side. Without
w
orkhorse, HTTP access to Git repositories would compete with regular
W
orkhorse, HTTP access to Git repositories would compete with regular
web access to the application, requiring us to run way more Rails
web access to the application, requiring us to run way more Rails
application servers.
application servers.
...
@@ -46,7 +46,7 @@ memory than it costs to have Workhorse look after it.
...
@@ -46,7 +46,7 @@ memory than it costs to have Workhorse look after it.
for example, JavaScript files and CSS files are served straight
for example, JavaScript files and CSS files are served straight
from disk.
from disk.
-
Workhorse can modify responses sent by Rails: for example if you use
-
Workhorse can modify responses sent by Rails: for example if you use
`send_file`
in Rails then gitlab-w
orkhorse will open the file on
`send_file`
in Rails then GitLab W
orkhorse will open the file on
disk and send its contents as the response body to the client.
disk and send its contents as the response body to the client.
-
Workhorse can take over requests after asking permission from Rails.
-
Workhorse can take over requests after asking permission from Rails.
Example: handling
`git clone`
.
Example: handling
`git clone`
.
...
@@ -56,14 +56,14 @@ memory than it costs to have Workhorse look after it.
...
@@ -56,14 +56,14 @@ memory than it costs to have Workhorse look after it.
a modified request containing the tempfile path to Rails.
a modified request containing the tempfile path to Rails.
-
Workhorse can manage long-lived WebSocket connections for Rails.
-
Workhorse can manage long-lived WebSocket connections for Rails.
Example: handling the terminal websocket for environments.
Example: handling the terminal websocket for environments.
-
Workhorse does not connect to Postgres
, only to Rails and (optionally) Redis.
-
Workhorse does not connect to PostgreSQL
, only to Rails and (optionally) Redis.
-
We assume that all requests that reach Workhorse pass through an
-
We assume that all requests that reach Workhorse pass through an
upstream proxy such as NGINX or Apache first.
upstream proxy such as NGINX or Apache first.
-
Workhorse does not accept HTTPS connections.
-
Workhorse does not accept HTTPS connections.
-
Workhorse does not clean up idle client connections.
-
Workhorse does not clean up idle client connections.
-
We assume that all requests to Rails pass through Workhorse.
-
We assume that all requests to Rails pass through Workhorse.
For more information see
[
'A brief history of
gitlab-w
orkhorse'
][
brief-history-blog
]
.
For more information see
[
'A brief history of
GitLab W
orkhorse'
][
brief-history-blog
]
.
[
thanos
]:
https://thanos-query.ops.gitlab.net/graph?g0.range_input=1h&g0.max_source_resolution=0s&g0.expr=sum(ruby_process_resident_memory_bytes%7Bapp%3D%22webservice%22%2Cenv%3D%22gprd%22%2Crelease%3D%22gitlab%22%7D)%20%2F%20sum(puma_max_threads%7Bapp%3D%22webservice%22%2Cenv%3D%22gprd%22%2Crelease%3D%22gitlab%22%7D)&g0.tab=1&g1.range_input=1h&g1.max_source_resolution=0s&g1.expr=sum(go_memstats_sys_bytes%7Bapp%3D%22webservice%22%2Cenv%3D%22gprd%22%2Crelease%3D%22gitlab%22%7D)%2Fsum(go_goroutines%7Bapp%3D%22webservice%22%2Cenv%3D%22gprd%22%2Crelease%3D%22gitlab%22%7D)&g1.tab=1
[
thanos
]:
https://thanos-query.ops.gitlab.net/graph?g0.range_input=1h&g0.max_source_resolution=0s&g0.expr=sum(ruby_process_resident_memory_bytes%7Bapp%3D%22webservice%22%2Cenv%3D%22gprd%22%2Crelease%3D%22gitlab%22%7D)%20%2F%20sum(puma_max_threads%7Bapp%3D%22webservice%22%2Cenv%3D%22gprd%22%2Crelease%3D%22gitlab%22%7D)&g0.tab=1&g1.range_input=1h&g1.max_source_resolution=0s&g1.expr=sum(go_memstats_sys_bytes%7Bapp%3D%22webservice%22%2Cenv%3D%22gprd%22%2Crelease%3D%22gitlab%22%7D)%2Fsum(go_goroutines%7Bapp%3D%22webservice%22%2Cenv%3D%22gprd%22%2Crelease%3D%22gitlab%22%7D)&g1.tab=1
[
brief-history-blog
]:
https://about.gitlab.com/2016/04/12/a-brief-history-of-gitlab-workhorse/
[
brief-history-blog
]:
https://about.gitlab.com/2016/04/12/a-brief-history-of-gitlab-workhorse/
doc/development/tests.md
View file @
1576052a
...
@@ -8,7 +8,7 @@ make clean test
...
@@ -8,7 +8,7 @@ make clean test
## Coverage / what to test
## Coverage / what to test
Each feature in
gitlab-w
orkhorse should have an integration test that
Each feature in
GitLab W
orkhorse should have an integration test that
verifies that the feature 'kicks in' on the right requests and leaves
verifies that the feature 'kicks in' on the right requests and leaves
other requests unaffected. It is better to also have package-level tests
other requests unaffected. It is better to also have package-level tests
for specific behavior but the high-level integration tests should have
for specific behavior but the high-level integration tests should have
...
...
doc/operations/configuration.md
View file @
1576052a
...
@@ -55,14 +55,14 @@ Options:
...
@@ -55,14 +55,14 @@ Options:
```
```
The 'auth backend' refers to the GitLab Rails application. The name is
The 'auth backend' refers to the GitLab Rails application. The name is
a holdover from when
gitlab-w
orkhorse only handled Git push/pull over
a holdover from when
GitLab W
orkhorse only handled Git push/pull over
HTTP.
HTTP.
Git
lab-w
orkhorse can listen on either a TCP or a Unix domain socket. It
Git
Lab W
orkhorse can listen on either a TCP or a Unix domain socket. It
can also open a second listening TCP listening socket with the Go
can also open a second listening TCP listening socket with the Go
[
net/http/pprof profiler server
](
http://golang.org/pkg/net/http/pprof/
)
.
[
net/http/pprof profiler server
](
http://golang.org/pkg/net/http/pprof/
)
.
Git
lab-w
orkhorse can listen on redis events (currently only builds/register
Git
Lab W
orkhorse can listen on redis events (currently only builds/register
for runners). This requires you to pass a valid TOML config file via
for runners). This requires you to pass a valid TOML config file via
`-config`
flag.
`-config`
flag.
For regular setups it only requires the following (replacing the string
For regular setups it only requires the following (replacing the string
...
@@ -70,7 +70,7 @@ with the actual socket)
...
@@ -70,7 +70,7 @@ with the actual socket)
## Redis
## Redis
Git
lab-w
orkhorse integrates with Redis to do long polling for CI build
Git
Lab W
orkhorse integrates with Redis to do long polling for CI build
requests. This is configured via two things:
requests. This is configured via two things:
-
Redis settings in the TOML config file
-
Redis settings in the TOML config file
...
...
doc/operations/install.md
View file @
1576052a
# Installation
# Installation
To install
gitlab-w
orkhorse you need
[
Go 1.13 or
To install
GitLab W
orkhorse you need
[
Go 1.13 or
newer
](
https://golang.org/dl
)
and
[
GNU
newer
](
https://golang.org/dl
)
and
[
GNU
Make
](
https://www.gnu.org/software/make/
)
.
Make
](
https://www.gnu.org/software/make/
)
.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment