Skip to content

Commit 81c476c

Browse files
committed
优化0.0.8版本
1 parent ca33d6b commit 81c476c

1 file changed

Lines changed: 28 additions & 58 deletions

File tree

pkg/util/merge/merge.go

Lines changed: 28 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -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.
5150
func 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.
299285
func 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.
424402
func 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

Comments
 (0)