fix(deps): Update k8s.io/apimachinery to v0.36.1 (main)#21708
Merged
Conversation
Contributor
Author
ℹ️ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix prepared fixes for both issues found in the latest run.
- ✅ Fixed: Kubernetes module family version skew may cause incompatibilities
- Aligned the root Kubernetes module set on v0.35.4 so apimachinery, client-go, and api resolve to the same patch family.
- ✅ Fixed: Protobuf pinned to unstable pre-release devel pseudo-version
- Replaced the protobuf devel pseudo-version with the stable v1.36.11 release and regenerated vendored dependencies.
Or push these changes by commenting:
@cursor push 24c11de3ab
Preview (24c11de3ab)
diff --git a/go.mod b/go.mod
--- a/go.mod
+++ b/go.mod
@@ -143,9 +143,9 @@
go.yaml.in/yaml/v3 v3.0.4
go4.org/netipx v0.0.0-20230125063823-8449b0a6169f
golang.org/x/text v0.36.0
- google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af
+ google.golang.org/protobuf v1.36.11
gotest.tools v2.2.0+incompatible
- k8s.io/apimachinery v0.36.0
+ k8s.io/apimachinery v0.35.4
k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2
zombiezen.com/go/sqlite v1.4.2
)
@@ -440,7 +440,7 @@
google.golang.org/genproto/googleapis/api v0.0.0-20260401024825-9d38bb4040a9 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d
gopkg.in/inf.v0 v0.9.1 // indirect
- k8s.io/client-go v0.35.3 // indirect
+ k8s.io/client-go v0.35.4 // indirect
k8s.io/kube-openapi v0.0.0-20260317180543-43fb72c5454a // indirect
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
sigs.k8s.io/yaml v1.6.0 // indirect
diff --git a/go.sum b/go.sum
--- a/go.sum
+++ b/go.sum
@@ -773,8 +773,8 @@
github.com/oklog/ulid/v2 v2.1.1/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ=
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
-github.com/onsi/gomega v1.37.0 h1:CdEG8g0S133B4OswTDC/5XPSzE1OeP29QOioj2PID2Y=
-github.com/onsi/gomega v1.37.0/go.mod h1:8D9+Txp43QWKhM24yyOBEdpkzN8FvJyAwecBgsU4KU0=
+github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A=
+github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k=
github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.148.0 h1:CiTjQE/Hh5xK2t56ogrDK4nl0+tJPNmASCs4zEYZ/xU=
github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.148.0/go.mod h1:WUFkzTiOpt7EYyL67gv1GOf3RD8qKWGtin3lY9LYzW4=
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.148.0 h1:1TLg6YrS3Au6F7xw3ws2Njbwj13IMqPplvGFi+18fWs=
@@ -1290,8 +1290,8 @@
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af h1:+5/Sw3GsDNlEmu7TfklWKPdQ0Ykja5VEmq2i817+jbI=
-google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
+google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
+google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
@@ -1320,12 +1320,12 @@
gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q=
gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA=
-k8s.io/api v0.35.3 h1:pA2fiBc6+N9PDf7SAiluKGEBuScsTzd2uYBkA5RzNWQ=
-k8s.io/api v0.35.3/go.mod h1:9Y9tkBcFwKNq2sxwZTQh1Njh9qHl81D0As56tu42GA4=
-k8s.io/apimachinery v0.36.0 h1:jZyPzhd5Z+3h9vJLt0z9XdzW9VzNzWAUw+P1xZ9PXtQ=
-k8s.io/apimachinery v0.36.0/go.mod h1:FklypaRJt6n5wUIwWXIP6GJlIpUizTgfo1T/As+Tyxc=
-k8s.io/client-go v0.35.3 h1:s1lZbpN4uI6IxeTM2cpdtrwHcSOBML1ODNTCCfsP1pg=
-k8s.io/client-go v0.35.3/go.mod h1:RzoXkc0mzpWIDvBrRnD+VlfXP+lRzqQjCmKtiwZ8Q9c=
+k8s.io/api v0.35.4 h1:P7nFYKl5vo9AGUp1Z+Pmd3p2tA7bX2wbFWCvDeRv988=
+k8s.io/api v0.35.4/go.mod h1:yl4lqySWOgYJJf9RERXKUwE9g2y+CkuwG+xmcOK8wXU=
+k8s.io/apimachinery v0.35.4 h1:xtdom9RG7e+yDp71uoXoJDWEE2eOiHgeO4GdBzwWpds=
+k8s.io/apimachinery v0.35.4/go.mod h1:NNi1taPOpep0jOj+oRha3mBJPqvi0hGdaV8TCqGQ+cc=
+k8s.io/client-go v0.35.4 h1:DN6fyaGuzK64UvnKO5fOA6ymSjvfGAnCAHAR0C66kD8=
+k8s.io/client-go v0.35.4/go.mod h1:2Pg9WpsS4NeOpoYTfHHfMxBG8zFMSAUi4O/qoiJC3nY=
k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc=
k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0=
k8s.io/kube-openapi v0.0.0-20260317180543-43fb72c5454a h1:xCeOEAOoGYl2jnJoHkC3hkbPJgdATINPMAxaynU2Ovg=
diff --git a/vendor/google.golang.org/protobuf/encoding/protodelim/protodelim.go b/vendor/google.golang.org/protobuf/encoding/protodelim/protodelim.go
--- a/vendor/google.golang.org/protobuf/encoding/protodelim/protodelim.go
+++ b/vendor/google.golang.org/protobuf/encoding/protodelim/protodelim.go
@@ -10,7 +10,6 @@
"encoding/binary"
"fmt"
"io"
- "math"
"google.golang.org/protobuf/encoding/protowire"
"google.golang.org/protobuf/internal/errors"
@@ -118,13 +117,7 @@
if maxSize == 0 {
maxSize = defaultMaxSize
}
- if maxSize == -1 {
- // No limit specified: Just check that size fits into an integer,
- // otherwise the make([]byte, size) call below will panic.
- if size > math.MaxInt {
- return errors.Wrap(&SizeTooLargeError{Size: size, MaxSize: math.MaxInt}, "")
- }
- } else if size > uint64(maxSize) {
+ if maxSize != -1 && size > uint64(maxSize) {
return errors.Wrap(&SizeTooLargeError{Size: size, MaxSize: uint64(maxSize)}, "")
}
diff --git a/vendor/google.golang.org/protobuf/encoding/protojson/decode.go b/vendor/google.golang.org/protobuf/encoding/protojson/decode.go
--- a/vendor/google.golang.org/protobuf/encoding/protojson/decode.go
+++ b/vendor/google.golang.org/protobuf/encoding/protojson/decode.go
@@ -365,10 +365,6 @@
if err != nil {
return protoreflect.Value{}, false
}
- // Ensure there is no non-number content in this string.
- if next, err := dec.Read(); err != nil || next.Kind() != json.EOF {
- return protoreflect.Value{}, false
- }
return getInt(tok, bitSize)
}
return protoreflect.Value{}, false
@@ -401,10 +397,6 @@
if err != nil {
return protoreflect.Value{}, false
}
- // Ensure there is no non-number content in this string.
- if next, err := dec.Read(); err != nil || next.Kind() != json.EOF {
- return protoreflect.Value{}, false
- }
return getUint(tok, bitSize)
}
return protoreflect.Value{}, false
@@ -455,10 +447,6 @@
if err != nil {
return protoreflect.Value{}, false
}
- // Ensure there is no non-number content in this string.
- if next, err := dec.Read(); err != nil || next.Kind() != json.EOF {
- return protoreflect.Value{}, false
- }
return getFloat(tok, bitSize)
}
return protoreflect.Value{}, false
diff --git a/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go b/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go
--- a/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go
+++ b/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go
@@ -52,10 +52,7 @@
case genid.FieldMask_message_name:
return encoder.marshalFieldMask
case genid.Empty_message_name:
- // The spec explicitly specifies that the Empty message
- // is not considered to have any special JSON mapping:
- // https://protobuf.dev/programming-guides/json/#any
- return nil
+ return encoder.marshalEmpty
}
}
return nil
diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/decode.go b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go
--- a/vendor/google.golang.org/protobuf/encoding/prototext/decode.go
+++ b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go
@@ -8,7 +8,6 @@
"fmt"
"unicode/utf8"
- "google.golang.org/protobuf/encoding/protowire"
"google.golang.org/protobuf/internal/encoding/messageset"
"google.golang.org/protobuf/internal/encoding/text"
"google.golang.org/protobuf/internal/errors"
@@ -50,19 +49,12 @@
protoregistry.MessageTypeResolver
protoregistry.ExtensionTypeResolver
}
-
- // RecursionLimit limits how deeply messages may be nested.
- // If zero, a default limit is applied.
- RecursionLimit int
}
// Unmarshal reads the given []byte and populates the given [proto.Message]
// using options in the UnmarshalOptions object.
// The provided message must be mutable (e.g., a non-nil pointer to a message).
func (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error {
- if o.RecursionLimit == 0 {
- o.RecursionLimit = protowire.DefaultRecursionLimit
- }
return o.unmarshal(b, m)
}
@@ -110,14 +102,8 @@
return errors.New(head+f, x...)
}
-var errRecursionDepth = errors.New("exceeded maximum recursion depth")
-
// unmarshalMessage unmarshals into the given protoreflect.Message.
func (d decoder) unmarshalMessage(m protoreflect.Message, checkDelims bool) error {
- if d.opts.RecursionLimit--; d.opts.RecursionLimit < 0 {
- return errRecursionDepth
- }
-
messageDesc := m.Descriptor()
if !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) {
return errors.New("no support for proto1 MessageSets")
@@ -451,10 +437,6 @@
// unmarshalMap unmarshals into given protoreflect.Map. A map value is a
// textproto message containing {key: <kvalue>, value: <mvalue>}.
func (d decoder) unmarshalMap(fd protoreflect.FieldDescriptor, mmap protoreflect.Map) error {
- if d.opts.RecursionLimit--; d.opts.RecursionLimit < 0 {
- return errRecursionDepth
- }
-
// Determine ahead whether map entry is a scalar type or a message type in
// order to call the appropriate unmarshalMapValue func inside
// unmarshalMapEntry.
diff --git a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go
--- a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go
+++ b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go
@@ -83,13 +83,12 @@
case protoreflect.FileImports:
for i := 0; i < vs.Len(); i++ {
var rs records
- fi := vs.Get(i)
- rv := reflect.ValueOf(fi)
- rs.Append(rv, []attrAndName{
- {fi.Path(), "Path"},
- {fi.Package(), "Package"},
- {fi.IsPublic, "IsPublic"},
- {fi.IsWeak, "IsWeak"},
+ rv := reflect.ValueOf(vs.Get(i))
+ rs.Append(rv, []methodAndName{
+ {rv.MethodByName("Path"), "Path"},
+ {rv.MethodByName("Package"), "Package"},
+ {rv.MethodByName("IsPublic"), "IsPublic"},
+ {rv.MethodByName("IsWeak"), "IsWeak"},
}...)
ss = append(ss, "{"+rs.Join()+"}")
}
@@ -105,9 +104,9 @@
}
}
-type attrAndName struct {
- attr any
- name string
+type methodAndName struct {
+ method reflect.Value
+ name string
}
func FormatDesc(s fmt.State, r rune, t protoreflect.Descriptor) {
@@ -127,58 +126,58 @@
start = rt.Name() + "{"
}
- fd, isFile := t.(protoreflect.FileDescriptor)
+ _, isFile := t.(protoreflect.FileDescriptor)
rs := records{
allowMulti: allowMulti,
record: record,
}
if t.IsPlaceholder() {
if isFile {
- rs.Append(rv, []attrAndName{
- {fd.Path(), "Path"},
- {fd.Package(), "Package"},
- {fd.IsPlaceholder(), "IsPlaceholder"},
+ rs.Append(rv, []methodAndName{
+ {rv.MethodByName("Path"), "Path"},
+ {rv.MethodByName("Package"), "Package"},
+ {rv.MethodByName("IsPlaceholder"), "IsPlaceholder"},
}...)
} else {
- rs.Append(rv, []attrAndName{
- {t.FullName(), "FullName"},
- {t.IsPlaceholder(), "IsPlaceholder"},
+ rs.Append(rv, []methodAndName{
+ {rv.MethodByName("FullName"), "FullName"},
+ {rv.MethodByName("IsPlaceholder"), "IsPlaceholder"},
}...)
}
} else {
switch {
case isFile:
- rs.Append(rv, attrAndName{fd.Syntax(), "Syntax"})
+ rs.Append(rv, methodAndName{rv.MethodByName("Syntax"), "Syntax"})
case isRoot:
- rs.Append(rv, []attrAndName{
- {t.Syntax(), "Syntax"},
- {t.FullName(), "FullName"},
+ rs.Append(rv, []methodAndName{
+ {rv.MethodByName("Syntax"), "Syntax"},
+ {rv.MethodByName("FullName"), "FullName"},
}...)
default:
- rs.Append(rv, attrAndName{t.Name(), "Name"})
+ rs.Append(rv, methodAndName{rv.MethodByName("Name"), "Name"})
}
switch t := t.(type) {
case protoreflect.FieldDescriptor:
- accessors := []attrAndName{
- {t.Number(), "Number"},
- {t.Cardinality(), "Cardinality"},
- {t.Kind(), "Kind"},
- {t.HasJSONName(), "HasJSONName"},
- {t.JSONName(), "JSONName"},
- {t.HasPresence(), "HasPresence"},
- {t.IsExtension(), "IsExtension"},
- {t.IsPacked(), "IsPacked"},
- {t.IsWeak(), "IsWeak"},
- {t.IsList(), "IsList"},
- {t.IsMap(), "IsMap"},
- {t.MapKey(), "MapKey"},
- {t.MapValue(), "MapValue"},
- {t.HasDefault(), "HasDefault"},
- {t.Default(), "Default"},
- {t.ContainingOneof(), "ContainingOneof"},
- {t.ContainingMessage(), "ContainingMessage"},
- {t.Message(), "Message"},
- {t.Enum(), "Enum"},
+ accessors := []methodAndName{
+ {rv.MethodByName("Number"), "Number"},
+ {rv.MethodByName("Cardinality"), "Cardinality"},
+ {rv.MethodByName("Kind"), "Kind"},
+ {rv.MethodByName("HasJSONName"), "HasJSONName"},
+ {rv.MethodByName("JSONName"), "JSONName"},
+ {rv.MethodByName("HasPresence"), "HasPresence"},
+ {rv.MethodByName("IsExtension"), "IsExtension"},
+ {rv.MethodByName("IsPacked"), "IsPacked"},
+ {rv.MethodByName("IsWeak"), "IsWeak"},
+ {rv.MethodByName("IsList"), "IsList"},
+ {rv.MethodByName("IsMap"), "IsMap"},
+ {rv.MethodByName("MapKey"), "MapKey"},
+ {rv.MethodByName("MapValue"), "MapValue"},
+ {rv.MethodByName("HasDefault"), "HasDefault"},
+ {rv.MethodByName("Default"), "Default"},
+ {rv.MethodByName("ContainingOneof"), "ContainingOneof"},
+ {rv.MethodByName("ContainingMessage"), "ContainingMessage"},
+ {rv.MethodByName("Message"), "Message"},
+ {rv.MethodByName("Enum"), "Enum"},
}
for _, s := range accessors {
switch s.name {
@@ -224,54 +223,58 @@
}
case protoreflect.FileDescriptor:
- rs.Append(rv, []attrAndName{
- {t.Path(), "Path"},
- {t.Package(), "Package"},
- {t.Imports(), "Imports"},
- {t.Messages(), "Messages"},
- {t.Enums(), "Enums"},
- {t.Extensions(), "Extensions"},
- {t.Services(), "Services"},
+ rs.Append(rv, []methodAndName{
+ {rv.MethodByName("Path"), "Path"},
+ {rv.MethodByName("Package"), "Package"},
+ {rv.MethodByName("Imports"), "Imports"},
+ {rv.MethodByName("Messages"), "Messages"},
+ {rv.MethodByName("Enums"), "Enums"},
+ {rv.MethodByName("Extensions"), "Extensions"},
+ {rv.MethodByName("Services"), "Services"},
}...)
case protoreflect.MessageDescriptor:
- rs.Append(rv, []attrAndName{
- {t.IsMapEntry(), "IsMapEntry"},
- {t.Fields(), "Fields"},
- {t.Oneofs(), "Oneofs"},
- {t.ReservedNames(), "ReservedNames"},
- {t.ReservedRanges(), "ReservedRanges"},
- {t.RequiredNumbers(), "RequiredNumbers"},
- {t.ExtensionRanges(), "ExtensionRanges"},
- {t.Messages(), "Messages"},
- {t.Enums(), "Enums"},
- {t.Extensions(), "Extensions"},
+ rs.Append(rv, []methodAndName{
+ {rv.MethodByName("IsMapEntry"), "IsMapEntry"},
+ {rv.MethodByName("Fields"), "Fields"},
+ {rv.MethodByName("Oneofs"), "Oneofs"},
+ {rv.MethodByName("ReservedNames"), "ReservedNames"},
+ {rv.MethodByName("ReservedRanges"), "ReservedRanges"},
+ {rv.MethodByName("RequiredNumbers"), "RequiredNumbers"},
+ {rv.MethodByName("ExtensionRanges"), "ExtensionRanges"},
+ {rv.MethodByName("Messages"), "Messages"},
+ {rv.MethodByName("Enums"), "Enums"},
+ {rv.MethodByName("Extensions"), "Extensions"},
}...)
case protoreflect.EnumDescriptor:
- rs.Append(rv, []attrAndName{
- {t.Values(), "Values"},
- {t.ReservedNames(), "ReservedNames"},
- {t.ReservedRanges(), "ReservedRanges"},
- {t.IsClosed(), "IsClosed"},
+ rs.Append(rv, []methodAndName{
+ {rv.MethodByName("Values"), "Values"},
+ {rv.MethodByName("ReservedNames"), "ReservedNames"},
+ {rv.MethodByName("ReservedRanges"), "ReservedRanges"},
+ {rv.MethodByName("IsClosed"), "IsClosed"},
}...)
case protoreflect.EnumValueDescriptor:
- rs.Append(rv, attrAndName{t.Number(), "Number"})
+ rs.Append(rv, []methodAndName{
+ {rv.MethodByName("Number"), "Number"},
+ }...)
case protoreflect.ServiceDescriptor:
- rs.Append(rv, attrAndName{t.Methods(), "Methods"})
+ rs.Append(rv, []methodAndName{
+ {rv.MethodByName("Methods"), "Methods"},
+ }...)
case protoreflect.MethodDescriptor:
- rs.Append(rv, []attrAndName{
- {t.Input(), "Input"},
- {t.Output(), "Output"},
- {t.IsStreamingClient(), "IsStreamingClient"},
- {t.IsStreamingServer(), "IsStreamingServer"},
+ rs.Append(rv, []methodAndName{
+ {rv.MethodByName("Input"), "Input"},
+ {rv.MethodByName("Output"), "Output"},
+ {rv.MethodByName("IsStreamingClient"), "IsStreamingClient"},
+ {rv.MethodByName("IsStreamingServer"), "IsStreamingServer"},
}...)
}
- if m, ok := t.(interface{ GoType() reflect.Type }); ok {
- rs.Append(rv, attrAndName{m.GoType(), "GoType"})
+ if m := rv.MethodByName("GoType"); m.IsValid() {
+ rs.Append(rv, methodAndName{m, "GoType"})
}
}
return start + rs.Join() + end
@@ -294,66 +297,68 @@
rs.recs = append(rs.recs, newRecs)
}
-func (rs *records) Append(v reflect.Value, results ...attrAndName) {
- for _, r := range results {
- rs.appendAttribute(v, r.name, r.attr)
- }
-}
+func (rs *records) Append(v reflect.Value, accessors ...methodAndName) {
+ for _, a := range accessors {
+ if rs.record != nil {
+ rs.record(a.name)
+ }
+ var rv reflect.Value
+ if a.method.IsValid() {
+ rv = a.method.Call(nil)[0]
+ }
+ if v.Kind() == reflect.Struct && !rv.IsValid() {
+ rv = v.FieldByName(a.name)
+ }
+ if !rv.IsValid() {
+ panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a.name))
+ }
+ if _, ok := rv.Interface().(protoreflect.Value); ok {
+ rv = rv.MethodByName("Interface").Call(nil)[0]
+ if !rv.IsNil() {
+ rv = rv.Elem()
+ }
+ }
-func (rs *records) appendAttribute(val reflect.Value, name string, attrVal any) {
- if rs.record != nil {
- rs.record(name)
- }
- if attrVal == nil {
- return
- }
- rv := reflect.ValueOf(attrVal)
- if _, ok := rv.Interface().(protoreflect.Value); ok {
- rv = rv.MethodByName("Interface").Call(nil)[0]
- if !rv.IsNil() {
- rv = rv.Elem()
+ // Ignore zero values.
+ var isZero bool
+ switch rv.Kind() {
+ case reflect.Interface, reflect.Slice:
+ isZero = rv.IsNil()
+ case reflect.Bool:
+ isZero = rv.Bool() == false
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ isZero = rv.Int() == 0
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+ isZero = rv.Uint() == 0
+ case reflect.String:
+ isZero = rv.String() == ""
}
- }
+ if n, ok := rv.Interface().(list); ok {
+ isZero = n.Len() == 0
+ }
+ if isZero {
+ continue
+ }
- // Ignore zero values.
- var isZero bool
- switch rv.Kind() {
- case reflect.Interface, reflect.Slice:
- isZero = rv.IsNil()
- case reflect.Bool:
- isZero = rv.Bool() == false
- case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
- isZero = rv.Int() == 0
- case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
- isZero = rv.Uint() == 0
- case reflect.String:
- isZero = rv.String() == ""
+ // Format the value.
+ var s string
+ v := rv.Interface()
+ switch v := v.(type) {
+ case list:
+ s = formatListOpt(v, false, rs.allowMulti)
+ case protoreflect.FieldDescriptor, protoreflect.OneofDescriptor, protoreflect.EnumValueDescriptor, protoreflect.MethodDescriptor:
+ s = string(v.(protoreflect.Descriptor).Name())
+ case protoreflect.Descriptor:
+ s = string(v.FullName())
+ case string:
+ s = strconv.Quote(v)
+ case []byte:
+ s = fmt.Sprintf("%q", v)
+ default:
+ s = fmt.Sprint(v)
+ }
+ rs.recs = append(rs.recs, [2]string{a.name, s})
}
- if n, ok := rv.Interface().(list); ok {
- isZero = n.Len() == 0
- }
- if isZero {
- return
- }
-
- // Format the value.
- var s string
- v := rv.Interface()
- switch v := v.(type) {
- case list:
- s = formatListOpt(v, false, rs.allowMulti)
- case protoreflect.FieldDescriptor, protoreflect.OneofDescriptor, protoreflect.EnumValueDescriptor, protoreflect.MethodDescriptor:
- s = string(v.(protoreflect.Descriptor).Name())
- case protoreflect.Descriptor:
- s = string(v.FullName())
- case string:
- s = strconv.Quote(v)
- case []byte:
- s = fmt.Sprintf("%q", v)
- default:
- s = fmt.Sprint(v)
- }
- rs.recs = append(rs.recs, [2]string{name, s})
}
func (rs *records) Join() string {
diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go
--- a/vendor/google.golang.org/protobuf/internal/version/version.go
+++ b/vendor/google.golang.org/protobuf/internal/version/version.go
@@ -53,7 +53,7 @@
Major = 1
Minor = 36
Patch = 11
- PreRelease = "devel"
+ PreRelease = ""
)
// String formats the version string for this module in semver format.
diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go
--- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go
+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go
@@ -201,7 +201,6 @@
return nil, err
}
x.L1.EditionFeatures = mergeEditionFeatures(parent, xd.GetOptions().GetFeatures())
- x.L2.IsProto3Optional = xd.GetProto3Optional()
if opts := xd.GetOptions(); opts != nil {
opts = proto.Clone(opts).(*descriptorpb.FieldOptions)
x.L2.Options = func() protoreflect.ProtoMessage { return opts }
diff --git a/vendor/k8s.io/apimachinery/pkg/api/resource/generated.protomessage.pb.go b/vendor/k8s.io/apimachinery/pkg/api/resource/generated.protomessage.pb.go
new file mode 100644
--- /dev/null
+++ b/vendor/k8s.io/apimachinery/pkg/api/resource/generated.protomessage.pb.go
@@ -1,0 +1,26 @@
+//go:build kubernetes_protomessage_one_more_release
+// +build kubernetes_protomessage_one_more_release
+
+/*
+Copyright The Kubernetes Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by go-to-protobuf. DO NOT EDIT.
+
+package resource
+
+func (*Quantity) ProtoMessage() {}
+
+func (*QuantityValue) ProtoMessage() {}
diff --git a/vendor/k8s.io/apimachinery/pkg/api/validate/content/errors.go b/vendor/k8s.io/apimachinery/pkg/api/validate/content/errors.go
--- a/vendor/k8s.io/apimachinery/pkg/api/validate/content/errors.go
+++ b/vendor/k8s.io/apimachinery/pkg/api/validate/content/errors.go
@@ -29,12 +29,6 @@
return fmt.Sprintf("must be greater than or equal to %d", min)
}
-// MaxError returns a string explanation of a "must be less than or equal"
-// validation failure.
-func MaxError[T constraints.Integer](max T) string {
- return fmt.Sprintf("must be less than or equal to %d", max)
-}
-
// MaxLenError returns a string explanation of a "string too long" validation
// failure.
func MaxLenError(length int) string {
diff --git a/vendor/k8s.io/apimachinery/pkg/api/validate/content/path.go b/vendor/k8s.io/apimachinery/pkg/api/validate/content/path.go
deleted file mode 100644
--- a/vendor/k8s.io/apimachinery/pkg/api/validate/content/path.go
+++ /dev/null
@@ -1,63 +1,0 @@
-/*
-Copyright 2015 The Kubernetes Authors.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package content
-
-import (
- "fmt"
- "strings"
-)
-
-// Strings that cannot be used as names specified as path segments (like the
-// REST API or etcd store).
-var pathSegmentNameMayNotBe = []string{".", ".."}
-
-// Substrings that cannot be used in names specified as path segments (like the
-// REST API or etcd store).
-var pathSegmentNameMayNotContain = []string{"/", "%"}
-
-// IsPathSegmentName validates the name can be safely encoded as a path
-// segment.
-//
-// Note that, for historical reason, this function does not check for
-// empty strings or impose a limit on the length of the name.
-func IsPathSegmentName(name string) []string {
- for _, illegalName := range pathSegmentNameMayNotBe {
- if name == illegalName {
- return []string{fmt.Sprintf(`may not be '%s'`, illegalName)}
- }
- }
-
- return IsPathSegmentPrefix(name)
-}
-
-// IsPathSegmentPrefix validates the name can be used as a prefix for a
-// name which will be encoded as a path segment It does not check for exact
-// matches with disallowed names, since an arbitrary suffix might make the name
-// valid.
-//
-// Note that, for historical reason, this function does not check for
-// empty strings or impose a limit on the length of the name.
-func IsPathSegmentPrefix(name string) []string {
- var errors []string
- for _, illegalContent := range pathSegmentNameMayNotContain {
- if strings.Contains(name, illegalContent) {
- errors = append(errors, fmt.Sprintf(`may not contain '%s'`, illegalContent))
- }
- }
-
- return errors
-}
\ No newline at end of file
diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/fieldsv1.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/fieldsv1.go
deleted file mode 100644
--- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/fieldsv1.go
+++ /dev/null
@@ -1,170 +1,0 @@
-/*
-Copyright The Kubernetes Authors.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package v1
-
-import (
- "fmt"
- "io"
-)
-
-func (FieldsV1) SwaggerDoc() map[string]string {
- return map[string]string{
- "": "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:<name>', where <name> is the name of a field in a struct, or key in a map 'v:<value>', where <value> is the exact json formatted value of a list item 'i:<index>', where <index> is position of a item in a list 'k:<keys>', where <keys> is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff",
- }
-}
-
-type FieldsV1Reader interface {
- io.Reader
- io.ReaderAt
- // Size returns the original byte length of the underlying data. Size is the number of bytes available for reading via ReadAt.
- Size() int64
-}
-
-func (f *FieldsV1) DeepCopy() *FieldsV1 {
- if f == nil {
- return nil
- }
- out := new(FieldsV1)
- f.DeepCopyInto(out)
- return out
-}
-
-func (f *FieldsV1) Marshal() (dAtA []byte, err error) {
- size := f.Size()
- dAtA = make([]byte, size)
- n, err := f.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (f *FieldsV1) MarshalTo(dAtA []byte) (int, error) {
- size := f.Size()
- return f.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (f *FieldsV1) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- rawBytes := f.GetRawBytes()
- if len(rawBytes) > 0 {
- i -= len(rawBytes)
- copy(dAtA[i:], rawBytes)
- i = encodeVarintGenerated(dAtA, i, uint64(len(rawBytes)))
- i--
- dAtA[i] = 0xa
- }
- return len(dAtA) - i, nil
-}
-
-func (f *FieldsV1) Size() (n int) {
- if f == nil {
- return 0
- }
- var l int
- _ = l
- if l := int(f.GetRawReader().Size()); l > 0 {
- n += 1 + l + sovGenerated(uint64(l))
- }
- return n
-}
-
-func (f *FieldsV1) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
... diff truncated: showing 800 of 4139 linesYou can send follow-ups to the cloud agent here.
Reviewed by Cursor Bugbot for commit e135c6f. Configure here.
e135c6f to
0cb5baf
Compare
0cb5baf to
995fc6b
Compare
eaff613 to
45c9bd9
Compare
c5aae71 to
446faa4
Compare
f1b8f67 to
fb17431
Compare
d7c2b14 to
1191b29
Compare
| datasource | package | from | to | | ---------- | ------------------- | ------- | ------- | | go | k8s.io/apimachinery | v0.35.4 | v0.36.1 | Signed-off-by: renovate-sh-app[bot] <219655108+renovate-sh-app[bot]@users.noreply.github.com>
1191b29 to
496a928
Compare
rfratto
approved these changes
Jun 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


This PR contains the following updates:
v0.35.4→v0.36.1Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
kubernetes/apimachinery (k8s.io/apimachinery)
v0.36.1Compare Source
v0.36.0Compare Source
v0.35.6Compare Source
v0.35.5Compare Source
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
Need help?
You can ask for more help in the following Slack channel: #proj-renovate-self-hosted. In that channel you can also find ADR and FAQ docs in the Resources section.