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