Skip to content

Commit 899e08e

Browse files
committed
Do not try to merge deprecated replication controller spec fields with new ones, mixed use-cases are now prevented
1 parent a7e4d62 commit 899e08e

File tree

1 file changed

+14
-18
lines changed

1 file changed

+14
-18
lines changed

kubernetes/structures_replication_controller.go

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package kubernetes
22

33
import (
4-
"github.com/imdario/mergo"
54
"k8s.io/api/core/v1"
65
)
76

@@ -70,24 +69,21 @@ func expandReplicationControllerTemplate(rct []interface{}, selector map[string]
7069
}
7170
obj.ObjectMeta = metadata
7271

73-
// Get pod spec from new fields
74-
podSpec, err := expandPodSpec(in["spec"].([]interface{}))
75-
if err != nil {
76-
return obj, err
77-
}
78-
79-
// Get pod spec from deprecated fields
80-
podSpecDeprecated, err := expandPodSpec(rct)
81-
if err != nil {
82-
return obj, err
83-
}
84-
85-
// Merge them overriding the new ones by the deprecated ones
86-
if err := mergo.MergeWithOverwrite(&podSpec, podSpecDeprecated); err != nil {
87-
return obj, err
72+
if len(in["spec"].([]interface{})) > 0 {
73+
// Get pod spec from new fields
74+
podSpec, err := expandPodSpec(in["spec"].([]interface{}))
75+
if err != nil {
76+
return obj, err
77+
}
78+
obj.Spec = podSpec
79+
} else {
80+
// Get pod spec from deprecated fields
81+
podSpecDeprecated, err := expandPodSpec(rct)
82+
if err != nil {
83+
return obj, err
84+
}
85+
obj.Spec = podSpecDeprecated
8886
}
8987

90-
obj.Spec = podSpec
91-
9288
return obj, nil
9389
}

0 commit comments

Comments
 (0)