Truncate cronjob name at 52 characters (#1208)
This commit is contained in:
		
							parent
							
								
									772f0ca771
								
							
						
					
					
						commit
						17da6bc649
					
				|  | @ -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
 | ||||||
|  |  | ||||||
|  | @ -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 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -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) | ||||||
|  | 			} | ||||||
|  | 		}) | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue