Only check maintenance window for upgrade after pg version recheck (#2842)
This way we avoid misleading "skipping major version upgrade, not in maintenance window" log line when c.currentMajorVersion is not initialized (==0)
This commit is contained in:
		
							parent
							
								
									8522331cf2
								
							
						
					
					
						commit
						e04b91d8af
					
				|  | @ -129,17 +129,13 @@ func (c *Cluster) majorVersionUpgrade() error { | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if !isInMaintenanceWindow(c.Spec.MaintenanceWindows) { |  | ||||||
| 		c.logger.Infof("skipping major version upgrade, not in maintenance window") |  | ||||||
| 		return nil |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	pods, err := c.listPods() | 	pods, err := c.listPods() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	allRunning := true | 	allRunning := true | ||||||
|  | 	isStandbyCluster := false | ||||||
| 
 | 
 | ||||||
| 	var masterPod *v1.Pod | 	var masterPod *v1.Pod | ||||||
| 
 | 
 | ||||||
|  | @ -147,8 +143,9 @@ func (c *Cluster) majorVersionUpgrade() error { | ||||||
| 		ps, _ := c.patroni.GetMemberData(&pod) | 		ps, _ := c.patroni.GetMemberData(&pod) | ||||||
| 
 | 
 | ||||||
| 		if ps.Role == "standby_leader" { | 		if ps.Role == "standby_leader" { | ||||||
| 			c.logger.Errorf("skipping major version upgrade for %s/%s standby cluster. Re-deploy standby cluster with the required Postgres version specified", c.Namespace, c.Name) | 			isStandbyCluster = true | ||||||
| 			return nil | 			c.currentMajorVersion = ps.ServerVersion | ||||||
|  | 			break | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if ps.State != "running" { | 		if ps.State != "running" { | ||||||
|  | @ -175,6 +172,9 @@ func (c *Cluster) majorVersionUpgrade() error { | ||||||
| 		} | 		} | ||||||
| 		c.logger.Infof("recheck cluster version is already up to date. current: %d, min desired: %d", c.currentMajorVersion, desiredVersion) | 		c.logger.Infof("recheck cluster version is already up to date. current: %d, min desired: %d", c.currentMajorVersion, desiredVersion) | ||||||
| 		return nil | 		return nil | ||||||
|  | 	} else if isStandbyCluster { | ||||||
|  | 		c.logger.Warnf("skipping major version upgrade for %s/%s standby cluster. Re-deploy standby cluster with the required Postgres version specified", c.Namespace, c.Name) | ||||||
|  | 		return nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if _, exists := c.ObjectMeta.Annotations[majorVersionUpgradeFailureAnnotation]; exists { | 	if _, exists := c.ObjectMeta.Annotations[majorVersionUpgradeFailureAnnotation]; exists { | ||||||
|  | @ -182,6 +182,11 @@ func (c *Cluster) majorVersionUpgrade() error { | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	if !isInMaintenanceWindow(c.Spec.MaintenanceWindows) { | ||||||
|  | 		c.logger.Infof("skipping major version upgrade, not in maintenance window") | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	members, err := c.patroni.GetClusterMembers(masterPod) | 	members, err := c.patroni.GetClusterMembers(masterPod) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		c.logger.Error("could not get cluster members data from Patroni API, skipping major version upgrade") | 		c.logger.Error("could not get cluster members data from Patroni API, skipping major version upgrade") | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue