diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 117d7c9c8..66f9c6991 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -596,7 +596,7 @@ }, { "ImportPath": "k8s.io/client-go", - "Rev": "cf84c08bad11" + "Rev": "5be5d5753fd2" }, { "ImportPath": "k8s.io/component-base", diff --git a/go.mod b/go.mod index c856e16b4..921e0750b 100644 --- a/go.mod +++ b/go.mod @@ -46,7 +46,7 @@ require ( gotest.tools v2.2.0+incompatible // indirect k8s.io/api v0.0.0-20200207025841-85a41f27a10c k8s.io/apimachinery v0.0.0-20200207025655-52a338251bb2 - k8s.io/client-go v0.0.0-20200207110052-cf84c08bad11 + k8s.io/client-go v0.0.0-20200207150107-5be5d5753fd2 k8s.io/component-base v0.0.0-20200207030544-616550b070ba k8s.io/klog v1.0.0 k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c @@ -60,6 +60,6 @@ replace ( golang.org/x/tools => golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 // pinned to release-branch.go1.13 k8s.io/api => k8s.io/api v0.0.0-20200207025841-85a41f27a10c k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20200207025655-52a338251bb2 - k8s.io/client-go => k8s.io/client-go v0.0.0-20200207110052-cf84c08bad11 + k8s.io/client-go => k8s.io/client-go v0.0.0-20200207150107-5be5d5753fd2 k8s.io/component-base => k8s.io/component-base v0.0.0-20200207030544-616550b070ba ) diff --git a/go.sum b/go.sum index 79b86be48..024b76b69 100644 --- a/go.sum +++ b/go.sum @@ -363,7 +363,7 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= k8s.io/api v0.0.0-20200207025841-85a41f27a10c/go.mod h1:SA5EjO7X3UBpRgCFnqrgyCg0rXvBmN8QpNZ4Bvmv9js= k8s.io/apimachinery v0.0.0-20200207025655-52a338251bb2/go.mod h1:4JiEu5qfVX4iOPJG4zxNOGJ0HamEJ5OmJHxtHMChmZo= -k8s.io/client-go v0.0.0-20200207110052-cf84c08bad11/go.mod h1:ourVHU91vVd0R4YiJhW1FNlt3K+HtokZ5ImtcAbqVh4= +k8s.io/client-go v0.0.0-20200207150107-5be5d5753fd2/go.mod h1:ourVHU91vVd0R4YiJhW1FNlt3K+HtokZ5ImtcAbqVh4= k8s.io/component-base v0.0.0-20200207030544-616550b070ba/go.mod h1:xqOLjWJL1P+sXGSeMoLVvN0UM/adtUwVUp/mwh5H518= k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= diff --git a/pkg/endpoints/handlers/fieldmanager/fieldmanager_test.go b/pkg/endpoints/handlers/fieldmanager/fieldmanager_test.go index cf4d8b941..19bf43c3b 100644 --- a/pkg/endpoints/handlers/fieldmanager/fieldmanager_test.go +++ b/pkg/endpoints/handlers/fieldmanager/fieldmanager_test.go @@ -409,13 +409,28 @@ func BenchmarkNewObject(b *testing.B) { APIVersion: "v1", }, }) - + appliedObj := &unstructured.Unstructured{Object: map[string]interface{}{}} + if err := yaml.Unmarshal(test.obj, &appliedObj.Object); err != nil { + b.Fatalf("Failed to parse yaml object: %v", err) + } b.Run("Update", func(b *testing.B) { b.ReportAllocs() b.ResetTimer() for n := 0; n < b.N; n++ { - err := f.Update(newObj, "fieldmanager_test") - if err != nil { + if err := f.Update(newObj, "fieldmanager_test"); err != nil { + b.Fatal(err) + } + f.Reset() + } + }) + b.Run("UpdateTwice", func(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + for n := 0; n < b.N; n++ { + if err := f.Update(newObj, "fieldmanager_test"); err != nil { + b.Fatal(err) + } + if err := f.Update(newObj, "fieldmanager_test_2"); err != nil { b.Fatal(err) } f.Reset() @@ -425,12 +440,20 @@ func BenchmarkNewObject(b *testing.B) { b.ReportAllocs() b.ResetTimer() for n := 0; n < b.N; n++ { - appliedObj := &unstructured.Unstructured{Object: map[string]interface{}{}} - if err := yaml.Unmarshal(test.obj, &appliedObj.Object); err != nil { - b.Fatalf("error decoding YAML: %v", err) + if err := f.Apply(appliedObj, "fieldmanager_test", false); err != nil { + b.Fatal(err) } - err := f.Apply(appliedObj, "fieldmanager_test", false) - if err != nil { + f.Reset() + } + }) + b.Run("UpdateApply", func(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + for n := 0; n < b.N; n++ { + if err := f.Update(newObj, "fieldmanager_test"); err != nil { + b.Fatal(err) + } + if err := f.Apply(appliedObj, "fieldmanager_test", false); err != nil { b.Fatal(err) } f.Reset()