diff --git a/files/gitlab-cookbooks/gitlab/templates/default/gitlab.yml.erb b/files/gitlab-cookbooks/gitlab/templates/default/gitlab.yml.erb index 29da7d51ca633b88b1949ef620f6daa22b223b6c_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9naXRsYWIvdGVtcGxhdGVzL2RlZmF1bHQvZ2l0bGFiLnltbC5lcmI=..6bd87cd021526fb841bbedc1927011ce65c5149c_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9naXRsYWIvdGVtcGxhdGVzL2RlZmF1bHQvZ2l0bGFiLnltbC5lcmI= 100644 --- a/files/gitlab-cookbooks/gitlab/templates/default/gitlab.yml.erb +++ b/files/gitlab-cookbooks/gitlab/templates/default/gitlab.yml.erb @@ -453,5 +453,6 @@ log_format: <%= @sidekiq['log_format'] %> <% unless @sidekiq['routing_rules'].empty? %> routing_rules: - <% @sidekiq['routing_rules'].each do |query, queue| %> + <% @sidekiq['routing_rules'].each do |query, queue, shard_instance| %> + <% if shard_instance.nil? %> - [<%= quote(query) %>, <%= queue.nil? ? 'null' : quote(queue) %>] @@ -457,4 +458,7 @@ - [<%= quote(query) %>, <%= queue.nil? ? 'null' : quote(queue) %>] + <% else %> + - [<%= quote(query) %>, <%= queue.nil? ? 'null' : quote(queue) %>, <%= quote(shard_instance) %>] + <% end %> <% end %> <% end %> diff --git a/spec/chef/cookbooks/gitlab/recipes/gitlab-rails/gitlab_yml/sidekiq_spec.rb b/spec/chef/cookbooks/gitlab/recipes/gitlab-rails/gitlab_yml/sidekiq_spec.rb index 29da7d51ca633b88b1949ef620f6daa22b223b6c_c3BlYy9jaGVmL2Nvb2tib29rcy9naXRsYWIvcmVjaXBlcy9naXRsYWItcmFpbHMvZ2l0bGFiX3ltbC9zaWRla2lxX3NwZWMucmI=..6bd87cd021526fb841bbedc1927011ce65c5149c_c3BlYy9jaGVmL2Nvb2tib29rcy9naXRsYWIvcmVjaXBlcy9naXRsYWItcmFpbHMvZ2l0bGFiX3ltbC9zaWRla2lxX3NwZWMucmI= 100644 --- a/spec/chef/cookbooks/gitlab/recipes/gitlab-rails/gitlab_yml/sidekiq_spec.rb +++ b/spec/chef/cookbooks/gitlab/recipes/gitlab-rails/gitlab_yml/sidekiq_spec.rb @@ -74,6 +74,28 @@ ) end end + + context 'with a valid routing rules list containing shard details' do + before do + stub_gitlab_rb( + sidekiq: { + routing_rules: [ + ["resource_boundary=cpu", "cpu_boundary"], + ["*", "default", "default"] + ] + } + ) + end + + it 'renders gitlab.yml with user specified value for sidekiq routing rules' do + expect(gitlab_yml[:production][:sidekiq][:routing_rules]).to eq( + [ + ["resource_boundary=cpu", "cpu_boundary"], + ["*", "default", "default"] + ] + ) + end + end end end end