From 9df55dd2a2566de8b17c1e85c754268c2a1d2e8a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 17 Sep 2026 05:06:51 +0000 Subject: [PATCH] chore(deps): update kubernetes to v0.25.1 --- operator/deps.mk | 2 +- operator/go.mod | 2 +- operator/go.sum | 4 +- operator/vendor/modules.txt | 2 +- .../pkg/client/consistency.go | 7 ++-- .../controller/priorityqueue/priorityqueue.go | 39 +++++++++++++------ 6 files changed, 36 insertions(+), 20 deletions(-) diff --git a/operator/deps.mk b/operator/deps.mk index 52294143..7bf2dc31 100644 --- a/operator/deps.mk +++ b/operator/deps.mk @@ -78,7 +78,7 @@ GOVULNCHECK_VERSION ?= v1.8.0 # renovate: datasource=go depName=github.com/mikefarah/yq/v4 YQ_VERSION ?= v4.53.6 # renovate: datasource=go depName=sigs.k8s.io/controller-runtime/tools/setup-envtest -ENVTEST_VERSION ?= v0.25.0 +ENVTEST_VERSION ?= v0.25.1 ## ctlptl (local cluster + registry management) # renovate: datasource=github-releases depName=tilt-dev/ctlptl diff --git a/operator/go.mod b/operator/go.mod index 78d01fe9..79421914 100644 --- a/operator/go.mod +++ b/operator/go.mod @@ -22,7 +22,7 @@ require ( k8s.io/klog/v2 v2.140.0 k8s.io/kubernetes v1.37.0 k8s.io/utils v0.0.0-20260707023825-cf1189d6abe3 - sigs.k8s.io/controller-runtime v0.25.0 + sigs.k8s.io/controller-runtime v0.25.1 sigs.k8s.io/yaml v1.6.0 ) diff --git a/operator/go.sum b/operator/go.sum index cfac2aae..5b863fb6 100644 --- a/operator/go.sum +++ b/operator/go.sum @@ -285,8 +285,8 @@ k8s.io/utils v0.0.0-20260707023825-cf1189d6abe3 h1:jVkFFVfXdXP74B/zbO3hM3hpSFD0x k8s.io/utils v0.0.0-20260707023825-cf1189d6abe3/go.mod h1:M2s5JB1lIYP3jzZdorPLHXIPJzt9vv2muW5a6L9DtNM= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.36.0 h1:/YpDJ4vReG7ZmzSpBGxduXgywWkJU9zHubgJG03MT+Y= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.36.0/go.mod h1:tJo1aepTXyR+8Xs3sUsGBDk4Ub2AM5dPAPKJx0mpm5c= -sigs.k8s.io/controller-runtime v0.25.0 h1:44KgRUPew331KSJpNu8zJow3iTR5W0p/SfrHdw3lV40= -sigs.k8s.io/controller-runtime v0.25.0/go.mod h1:4QqLdT6z/L6Olj8JJCtvztid4/fnIiYsfaTFScegctc= +sigs.k8s.io/controller-runtime v0.25.1 h1:BKgU9OeE8xv8EbbM8cY0NVzTQs35rokkdq1jh12fMb4= +sigs.k8s.io/controller-runtime v0.25.1/go.mod h1:4QqLdT6z/L6Olj8JJCtvztid4/fnIiYsfaTFScegctc= sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/kustomize/api v0.21.1 h1:lzqbzvz2CSvsjIUZUBNFKtIMsEw7hVLJp0JeSIVmuJs= diff --git a/operator/vendor/modules.txt b/operator/vendor/modules.txt index ea08e342..69e8d215 100644 --- a/operator/vendor/modules.txt +++ b/operator/vendor/modules.txt @@ -1201,7 +1201,7 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client/metrics sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/common/metrics sigs.k8s.io/apiserver-network-proxy/konnectivity-client/proto/client -# sigs.k8s.io/controller-runtime v0.25.0 +# sigs.k8s.io/controller-runtime v0.25.1 ## explicit; go 1.26.0 sigs.k8s.io/controller-runtime sigs.k8s.io/controller-runtime/pkg/builder diff --git a/operator/vendor/sigs.k8s.io/controller-runtime/pkg/client/consistency.go b/operator/vendor/sigs.k8s.io/controller-runtime/pkg/client/consistency.go index 256f8620..7cc31152 100644 --- a/operator/vendor/sigs.k8s.io/controller-runtime/pkg/client/consistency.go +++ b/operator/vendor/sigs.k8s.io/controller-runtime/pkg/client/consistency.go @@ -443,10 +443,11 @@ func (c *consistentSubResourceClient) Get(ctx context.Context, obj, subResource return c.upstream.Get(ctx, obj, subResource, opts...) } +// Create is excluded from read-your-writes consistency, because it either returns a +// status with no RV (pod/eviction, pod/binding) or a virtual resource that is not +// persisted (serviceaccount/token). func (c *consistentSubResourceClient) Create(ctx context.Context, obj, subResource Object, opts ...SubResourceCreateOption) error { - return c.writeAndRecordRV(ctx, obj, (&SubResourceCreateOptions{}).ApplyOptions(opts).DisableReadYourWritesConsistency, func() error { - return c.upstream.Create(ctx, obj, subResource, opts...) - }) + return c.upstream.Create(ctx, obj, subResource, opts...) } func (c *consistentSubResourceClient) Update(ctx context.Context, obj Object, opts ...SubResourceUpdateOption) error { diff --git a/operator/vendor/sigs.k8s.io/controller-runtime/pkg/controller/priorityqueue/priorityqueue.go b/operator/vendor/sigs.k8s.io/controller-runtime/pkg/controller/priorityqueue/priorityqueue.go index dd267cd4..aa9ab44e 100644 --- a/operator/vendor/sigs.k8s.io/controller-runtime/pkg/controller/priorityqueue/priorityqueue.go +++ b/operator/vendor/sigs.k8s.io/controller-runtime/pkg/controller/priorityqueue/priorityqueue.go @@ -537,20 +537,26 @@ func (w *priorityqueue[T]) logState() { if !w.log.V(5).Enabled() { continue } - w.lock.Lock() - items := make([]*item[T], 0, len(w.items)) - w.waiting.Ascend(func(item *item[T]) bool { - items = append(items, item) - return true - }) - w.ready.Ascend(func(item *item[T]) bool { - items = append(items, item) - return true - }) - w.lock.Unlock() - w.log.V(5).Info("workqueue_items", "items", items) + w.log.V(5).Info("workqueue_items", "items", w.cloneItems()) + } +} + +// cloneItems returns a deep copy of all queued items, taken under the lock, so that callers +// like logState can use them after it is released without racing with writers of ReadyAt. +func (w *priorityqueue[T]) cloneItems() []item[T] { + w.lock.Lock() + defer w.lock.Unlock() + + items := make([]item[T], 0, len(w.items)) + appendItem := func(it *item[T]) bool { + items = append(items, it.clone()) + return true } + w.waiting.Ascend(appendItem) + w.ready.Ascend(appendItem) + + return items } func lessWaiting[T comparable](a, b *item[T]) bool { @@ -574,6 +580,15 @@ type item[T comparable] struct { ReadyAt *time.Time `json:"readyAt,omitempty"` } +// clone returns a copy of the item that shares no memory with it. +func (i *item[T]) clone() item[T] { + clone := *i + if i.ReadyAt != nil { + clone.ReadyAt = new(*i.ReadyAt) + } + return clone +} + func (w *priorityqueue[T]) updateUnfinishedWorkLoop() { t := time.Tick(500 * time.Millisecond) // borrowed from workqueue: https://github.com/kubernetes/kubernetes/blob/67a807bf142c7a2a5ecfdb2a5d24b4cdea4cc79c/staging/src/k8s.io/client-go/util/workqueue/queue.go#L182 for {