From 49d583f0ef84d72b92a8768a9293c48000411230 Mon Sep 17 00:00:00 2001 From: jennybuckley Date: Tue, 21 Jan 2020 15:03:56 -0800 Subject: [PATCH] Update Structured Merge Diff to V3 Kubernetes-commit: b33fbc84d9d6e7033c36fa3bc321b8fea28ceed6 --- go.mod | 21 +++++++++--------- go.sum | 22 +++++-------------- .../handlers/fieldmanager/capmanagers.go | 2 +- .../handlers/fieldmanager/capmanagers_test.go | 2 +- .../handlers/fieldmanager/fieldmanager.go | 2 +- .../fieldmanager/internal/conflict.go | 4 ++-- .../fieldmanager/internal/conflict_test.go | 4 ++-- .../handlers/fieldmanager/internal/fields.go | 2 +- .../fieldmanager/internal/fields_test.go | 17 +++++++------- .../fieldmanager/internal/gvkparser.go | 2 +- .../fieldmanager/internal/managedfields.go | 2 +- .../fieldmanager/internal/pathelement.go | 8 +++---- .../fieldmanager/internal/typeconverter.go | 17 +++++++------- .../internal/typeconverter_test.go | 2 +- .../fieldmanager/internal/versionconverter.go | 6 ++--- .../internal/versionconverter_test.go | 2 +- .../handlers/fieldmanager/stripmeta.go | 2 +- .../handlers/fieldmanager/structuredmerge.go | 4 ++-- 18 files changed, 56 insertions(+), 65 deletions(-) diff --git a/go.mod b/go.mod index 39cebd41a..1fcf40649 100644 --- a/go.mod +++ b/go.mod @@ -44,22 +44,23 @@ require ( gopkg.in/square/go-jose.v2 v2.2.2 gopkg.in/yaml.v2 v2.2.7 gotest.tools v2.2.0+incompatible // indirect - k8s.io/api v0.0.0-20200118233722-7aecbd569fd4 - k8s.io/apimachinery v0.0.0-20200118233534-b615468efe04 - k8s.io/client-go v0.0.0-20200118233946-a432bd9ba7da - k8s.io/component-base v0.0.0-20200118234435-5735a1699056 + k8s.io/api v0.0.0 + k8s.io/apimachinery v0.0.0 + k8s.io/client-go v0.0.0 + k8s.io/component-base v0.0.0 k8s.io/klog v1.0.0 - k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a + k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c k8s.io/utils v0.0.0-20191217005138-9e5e9d854fcc - sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06 + sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200121225636-0fb62c1057dd sigs.k8s.io/yaml v1.1.0 ) replace ( golang.org/x/sys => golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a // pinned to release-branch.go1.13 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-20200118233722-7aecbd569fd4 - k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20200118233534-b615468efe04 - k8s.io/client-go => k8s.io/client-go v0.0.0-20200118233946-a432bd9ba7da - k8s.io/component-base => k8s.io/component-base v0.0.0-20200118234435-5735a1699056 + k8s.io/api => ../api + k8s.io/apimachinery => ../apimachinery + k8s.io/apiserver => ../apiserver + k8s.io/client-go => ../client-go + k8s.io/component-base => ../component-base ) diff --git a/go.sum b/go.sum index e8f3294d0..6f40cfef0 100644 --- a/go.sum +++ b/go.sum @@ -46,7 +46,6 @@ github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfc github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea h1:n2Ltr3SrfQlf/9nOna1DoGKxLx3qTSI8Ttl6Xrqp6mw= github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -116,7 +115,6 @@ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= @@ -152,7 +150,6 @@ github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6 h1:MrUvLMLTMxbqFJ9kzlvat/rYZqZnW3u4wkLzWTaFwKs= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -186,7 +183,6 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -210,7 +206,6 @@ github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 h1:0XM1XL/OFFJjXsYXlG30spTkV/E9+gmd5GD1w2HE8xM= @@ -245,7 +240,6 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -365,22 +359,18 @@ gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.0.0-20200118233722-7aecbd569fd4/go.mod h1:iTnrvplu5Iag9UUDHF5+igjjHk++6USiI3t2qaW2bX8= -k8s.io/apimachinery v0.0.0-20200118233534-b615468efe04/go.mod h1:j05cPXobKCShrrgR2gz+Wsw3flBA+nvUoLQLo1PdydY= -k8s.io/client-go v0.0.0-20200118233946-a432bd9ba7da/go.mod h1:q/VkAWSNaZSYCIh4i2xT6kRRgshtiFdeLxxVK/4Y+9w= -k8s.io/component-base v0.0.0-20200118234435-5735a1699056/go.mod h1:FkOXiiponoAxWNDDcjOwEgl4TVmMFI/SJx6TjeWfYHU= 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= k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= -k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a h1:UcxjrRMyNx/i/y8G7kPvLyy7rfbeuf1PYyBf973pgyU= -k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= +k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c h1:/KUFqjjqAcY4Us6luF5RDNZ16KJtb49HfR3ZHB9qYXM= +k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E= k8s.io/utils v0.0.0-20191217005138-9e5e9d854fcc h1:MUttqhwRgupMiA5ps5F3d2/NLkU8EZSECTGxrQxqM54= k8s.io/utils v0.0.0-20191217005138-9e5e9d854fcc/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= -sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e h1:4Z09Hglb792X0kfOBBJUPFEyvVfQWrYT/l8h5EKA6JQ= -sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= -sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06 h1:zD2IemQ4LmOcAumeiyDWXKUI2SO0NYDe3H6QGvPOVgU= -sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06/go.mod h1:/ULNhyfzRopfcjskuui0cTITekDduZ7ycKN3oUT9R18= +sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874 h1:0KsuGbLhWdIxv5DA1OnbFz5hI/Co9kuxMfMUa5YsAHY= +sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= +sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200121225636-0fb62c1057dd h1:RtLwJkS5lCLrbjdIqQdKiwZ6LrlGuLVdIcVhkUfsaIA= +sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200121225636-0fb62c1057dd/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= diff --git a/pkg/endpoints/handlers/fieldmanager/capmanagers.go b/pkg/endpoints/handlers/fieldmanager/capmanagers.go index 70ddc5719..895642c11 100644 --- a/pkg/endpoints/handlers/fieldmanager/capmanagers.go +++ b/pkg/endpoints/handlers/fieldmanager/capmanagers.go @@ -24,7 +24,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal" - "sigs.k8s.io/structured-merge-diff/fieldpath" + "sigs.k8s.io/structured-merge-diff/v3/fieldpath" ) type capManagersManager struct { diff --git a/pkg/endpoints/handlers/fieldmanager/capmanagers_test.go b/pkg/endpoints/handlers/fieldmanager/capmanagers_test.go index b4f43dd90..6b20850d4 100644 --- a/pkg/endpoints/handlers/fieldmanager/capmanagers_test.go +++ b/pkg/endpoints/handlers/fieldmanager/capmanagers_test.go @@ -30,7 +30,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager" - "sigs.k8s.io/structured-merge-diff/fieldpath" + "sigs.k8s.io/structured-merge-diff/v3/fieldpath" ) type fakeManager struct{} diff --git a/pkg/endpoints/handlers/fieldmanager/fieldmanager.go b/pkg/endpoints/handlers/fieldmanager/fieldmanager.go index 4f11c78f4..ae3a298f0 100644 --- a/pkg/endpoints/handlers/fieldmanager/fieldmanager.go +++ b/pkg/endpoints/handlers/fieldmanager/fieldmanager.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal" openapiproto "k8s.io/kube-openapi/pkg/util/proto" - "sigs.k8s.io/structured-merge-diff/fieldpath" + "sigs.k8s.io/structured-merge-diff/v3/fieldpath" ) // DefaultMaxUpdateManagers defines the default maximum retained number of managedFields entries from updates diff --git a/pkg/endpoints/handlers/fieldmanager/internal/conflict.go b/pkg/endpoints/handlers/fieldmanager/internal/conflict.go index 51ae64c6e..2bc0d0ad8 100644 --- a/pkg/endpoints/handlers/fieldmanager/internal/conflict.go +++ b/pkg/endpoints/handlers/fieldmanager/internal/conflict.go @@ -25,8 +25,8 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "sigs.k8s.io/structured-merge-diff/fieldpath" - "sigs.k8s.io/structured-merge-diff/merge" + "sigs.k8s.io/structured-merge-diff/v3/fieldpath" + "sigs.k8s.io/structured-merge-diff/v3/merge" ) // NewConflictError returns an error including details on the requests apply conflicts diff --git a/pkg/endpoints/handlers/fieldmanager/internal/conflict_test.go b/pkg/endpoints/handlers/fieldmanager/internal/conflict_test.go index f5c5dc6b5..1270eefc7 100644 --- a/pkg/endpoints/handlers/fieldmanager/internal/conflict_test.go +++ b/pkg/endpoints/handlers/fieldmanager/internal/conflict_test.go @@ -24,8 +24,8 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal" - "sigs.k8s.io/structured-merge-diff/fieldpath" - "sigs.k8s.io/structured-merge-diff/merge" + "sigs.k8s.io/structured-merge-diff/v3/fieldpath" + "sigs.k8s.io/structured-merge-diff/v3/merge" ) // TestNewConflictError tests that NewConflictError creates the correct StatusError for a given smd Conflicts diff --git a/pkg/endpoints/handlers/fieldmanager/internal/fields.go b/pkg/endpoints/handlers/fieldmanager/internal/fields.go index e772ecb59..60117211a 100644 --- a/pkg/endpoints/handlers/fieldmanager/internal/fields.go +++ b/pkg/endpoints/handlers/fieldmanager/internal/fields.go @@ -21,7 +21,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "sigs.k8s.io/structured-merge-diff/fieldpath" + "sigs.k8s.io/structured-merge-diff/v3/fieldpath" ) // EmptyFields represents a set with no paths diff --git a/pkg/endpoints/handlers/fieldmanager/internal/fields_test.go b/pkg/endpoints/handlers/fieldmanager/internal/fields_test.go index a11822fac..01976cd26 100644 --- a/pkg/endpoints/handlers/fieldmanager/internal/fields_test.go +++ b/pkg/endpoints/handlers/fieldmanager/internal/fields_test.go @@ -23,15 +23,14 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "sigs.k8s.io/structured-merge-diff/fieldpath" - "sigs.k8s.io/structured-merge-diff/value" + "sigs.k8s.io/structured-merge-diff/v3/fieldpath" ) // TestFieldsRoundTrip tests that a fields trie can be round tripped as a path set func TestFieldsRoundTrip(t *testing.T) { tests := []metav1.FieldsV1{ { - Raw: []byte(`{"f:metadata":{"f:name":{},".":{}}}`), + Raw: []byte(`{"f:metadata":{".":{},"f:name":{}}}`), }, EmptyFields, } @@ -104,9 +103,9 @@ func BenchmarkSetToFields(b *testing.B) { fieldpath.MakePathOrDie("foo", 0), fieldpath.MakePathOrDie("foo", 1, "bar", "baz"), fieldpath.MakePathOrDie("foo", 1, "bar"), - fieldpath.MakePathOrDie("qux", fieldpath.KeyByFields("name", value.StringValue("first"))), - fieldpath.MakePathOrDie("qux", fieldpath.KeyByFields("name", value.StringValue("first")), "bar"), - fieldpath.MakePathOrDie("qux", fieldpath.KeyByFields("name", value.StringValue("second")), "bar"), + fieldpath.MakePathOrDie("qux", fieldpath.KeyByFields("name", "first")), + fieldpath.MakePathOrDie("qux", fieldpath.KeyByFields("name", "first"), "bar"), + fieldpath.MakePathOrDie("qux", fieldpath.KeyByFields("name", "second"), "bar"), ) b.ReportAllocs() @@ -127,9 +126,9 @@ func BenchmarkFieldsToSet(b *testing.B) { fieldpath.MakePathOrDie("foo", 0), fieldpath.MakePathOrDie("foo", 1, "bar", "baz"), fieldpath.MakePathOrDie("foo", 1, "bar"), - fieldpath.MakePathOrDie("qux", fieldpath.KeyByFields("name", value.StringValue("first"))), - fieldpath.MakePathOrDie("qux", fieldpath.KeyByFields("name", value.StringValue("first")), "bar"), - fieldpath.MakePathOrDie("qux", fieldpath.KeyByFields("name", value.StringValue("second")), "bar"), + fieldpath.MakePathOrDie("qux", fieldpath.KeyByFields("name", "first")), + fieldpath.MakePathOrDie("qux", fieldpath.KeyByFields("name", "first"), "bar"), + fieldpath.MakePathOrDie("qux", fieldpath.KeyByFields("name", "second"), "bar"), ) fields, err := SetToFields(*set) if err != nil { diff --git a/pkg/endpoints/handlers/fieldmanager/internal/gvkparser.go b/pkg/endpoints/handlers/fieldmanager/internal/gvkparser.go index 4d6ed52d8..f917fcd43 100644 --- a/pkg/endpoints/handlers/fieldmanager/internal/gvkparser.go +++ b/pkg/endpoints/handlers/fieldmanager/internal/gvkparser.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kube-openapi/pkg/schemaconv" "k8s.io/kube-openapi/pkg/util/proto" - "sigs.k8s.io/structured-merge-diff/typed" + "sigs.k8s.io/structured-merge-diff/v3/typed" ) // groupVersionKindExtensionKey is the key used to lookup the diff --git a/pkg/endpoints/handlers/fieldmanager/internal/managedfields.go b/pkg/endpoints/handlers/fieldmanager/internal/managedfields.go index 74e30a4e9..bf3b0a779 100644 --- a/pkg/endpoints/handlers/fieldmanager/internal/managedfields.go +++ b/pkg/endpoints/handlers/fieldmanager/internal/managedfields.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "sigs.k8s.io/structured-merge-diff/fieldpath" + "sigs.k8s.io/structured-merge-diff/v3/fieldpath" ) // ManagedInterface groups a fieldpath.ManagedFields together with the timestamps associated with each operation. diff --git a/pkg/endpoints/handlers/fieldmanager/internal/pathelement.go b/pkg/endpoints/handlers/fieldmanager/internal/pathelement.go index 087b7636a..393420a70 100644 --- a/pkg/endpoints/handlers/fieldmanager/internal/pathelement.go +++ b/pkg/endpoints/handlers/fieldmanager/internal/pathelement.go @@ -23,8 +23,8 @@ import ( "strconv" "strings" - "sigs.k8s.io/structured-merge-diff/fieldpath" - "sigs.k8s.io/structured-merge-diff/value" + "sigs.k8s.io/structured-merge-diff/v3/fieldpath" + "sigs.k8s.io/structured-merge-diff/v3/value" ) const ( @@ -110,7 +110,7 @@ func PathElementString(pe fieldpath.PathElement) (string, error) { case pe.Key != nil: kv := map[string]json.RawMessage{} for _, k := range *pe.Key { - b, err := k.Value.ToJSON() + b, err := value.ToJSON(k.Value) if err != nil { return "", err } @@ -127,7 +127,7 @@ func PathElementString(pe fieldpath.PathElement) (string, error) { } return Key + ":" + string(b), nil case pe.Value != nil: - b, err := pe.Value.ToJSON() + b, err := value.ToJSON(*pe.Value) if err != nil { return "", err } diff --git a/pkg/endpoints/handlers/fieldmanager/internal/typeconverter.go b/pkg/endpoints/handlers/fieldmanager/internal/typeconverter.go index 6d10d31d0..7a8e6deb5 100644 --- a/pkg/endpoints/handlers/fieldmanager/internal/typeconverter.go +++ b/pkg/endpoints/handlers/fieldmanager/internal/typeconverter.go @@ -23,8 +23,8 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kube-openapi/pkg/util/proto" - "sigs.k8s.io/structured-merge-diff/typed" - "sigs.k8s.io/structured-merge-diff/value" + "sigs.k8s.io/structured-merge-diff/v3/typed" + "sigs.k8s.io/structured-merge-diff/v3/value" ) // TypeConverter allows you to convert from runtime.Object to @@ -96,13 +96,14 @@ func (c *typeConverter) TypedToObject(value *typed.TypedValue) (runtime.Object, return valueToObject(value.AsValue()) } -func valueToObject(value *value.Value) (runtime.Object, error) { - vu := value.ToUnstructured(false) - u, ok := vu.(map[string]interface{}) - if !ok { - return nil, fmt.Errorf("failed to convert typed to unstructured: want map, got %T", vu) +func valueToObject(val value.Value) (runtime.Object, error) { + vu := val.Unstructured() + switch o := vu.(type) { + case map[string]interface{}: + return &unstructured.Unstructured{Object: o}, nil + default: + return nil, fmt.Errorf("failed to convert value to unstructured for type %T", vu) } - return &unstructured.Unstructured{Object: u}, nil } type noCorrespondingTypeErr struct { diff --git a/pkg/endpoints/handlers/fieldmanager/internal/typeconverter_test.go b/pkg/endpoints/handlers/fieldmanager/internal/typeconverter_test.go index 0b7afd361..6d70b480b 100644 --- a/pkg/endpoints/handlers/fieldmanager/internal/typeconverter_test.go +++ b/pkg/endpoints/handlers/fieldmanager/internal/typeconverter_test.go @@ -22,7 +22,7 @@ import ( "reflect" "testing" - "sigs.k8s.io/structured-merge-diff/typed" + "sigs.k8s.io/structured-merge-diff/v3/typed" "sigs.k8s.io/yaml" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" diff --git a/pkg/endpoints/handlers/fieldmanager/internal/versionconverter.go b/pkg/endpoints/handlers/fieldmanager/internal/versionconverter.go index 340c8985a..15628b027 100644 --- a/pkg/endpoints/handlers/fieldmanager/internal/versionconverter.go +++ b/pkg/endpoints/handlers/fieldmanager/internal/versionconverter.go @@ -19,9 +19,9 @@ package internal import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/structured-merge-diff/fieldpath" - "sigs.k8s.io/structured-merge-diff/merge" - "sigs.k8s.io/structured-merge-diff/typed" + "sigs.k8s.io/structured-merge-diff/v3/fieldpath" + "sigs.k8s.io/structured-merge-diff/v3/merge" + "sigs.k8s.io/structured-merge-diff/v3/typed" ) // versionConverter is an implementation of diff --git a/pkg/endpoints/handlers/fieldmanager/internal/versionconverter_test.go b/pkg/endpoints/handlers/fieldmanager/internal/versionconverter_test.go index 214b416d8..d873f0e10 100644 --- a/pkg/endpoints/handlers/fieldmanager/internal/versionconverter_test.go +++ b/pkg/endpoints/handlers/fieldmanager/internal/versionconverter_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal" "k8s.io/kube-openapi/pkg/util/proto" - "sigs.k8s.io/structured-merge-diff/fieldpath" + "sigs.k8s.io/structured-merge-diff/v3/fieldpath" ) // TestVersionConverter tests the version converter diff --git a/pkg/endpoints/handlers/fieldmanager/stripmeta.go b/pkg/endpoints/handlers/fieldmanager/stripmeta.go index cf949e5d7..fc8ee9b58 100644 --- a/pkg/endpoints/handlers/fieldmanager/stripmeta.go +++ b/pkg/endpoints/handlers/fieldmanager/stripmeta.go @@ -20,7 +20,7 @@ import ( "fmt" "k8s.io/apimachinery/pkg/runtime" - "sigs.k8s.io/structured-merge-diff/fieldpath" + "sigs.k8s.io/structured-merge-diff/v3/fieldpath" ) type stripMetaManager struct { diff --git a/pkg/endpoints/handlers/fieldmanager/structuredmerge.go b/pkg/endpoints/handlers/fieldmanager/structuredmerge.go index 067e286a2..0de4cdf16 100644 --- a/pkg/endpoints/handlers/fieldmanager/structuredmerge.go +++ b/pkg/endpoints/handlers/fieldmanager/structuredmerge.go @@ -28,8 +28,8 @@ import ( "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal" "k8s.io/klog" openapiproto "k8s.io/kube-openapi/pkg/util/proto" - "sigs.k8s.io/structured-merge-diff/fieldpath" - "sigs.k8s.io/structured-merge-diff/merge" + "sigs.k8s.io/structured-merge-diff/v3/fieldpath" + "sigs.k8s.io/structured-merge-diff/v3/merge" ) type structuredMergeManager struct {