diff --git a/files/gitlab-config-template/gitlab.rb.template b/files/gitlab-config-template/gitlab.rb.template index 6e165ab15c993618d60c4761ab8e5729afc69fc6_ZmlsZXMvZ2l0bGFiLWNvbmZpZy10ZW1wbGF0ZS9naXRsYWIucmIudGVtcGxhdGU=..fd86d870775ee8a141d9ae1e1e519da411b5cab7_ZmlsZXMvZ2l0bGFiLWNvbmZpZy10ZW1wbGF0ZS9naXRsYWIucmIudGVtcGxhdGU= 100644 --- a/files/gitlab-config-template/gitlab.rb.template +++ b/files/gitlab-config-template/gitlab.rb.template @@ -2493,7 +2493,8 @@ # hierarchy_root: 'gitaly', # memory_bytes: 1048576, # cpu_shares: 512, +# cpu_quota_us: 400000 # repositories: { # count: 1000, # memory_bytes: 12884901888, # cpu_shares: 128, @@ -2496,7 +2497,8 @@ # repositories: { # count: 1000, # memory_bytes: 12884901888, # cpu_shares: 128, +# cpu_quota_us: 200000 # }, # }, # concurrency: [ diff --git a/spec/chef/cookbooks/gitaly/recipes/gitaly_spec.rb b/spec/chef/cookbooks/gitaly/recipes/gitaly_spec.rb index 6e165ab15c993618d60c4761ab8e5729afc69fc6_c3BlYy9jaGVmL2Nvb2tib29rcy9naXRhbHkvcmVjaXBlcy9naXRhbHlfc3BlYy5yYg==..fd86d870775ee8a141d9ae1e1e519da411b5cab7_c3BlYy9jaGVmL2Nvb2tib29rcy9naXRhbHkvcmVjaXBlcy9naXRhbHlfc3BlYy5yYg== 100644 --- a/spec/chef/cookbooks/gitaly/recipes/gitaly_spec.rb +++ b/spec/chef/cookbooks/gitaly/recipes/gitaly_spec.rb @@ -61,6 +61,7 @@ let(:cgroups_hierarchy_root) { 'gitaly' } let(:cgroups_memory_bytes) { 2097152 } let(:cgroups_cpu_shares) { 512 } + let(:cgroups_cpu_quota_us) { 400000 } let(:cgroups_repositories_count) { 10 } let(:cgroups_repositories_memory_bytes) { 1048576 } let(:cgroups_repositories_cpu_shares) { 128 } @@ -64,6 +65,7 @@ let(:cgroups_repositories_count) { 10 } let(:cgroups_repositories_memory_bytes) { 1048576 } let(:cgroups_repositories_cpu_shares) { 128 } + let(:cgroups_repositories_cpu_quota_us) { 200000 } let(:pack_objects_cache_enabled) { true } let(:pack_objects_cache_dir) { '/pack-objects-cache' } let(:pack_objects_cache_max_age) { '10m' } @@ -185,6 +187,50 @@ end end + context 'sets cgroups settings' do + before do + stub_gitlab_rb( + gitaly: { + configuration: { + cgroups: { + mountpoint: cgroups_mountpoint, + hierarchy_root: cgroups_hierarchy_root, + memory_bytes: cgroups_memory_bytes, + cpu_shares: cgroups_cpu_shares, + cpu_quota_us: cgroups_cpu_quota_us, + repositories: { + count: cgroups_repositories_count, + memory_bytes: cgroups_repositories_memory_bytes, + cpu_shares: cgroups_repositories_cpu_shares, + cpu_quota_us: cgroups_repositories_cpu_quota_us, + } + }, + }, + } + ) + end + + it 'populate gitaly cgroups' do + cgroups_section = Regexp.new([ + %r{\[cgroups\]}, + %r{mountpoint = "#{cgroups_mountpoint}"}, + %r{hierarchy_root = "#{cgroups_hierarchy_root}"}, + %r{memory_bytes = #{cgroups_memory_bytes}}, + %r{cpu_shares = #{cgroups_cpu_shares}}, + %r{cpu_quota_us = #{cgroups_cpu_quota_us}}, + %r{\[cgroups.repositories\]}, + %r{count = #{cgroups_repositories_count}}, + %r{memory_bytes = #{cgroups_repositories_memory_bytes}}, + %r{cpu_shares = #{cgroups_repositories_cpu_shares}}, + %r{cpu_quota_us = #{cgroups_repositories_cpu_quota_us}}, + ].map(&:to_s).join('\s+')) + + expect(chef_run).to render_file(config_path).with_content { |content| + expect(content).to match(cgroups_section) + } + end + end + context 'with new gitconfig' do it 'raises an error with legacy gitconfig set' do stub_gitlab_rb(