summaryrefslogtreecommitdiff
path: root/doc/topics
diff options
context:
space:
mode:
authorEvan Read <eread@gitlab.com>2019-08-20 01:11:16 +0000
committerEvan Read <eread@gitlab.com>2019-08-20 01:11:16 +0000
commit6944c14e38f51ee0cd127b6f8e1071d23b6d0180 (patch)
tree300eca3f2adedac425a3639c7e95e71e97ff66cb /doc/topics
parent0a16c8e1964a169363597630ae3cda1ffb8f2b83 (diff)
parent94c6340a985abb636dd2434f7e516bec342593b3 (diff)
downloadgitlab-ce-6944c14e38f51ee0cd127b6f8e1071d23b6d0180.tar.gz
Merge branch 'initial-docs-for-auto-devops-sidekiq' into 'master'
Initial docs for sidekiq worker with Auto DevOps Closes gitlab-org/charts/auto-deploy-app#1 See merge request gitlab-org/gitlab-ce!31949
Diffstat (limited to 'doc/topics')
-rw-r--r--doc/topics/autodevops/index.md46
1 files changed, 46 insertions, 0 deletions
diff --git a/doc/topics/autodevops/index.md b/doc/topics/autodevops/index.md
index 9c1258fa1aa..4bfcd4aad96 100644
--- a/doc/topics/autodevops/index.md
+++ b/doc/topics/autodevops/index.md
@@ -584,6 +584,52 @@ Unless you have a `Dockerfile` in your repo, your image is built with
Herokuish, and you must prefix commands run in these images with `/bin/herokuish
procfile exec` to replicate the environment where your application will run.
+#### Workers
+
+Some web applications need to run extra deployments for "worker processes". For
+example it is common in a Rails application to have a separate worker process
+to run background tasks like sending emails.
+
+The [default Helm chart](https://gitlab.com/gitlab-org/charts/auto-deploy-app)
+used in Auto Deploy [has support for running worker
+processes](https://gitlab.com/gitlab-org/charts/auto-deploy-app/merge_requests/9).
+
+In order to run a worker you'll need to ensure that it is able to respond to
+the standard health checks which expect a successful HTTP response on port
+`5000`. For sidekiq you could make use of the
+[sidekiq_alive gem](https://rubygems.org/gems/sidekiq_alive) to do this.
+
+In order to work with sidekiq you'll also need to ensure your deployments have
+access to a redis instance. Auto DevOps won't deploy this for you so you'll
+need to manage this separately and then set a CI variable
+`K8S_SECRET_REDIS_URL` which the URL of this instance to ensure it's passed
+into your deployments.
+
+Once you have configured your worker to respond to health checks you you will
+need to configure a CI variable `HELM_UPGRADE_EXTRA_ARGS` with the value
+`--values helm-values.yaml`. Then you can, for example, run a
+[sidekiq](https://github.com/mperham/sidekiq) worker for your rails application
+by adding a file named `helm-values.yaml` to your repo with the following
+content:
+
+```yml
+workers:
+ sidekiq:
+ replicaCount: 1
+ command:
+ - /bin/herokuish
+ - procfile
+ - exec
+ - sidekiq
+ preStopCommand:
+ - /bin/herokuish
+ - procfile
+ - exec
+ - sidekiqctl
+ - quiet
+ terminationGracePeriodSeconds: 60
+```
+
### Auto Monitoring
See the [requirements](#requirements) for Auto Monitoring to enable this stage.