From e04b91d8af79a14d12027609d839890c404f61c3 Mon Sep 17 00:00:00 2001 From: Polina Bungina <27892524+hughcapet@users.noreply.github.com> Date: Fri, 17 Jan 2025 16:29:52 +0300 Subject: [PATCH] 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) --- pkg/cluster/majorversionupgrade.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/pkg/cluster/majorversionupgrade.go b/pkg/cluster/majorversionupgrade.go index e7f9f4f0..b75702bc 100644 --- a/pkg/cluster/majorversionupgrade.go +++ b/pkg/cluster/majorversionupgrade.go @@ -129,17 +129,13 @@ func (c *Cluster) majorVersionUpgrade() error { return nil } - if !isInMaintenanceWindow(c.Spec.MaintenanceWindows) { - c.logger.Infof("skipping major version upgrade, not in maintenance window") - return nil - } - pods, err := c.listPods() if err != nil { return err } allRunning := true + isStandbyCluster := false var masterPod *v1.Pod @@ -147,8 +143,9 @@ func (c *Cluster) majorVersionUpgrade() error { ps, _ := c.patroni.GetMemberData(&pod) 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) - return nil + isStandbyCluster = true + c.currentMajorVersion = ps.ServerVersion + break } 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) 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 { @@ -182,6 +182,11 @@ func (c *Cluster) majorVersionUpgrade() error { 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) if err != nil { c.logger.Error("could not get cluster members data from Patroni API, skipping major version upgrade") -- GitLab