mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-10-21 12:13:35 +02:00
restart instances via rest api instead of recreating pods, fixes bug with being unable to decrease some values, like max_connections (#1103)
* restart instances via rest api instead of recreating pods * Ignore differences in bootstrap.dcs when compare SPILO_CONFIGURATION * isBootstrapOnlyParameter is rewritten, instead of whitelist it uses blacklist * added e2e test for max_connections decreasing * documentation updated * pending_restart flag added to restart api call, wait fot ttl seconds after restart * refactoring, /restart returns error if pending_restart is set to true and patroni is not pending restart * restart postgresql instances within pods only if pod's restart is not required * patroni might need to restart postgresql after pods were recreated if values like max_connections decreased * instancesRestart is not critical, try to restart pods if not successful * cleanup Co-authored-by: Felix Kunde <felix-kunde@gmx.de>
This commit is contained in:
co-authored by
Felix Kunde
parent
75a9e2be38
commit
ebb3204cdd
+27
-7
@@ -412,13 +412,33 @@ func tolerations(tolerationsSpec *[]v1.Toleration, podToleration map[string]stri
|
||||
// Those parameters must go to the bootstrap/dcs/postgresql/parameters section.
|
||||
// See http://patroni.readthedocs.io/en/latest/dynamic_configuration.html.
|
||||
func isBootstrapOnlyParameter(param string) bool {
|
||||
return param == "max_connections" ||
|
||||
param == "max_locks_per_transaction" ||
|
||||
param == "max_worker_processes" ||
|
||||
param == "max_prepared_transactions" ||
|
||||
param == "wal_level" ||
|
||||
param == "wal_log_hints" ||
|
||||
param == "track_commit_timestamp"
|
||||
params := map[string]bool{
|
||||
"archive_command": false,
|
||||
"shared_buffers": false,
|
||||
"logging_collector": false,
|
||||
"log_destination": false,
|
||||
"log_directory": false,
|
||||
"log_filename": false,
|
||||
"log_file_mode": false,
|
||||
"log_rotation_age": false,
|
||||
"log_truncate_on_rotation": false,
|
||||
"ssl": false,
|
||||
"ssl_ca_file": false,
|
||||
"ssl_crl_file": false,
|
||||
"ssl_cert_file": false,
|
||||
"ssl_key_file": false,
|
||||
"shared_preload_libraries": false,
|
||||
"bg_mon.listen_address": false,
|
||||
"bg_mon.history_buckets": false,
|
||||
"pg_stat_statements.track_utility": false,
|
||||
"extwlist.extensions": false,
|
||||
"extwlist.custom_path": false,
|
||||
}
|
||||
result, ok := params[param]
|
||||
if !ok {
|
||||
result = true
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func generateVolumeMounts(volume acidv1.Volume) []v1.VolumeMount {
|
||||
|
||||
Reference in New Issue
Block a user