From 481a4556240e0f85710a6dc46b43e44d8c1b90b8 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Fri, 7 Aug 2026 17:11:59 +0200 Subject: [PATCH 1/2] chore(deps): replace deprecated gopkg.in/yaml.v3 for go.yaml.in/yaml/v3 The gopkg.in/yaml.v3 module has been deprecated and is now archived. Maintenance is continued in the go.yaml.in/yaml/v3 module. Update to the latest version of go.yaml.in/yaml/v3, which now has zero dependencies. The old gopkg.in/yaml.v3 is still present as an indirect dependency (through github.com/stretchr/testify), but only used in test-code, and this should eventually go away. Signed-off-by: Sebastiaan van Stijn --- cmd/cdi/cmd/format.go | 2 +- cmd/cdi/go.mod | 3 ++- cmd/cdi/go.sum | 2 ++ cmd/validate/go.sum | 2 ++ go.mod | 3 ++- go.sum | 2 ++ pkg/cdi/spec.go | 2 +- schema/go.mod | 1 + schema/go.sum | 2 ++ 9 files changed, 15 insertions(+), 4 deletions(-) diff --git a/cmd/cdi/cmd/format.go b/cmd/cdi/cmd/format.go index 7808b1a9..3e8045d6 100644 --- a/cmd/cdi/cmd/format.go +++ b/cmd/cdi/cmd/format.go @@ -22,7 +22,7 @@ import ( "path/filepath" "strings" - orderedyaml "gopkg.in/yaml.v3" + orderedyaml "go.yaml.in/yaml/v3" ) func chooseFormat(format string, path string) string { diff --git a/cmd/cdi/go.mod b/cmd/cdi/go.mod index cc5a317e..29bc2146 100644 --- a/cmd/cdi/go.mod +++ b/cmd/cdi/go.mod @@ -7,7 +7,7 @@ require ( github.com/opencontainers/runtime-spec v1.3.0 github.com/spf13/cobra v1.6.0 github.com/stretchr/testify v1.7.0 - gopkg.in/yaml.v3 v3.0.1 + go.yaml.in/yaml/v3 v3.0.5 sigs.k8s.io/yaml v1.4.0 tags.cncf.io/container-device-interface v1.1.0 tags.cncf.io/container-device-interface/schema v0.0.0 @@ -24,6 +24,7 @@ require ( github.com/xeipuuv/gojsonschema v1.2.0 // indirect golang.org/x/mod v0.19.0 // indirect golang.org/x/sys v0.19.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) replace ( diff --git a/cmd/cdi/go.sum b/cmd/cdi/go.sum index 9c2ce7cf..cee52386 100644 --- a/cmd/cdi/go.sum +++ b/cmd/cdi/go.sum @@ -27,6 +27,8 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= +go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/cmd/validate/go.sum b/cmd/validate/go.sum index 99998750..9a171a8d 100644 --- a/cmd/validate/go.sum +++ b/cmd/validate/go.sum @@ -19,6 +19,8 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= +go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= diff --git a/go.mod b/go.mod index 8e7cc556..ece359c0 100644 --- a/go.mod +++ b/go.mod @@ -6,8 +6,8 @@ require ( github.com/fsnotify/fsnotify v1.5.1 github.com/opencontainers/runtime-spec v1.3.0 github.com/stretchr/testify v1.7.0 + go.yaml.in/yaml/v3 v3.0.5 golang.org/x/sys v0.19.0 - gopkg.in/yaml.v3 v3.0.1 sigs.k8s.io/yaml v1.4.0 tags.cncf.io/container-device-interface/specs-go v1.1.0 ) @@ -16,6 +16,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect golang.org/x/mod v0.19.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) replace tags.cncf.io/container-device-interface/specs-go => ./specs-go diff --git a/go.sum b/go.sum index ce65d94d..d6c06e08 100644 --- a/go.sum +++ b/go.sum @@ -12,6 +12,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= +go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/pkg/cdi/spec.go b/pkg/cdi/spec.go index fdaa2684..862eb8b4 100644 --- a/pkg/cdi/spec.go +++ b/pkg/cdi/spec.go @@ -25,7 +25,7 @@ import ( "sync" oci "github.com/opencontainers/runtime-spec/specs-go" - orderedyaml "gopkg.in/yaml.v3" + orderedyaml "go.yaml.in/yaml/v3" "sigs.k8s.io/yaml" "tags.cncf.io/container-device-interface/internal/validation" diff --git a/schema/go.mod b/schema/go.mod index 68041f8b..0ecaaa8a 100644 --- a/schema/go.mod +++ b/schema/go.mod @@ -17,6 +17,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect + go.yaml.in/yaml/v3 v3.0.5 // indirect golang.org/x/mod v0.19.0 // indirect golang.org/x/sys v0.19.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/schema/go.sum b/schema/go.sum index 8c58ee6f..2f854136 100644 --- a/schema/go.sum +++ b/schema/go.sum @@ -19,6 +19,8 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= +go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From 859287cb0dd42c8f1da16873449d1df84580ed90 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Sun, 9 Aug 2026 22:54:24 +0200 Subject: [PATCH 2/2] remove "sigs.k8s.io/yaml" dependency Use go.yaml.in/yaml/v3 for both marshaling and unmarshaling CDI specs, and drop the sigs.k8s.io/yaml dependency. The Kubernetes YAML implementation converts YAML to JSON before decoding, which is useful for Kubernetes APIs where JSON semantics are part of the API contract. CDI does not require that intermediate representation, and its spec types already provide YAML tags matching their JSON representation. Use Decoder.KnownFields(true) to retain strict rejection of unknown fields. yaml.v3 also rejects duplicate mapping keys, preserving the strictness relied on from sigs.k8s.io/yaml.UnmarshalStrict. Keep the existing behavior of decoding only the first YAML document rather than introducing additional validation for trailing documents. Signed-off-by: Sebastiaan van Stijn --- cmd/cdi/cmd/inject.go | 2 +- cmd/cdi/go.mod | 1 - cmd/cdi/go.sum | 4 ---- cmd/validate/go.mod | 2 +- cmd/validate/go.sum | 6 ------ go.mod | 1 - go.sum | 4 ---- pkg/cdi/cache_test.go | 2 +- pkg/cdi/spec.go | 12 +++++++----- pkg/cdi/spec_test.go | 2 +- schema/go.mod | 3 +-- schema/go.sum | 4 ---- schema/schema.go | 2 +- 13 files changed, 13 insertions(+), 32 deletions(-) diff --git a/cmd/cdi/cmd/inject.go b/cmd/cdi/cmd/inject.go index b630ec2a..8db030c6 100644 --- a/cmd/cdi/cmd/inject.go +++ b/cmd/cdi/cmd/inject.go @@ -22,7 +22,7 @@ import ( "os" oci "github.com/opencontainers/runtime-spec/specs-go" - "sigs.k8s.io/yaml" + "go.yaml.in/yaml/v3" "github.com/spf13/cobra" ) diff --git a/cmd/cdi/go.mod b/cmd/cdi/go.mod index 29bc2146..42db0198 100644 --- a/cmd/cdi/go.mod +++ b/cmd/cdi/go.mod @@ -8,7 +8,6 @@ require ( github.com/spf13/cobra v1.6.0 github.com/stretchr/testify v1.7.0 go.yaml.in/yaml/v3 v3.0.5 - sigs.k8s.io/yaml v1.4.0 tags.cncf.io/container-device-interface v1.1.0 tags.cncf.io/container-device-interface/schema v0.0.0 tags.cncf.io/container-device-interface/specs-go v1.1.0 diff --git a/cmd/cdi/go.sum b/cmd/cdi/go.sum index cee52386..eac3b84f 100644 --- a/cmd/cdi/go.sum +++ b/cmd/cdi/go.sum @@ -4,8 +4,6 @@ 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= github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/opencontainers/runtime-spec v1.3.0 h1:YZupQUdctfhpZy3TM39nN9Ika5CBWT5diQ8ibYCRkxg= @@ -39,5 +37,3 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/cmd/validate/go.mod b/cmd/validate/go.mod index 8bd5ea33..28f3cb71 100644 --- a/cmd/validate/go.mod +++ b/cmd/validate/go.mod @@ -8,8 +8,8 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect + go.yaml.in/yaml/v3 v3.0.5 // indirect golang.org/x/mod v0.19.0 // indirect - sigs.k8s.io/yaml v1.4.0 // indirect tags.cncf.io/container-device-interface v1.1.0 // indirect tags.cncf.io/container-device-interface/specs-go v1.1.0 // indirect ) diff --git a/cmd/validate/go.sum b/cmd/validate/go.sum index 9a171a8d..ac808b42 100644 --- a/cmd/validate/go.sum +++ b/cmd/validate/go.sum @@ -3,8 +3,6 @@ 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= github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/opencontainers/runtime-spec v1.3.0 h1:YZupQUdctfhpZy3TM39nN9Ika5CBWT5diQ8ibYCRkxg= github.com/opencontainers/runtime-spec v1.3.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -25,9 +23,5 @@ golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/go.mod b/go.mod index ece359c0..ff2a84b4 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,6 @@ require ( github.com/stretchr/testify v1.7.0 go.yaml.in/yaml/v3 v3.0.5 golang.org/x/sys v0.19.0 - sigs.k8s.io/yaml v1.4.0 tags.cncf.io/container-device-interface/specs-go v1.1.0 ) diff --git a/go.sum b/go.sum index d6c06e08..5caf9d63 100644 --- a/go.sum +++ b/go.sum @@ -3,8 +3,6 @@ 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= github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/opencontainers/runtime-spec v1.3.0 h1:YZupQUdctfhpZy3TM39nN9Ika5CBWT5diQ8ibYCRkxg= github.com/opencontainers/runtime-spec v1.3.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -24,5 +22,3 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/pkg/cdi/cache_test.go b/pkg/cdi/cache_test.go index 951848ad..e38b77d8 100644 --- a/pkg/cdi/cache_test.go +++ b/pkg/cdi/cache_test.go @@ -29,7 +29,7 @@ import ( oci "github.com/opencontainers/runtime-spec/specs-go" "github.com/stretchr/testify/require" - "sigs.k8s.io/yaml" + "go.yaml.in/yaml/v3" cdi "tags.cncf.io/container-device-interface/specs-go" ) diff --git a/pkg/cdi/spec.go b/pkg/cdi/spec.go index 862eb8b4..3156835e 100644 --- a/pkg/cdi/spec.go +++ b/pkg/cdi/spec.go @@ -17,6 +17,7 @@ package cdi import ( + "bytes" "encoding/json" "fmt" "os" @@ -25,8 +26,7 @@ import ( "sync" oci "github.com/opencontainers/runtime-spec/specs-go" - orderedyaml "go.yaml.in/yaml/v3" - "sigs.k8s.io/yaml" + "go.yaml.in/yaml/v3" "tags.cncf.io/container-device-interface/internal/validation" "tags.cncf.io/container-device-interface/pkg/parser" @@ -136,7 +136,7 @@ func (s *Spec) write(overwrite bool) error { } if filepath.Ext(s.path) == ".yaml" { - data, err = orderedyaml.Marshal(s.Spec) + data, err = yaml.Marshal(s.Spec) data = append([]byte("---\n"), data...) } else { data, err = json.Marshal(s.Spec) @@ -250,9 +250,11 @@ func (s *Spec) validate() (map[string]*Device, error) { // ParseSpec parses CDI Spec data into a raw CDI Spec. func ParseSpec(data []byte) (*cdi.Spec, error) { + dec := yaml.NewDecoder(bytes.NewReader(data)) + dec.KnownFields(true) + var raw *cdi.Spec - err := yaml.UnmarshalStrict(data, &raw) - if err != nil { + if err := dec.Decode(&raw); err != nil { return nil, fmt.Errorf("failed to unmarshal CDI Spec: %w", err) } return raw, nil diff --git a/pkg/cdi/spec_test.go b/pkg/cdi/spec_test.go index a1a05ed8..10c51c40 100644 --- a/pkg/cdi/spec_test.go +++ b/pkg/cdi/spec_test.go @@ -23,7 +23,7 @@ import ( "strings" "testing" - "sigs.k8s.io/yaml" + "go.yaml.in/yaml/v3" "github.com/stretchr/testify/require" "tags.cncf.io/container-device-interface/pkg/parser" diff --git a/schema/go.mod b/schema/go.mod index 0ecaaa8a..37755e39 100644 --- a/schema/go.mod +++ b/schema/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/stretchr/testify v1.7.0 github.com/xeipuuv/gojsonschema v1.2.0 - sigs.k8s.io/yaml v1.4.0 + go.yaml.in/yaml/v3 v3.0.5 tags.cncf.io/container-device-interface v1.1.0 tags.cncf.io/container-device-interface/specs-go v1.1.0 ) @@ -17,7 +17,6 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect - go.yaml.in/yaml/v3 v3.0.5 // indirect golang.org/x/mod v0.19.0 // indirect golang.org/x/sys v0.19.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/schema/go.sum b/schema/go.sum index 2f854136..84117c2d 100644 --- a/schema/go.sum +++ b/schema/go.sum @@ -3,8 +3,6 @@ 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= github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/opencontainers/runtime-spec v1.3.0 h1:YZupQUdctfhpZy3TM39nN9Ika5CBWT5diQ8ibYCRkxg= github.com/opencontainers/runtime-spec v1.3.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -31,5 +29,3 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/schema/schema.go b/schema/schema.go index a6b00305..9638fd1c 100644 --- a/schema/schema.go +++ b/schema/schema.go @@ -28,7 +28,7 @@ import ( "path/filepath" "strings" - "sigs.k8s.io/yaml" + "go.yaml.in/yaml/v3" schema "github.com/xeipuuv/gojsonschema" "tags.cncf.io/container-device-interface/internal/validation"