# # Copyright:: Copyright (c) 2016 GitLab Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # default['gitlab']['sentinel']['enable'] = false default['gitlab']['sentinel']['bind'] = '0.0.0.0' default['gitlab']['sentinel']['dir'] = '/var/opt/gitlab/sentinel' default['gitlab']['sentinel']['log_directory'] = '/var/log/gitlab/sentinel' default['gitlab']['sentinel']['ha'] = false default['gitlab']['sentinel']['port'] = 26379 default['gitlab']['sentinel']['password'] = nil default['gitlab']['sentinel']['quorum'] = 1 default['gitlab']['sentinel']['announce_ip'] = nil default['gitlab']['sentinel']['announce_port'] = nil default['gitlab']['sentinel']['down_after_milliseconds'] = 10000 default['gitlab']['sentinel']['failover_timeout'] = 60000 default['gitlab']['sentinel']['myid'] = nil default['gitlab']['sentinel']['tls_port'] = nil default['gitlab']['sentinel']['tls_cert_file'] = nil default['gitlab']['sentinel']['tls_key_file'] = nil default['gitlab']['sentinel']['tls_dh_params_file'] = nil default['gitlab']['sentinel']['tls_ca_cert_file'] = "#{node['package']['install-dir']}/embedded/ssl/certs/cacert.pem" default['gitlab']['sentinel']['tls_ca_cert_dir'] = "#{node['package']['install-dir']}/embedded/ssl/certs/" default['gitlab']['sentinel']['tls_auth_clients'] = 'optional' default['gitlab']['sentinel']['tls_replication'] = nil default['gitlab']['sentinel']['tls_cluster'] = nil default['gitlab']['sentinel']['tls_protocols'] = nil default['gitlab']['sentinel']['tls_ciphers'] = nil default['gitlab']['sentinel']['tls_ciphersuites'] = nil default['gitlab']['sentinel']['tls_prefer_server_ciphers'] = nil default['gitlab']['sentinel']['tls_session_caching'] = nil default['gitlab']['sentinel']['tls_session_cache_size'] = nil default['gitlab']['sentinel']['tls_session_cache_timeout'] = nil default['gitlab']['sentinel']['use_hostnames'] = nil ### # Geo: Common (primary or secondary) node configuration ### default['gitlab']['gitlab_rails']['geo_node_name'] = nil default['gitlab']['gitlab_rails']['geo_registry_replication_enabled'] = false default['gitlab']['gitlab_rails']['geo_registry_replication_primary_api_url'] = nil ### # Geo: Secondary node configuration ### default['gitlab']['geo_secondary']['enable'] = false default['gitlab']['geo_secondary']['auto_migrate'] = true default['gitlab']['geo_secondary']['db_adapter'] = "postgresql" default['gitlab']['geo_secondary']['db_encoding'] = "unicode" default['gitlab']['geo_secondary']['db_collation'] = nil default['gitlab']['geo_secondary']['db_database'] = "gitlabhq_geo_production" default['gitlab']['geo_secondary']['db_username'] = "gitlab_geo" default['gitlab']['geo_secondary']['db_password'] = nil default['gitlab']['geo_secondary']['db_load_balancing'] = { 'hosts' => [] } # Path to postgresql socket directory default['gitlab']['geo_secondary']['db_host'] = nil # when `nil` - value is set from geo_postgresql['dir'] default['gitlab']['geo_secondary']['db_port'] = 5431 default['gitlab']['geo_secondary']['db_socket'] = nil default['gitlab']['geo_secondary']['db_sslmode'] = nil default['gitlab']['geo_secondary']['db_sslcompression'] = 0 default['gitlab']['geo_secondary']['db_sslrootcert'] = nil default['gitlab']['geo_secondary']['db_sslca'] = nil default['gitlab']['geo_secondary']['db_prepared_statements'] = false default['gitlab']['geo_secondary']['db_database_tasks'] = true ### # Geo: PostgreSQL (Tracking database) ### default['gitlab']['geo_postgresql'] = default['postgresql'].dup # We are inheriting default attributes from postgresql and changing below what should be different default['gitlab']['geo_postgresql']['enable'] = false default['gitlab']['geo_postgresql']['dir'] = '/var/opt/gitlab/geo-postgresql' default['gitlab']['geo_postgresql']['log_directory'] = '/var/log/gitlab/geo-postgresql' default['gitlab']['geo_postgresql']['unix_socket_directory'] = nil default['gitlab']['geo_postgresql']['ssl'] = 'off' # Postgres User's Environment Path default['gitlab']['geo_postgresql']['sql_user'] = 'gitlab_geo' default['gitlab']['geo_postgresql']['sql_mattermost_user'] = nil default['gitlab']['geo_postgresql']['port'] = 5431 # Mininum of 1/8 of total memory and Maximum of 1024MB as sane defaults default['gitlab']['geo_postgresql']['shared_buffers'] = "#{[(node['memory']['total'].to_i / 8) / 1024, 1024].max}MB" default['gitlab']['geo_postgresql']['work_mem'] = '16MB' default['gitlab']['geo_postgresql']['maintenance_work_mem'] = '16MB' default['gitlab']['geo_postgresql']['effective_cache_size'] = "#{[(node['memory']['total'].to_i / 8) / 1024, 2048].max}MB" # double of shared_buffers estimation default['gitlab']['geo_postgresql']['log_min_duration_statement'] = 1000 default['gitlab']['geo_postgresql']['min_wal_size'] = '80MB' default['gitlab']['geo_postgresql']['max_wal_size'] = '1GB' default['gitlab']['geo_postgresql']['checkpoint_timeout'] = '5min' default['gitlab']['geo_postgresql']['checkpoint_completion_target'] = 0.9 default['gitlab']['geo_postgresql']['checkpoint_warning'] = '30s' default['gitlab']['geo_postgresql']['wal_buffers'] = '-1' default['gitlab']['geo_postgresql']['autovacuum'] = 'on' default['gitlab']['geo_postgresql']['log_autovacuum_min_duration'] = '-1' default['gitlab']['geo_postgresql']['autovacuum_max_workers'] = '3' default['gitlab']['geo_postgresql']['autovacuum_naptime'] = '1min' default['gitlab']['geo_postgresql']['autovacuum_vacuum_threshold'] = '50' default['gitlab']['geo_postgresql']['autovacuum_analyze_threshold'] = '50' default['gitlab']['geo_postgresql']['autovacuum_vacuum_scale_factor'] = '0.02' # 10x lower than PG defaults default['gitlab']['geo_postgresql']['autovacuum_analyze_scale_factor'] = '0.01' # 10x lower than PG defaults default['gitlab']['geo_postgresql']['autovacuum_freeze_max_age'] = '200000000' default['gitlab']['geo_postgresql']['autovacuum_vacuum_cost_delay'] = '20ms' default['gitlab']['geo_postgresql']['autovacuum_vacuum_cost_limit'] = '-1' default['gitlab']['geo_postgresql']['statement_timeout'] = '60000' default['gitlab']['geo_postgresql']['idle_in_transaction_session_timeout'] = '60000' default['gitlab']['geo_postgresql']['log_line_prefix'] = nil default['gitlab']['geo_postgresql']['track_activity_query_size'] = '1024' default['gitlab']['geo_postgresql']['effective_io_concurrency'] = 1 default['gitlab']['geo_postgresql']['max_worker_processes'] = 8 default['gitlab']['geo_postgresql']['max_parallel_workers_per_gather'] = 0 default['gitlab']['geo_postgresql']['log_lock_waits'] = 1 default['gitlab']['geo_postgresql']['deadlock_timeout'] = '5s' default['gitlab']['geo_postgresql']['track_io_timing'] = 'off' default['gitlab']['geo_postgresql']['custom_pg_hba_entries'] = {} default['gitlab']['geo_postgresql']['default_statistics_target'] = 1000 # Replication settings default['gitlab']['geo_postgresql']['wal_level'] = 'minimal' default['gitlab']['geo_postgresql']['wal_log_hints'] = 'off' default['gitlab']['geo_postgresql']['max_wal_senders'] = 0 default['gitlab']['geo_postgresql']['wal_keep_segments'] = 10 default['gitlab']['geo_postgresql']['wal_keep_size'] = nil default['gitlab']['geo_postgresql']['hot_standby'] = 'off' default['gitlab']['geo_postgresql']['max_standby_archive_delay'] = '30s' default['gitlab']['geo_postgresql']['max_standby_streaming_delay'] = '30s' default['gitlab']['geo_postgresql']['max_replication_slots'] = 0 default['gitlab']['geo_postgresql']['synchronous_commit'] = 'on' default['gitlab']['geo_postgresql']['synchronous_standby_names'] = '' default['gitlab']['geo_postgresql']['hot_standby_feedback'] = 'off' # Backup/Archive settings default['gitlab']['geo_postgresql']['archive_mode'] = 'off' default['gitlab']['geo_postgresql']['archive_command'] = nil default['gitlab']['geo_postgresql']['archive_timeout'] = '0' # pgbouncer settings default['gitlab']['geo_postgresql']['pgbouncer_user'] = 'pgbouncer' default['gitlab']['geo_postgresql']['pgbouncer_user_password'] = nil # Automatically restart on version changes default['gitlab']['geo_postgresql']['auto_restart_on_version_change'] = true ### # Geo: LogCursor (replication) ### default['gitlab']['geo_logcursor']['ha'] = false default['gitlab']['geo_logcursor']['log_directory'] = '/var/log/gitlab/geo-logcursor' default['gitlab']['geo_logcursor']['env_directory'] = '/opt/gitlab/etc/geo-logcursor/env' default['gitlab']['suggested-reviewers'] = Gitlab::Deprecations::NodeAttribute.new(proc { node['gitlab']['suggested_reviewers'].to_h }, "node['gitlab']['suggested-reviewers']", "node['gitlab']['suggested_reviewers']") default['gitlab']['geo-secondary'] = Gitlab::Deprecations::NodeAttribute.new(proc { node['gitlab']['geo_secondary'].to_h }, "node['gitlab']['geo-secondary']", "node['gitlab']['geo_secondary']") default['gitlab']['geo-logcursor'] = Gitlab::Deprecations::NodeAttribute.new(proc { node['gitlab']['geo_logcursor'].to_h }, "node['gitlab']['geo-logcursor']", "node['gitlab']['geo_logcursor']") default['gitlab']['geo-postgresql'] = Gitlab::Deprecations::NodeAttribute.new(proc { node['gitlab']['geo_postgresql'].to_h }, "node['gitlab']['geo-postgresql']", "node['gitlab']['geo_postgresql']")