From e017d04a16cedcbfc39f26e4c023d24fc6f7e8cb Mon Sep 17 00:00:00 2001 From: Jingfang Liu Date: Mon, 11 Jun 2018 12:05:48 -0700 Subject: [PATCH] make generated configmaps composable --- pkg/resmap/resmap.go | 2 ++ pkg/resource/resource.go | 5 +++++ 2 files changed, 7 insertions(+) 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())