Use sidekiq-cluster by default (opt-out) for Omnibus
With #171 (closed) we'll be supporting Sidekiq Cluster for existing and new Omnibus installations (through a sidekiq['cluster'] = true config). The plan is then testing it until the 13.0, when we plan to enable it by default (this issue).
In the 13.0 the sidekiq['cluster'] won't be required and will be set to true by default - still, customers that do want to fallback (if there's any ongoing issue) will be able to do so by setting sidekiq['cluster'] = false.
Additionally, we'll want to bump the sidekiq['shutdown_timeout'] from 4 to 25, as that's a default being used by sidekiq-cluster under the hood (it takes the default from Sidekiq).
Plan
Pre-13.0
-
sidekiq['cluster']is nottrueby default. - If
sidekiq['cluster]is set totrue-
sidekiq_cluster[*]has no effect - The service spawned is still
sidekiq, but it will runsidekiq-clusterunder the hood. It is managed bygitlab-ctlcommands tosidekiq - The logs go to
/var/log/gitlab/sidekiq.
-
- If
sidekiq_cluster[*]is set- The service spawned is still
sidekiq-clusterand will runsidekiq-clusterunder the hood. It is managed bygitlab-ctlcommands tosidekiq-cluster - The logs go to
/var/log/gitlab/sidekiq-cluster.
- The service spawned is still
In 13.0
-
sidekiq['enable'] = true(which is the default) will setsidekiq['cluster']totrueby default.- The service spawned is still
sidekiq, but it will runsidekiq-clusterunder the hood. It is managed bygitlab-ctlcommands tosidekiq
- The service spawned is still
- If
sidekiq['cluster]is set tofalse- The service spawned is
sidekiq, but it will runbundle exec sidekiqunder the hood. It is managed bygitlab-ctlcommands tosidekiq- The logs go to
/var/log/gitlab/sidekiq.
- The logs go to
- User can set
sidekiq_cluster[*]settings and go back to their pre-12.9 configuration.- The service spawned is
sidekiq-clusterand will runsidekiq-clusterunder the hood. It is managed bygitlab-ctlcommands tosidekiq-cluster - The logs go to
/var/log/gitlab/sidekiq-cluster.
- The service spawned is
- The service spawned is
In 14.0
-
sidekiq_cluster[*]is no longer a thing. - We stop using
bundle exec sidekiqaltogether. - Everything related to sidekiq is set using
sidekiq[*].sidekiq['enable']decides if there is a sidekiq service or not - we don't even needsidekiq['cluster']. - The service spawned is
sidekiq, but it will runsidekiq-clusterunder the hood. It is managed bygitlab-ctlcommands tosidekiq - The logs go to
/var/log/gitlab/sidekiq.
Edited by Rachel Nienaber