diff --git a/pkg/resmap/resmap.go b/pkg/resmap/resmap.go index 98b8629c1..c282ac1d6 100644 --- a/pkg/resmap/resmap.go +++ b/pkg/resmap/resmap.go @@ -222,11 +222,13 @@ func MergeWithOverride(maps ...ResMap) (ResMap, error) { glog.V(4).Infof("Replace %v with %v", result[id].Object, r.Object) r.Replace(result[id]) result[id] = r + result[id].ChangeBehavior(resource.BehaviorCreate) case resource.BehaviorMerge: glog.V(4).Infof("Merging %v with %v", result[id].Object, r.Object) r.Merge(result[id]) result[id] = r glog.V(4).Infof("Merged object is %v", result[id].Object) + result[id].ChangeBehavior(resource.BehaviorCreate) default: return nil, fmt.Errorf("Id %#v exists; must merge or replace.", id) } diff --git a/pkg/resource/resource.go b/pkg/resource/resource.go index 1a444d8e3..869470617 100644 --- a/pkg/resource/resource.go +++ b/pkg/resource/resource.go @@ -61,6 +61,11 @@ func (r *Resource) Behavior() GenerationBehavior { return r.b } +// ChangeBehavior changes the resource to the new behavior +func (r *Resource) ChangeBehavior(b GenerationBehavior) { + r.b = b +} + // Id returns the ResId for the resource. func (r *Resource) Id() ResId { return NewResId(r.GroupVersionKind(), r.GetName())