resolve conflict in e2e tests

This commit is contained in:
Felix Kunde
2021-02-16 15:48:25 +01:00
30 changed files with 1080 additions and 415 deletions
+11 -9
View File
@@ -49,7 +49,7 @@ var (
type Config struct {
OpConfig config.Config
RestConfig *rest.Config
PgTeamMap pgteams.PostgresTeamMap
PgTeamMap *pgteams.PostgresTeamMap
InfrastructureRoles map[string]spec.PgUser // inherited from the controller
PodServiceAccount *v1.ServiceAccount
PodServiceAccountRoleBinding *rbacv1.RoleBinding
@@ -1143,8 +1143,8 @@ func (c *Cluster) initHumanUsers() error {
var clusterIsOwnedBySuperuserTeam bool
superuserTeams := []string{}
if c.OpConfig.EnablePostgresTeamCRDSuperusers {
superuserTeams = c.PgTeamMap.GetAdditionalSuperuserTeams(c.Spec.TeamID, true)
if c.OpConfig.EnablePostgresTeamCRD && c.OpConfig.EnablePostgresTeamCRDSuperusers && c.Config.PgTeamMap != nil {
superuserTeams = c.Config.PgTeamMap.GetAdditionalSuperuserTeams(c.Spec.TeamID, true)
}
for _, postgresSuperuserTeam := range c.OpConfig.PostgresSuperuserTeams {
@@ -1163,12 +1163,14 @@ func (c *Cluster) initHumanUsers() error {
}
}
additionalTeams := c.PgTeamMap.GetAdditionalTeams(c.Spec.TeamID, true)
for _, additionalTeam := range additionalTeams {
if !(util.SliceContains(superuserTeams, additionalTeam)) {
err := c.initTeamMembers(additionalTeam, false)
if err != nil {
return fmt.Errorf("Cannot initialize members for additional team %q for cluster owned by %q: %v", additionalTeam, c.Spec.TeamID, err)
if c.OpConfig.EnablePostgresTeamCRD && c.Config.PgTeamMap != nil {
additionalTeams := c.Config.PgTeamMap.GetAdditionalTeams(c.Spec.TeamID, true)
for _, additionalTeam := range additionalTeams {
if !(util.SliceContains(superuserTeams, additionalTeam)) {
err := c.initTeamMembers(additionalTeam, false)
if err != nil {
return fmt.Errorf("Cannot initialize members for additional team %q for cluster owned by %q: %v", additionalTeam, c.Spec.TeamID, err)
}
}
}
}
+1 -1
View File
@@ -2099,7 +2099,7 @@ func (c *Cluster) generateLogicalBackupPodEnvVars() []v1.EnvVar {
// getLogicalBackupJobName returns the name; the job itself may not exists
func (c *Cluster) getLogicalBackupJobName() (jobName string) {
return c.OpConfig.LogicalBackupJobPrefix + c.clusterName().Name
return trimCronjobName(c.OpConfig.LogicalBackupJobPrefix + c.clusterName().Name)
}
// Return an array of ownerReferences to make an arbitraty object dependent on
+5 -4
View File
@@ -53,6 +53,11 @@ func (c *Cluster) Sync(newSpec *acidv1.Postgresql) error {
return err
}
// sync volume may already transition volumes to gp3, if iops/throughput or type is specified
if err = c.syncVolumes(); err != nil {
return err
}
if c.OpConfig.EnableEBSGp3Migration {
err = c.executeEBSMigration()
if nil != err {
@@ -60,10 +65,6 @@ func (c *Cluster) Sync(newSpec *acidv1.Postgresql) error {
}
}
if err = c.syncVolumes(); err != nil {
return err
}
if err = c.enforceMinResourceLimits(&c.Spec); err != nil {
err = fmt.Errorf("could not enforce minimum resource limits: %v", err)
return err
+25 -5
View File
@@ -238,15 +238,26 @@ func (c *Cluster) getTeamMembers(teamID string) ([]string, error) {
return nil, fmt.Errorf("no teamId specified")
}
c.logger.Debugf("fetching possible additional team members for team %q", teamID)
members := []string{}
additionalMembers := c.PgTeamMap[teamID].AdditionalMembers
for _, member := range additionalMembers {
members = append(members, member)
if c.OpConfig.EnablePostgresTeamCRD && c.Config.PgTeamMap != nil {
c.logger.Debugf("fetching possible additional team members for team %q", teamID)
additionalMembers := []string{}
for team, membership := range *c.Config.PgTeamMap {
if team == teamID {
additionalMembers = membership.AdditionalMembers
c.logger.Debugf("found %d additional members for team %q", len(members), teamID)
}
}
for _, member := range additionalMembers {
members = append(members, member)
}
}
if !c.OpConfig.EnableTeamsAPI {
c.logger.Debugf("team API is disabled, only returning %d members for team %q", len(members), teamID)
c.logger.Debugf("team API is disabled")
return members, nil
}
@@ -576,3 +587,12 @@ func mergeContainers(containers ...[]v1.Container) ([]v1.Container, []string) {
}
return result, conflicts
}
func trimCronjobName(name string) string {
maxLength := 52
if len(name) > maxLength {
name = name[0:maxLength]
name = strings.TrimRight(name, "-")
}
return name
}
+40
View File
@@ -139,3 +139,43 @@ func TestInheritedAnnotations(t *testing.T) {
}
}
func Test_trimCronjobName(t *testing.T) {
type args struct {
name string
}
tests := []struct {
name string
args args
want string
}{
{
name: "short name",
args: args{
name: "short-name",
},
want: "short-name",
},
{
name: "long name",
args: args{
name: "very-very-very-very-very-very-very-very-very-long-db-name",
},
want: "very-very-very-very-very-very-very-very-very-long-db",
},
{
name: "long name should not end with dash",
args: args{
name: "very-very-very-very-very-very-very-very-very-----------long-db-name",
},
want: "very-very-very-very-very-very-very-very-very",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := trimCronjobName(tt.args.name); got != tt.want {
t.Errorf("trimCronjobName() = %v, want %v", got, tt.want)
}
})
}
}