From 8b34e0ed5333b728d732f5dcc65863a23610f5ab Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Fri, 9 Dec 2016 03:16:05 -0500 Subject: [PATCH] Make --record compute patch using versioned object --- pkg/kubectl/cmd/util/helpers.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/pkg/kubectl/cmd/util/helpers.go b/pkg/kubectl/cmd/util/helpers.go index a5844ff83d2..3423ac6d1b1 100644 --- a/pkg/kubectl/cmd/util/helpers.go +++ b/pkg/kubectl/cmd/util/helpers.go @@ -523,18 +523,24 @@ func RecordChangeCause(obj runtime.Object, changeCause string) error { // ChangeResourcePatch creates a strategic merge patch between the origin input resource info // and the annotated with change-cause input resource info. func ChangeResourcePatch(info *resource.Info, changeCause string) ([]byte, error) { - oldData, err := json.Marshal(info.Object) + // Get a versioned object + obj, err := info.Mapping.ConvertToVersion(info.Object, info.Mapping.GroupVersionKind.GroupVersion()) if err != nil { return nil, err } - if err := RecordChangeCause(info.Object, changeCause); err != nil { - return nil, err - } - newData, err := json.Marshal(info.Object) + + oldData, err := json.Marshal(obj) if err != nil { return nil, err } - return strategicpatch.CreateTwoWayMergePatch(oldData, newData, info.Object) + if err := RecordChangeCause(obj, changeCause); err != nil { + return nil, err + } + newData, err := json.Marshal(obj) + if err != nil { + return nil, err + } + return strategicpatch.CreateTwoWayMergePatch(oldData, newData, obj) } // containsChangeCause checks if input resource info contains change-cause annotation.