Skip to content

Commit fb03e01

Browse files
committed
fix update and sync process for monitoring and restore
1 parent 69f603d commit fb03e01

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

pkg/cluster/cluster.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff 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

pkg/cluster/sync.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff 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 {

0 commit comments

Comments
 (0)