mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-10-09 08:06:27 +02:00
Add Patroni failsafe_mode parameter (#2076)
This commit adds support of a not-yet-released Patroni feature that allows postgres to run as primary in case of a failed leader lock update. * Add Patroni 'failsafe_mode' local parameter (enable for a single PG cluster) * Allow configuring Patroni 'failsafe_mode' parameter globally
This commit is contained in:
@@ -564,6 +564,21 @@ func (c *Cluster) checkAndSetGlobalPostgreSQLConfiguration(pod *v1.Pod, effectiv
|
||||
configToSet["ttl"] = desiredPatroniConfig.TTL
|
||||
}
|
||||
|
||||
var desiredFailsafe *bool
|
||||
if desiredPatroniConfig.FailsafeMode != nil {
|
||||
desiredFailsafe = desiredPatroniConfig.FailsafeMode
|
||||
} else if c.OpConfig.EnablePatroniFailsafeMode != nil {
|
||||
desiredFailsafe = c.OpConfig.EnablePatroniFailsafeMode
|
||||
}
|
||||
|
||||
effectiveFailsafe := effectivePatroniConfig.FailsafeMode
|
||||
|
||||
if desiredFailsafe != nil {
|
||||
if effectiveFailsafe == nil || *desiredFailsafe != *effectiveFailsafe {
|
||||
configToSet["failsafe_mode"] = *desiredFailsafe
|
||||
}
|
||||
}
|
||||
|
||||
// check if specified slots exist in config and if they differ
|
||||
slotsToSet := make(map[string]map[string]string)
|
||||
for slotName, desiredSlot := range desiredPatroniConfig.Slots {
|
||||
|
||||
Reference in New Issue
Block a user