File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1169,6 +1169,13 @@ func (c *Cluster) Update(oldSpec, newSpec *cpov1.Postgresql) error {
11691169
11701170 }()
11711171
1172+ // Ensure the cluster has a leader
1173+ if err := c .waitForLeader (60 * time .Second ); err != nil {
1174+ c .logger .Infof ("Postgres not yet ready for writes (Patroni leader election pending?). Skipping DB sync until next loop: %v" , err )
1175+ updateFailed = true
1176+ return nil
1177+ }
1178+
11721179 // Roles and Databases
11731180 if ! userInitFailed && ! (c .databaseAccessDisabled () || c .getNumberOfInstances (& c .Spec ) <= 0 || c .Spec .StandbyCluster != nil || c .restoreInProgress ()) {
11741181 c .logger .Debugf ("syncing roles" )
@@ -1205,12 +1212,16 @@ func (c *Cluster) Update(oldSpec, newSpec *cpov1.Postgresql) error {
12051212
12061213 // Check if we need to call addMonitoringPermissions-func
12071214 if c .Spec .Monitoring != nil && newSpec .Spec .Monitoring != nil && oldSpec .Spec .Monitoring == nil {
1208- c .addMonitoringPermissions ()
1215+ if err := c .addMonitoringPermissions (); err != nil {
1216+ c .logger .Errorf ("could not add monitoring permissions: %v" , err )
1217+ updateFailed = true
1218+ }
12091219 }
12101220 // Check if Monitoring-Secret needs to be removed
12111221 if newSpec .Spec .Monitoring == nil && oldSpec .Spec .Monitoring != nil {
12121222 if err := c .deleteMonitoringSecret (); err != nil {
1213- return fmt .Errorf ("could not remove the Monitoring secret: %v" , err )
1223+ c .logger .Errorf ("could not remove the Monitoring secret: %v" , err )
1224+ updateFailed = true
12141225 }
12151226 }
12161227
You can’t perform that action at this time.
0 commit comments