make generated configmaps composable

This commit is contained in:
Jingfang Liu
2018-06-11 12:05:48 -07:00
parent 9459665c96
commit e017d04a16
2 changed files with 7 additions and 0 deletions

View File

@@ -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)
}

View File

@@ -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())