mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-10-01 15:59:27 +02:00
Allow whitelisting of teams to do auto upgrade upgrade via operator.
This commit is contained in:
@@ -44,9 +44,32 @@ func (c *Cluster) GetDesiredMajorVersion() string {
|
||||
return c.Spec.PgVersion
|
||||
}
|
||||
|
||||
func isTeamWhitelisted(c *Cluster) bool {
|
||||
whitelistedTeams := c.OpConfig.MajorVersionUpgradeTeamWhitelist
|
||||
owningTeam := c.Spec.teamID
|
||||
|
||||
if len(whitelistedTeams) == 0 {
|
||||
return false
|
||||
}
|
||||
|
||||
for _, t := range whitelistedTeams {
|
||||
if t == owningTeam {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/*
|
||||
Execute upgrade when mode is set to manual or full or when the owning team is whitelisted for upgrade.
|
||||
|
||||
Manual upgrade means, it us triggered by the user via manifest version change
|
||||
Full upgrade means, operator also determins the minimal version used accross all clusters and upgrades violators.
|
||||
|
||||
*/
|
||||
func (c *Cluster) majorVersionUpgrade() error {
|
||||
|
||||
if c.OpConfig.MajorVersionUpgradeMode == "off" {
|
||||
if c.OpConfig.MajorVersionUpgradeMode == "off" && !isTeamWhitelisted(c) {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -214,6 +214,7 @@ type Config struct {
|
||||
MajorVersionUpgradeMode string `name:"major_version_upgrade_mode" default:"off"`
|
||||
MinimalMajorVersion string `name:"minimal_major_version" default:"9.6"`
|
||||
TargetMajorVersion string `name:"target_major_version" default:"14"`
|
||||
MajorVersionUpgradeTeamWhitelist []string `name:"major_version_upgrade_team_whitelist" default:""`
|
||||
}
|
||||
|
||||
// MustMarshal marshals the config or panics
|
||||
|
||||
Reference in New Issue
Block a user