Allow whitelisting of teams to do auto upgrade upgrade via operator.
This commit is contained in:
parent
a6d4f23f90
commit
cc4d5c1c77
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue