diff --git a/changelogs/unreleased/smh-remove-read-only-mode-config.yml b/changelogs/unreleased/smh-remove-read-only-mode-config.yml new file mode 100644 index 0000000000000000000000000000000000000000..a0c0fe0b47015deed6da536dbb1156a422afab59_Y2hhbmdlbG9ncy91bnJlbGVhc2VkL3NtaC1yZW1vdmUtcmVhZC1vbmx5LW1vZGUtY29uZmlnLnltbA== --- /dev/null +++ b/changelogs/unreleased/smh-remove-read-only-mode-config.yml @@ -0,0 +1,5 @@ +--- +title: Remove read-only config toggle from Praefect +merge_request: 4462 +author: +type: changed diff --git a/files/gitlab-config-template/gitlab.rb.template b/files/gitlab-config-template/gitlab.rb.template index 20865cc23aca9ccb630d6a47b893ab9509f6072d_ZmlsZXMvZ2l0bGFiLWNvbmZpZy10ZW1wbGF0ZS9naXRsYWIucmIudGVtcGxhdGU=..a0c0fe0b47015deed6da536dbb1156a422afab59_ZmlsZXMvZ2l0bGFiLWNvbmZpZy10ZW1wbGF0ZS9naXRsYWIucmIudGVtcGxhdGU= 100644 --- a/files/gitlab-config-template/gitlab.rb.template +++ b/files/gitlab-config-template/gitlab.rb.template @@ -1945,7 +1945,6 @@ # praefect['virtual_storage_name'] = "praefect" # praefect['failover_enabled'] = false # praefect['failover_election_strategy'] = 'sql' -# praefect['failover_read_only_after_failover'] = true # praefect['auth_token'] = "" # praefect['auth_transitioning'] = false # praefect['listen_addr'] = "localhost:2305" diff --git a/files/gitlab-cookbooks/package/libraries/deprecations.rb b/files/gitlab-cookbooks/package/libraries/deprecations.rb index 20865cc23aca9ccb630d6a47b893ab9509f6072d_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9wYWNrYWdlL2xpYnJhcmllcy9kZXByZWNhdGlvbnMucmI=..a0c0fe0b47015deed6da536dbb1156a422afab59_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9wYWNrYWdlL2xpYnJhcmllcy9kZXByZWNhdGlvbnMucmI= 100644 --- a/files/gitlab-cookbooks/package/libraries/deprecations.rb +++ b/files/gitlab-cookbooks/package/libraries/deprecations.rb @@ -47,6 +47,12 @@ deprecation: '13.1', removal: '14.0', note: "Set gitlab_pages['env']['http_proxy'] instead. See https://docs.gitlab.com/omnibus/settings/environment-variables.html" + }, + { + config_keys: %w(praefect failover_read_only_after_failover), + deprecation: '13.3', + removal: '14.0', + note: "Read-only mode is repository specific and always enabled after suspected data loss. See https://docs.gitlab.com/ee/administration/gitaly/praefect.html#read-only-mode" } ] diff --git a/files/gitlab-cookbooks/praefect/attributes/default.rb b/files/gitlab-cookbooks/praefect/attributes/default.rb index 20865cc23aca9ccb630d6a47b893ab9509f6072d_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9wcmFlZmVjdC9hdHRyaWJ1dGVzL2RlZmF1bHQucmI=..a0c0fe0b47015deed6da536dbb1156a422afab59_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9wcmFlZmVjdC9hdHRyaWJ1dGVzL2RlZmF1bHQucmI= 100644 --- a/files/gitlab-cookbooks/praefect/attributes/default.rb +++ b/files/gitlab-cookbooks/praefect/attributes/default.rb @@ -1,7 +1,7 @@ default['praefect']['enable'] = false default['praefect']['failover_enabled'] = false default['praefect']['failover_election_strategy'] = 'sql' -default['praefect']['failover_read_only_after_failover'] = true +default['praefect']['failover_read_only_after_failover'] = nil default['praefect']['auth_token'] = nil default['praefect']['auth_transitioning'] = false default['praefect']['dir'] = "/var/opt/gitlab/praefect" diff --git a/files/gitlab-cookbooks/praefect/templates/default/praefect-config.toml.erb b/files/gitlab-cookbooks/praefect/templates/default/praefect-config.toml.erb index 20865cc23aca9ccb630d6a47b893ab9509f6072d_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9wcmFlZmVjdC90ZW1wbGF0ZXMvZGVmYXVsdC9wcmFlZmVjdC1jb25maWcudG9tbC5lcmI=..a0c0fe0b47015deed6da536dbb1156a422afab59_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9wcmFlZmVjdC90ZW1wbGF0ZXMvZGVmYXVsdC9wcmFlZmVjdC1jb25maWcudG9tbC5lcmI= 100644 --- a/files/gitlab-cookbooks/praefect/templates/default/praefect-config.toml.erb +++ b/files/gitlab-cookbooks/praefect/templates/default/praefect-config.toml.erb @@ -34,7 +34,6 @@ <% if @failover_election_strategy %> election_strategy = '<%= @failover_election_strategy %>' <% end %> -read_only_after_failover = <%= @failover_read_only_after_failover %> [sentry] <% if @sentry_dsn %> diff --git a/spec/chef/recipes/praefect_spec.rb b/spec/chef/recipes/praefect_spec.rb index 20865cc23aca9ccb630d6a47b893ab9509f6072d_c3BlYy9jaGVmL3JlY2lwZXMvcHJhZWZlY3Rfc3BlYy5yYg==..a0c0fe0b47015deed6da536dbb1156a422afab59_c3BlYy9jaGVmL3JlY2lwZXMvcHJhZWZlY3Rfc3BlYy5yYg== 100644 --- a/spec/chef/recipes/praefect_spec.rb +++ b/spec/chef/recipes/praefect_spec.rb @@ -47,8 +47,7 @@ 'sentry' => {}, 'database' => {}, 'failover' => { 'enabled' => false, - 'election_strategy' => 'sql', - 'read_only_after_failover' => true } + 'election_strategy' => 'sql' } } expect(chef_run).to render_file(config_path).with_content { |content| @@ -57,7 +56,7 @@ expect(chef_run).not_to render_file(config_path) .with_content(%r{\[prometheus\]\s+grpc_latency_buckets =}) expect(chef_run).to render_file(config_path) - .with_content(%r{\[failover\]\s+enabled = false\s+election_strategy = 'sql'\s+read_only_after_failover = true}) + .with_content(%r{\[failover\]\s+enabled = false\s+election_strategy = 'sql'}) end it 'renders the env dir files' do @@ -102,7 +101,6 @@ end let(:failover_enabled) { true } let(:failover_election_strategy) { 'local' } - let(:failover_read_only_after_failover) { true } let(:database_host) { 'pg.internal' } let(:database_port) { 1234 } let(:database_user) { 'praefect-pg' } @@ -131,7 +129,6 @@ logging_format: log_format, failover_enabled: failover_enabled, failover_election_strategy: failover_election_strategy, - failover_read_only_after_failover: failover_read_only_after_failover, virtual_storages: virtual_storages, database_host: database_host, database_port: database_port, @@ -163,9 +160,7 @@ expect(chef_run).to render_file(config_path) .with_content("sentry_environment = '#{sentry_environment}'") expect(chef_run).to render_file(config_path) - .with_content("read_only_after_failover = true") - expect(chef_run).to render_file(config_path) - .with_content(%r{\[failover\]\s+enabled = true\s+election_strategy = 'local'\s+read_only_after_failover = true}) + .with_content(%r{\[failover\]\s+enabled = true\s+election_strategy = 'local'}) expect(chef_run).to render_file(config_path) .with_content(%r{\[prometheus\]\s+grpc_latency_buckets = #{Regexp.escape(prometheus_grpc_latency_buckets)}})