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