Truncate cronjob name at 52 characters (#1208)

This commit is contained in:
Michael Seiwald 2021-02-15 17:00:21 +01:00 committed by GitHub
parent 772f0ca771
commit 17da6bc649
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 50 additions and 1 deletions

View File

@ -2101,7 +2101,7 @@ func (c *Cluster) generateLogicalBackupPodEnvVars() []v1.EnvVar {
// getLogicalBackupJobName returns the name; the job itself may not exists // getLogicalBackupJobName returns the name; the job itself may not exists
func (c *Cluster) getLogicalBackupJobName() (jobName string) { 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 // Return an array of ownerReferences to make an arbitraty object dependent on

View File

@ -576,3 +576,12 @@ func mergeContainers(containers ...[]v1.Container) ([]v1.Container, []string) {
} }
return result, conflicts return result, conflicts
} }
func trimCronjobName(name string) string {
maxLength := 52
if len(name) > maxLength {
name = name[0:maxLength]
name = strings.TrimRight(name, "-")
}
return name
}

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)
}
})
}
}