diff --git a/puppet/zulip/templates/postgresql/13/postgresql.conf.template.erb b/puppet/zulip/templates/postgresql/13/postgresql.conf.template.erb index 08d3dc4550..f565159f58 100644 --- a/puppet/zulip/templates/postgresql/13/postgresql.conf.template.erb +++ b/puppet/zulip/templates/postgresql/13/postgresql.conf.template.erb @@ -38,15 +38,15 @@ # The default values of these variables are driven from the -D command-line # option or PGDATA environment variable, represented here as ConfigDir. -data_directory = '/var/lib/postgresql/13/main' # use data in another directory +data_directory = '<%= scope["zulip::postgresql_base::postgresql_datadir"] %>' # use data in another directory # (change requires restart) -hba_file = '/etc/postgresql/13/main/pg_hba.conf' # host-based authentication file +hba_file = '<%= scope["zulip::postgresql_base::postgresql_confdir"] %>/pg_hba.conf' # host-based authentication file # (change requires restart) -ident_file = '/etc/postgresql/13/main/pg_ident.conf' # ident configuration file +ident_file = '<%= scope["zulip::postgresql_base::postgresql_confdir"] %>/pg_ident.conf' # ident configuration file # (change requires restart) # If external_pid_file is not explicitly set, no extra PID file is written. -external_pid_file = '/var/run/postgresql/13-main.pid' # write an extra PID file +external_pid_file = '/var/run/postgresql/<%= scope["zulip::postgresql_common::version"] %>-main.pid' # write an extra PID file # (change requires restart) @@ -547,7 +547,7 @@ log_line_prefix = '%m [%p] %q%u@%d ' # special values: # %q = stop here in non-session # processes # %% = '%' - # e.g. '<%u%%%d> ' + # e.g. '<%%u%%%d> ' #log_lock_waits = off # log lock waits >= deadlock_timeout #log_parameter_max_length = -1 # when logging statements, limit logged # bind-parameter values to N bytes; @@ -566,7 +566,7 @@ log_timezone = 'Etc/UTC' # PROCESS TITLE #------------------------------------------------------------------------------ -cluster_name = '13/main' # added to process titles if nonempty +cluster_name = '<%= scope["zulip::postgresql_common::version"] %>/main' # added to process titles if nonempty # (change requires restart) #update_process_title = on @@ -582,7 +582,7 @@ cluster_name = '13/main' # added to process titles if nonempty #track_io_timing = off #track_functions = none # none, pl, all #track_activity_query_size = 1024 # (change requires restart) -stats_temp_directory = '/var/run/postgresql/13-main.pg_stat_tmp' +stats_temp_directory = '/var/run/postgresql/<%= scope["zulip::postgresql_common::version"] %>-main.pg_stat_tmp' # - Monitoring - @@ -779,3 +779,62 @@ include_dir = 'conf.d' # include files ending in '.conf' from #------------------------------------------------------------------------------ # Add settings for extensions here +timezone = 'UTC' +default_text_search_config = 'zulip.english_us_search' + +log_destination = 'stderr' +logging_collector = on +log_directory = '/var/log/postgresql' +log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' +log_rotation_age = 7d +log_rotation_size = 100MB +log_min_duration_statement = 500 +log_line_prefix = '%m [%c]: [%l-1] ' +log_checkpoints = on +log_lock_waits = on +log_temp_files = 0 +log_autovacuum_min_duration = 100 + +autovacuum_freeze_max_age = 2000000000 +vacuum_freeze_min_age = 1000000000 +vacuum_freeze_table_age = 1800000000 + +# Performance settings +max_connections = 1000 +maintenance_work_mem = <%= scope["zulip::profile::postgresql::maintenance_work_mem"] %>MB +effective_cache_size = <%= scope["zulip::profile::postgresql::effective_cache_size"] %>MB +work_mem = <%= scope["zulip::profile::postgresql::work_mem"] %>MB +shared_buffers = <%= scope["zulip::profile::postgresql::shared_buffers"] %>MB +wal_buffers = 4MB +checkpoint_completion_target = 0.7 +<% if @random_page_cost != '' -%> +random_page_cost = <%= @random_page_cost %> +<% end -%> +<% if @effective_io_concurrency != '' -%> +effective_io_concurrency = <%= @effective_io_concurrency %> +<% end -%> + +<% if @listen_addresses != '' -%> +listen_addresses = <%= @listen_addresses %> +<% end -%> + +<% if @replication != '' -%> +# Primary replication settings (ignored on replica) +wal_level = hot_standby +max_wal_senders = 5 +archive_mode = on +archive_command = '/usr/bin/timeout 10m /usr/local/bin/env-wal-g wal-push %p' + +# Replica settings (ignored on primary) +hot_standby = on +<% end -%> + +<% if @ssl_cert_file != '' -%> +ssl_cert_file = '<%= @ssl_cert_file %>' # (change requires restart) +<% end -%> +<% if @ssl_key_file != '' -%> +ssl_key_file = '<%= @ssl_key_file %>' # (change requires restart) +<% end -%> +<% if @ssl_ca_file != '' -%> +ssl_ca_file = '<%= @ssl_ca_file %>' # (change requires restart) +<% end -%>