Make --record compute patch using versioned object

parent 12806be2
......@@ -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 {
oldData, err := json.Marshal(obj)
if err != nil {
return nil, err
}
if err := RecordChangeCause(obj, changeCause); err != nil {
return nil, err
}
newData, err := json.Marshal(info.Object)
newData, err := json.Marshal(obj)
if err != nil {
return nil, err
}
return strategicpatch.CreateTwoWayMergePatch(oldData, newData, info.Object)
return strategicpatch.CreateTwoWayMergePatch(oldData, newData, obj)
}
// containsChangeCause checks if input resource info contains change-cause annotation.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment