From 525df8f0d1caf1372b1001bf91f28395ebb79e24 Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Mon, 12 Dec 2016 12:46:33 -0800 Subject: [PATCH] ref(kube): simplify encoding for creating patches --- pkg/kube/client.go | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/pkg/kube/client.go b/pkg/kube/client.go index 875865f81..e721b69b9 100644 --- a/pkg/kube/client.go +++ b/pkg/kube/client.go @@ -22,7 +22,6 @@ import ( "fmt" "io" "log" - "reflect" "strings" "time" @@ -36,7 +35,6 @@ import ( "k8s.io/kubernetes/pkg/kubectl/resource" "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/util/strategicpatch" - "k8s.io/kubernetes/pkg/util/yaml" "k8s.io/kubernetes/pkg/watch" ) @@ -298,33 +296,22 @@ func deleteResource(info *resource.Info) error { } func updateResource(target *resource.Info, currentObj runtime.Object) error { - encoder := api.Codecs.LegacyCodec(registered.EnabledVersions()...) - originalSerialization, err := runtime.Encode(encoder, currentObj) - if err != nil { - return err - } - - editedSerialization, err := runtime.Encode(encoder, target.Object) - if err != nil { - return err - } - - originalJS, err := yaml.ToJSON(originalSerialization) + original, err := runtime.Encode(encoder, currentObj) if err != nil { return err } - editedJS, err := yaml.ToJSON(editedSerialization) + modified, err := runtime.Encode(encoder, target.Object) if err != nil { return err } - if reflect.DeepEqual(originalJS, editedJS) { + if api.Semantic.DeepEqual(original, modified) { return ErrAlreadyExists{target.Name} } - patch, err := strategicpatch.CreateStrategicMergePatch(originalJS, editedJS, currentObj) + patch, err := strategicpatch.CreateTwoWayMergePatch(original, modified, currentObj) if err != nil { return err }