File tree Expand file tree Collapse file tree 2 files changed +10
-8
lines changed
Expand file tree Collapse file tree 2 files changed +10
-8
lines changed Original file line number Diff line number Diff line change @@ -1170,14 +1170,15 @@ func (c *Cluster) Update(oldSpec, newSpec *cpov1.Postgresql) error {
11701170 }()
11711171
11721172 // Ensure the cluster has a leader
1173+ leaderNotReady := false
11731174 if err := c .waitForLeader (60 * time .Second ); err != nil {
11741175 c .logger .Infof ("Postgres not yet ready for writes (Patroni leader election pending?). Skipping DB sync until next loop: %v" , err )
11751176 updateFailed = true
1176- return nil
1177+ leaderNotReady = true
11771178 }
11781179
11791180 // Roles and Databases
1180- if ! userInitFailed && ! (c .databaseAccessDisabled () || c .getNumberOfInstances (& c .Spec ) <= 0 || c .Spec .StandbyCluster != nil || c .restoreInProgress ()) {
1181+ if ! leaderNotReady && ! userInitFailed && ! (c .databaseAccessDisabled () || c .getNumberOfInstances (& c .Spec ) <= 0 || c .Spec .StandbyCluster != nil || c .restoreInProgress ()) {
11811182 c .logger .Debugf ("syncing roles" )
11821183 if err := c .syncRoles (); err != nil {
11831184 c .logger .Errorf ("could not sync roles: %v" , err )
@@ -1211,7 +1212,7 @@ func (c *Cluster) Update(oldSpec, newSpec *cpov1.Postgresql) error {
12111212 }
12121213
12131214 // Check if we need to call addMonitoringPermissions-func
1214- if c .Spec .Monitoring != nil && newSpec . Spec . Monitoring != nil && oldSpec . Spec . Monitoring == nil {
1215+ if c .Spec .Monitoring != nil {
12151216 if err := c .addMonitoringPermissions (); err != nil {
12161217 c .logger .Errorf ("could not add monitoring permissions: %v" , err )
12171218 updateFailed = true
Original file line number Diff line number Diff line change @@ -263,12 +263,13 @@ func (c *Cluster) Sync(newSpec *cpov1.Postgresql) error {
263263
264264 // Check if Cluster has an Leader
265265 needDBAccess := ! (c .databaseAccessDisabled () || c .getNumberOfInstances (& newSpec .Spec ) <= 0 || c .Spec .StandbyCluster != nil || c .restoreInProgress ())
266+ leaderNotReady := false
267+ if err := c .waitForLeader (60 * time .Second ); err != nil {
268+ c .logger .Infof ("Postgres not yet ready for writes (Patroni leader election pending?). Skipping DB sync until next loop: %v" , err )
269+ leaderNotReady = true
270+ }
266271 // create database objects unless we are running without pods or disabled that feature explicitly
267- if needDBAccess {
268- if err := c .waitForLeader (60 * time .Second ); err != nil {
269- c .logger .Infof ("Postgres not yet ready for writes (Patroni leader election pending?). Skipping DB sync until next loop: %v" , err )
270- return nil
271- }
272+ if needDBAccess && ! leaderNotReady {
272273
273274 c .logger .Debug ("syncing roles" )
274275 if err = c .syncRoles (); err != nil {
You can’t perform that action at this time.
0 commit comments