@@ -304,26 +304,26 @@ func TestMergeVolumes_DoesNotAddDuplicatesWithSameName(t *testing.T) {
304304 })
305305
306306 overridePodSpec := getDefaultPodSpec ()
307- defaultPodSpec .Spec .Volumes = append (defaultPodSpec .Spec .Volumes , corev1.Volume {
307+ overridePodSpec .Spec .Volumes = append (overridePodSpec .Spec .Volumes , corev1.Volume {
308308 Name : "new-volume" ,
309309 VolumeSource : corev1.VolumeSource {
310310 HostPath : & corev1.HostPathVolumeSource {
311311 Path : "updated-host-path" ,
312312 },
313313 },
314314 })
315- defaultPodSpec .Spec .Volumes = append (defaultPodSpec .Spec .Volumes , corev1.Volume {
315+ overridePodSpec .Spec .Volumes = append (overridePodSpec .Spec .Volumes , corev1.Volume {
316316 Name : "new-volume-3" ,
317317 })
318318
319319 mergedPodSpecTemplate , err := MergePodTemplateSpecs (defaultPodSpec , overridePodSpec )
320320 assert .NoError (t , err )
321321
322322 assert .Len (t , mergedPodSpecTemplate .Spec .Volumes , 3 )
323- assert .Equal (t , mergedPodSpecTemplate .Spec .Volumes [0 ].Name , "new-volume" )
324- assert .Equal (t , mergedPodSpecTemplate .Spec .Volumes [0 ].VolumeSource .HostPath .Path , "updated-host-path" )
325- assert .Equal (t , mergedPodSpecTemplate .Spec .Volumes [1 ].Name , "new-volume-2" )
326- assert .Equal (t , mergedPodSpecTemplate .Spec .Volumes [2 ].Name , "new-volume-3" )
323+ assert .Equal (t , "new-volume" , mergedPodSpecTemplate .Spec .Volumes [0 ].Name )
324+ assert .Equal (t , "updated-host-path" , mergedPodSpecTemplate .Spec .Volumes [0 ].VolumeSource .HostPath .Path )
325+ assert .Equal (t , "new-volume-2" , mergedPodSpecTemplate .Spec .Volumes [1 ].Name )
326+ assert .Equal (t , "new-volume-3" , mergedPodSpecTemplate .Spec .Volumes [2 ].Name )
327327}
328328
329329func TestMergeVolumeMounts (t * testing.T ) {
@@ -342,6 +342,57 @@ func TestMergeVolumeMounts(t *testing.T) {
342342 assert .Equal (t , []corev1.VolumeMount {vol2 , vol0 }, mergedVolumeMounts )
343343}
344344
345+ func TestMergeVolumesSecret (t * testing.T ) {
346+ permission := int32 (416 )
347+ vol0 := []corev1.Volume {{Name : "volume" , VolumeSource : corev1.VolumeSource {Secret : & corev1.SecretVolumeSource {SecretName : "Secret-name" }}}}
348+ vol1 := []corev1.Volume {{Name : "volume" , VolumeSource : corev1.VolumeSource {Secret : & corev1.SecretVolumeSource {DefaultMode : & permission }}}}
349+ mergedVolumes := mergeVolumes (vol0 , vol1 )
350+ assert .Len (t , mergedVolumes , 1 )
351+ volume := mergedVolumes [0 ]
352+ assert .Equal (t , "volume" , volume .Name )
353+ assert .Equal (t , corev1.SecretVolumeSource {SecretName : "Secret-name" , DefaultMode : & permission }, * volume .Secret )
354+ }
355+
356+ func TestMergeNonNilValueNotFilledByOperator (t * testing.T ) {
357+ // Tests that providing a custom volume with a volume source
358+ // That the operator does not manage overwrites the original
359+ vol0 := []corev1.Volume {{Name : "volume" , VolumeSource : corev1.VolumeSource {Secret : & corev1.SecretVolumeSource {SecretName : "Secret-name" }}}}
360+ vol1 := []corev1.Volume {{Name : "volume" , VolumeSource : corev1.VolumeSource {GCEPersistentDisk : & corev1.GCEPersistentDiskVolumeSource {}}}}
361+ mergedVolumes := mergeVolumes (vol0 , vol1 )
362+ assert .Len (t , mergedVolumes , 1 )
363+ volume := mergedVolumes [0 ]
364+ assert .Equal (t , "volume" , volume .Name )
365+ assert .Equal (t , corev1.GCEPersistentDiskVolumeSource {}, * volume .GCEPersistentDisk )
366+ assert .Nil (t , volume .Secret )
367+ }
368+
369+ func TestMergeNonNilValueFilledByOperatorButDifferent (t * testing.T ) {
370+ // Tests that providing a custom volume with a volume source
371+ // That the operator does manage, but different from the one
372+ // That already exists, overwrites the original
373+ vol0 := []corev1.Volume {{Name : "volume" , VolumeSource : corev1.VolumeSource {Secret : & corev1.SecretVolumeSource {SecretName : "Secret-name" }}}}
374+ vol1 := []corev1.Volume {{Name : "volume" , VolumeSource : corev1.VolumeSource {EmptyDir : & corev1.EmptyDirVolumeSource {}}}}
375+ mergedVolumes := mergeVolumes (vol0 , vol1 )
376+ assert .Len (t , mergedVolumes , 1 )
377+ volume := mergedVolumes [0 ]
378+ assert .Equal (t , "volume" , volume .Name )
379+ assert .Equal (t , corev1.EmptyDirVolumeSource {}, * volume .EmptyDir )
380+ assert .Nil (t , volume .Secret )
381+ }
382+
383+ func TestMergeVolumeAddVolume (t * testing.T ) {
384+ vol0 := []corev1.Volume {{Name : "volume0" , VolumeSource : corev1.VolumeSource {Secret : & corev1.SecretVolumeSource {}}}}
385+ vol1 := []corev1.Volume {{Name : "volume1" , VolumeSource : corev1.VolumeSource {EmptyDir : & corev1.EmptyDirVolumeSource {}}}}
386+ mergedVolumes := mergeVolumes (vol0 , vol1 )
387+ assert .Len (t , mergedVolumes , 2 )
388+ volume0 := mergedVolumes [0 ]
389+ assert .Equal (t , "volume0" , volume0 .Name )
390+ assert .Equal (t , corev1.SecretVolumeSource {}, * volume0 .Secret )
391+ volume1 := mergedVolumes [1 ]
392+ assert .Equal (t , "volume1" , volume1 .Name )
393+ assert .Equal (t , corev1.EmptyDirVolumeSource {}, * volume1 .EmptyDir )
394+ }
395+
345396func int64Ref (i int64 ) * int64 {
346397 return & i
347398}
0 commit comments