The new cadvisor version requires newer golang.org/x modules. Module
version selection raised crypto, mod, net, sync, sys, term, text, and
tools. golang.org/x/net moves from a pseudo-version to the v0.57.0
release, which includes the http2 fixes the pseudo-version pointed at.
cadvisor/lib no longer depends on github.com/gogo/protobuf. This change
removes cadvisor/lib from the gogo/protobuf dependants list in
hack/unwanted-dependencies.json.
Kubernetes-commit: c2e122037dfaa8c5e4e7951c155df282236d30f4
The controller would recover eventually because it double-checks when seeing
the pod status update, but when reacting to events it recovers faster.
Kubernetes-commit: 03c34ede467ea16580beee3937f9997070421529
When updating a ResourceSlice, a more recent copy than in the underlying store
gets cached by the MutationCache. Then when that ResourceSlice gets deleted on
the apiserver and then the store, the MutationCache kept the stale copy and
returned it when the controller synced again, causing the controller to
erroneously not recreate the deleted ResourceSlice.
Depending on timing, this could have happened while updating the DRA driver:
- Driver restarts, updating the existing ResourceSlices.
- kubelet deletes the slices before realizing that the driver
is running again.
The fix is to address a long-standing TODO in the MutationCache: it needs to
react to changes in the store. This allows it to drop cached objects sooner and
let's it remove cached objects that are known to be deleted. Users of a
MutationCache must inform the cache in their own informer event
handlers *before* triggering sync operations.
The integration test demonstrates the problem when run against master:
core.go:560: I0629 09:43:22.656382] Deleting slice...
resourceslicecontroller.go:610: I0629 09:43:22.659446] ResourceSlice delete slice="00000-ga-publishresourceslices-5s47j-slice"
resourceslicecontroller.go:612: I0629 09:43:22.659496] Scheduled sync poolName="global" at="2026-06-29 09:43:25.659481942 +0200 CEST m=+5.886096424"
resourceslicecontroller.go:755: I0629 09:43:24.639116] Matched existing slice by index poolName="global" slice="00000-ga-publishresourceslices-5s47j-slice" matchIndex=0
resourceslicecontroller.go:788: I0629 09:43:24.639317] Completed comparison poolName="global" numObsolete=0 numMatchedSlices=1 numChangedMatchedSlices=0 numNewSlices=0
resourceslicecontroller.go:804: I0629 09:43:24.639391] Kept generation because at most one update API call is necessary poolName="global" generation=1
core.go:566: FATAL ERROR: I0629 09:43:30.661588]
Timed out after 8.002s.
Expected
<resourceslice.Stats>: {NumCreates: 0, NumUpdates: 1, NumDeletes: 0}
to equal
<resourceslice.Stats>: {NumCreates: 1, NumUpdates: 1, NumDeletes: 0}
The "matched existing slice" doesn't actually exist anymore, so the controller
does nothing and the test fails.
Kubernetes-commit: 495f81169d8b2fe9e6e5dafd6b31fca1ae0483fa
Regenerated by hack/update-golangci-lint-config.sh and
hack/update-codegen.sh after the commentstart changes.
Kubernetes-commit: 0062a2bc681f62cca7dd206cd098f14e1d346ba0
Regenerated swagger docs, openapi spec, protobuf definitions, and apply
configurations to reflect the updated metadata field godoc.
Kubernetes-commit: fb3cf74c50ec5d117a7d17f1115c9413fd492c3d
Regenerated after the commentstart change: golangci config via
hack/update-golangci-lint-config.sh, API artifacts via
hack/update-codegen.sh, and the OpenAPI spec via
hack/update-openapi-spec.sh.
Kubernetes-commit: 1097026dbe89757d4063ffd0ec21c24ab662035a
Regenerated protobuf, OpenAPI (v2 swagger + v3), swagger docs, client-go
applyconfigurations, and the golangci-lint config after enabling the
commentstart rule for the policy API group.
Kubernetes-commit: bf648a7afbb5a7efc72cc6fe907607665845370a
Regenerate the protobuf definitions, swagger docs, apply
configurations, and OpenAPI specs to reflect the updated field godoc
for the rbac API group.
Part of #134671.
Kubernetes-commit: 9e1597ac5b77a3cb4c1fe2b58b0b1e3df0421d37
The CHANGELOG.md in the kubernetes/client-go repo hasn't been updated for seven
years. In the future, a CHANGELOG.md for client-go is meant to be maintained
together with the commits in k/k which change
client-go (https://github.com/kubernetes/kubernetes/pull/138351).
* Migrate: use source file permission when writing destination file
* Mask migrated config file with 0666 to ensure the created file is never executable.
Kubernetes-commit: d7091ac255734d59a494ed8c93209a467156f238
detectNumCPU sized nf_conntrack_max using github.com/google/cadvisor/lib
machine topology. nf_conntrack_max is host-wide, so it must be sized from the
node's CPU count, not runtime.NumCPU(): the latter honors the process cpuset
and undercounts when kube-proxy runs under a static CPU policy, which is the
behavior cadvisor worked around (kubernetes/kubernetes#99225).
Use cpuset.NumCPU() from k8s.io/utils, which reads the node's online CPU count
from /sys/devices/system/cpu/online, with a runtime.NumCPU() fallback. This
drops the cadvisor dependency from pkg/proxy/conntrack and bumps k8s.io/utils
to pick up cpuset.NumCPU.
Kubernetes-commit: 92ce184653f03c312915993d7fde93d8e65602c1
Let's introduce this new functionality incrementally: at first the check will
run, but won't fail "make verify". Once we have gained more confidence and
experience with it, this commit can be reverted to make documentation
mandatory again.
Kubernetes-commit: 8af3e85e9ebab272af2db66449ee74d287c0e95a
Remove mentions about admission controllers from doc comments for PodGroupTemplate.Priority and PodGroupTemplate.PriorityClassName
Kubernetes-commit: 2a419be78ae256ef719071c6ae3bd46cb39b5b81