@@ -47,33 +47,19 @@ func StringToBoolMap(map1, map2 map[string]bool) map[string]bool {
4747 return mergedMap
4848}
4949
50- // Containers merges two slices of containers merging each item by container name.
5150func Containers (defaultContainers , overrideContainers []corev1.Container ) []corev1.Container {
52- mergedContainerMap := map [string ]corev1.Container {}
5351
54- originalMap := createContainerMap (defaultContainers )
5552 overrideMap := createContainerMap (overrideContainers )
5653
57- for k , v := range originalMap {
58- mergedContainerMap [k ] = v
59- }
54+ var mergedContainers []corev1.Container
6055
61- for k , v := range overrideMap {
62- if orig , ok := originalMap [k ]; ok {
63- mergedContainerMap [k ] = Container (orig , v )
64- } else {
65- mergedContainerMap [k ] = v
56+ for _ , orig := range defaultContainers {
57+ if v , ok := overrideMap [orig .Name ]; ok {
58+ orig = Container (orig , v )
6659 }
60+ mergedContainers = append (mergedContainers , orig )
6761 }
6862
69- var mergedContainers []corev1.Container
70- for _ , v := range mergedContainerMap {
71- mergedContainers = append (mergedContainers , v )
72- }
73-
74- sort .SliceStable (mergedContainers , func (i , j int ) bool {
75- return mergedContainers [i ].Name < mergedContainers [j ].Name
76- })
7763 return mergedContainers
7864
7965}
@@ -297,31 +283,23 @@ func mergeVolumeDevice(original, override corev1.VolumeDevice) corev1.VolumeDevi
297283// Envs merges two slices of EnvVars using their name as the unique
298284// identifier.
299285func Envs (original , override []corev1.EnvVar ) []corev1.EnvVar {
300- mergedEnvsMap := map [string ]corev1.EnvVar {}
301286
302- originalMap := createEnvMap (original )
287+ // originalMap := createEnvMap(original)
303288 overrideMap := createEnvMap (override )
289+ var mergedEnvs []corev1.EnvVar
304290
305- for k , v := range originalMap {
306- mergedEnvsMap [k ] = v
307- }
308-
309- for k , v := range overrideMap {
310- if orig , ok := originalMap [k ]; ok {
311- mergedEnvsMap [k ] = mergeSingleEnv (orig , v )
312- } else {
313- mergedEnvsMap [k ] = v
291+ for _ , orig := range original {
292+ if v , ok := overrideMap [orig .Name ]; ok {
293+ if v .Value != "" {
294+ orig .Value = v .Value
295+ }
296+ if v .ValueFrom != nil {
297+ orig .ValueFrom = v .ValueFrom
298+ }
314299 }
300+ mergedEnvs = append (mergedEnvs , orig )
315301 }
316302
317- var mergedEnvs []corev1.EnvVar
318- for _ , v := range mergedEnvsMap {
319- mergedEnvs = append (mergedEnvs , v )
320- }
321-
322- sort .SliceStable (mergedEnvs , func (i , j int ) bool {
323- return mergedEnvs [i ].Name < mergedEnvs [j ].Name
324- })
325303 return mergedEnvs
326304}
327305
@@ -422,30 +400,22 @@ func createContainerPortMap(containerPorts []corev1.ContainerPort) map[string]co
422400
423401// VolumeMounts merges two slices of volume mounts by name.
424402func VolumeMounts (original , override []corev1.VolumeMount ) []corev1.VolumeMount {
425- mergedMountsMap := map [string ]corev1.VolumeMount {}
426- originalMounts := createVolumeMountMap (original )
427- overrideMounts := createVolumeMountMap (override )
428403
429- for k , v := range originalMounts {
430- mergedMountsMap [k ] = v
431- }
432-
433- for k , v := range overrideMounts {
434- if orig , ok := originalMounts [k ]; ok {
435- mergedMountsMap [k ] = VolumeMount (orig , v )
436- } else {
437- mergedMountsMap [k ] = v
438- }
439- }
404+ overrideMap := createVolumeMountMap (override )
440405
441406 var mergedMounts []corev1.VolumeMount
442- for _ , mount := range mergedMountsMap {
443- mergedMounts = append (mergedMounts , mount )
444- }
445407
446- sort .SliceStable (mergedMounts , func (i , j int ) bool {
447- return volumeMountToString (mergedMounts [i ]) < volumeMountToString (mergedMounts [j ])
448- })
408+ for _ , orig := range original {
409+ if v , ok := overrideMap [orig .Name ]; ok {
410+ if v .MountPath != "" {
411+ orig .MountPath = v .MountPath
412+ }
413+ if v .SubPath != "" {
414+ orig .SubPath = v .SubPath
415+ }
416+ }
417+ mergedMounts = append (mergedMounts , orig )
418+ }
449419
450420 return mergedMounts
451421}
0 commit comments