Commit Graph

132147 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
bcd1ef31ef Merge pull request #137258 from ahrtr/automated-cherry-pick-of-#137251-upstream-release-1.34
Automated cherry pick of #137251: kubeadm: do not add learner member to etcd client endpoints
2026-03-11 16:23:38 +05:30
Kubernetes Prow Robot
3b27d54731 Merge pull request #136386 from vikasbolla/automated-cherry-pick-of-#135567-upstream-release-1.34
[release1.34]Automated cherry pick of #135567: Fix flaky TestApplyCRDuringCRDFinalization test
2026-03-03 16:13:20 +05:30
Kubernetes Prow Robot
4b165951b9 Merge pull request #137077 from varshadeshmane92/automated-cherry-pick-of-#133360-upstream-release-1.34
Automated cherry pick of #133360: fix: parsing the patch directly
2026-03-03 14:57:29 +05:30
Kubernetes Prow Robot
9e5e5ce16e Merge pull request #136832 from varshadeshmane92/automated-cherry-pick-of-#134754-upstream-release-1.34
Automated cherry pick of #134754: Use fast policy refresh interval for TestParamRef
2026-03-03 14:57:21 +05:30
Kubernetes Release Robot
7c49a01f34 Update CHANGELOG/CHANGELOG-1.34.md for v1.34.5 2026-02-26 20:14:53 +00:00
Kubernetes Release Robot
ebfac05736 Release commit for Kubernetes v1.34.5 v1.34.5 2026-02-26 20:03:29 +00:00
Paco Xu
1e54c34d71 kubeadm: do not add learner member to etcd client endpoints 2026-02-26 10:30:50 +00:00
Kensei Nakada
9dfc82f48a fix: parsing the patch directly 2026-02-17 03:33:03 -08:00
Kubernetes Prow Robot
80cf2ca35f Merge pull request #136984 from cpanato/update-go-rel134
[release-1.34] [go] Bump images and versions to go 1.24.13 and distroless iptables
2026-02-12 20:54:02 +05:30
Carlos Panato
f3b756a0cc Bump images and versions to go 1.24.13 and distroless iptables
Signed-off-by: Carlos Panato <ctadeu@gmail.com>
2026-02-12 14:11:01 +01:00
Kubernetes Release Robot
9b1432f352 Update CHANGELOG/CHANGELOG-1.34.md for v1.34.4 2026-02-10 13:04:54 +00:00
Kubernetes Release Robot
14507e2fb3 Release commit for Kubernetes v1.34.4 v1.34.4 2026-02-10 12:53:36 +00:00
Joe Betz
85056980d7 Use fast policy refresh interval for TestParamRef 2026-02-08 01:15:47 -08:00
Kubernetes Prow Robot
cc6bd01063 Merge pull request #136490 from AutuSnow/automated-cherry-pick-of-#136325-upstream-release-1.34
Automated cherry pick of #136325: fix(expansion):Resolve the issue of UTF-8 characters being truncated
2026-02-06 08:28:30 +05:30
Kubernetes Prow Robot
e71810983a Merge pull request #136480 from rogowski-piotr/automated-cherry-pick-of-#135919-upstream-release-1.34
Automated cherry pick of #135919: kubelet(dra): fix handling of multiple ResourceClaims when one is already prepared
2026-02-06 05:38:30 +05:30
Kubernetes Prow Robot
36b7bc8fb5 Merge pull request #136364 from dlipovetsky/automated-cherry-pick-of-#136014-upstream-release-1.34
Automated cherry pick of #136014: kubeadm: waiting for etcd learner member to be started before promoting during 'kubeadm join'
2026-02-06 03:28:29 +05:30
Kubernetes Prow Robot
62627f5552 Merge pull request #136594 from RomanBednar/automated-cherry-pick-of-#136202-upstream-release-1.34
Automated cherry pick of #136202: csi: raise kubelet CSI init backoff to cover ~140s DNS delays
2026-02-05 20:00:42 +05:30
Kubernetes Prow Robot
2a5c6bb779 Merge pull request #136142 from shwetha-s-poojary/automated-cherry-pick-of-#135666-upstream-release-1.34
Automated cherry pick of #135666: Fixes the flaky `TestWebhookConverterWithWatchCache` test
2026-02-05 20:00:34 +05:30
Kubernetes Prow Robot
976ffc74a9 Merge pull request #136566 from pohly/automated-cherry-pick-of-#136269-origin-release-1.34
Automated cherry pick of #136269: DRA scheduler: double allocation fixes
2026-02-05 17:58:47 +05:30
Kubernetes Prow Robot
8e110c6ce1 Merge pull request #136433 from thc1006/cherry-pick-136028-release-1.34
[release-1.34] fix(kubelet): convert V().Error() to V().Info() for verbosity-aware logging
2026-02-05 17:58:40 +05:30
Kubernetes Prow Robot
5caaeadc3f Merge pull request #136374 from princepereira/automated-cherry-pick-of-#136241-upstream-release-1.34
Automated cherry pick of #136241: Fix for preferred dualstack and required dualstack in winkernel proxier.
2026-02-05 17:58:32 +05:30
Kubernetes Prow Robot
7dc238b2eb Merge pull request #136467 from cpanato/update-go-1256-rel134
[release-1.34] [go] Bump dependencies, images and versions used to Go 1.24.12 and distroless iptables
2026-01-31 13:22:25 +05:30
Carlos Panato
86f29bf874 Bump dependencies, images and versions used to Go 1.24.12 and distroless iptables
Signed-off-by: Carlos Panato <ctadeu@gmail.com>
2026-01-30 11:24:34 +01:00
Kubernetes Prow Robot
0cfcccf6c0 Merge pull request #136635 from dims/automated-cherry-pick-of-#136529-#136554-upstream-release-1.34
Automated cherry pick of #136529: test: Read /proc/net/nf_conntrack instead of using conntrack binary
#136554: test: Fix KubeProxy CLOSE_WAIT test for IPv6 environments (and where /proc/net/nf_conntrack may be missing)
2026-01-30 04:09:48 +05:30
Davanum Srinivas
4c5332710c Apparently some EC2 images we use do not have /proc/net/nf_conntrack
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-29 15:02:00 -05:00
Davanum Srinivas
77976dc0f7 test: cleanup from review
- Use netutils.IsIPv6(ip) instead of manual nil/To4 check
- Remove unnecessary ip.To16() call since IPv6 is already 16 bytes
- Remove ipFamily from grep pattern since IP format ensures correctness

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-29 15:02:00 -05:00
Davanum Srinivas
5d4cdfdee8 test: Fix KubeProxy CLOSE_WAIT test for IPv6 environments
The /proc/net/nf_conntrack file uses fully expanded IPv6 addresses
with leading zeros in each 16-bit group. For example:
  fc00:f853:ccd:e793::3 -> fc00:f853:0ccd:e793:0000:0000:0000:0003

Add expandIPv6ForConntrack() helper function to expand IPv6 addresses
to the format used by /proc/net/nf_conntrack before using them in
the grep pattern.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-29 15:01:59 -05:00
Davanum Srinivas
404bf4b04d test: Read /proc/net/nf_conntrack instead of using conntrack binary
The distroless-iptables image no longer includes the conntrack binary
as of v0.8.7 (removed in kubernetes/release#4223 since kube-proxy no
longer needs it after kubernetes#126847).

Update the KubeProxy CLOSE_WAIT timeout test to read /proc/net/nf_conntrack
directly instead of using the conntrack command. The file contains the
same connection tracking data and is accessible from the privileged
host-network pod.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-29 15:01:57 -05:00
Kubernetes Prow Robot
766a195b2a Merge pull request #136440 from BenTheElder/134-go1.24.12
release-1.34: upgrade go to 1.24.12 and decouple from kube-cross
2026-01-29 04:11:47 +05:30
Roman Bednar
d71e0dc506 csi: raise kubelet CSI init backoff to cover ~140s DNS delays
- bump init backoff to Duration=30ms, Factor=8 (Steps=6) to yield ~140s total
- prevent kubelet restarts when DNS is blackholed and NSS must fall back to myhostname
- keep CSI/CSINode initialization alive long enough to complete in ARO DNS-failure scenarios
2026-01-28 11:48:44 +01:00
Patrick Ohly
e4b5d3c8b4 DRA scheduler: fix another root cause of double device allocation
GatherAllocatedState and ListAllAllocatedDevices need to collect information
from different sources (allocated devices, in-flight claims), potentially even
multiple times (GatherAllocatedState first gets allocated devices, then the
capacities).

The underlying assumption that nothing bad happens in parallel is not always
true. The following log snippet shows how an update of the assume
cache (feeding the allocated devices tracker) and in-flight claims lands such
that GatherAllocatedState doesn't see the device in that claim as allocated:

    dra_manager.go:263: I0115 15:11:04.407714      18778] scheduler: Starting GatherAllocatedState
    ...
    allocateddevices.go:189: I0115 15:11:04.407945      18066] scheduler: Observed device allocation device="testdra-all-usesallresources-hvs5d.driver/worker-5/worker-5-device-094" claim="testdra-all-usesallresources-hvs5d/claim-0553"
    dynamicresources.go:1150: I0115 15:11:04.407981      89109] scheduler: Claim stored in assume cache pod="testdra-all-usesallresources-hvs5d/my-pod-0553" claim="testdra-all-usesallresources-hvs5d/claim-0553" uid=<types.UID>: a84d3c4d-f752-4cfd-8993-f4ce58643685 resourceVersion="5680"
    dra_manager.go:201: I0115 15:11:04.408008      89109] scheduler: Removed in-flight claim claim="testdra-all-usesallresources-hvs5d/claim-0553" uid=<types.UID>: a84d3c4d-f752-4cfd-8993-f4ce58643685 version="1211"
    dynamicresources.go:1157: I0115 15:11:04.408044      89109] scheduler: Removed claim from in-flight claims pod="testdra-all-usesallresources-hvs5d/my-pod-0553" claim="testdra-all-usesallresources-hvs5d/claim-0553" uid=<types.UID>: a84d3c4d-f752-4cfd-8993-f4ce58643685 resourceVersion="5680" allocation=<
        	{
        	  "devices": {
        	    "results": [
        	      {
        	        "request": "req-1",
        	        "driver": "testdra-all-usesallresources-hvs5d.driver",
        	        "pool": "worker-5",
        	        "device": "worker-5-device-094"
        	      }
        	    ]
        	  },
        	  "nodeSelector": {
        	    "nodeSelectorTerms": [
        	      {
        	        "matchFields": [
        	          {
        	            "key": "metadata.name",
        	            "operator": "In",
        	            "values": [
        	              "worker-5"
        	            ]
        	          }
        	        ]
        	      }
        	    ]
        	  },
        	  "allocationTimestamp": "2026-01-15T14:11:04Z"
        	}
         >
    dra_manager.go:280: I0115 15:11:04.408085      18778] scheduler: Device is in flight for allocation device="testdra-all-usesallresources-hvs5d.driver/worker-5/worker-5-device-095" claim="testdra-all-usesallresources-hvs5d/claim-0086"
    dra_manager.go:280: I0115 15:11:04.408137      18778] scheduler: Device is in flight for allocation device="testdra-all-usesallresources-hvs5d.driver/worker-5/worker-5-device-096" claim="testdra-all-usesallresources-hvs5d/claim-0165"
    default_binder.go:69: I0115 15:11:04.408175      89109] scheduler: Attempting to bind pod to node pod="testdra-all-usesallresources-hvs5d/my-pod-0553" node="worker-5"
    dra_manager.go:265: I0115 15:11:04.408264      18778] scheduler: Finished GatherAllocatedState allocatedDevices=<map[string]interface {} | len:2>: {

Initial state: "worker-5-device-094" is in-flight, not in cache
- goroutine #1: starts GatherAllocatedState, copies cache
- goroutine #2: adds to assume cache, removes from in-flight
- goroutine #1: checks in-flight

=> device never seen as allocated

This is the second reason for double allocation of the same device in two
different claims. The other was timing in the assume cache. Both were
tracked down with an integration test (separate commit). It did not fail
all the time, but enough that regressions should show up as flakes.
2026-01-27 14:52:15 +01:00
Patrick Ohly
af0e9bb033 DRA scheduler: fix one root cause of double device allocation
DRA depends on the assume cache having invoked all event handlers before
Assume() returns, because DRA maintains state that is relevant for scheduling
through those event handlers.

This log snippet shows how this went wrong during PreBind:

    dynamicresources.go:1150: I0115 10:35:29.264437] scheduler: Claim stored in assume cache pod="testdra-all-usesallresources-kqjpj/my-pod-0091" claim="testdra-all-usesallresources-kqjpj/claim-0091" uid=<types.UID>: 516f274f-e1a9-4a4b-b7d2-bb86138e4240 resourceVersion="5636"
    dra_manager.go:198: I0115 10:35:29.264448] scheduler: Removed in-flight claim claim="testdra-all-usesallresources-kqjpj/claim-0091" uid=<types.UID>: 516f274f-e1a9-4a4b-b7d2-bb86138e4240 version="287"
    dynamicresources.go:1157: I0115 10:35:29.264463] scheduler: Removed claim from in-flight claims pod="testdra-all-usesallresources-kqjpj/my-pod-0091" claim="testdra-all-usesallresources-kqjpj/claim-0091" uid=<types.UID>: 516f274f-e1a9-4a4b-b7d2-bb86138e4240 resourceVersion="5636" allocation=<
    ...
    allocateddevices.go:189: I0115 10:35:29.267315] scheduler: Observed device allocation device="testdra-all-usesallresources-kqjpj.driver/worker-1/worker-1-device-096" claim="testdra-all-usesallresources-kqjpj/claim-0091"

- goroutine #1: UpdateStatus result delivered via informer.
  AssumeCache updates cache, pushes event A, emitEvents pulls event A from queue.
  *Not* done with delivering it yet!
- goroutine #2: AssumeCache.Assume called. Updates cache, pushes event B, emits it.
  Old and new claim have allocation, so no "Observed device allocation".
- goroutine #3: Schedules next pod, without considering device as allocated (not in the log snippet).
- goroutine #1: Finally delivers event A: "Observed device allocation", but too late.

Also, events are delivered out-of-order.

The fix is to let emitEvents when called by Assume wait for a potentially
running emitEvents in some other goroutine, thus ensuring that an event pulled
out of the queue by that other goroutine got delivered before Assume itself
checks the queue one more time and then returns.

The time window were things go wrong is small. An E2E test covering this only
flaked rarely, and only in the CI. An integration test (separate commit) with
higher number of pods finally made it possible to reproduce locally. It also
uncovered a second race (fix in separate commit).

The unit test fails without the fix:

    === RUN   TestAssumeConcurrency
        assume_cache_test.go:311: FATAL ERROR:
            	Assume should have blocked and didn't.
    --- FAIL: TestAssumeConcurrency (0.00s)
2026-01-27 14:52:15 +01:00
thc1006
d9da8e2033 fix(kubelet): convert V().Error() to V().Info() for verbosity-aware logging
This PR fixes incorrect usage of `logger.V(N).Error()` across the kubelet
package. The go-logr package design causes `Error()` calls to bypass
verbosity level checks entirely, meaning these logs are always printed
regardless of the configured verbosity level.

Note: This cherry-pick only fixes `logger.V().Error()` (contextual logging)
calls. Files using `klog.V().ErrorS()` are NOT changed because klog's
structured logging properly respects verbosity levels.

Files modified (6 files, 11 instances):
- pkg/kubelet/cm/dra/plugin/dra_plugin_manager.go
- pkg/kubelet/kuberuntime/kuberuntime_container_linux.go
- pkg/kubelet/lifecycle/handlers.go
- pkg/kubelet/pleg/generic.go
- pkg/kubelet/volumemanager/cache/desired_state_of_world.go
- pkg/kubelet/volumemanager/reconciler/reconstruct.go

Conversion pattern applied:
- V(N).Error(err, "msg", ...) → V(N).Info("msg", ..., "err", err)

Fixes: https://github.com/kubernetes/kubernetes/issues/136027
Cherry-pick of: https://github.com/kubernetes/kubernetes/pull/136028

Signed-off-by: thc1006 <84045975+thc1006@users.noreply.github.com>
2026-01-26 23:56:56 +00:00
Piotr Rogowski
dacc7257f6 test(ut/dra): add unit test for pod requesting prepared and new claims 2026-01-26 12:04:47 +00:00
qiuxue
c356771af0 fix(expansion):Resolve the issue of UTF-8 characters being truncated, resulting in invalid UTF-8 2026-01-24 11:07:45 +08:00
Piotr Rogowski
6af7de8d1c test(e2e/dra): add test for pod requesting allocated and new claims 2026-01-23 19:40:18 +00:00
rogowski-piotr
ddfb1c1e53 kubelet(dra): fix multiple claims handling 2026-01-23 19:40:18 +00:00
Benjamin Elder
94938168a8 remove blank line between comments and entry 2026-01-22 13:05:53 -08:00
Benjamin Elder
a0f2539961 reorder kube-cross to be under go version and dedupe it from the go version 2026-01-22 13:05:38 -08:00
Benjamin Elder
cf76cd86a3 bump go to 1.24.12 2026-01-22 13:03:45 -08:00
aviralgarg05
dd36f43943 Fix flaky TestApplyCRDuringCRDFinalization test
This PR fixes the flaky TestApplyCRDuringCRDFinalization test that was failing
intermittently on slower systems (s390x architecture, race detector builds).

The root cause was a race condition where the test would attempt to apply a CR
immediately after requesting CRD deletion, without waiting for the CRD to
actually enter the terminating state. The fix explicitly waits for the CRD
to have the Terminating condition set to True before attempting the apply.
2026-01-21 18:28:19 +05:30
Prince Pereira
eb8f93348d Fix for preferred dualstack and required dualstack in winkernel proxier. 2026-01-21 05:40:42 +00:00
SataQiu
d77a7d6bb4 kubeadm: waiting for etcd learner member to be started before promoting during 'kubeadm join' 2026-01-20 16:00:51 -08:00
Kubernetes Prow Robot
730ae95819 Merge pull request #135816 from mborsz/automated-cherry-pick-of-#135367-mborsz-release-1.34
Automated cherry pick of #135367: Fix apiserver_watch_events_sizes metric.
2026-01-16 11:23:12 +05:30
Kubernetes Prow Robot
31a3b4eb53 Merge pull request #136099 from jsafrane/automated-cherry-pick-of-#135629-upstream-release-1.34
Automated cherry pick of #135629: selinux: Fix the controller to ignore finished pods
2026-01-11 02:15:59 +05:30
Kubernetes Prow Robot
847bda5e72 Merge pull request #136123 from danwinship/automated-cherry-pick-of-#135631-origin-release-1.34
Automated cherry pick of #135631: Switch ipvs and winkernel back to more regular forced syncs
2026-01-10 07:13:39 +05:30
Aditi Gupta
b037ee3046 Fixes the flaky test (Issue #132953) 2026-01-09 21:34:45 +05:30
Dan Winship
b57a77635a Switch ipvs and winkernel back to more regular forced syncs 2026-01-08 22:24:52 -05:00
Kubernetes Prow Robot
a375772793 Merge pull request #136104 from atiratree/automated-cherry-pick-of-#135625-upstream-release-1.34
Automated cherry pick of #135625: mark QuotaMonitor as not running and invalidate monitors list
2026-01-09 08:19:39 +05:30
Filip Křepinský
e24e713ab7 mark QuotaMonitor as not running and invalidate monitors list
to prevent close of closed channel panic
2026-01-08 13:44:17 +01:00