134371 Commits

Author SHA1 Message Date
Kubernetes Release Robot
6636cbce3b Release commit for Kubernetes v1.35.5 v1.35.5 2026-05-12 09:50:49 +00:00
Kubernetes Prow Robot
f0a869dcd4 Merge pull request #138959 from neolit123/automated-cherry-pick-of-#138957-origin-release-1.35
Automated cherry pick of #138957: kubeadm: use dedicated ClusterRole for apiserver kubelet client
2026-05-11 17:53:51 +05:30
Micah Hausler
b9ffe7c06a kubeadm: use dedicated ClusterRole for apiserver kubelet client
Signed-off-by: Micah Hausler <mhausler@amazon.com>
2026-05-11 11:25:41 +02:00
Kubernetes Prow Robot
7777c57f30 Merge pull request #138501 from soltysh/automated-cherry-pick-of-#138499-upstream-release-1.35
Automated cherry pick of #138499: Ensure the path inside the container is correctly handled
2026-05-09 05:17:24 +05:30
Kubernetes Prow Robot
41b53108c5 Merge pull request #138153 from alimaazamat/automated-cherry-pick-of-#131950-upstream-release-1.35
Automated cherry pick of #131950: PodStartSLIDuration should exclude init container runtime, image pulling time, stateful pods, not immediately schedulable pods
2026-05-09 05:17:17 +05:30
Kubernetes Prow Robot
1c6008214d Merge pull request #138803 from neolit123/automated-cherry-pick-of-#138692-origin-release-1.35
Automated cherry pick of #138692: kubeadm: skip LocalAPIEndpoint defaulting on worker join
2026-05-08 17:25:17 +05:30
Seena Fallah
7909267f8b kubeadm: skip LocalAPIEndpoint defaulting on worker join
FetchInitConfigurationFromCluster always called SetAPIEndpointDynamicDefaults,
which invokes ChooseAPIServerBindAddress and requires a default route on the
host. Worker nodes joining the cluster don't need a LocalAPIEndpoint and may
legitimately have no default route, causing kubeadm join to fail with:

```
unable to fetch the kubeadm-config ConfigMap: unable to select an IP from
default routes.
```

Add a skipAPIEndpoint parameter to SetInitDynamicDefaults and pass
`!getAPIEndpoint` from FetchInitConfigurationFromCluster, so the endpoint
defaulter is bypassed when the caller did not request the endpoint (worker
join, non-control-plane reset/certs/upgrade paths).

Signed-off-by: Seena Fallah <seenafallah@gmail.com>
2026-05-06 11:08:39 +02:00
Kubernetes Prow Robot
ddbb265c8c Merge pull request #138636 from aojea/automated-cherry-pick-of-#138571-upstream-release-1.35
Automated cherry pick of #138571: kube-proxy: don't do full periodic syncs on large cluster mode
2026-05-06 06:34:20 +05:30
Kubernetes Prow Robot
935bba387c Merge pull request #138683 from neolit123/automated-cherry-pick-of-#138449-origin-release-1.35
Automated cherry pick of #138449: kubeadm: use the localAPIEndpoint for all API calls in 'init'
2026-05-05 20:30:26 +05:30
Kubernetes Prow Robot
a69783a282 Merge pull request #138602 from princepereira/automated-cherry-pick-of-#138000-upstream-release-1.35
Automated cherry pick of #138000: Delete remote endpoint if it has same ip as local endpoint in the system.
2026-05-05 08:04:21 +05:30
Lubomir I. Ivanov
f79279632e kubeadm: use the localAPIEndpoint for all API calls in 'init'
Historicaly the kubeadm clients have used the 'admin.conf'
and 'super-admin.conf' directly, which makes all API calls
go trough the CPE (control plane endpoint). This can create
problems for scenarios when the LB is provisioned only after
'init' starts the kube-apiserver.

Instead of using the '.conf' as they are, modify them
in memory to point to the LAE (localAPIEndpoint).
This was already done by the WaitControlPlaneClient for
the WaitControlPlane phase, which required it. This separate
client is no longer needed.

However, do use a unmodified kubeconfig to the init phase
bootstrap-token since this is the phase that creates
the cluster-info CM and for that we need the original CPE
server address.
2026-04-29 17:39:56 +02:00
Antonio Ojea
faa8112856 kube-proxy: don't do full periodic syncs on large cluster mode
Periodic full-syncs are just reconcile loops just in case somehow
the dataplane has drifted, however, they have an important cost on large
clusters.

We can avoid to perform full-sync if kube-proxy is in the "largecluster"
mode, we are already doing some optimization, so it is reasonable to
avoid the penalty of a full sync for a "just in case" operation.

Signed-off-by: Antonio Ojea <aojea@google.com>
2026-04-28 07:49:50 +00:00
Prince Pereira
943d941943 Delete remote endpoint if it has same ip as local endpoint in the system. 2026-04-26 09:54:46 +00:00
Prince Pereira
d550d458d3 Delete remote endpoint if it has same ip as local endpoint in the system. 2026-04-26 09:54:46 +00:00
Kubernetes Prow Robot
ec18059a92 Merge pull request #138539 from ahrtr/automated-cherry-pick-of-#138403-upstream-release-1.35
Automated cherry pick of #138403: kubeadm: Evaluate etcd cluster health using quorum
2026-04-23 18:46:49 +05:30
Benjamin Wang
6d314b2fd9 Add a (*Client) addEndpoint method
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2026-04-23 09:15:12 +01:00
Benjamin Wang
feb7fa1112 Evaluate etcd cluster health using quorum
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2026-04-23 09:15:11 +01:00
Kubernetes Prow Robot
7b57a4b185 Merge pull request #138434 from Argh4k/automated-cherry-pick-of-#138324-upstream-release-1.35
Automated cherry pick of #138324: scheduler: fix inFlightPods leak when pod is recreated during scheduling failure
2026-04-22 18:57:52 +05:30
Maciej Szulik
1a7f0b3dec Escape path inside the container
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-04-21 10:55:12 +02:00
Samarth Verma
6953afbad1 scheduler: address recreated pod review feedback 2026-04-17 06:40:11 +00:00
Samarth Verma
bf14155eb4 scheduler: skip requeueing recreated pods on scheduling failure 2026-04-17 06:39:06 +00:00
Samarth Verma
55f12e8477 scheduler: fix inFlightPods leak when pod is recreated during scheduling failure
handleSchedulingFailure can refresh podInfo from the informer before AddUnschedulableIfNotPresent. A delete and recreate with the same name may change the Pod UID while inFlightPods still tracks the UID from Pop, so Done and queueing-hint lookups must use that in-flight UID.

Add an explicit in-flight UID parameter, thread it through queueing-hint lookups, cover the same-name recreation case with a regression test, and check the returned error in updated test call sites.
2026-04-17 06:36:28 +00:00
Kubernetes Release Robot
31d47ca373 Update CHANGELOG/CHANGELOG-1.35.md for v1.35.4 2026-04-15 18:12:54 +00:00
Kubernetes Release Robot
7b8c6cf0ed Release commit for Kubernetes v1.35.4 v1.35.4 2026-04-15 18:01:22 +00:00
Kubernetes Prow Robot
93828861e0 Merge pull request #138356 from dims/update-moby-spdystream-v0.5.1-1.35
[1.35] Update github.com/moby/spdystream from v0.5.0 to v0.5.1
2026-04-14 17:10:39 +05:30
Kubernetes Prow Robot
0f1efab345 Merge pull request #138348 from dashpole/update_prop_35
[release-1.35] Update go.opentelemetry.io/otel to v1.41.0
2026-04-14 07:02:34 +05:30
Davanum Srinivas
1687aa8c94 Update github.com/moby/spdystream from v0.5.0 to v0.5.1
Kubernetes-commit: 7e9c2c8eef26f99aa2f94d8e09d6d32de86c7769
2026-04-13 14:14:40 -04:00
David Ashpole
e87f6b927b update go.opentelemetry.io/otel to v1.41.0 2026-04-13 14:38:58 +00:00
Kubernetes Prow Robot
c889751f78 Merge pull request #138042 from zxqlxy/automated-cherry-pick-of-#135485-upstream-release-1.35
Automated cherry pick of #135485: Fix device plugin admission failure after container restart
2026-04-10 04:38:18 +05:30
Kubernetes Prow Robot
c9622e9b4d Merge pull request #138304 from xmudrii/update-go-1.35
[release-1.35] Bump images and versions to go 1.25.9 and distroless iptables
2026-04-10 02:28:18 +05:30
Marko Mudrinić
97ccbdf2ee Bump images and versions to go 1.25.9 and distroless iptables
Signed-off-by: Marko Mudrinić <mudrinic.mare@gmail.com>
2026-04-09 21:52:20 +02:00
Kubernetes Prow Robot
a0ce4b96db Merge pull request #137926 from soltysh/automated-cherry-pick-of-#137904-upstream-release-1.35
Automated cherry pick of #137904: KEP-961: demote maxUnavailable feature in statefulset to off by default
2026-04-09 17:50:21 +05:30
Kubernetes Prow Robot
82a705ccae Merge pull request #137927 from lalitc375/cherry-pick-137864
Cherry pick of 137864
2026-04-09 16:04:20 +05:30
Kubernetes Prow Robot
e23757c9c8 Merge pull request #138137 from liggitt/automated-cherry-pick-of-#138131-upstream-release-1.35
Automated cherry pick of #138131: Deflake TestPodSubresourceAuth by waiting for effective permissions before testing
2026-04-09 15:09:33 +05:30
Alima Azamat
69dd59d5b4 podStartSLOduration excludes init container runtime and image pulling time, includes only stateless and immediately schedulable pods 2026-04-01 11:11:34 -07:00
Jordan Liggitt
46ba1c3c27 Deflake TestPodSubresourceAuth by waiting for effective permissions before testing 2026-03-31 12:33:40 -04:00
Francesco Romani
1d5e94efa2 podresources: filter out inactive pods in Get()
Currently the provider that the podresources API
consumes does *not* obviously filters out the terminal
pod, and this is corroborated by the fact the related
e2e test starts to fail.
We had a bug in the test which masked the real failure,
but now it's evident.

So we perform a trivial extraction of the kubelet filtering
code and we apply in both places.
Note that the existing flow is unaffected except for the
trivial code extraciton.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2026-03-27 19:44:50 +00:00
Francesco Romani
91a1e8b2db e2e: node: podresources: fix expectations for Get() and terminated pods
terminated pods should not be reported by Get() calls,
we should get an error instead

Signed-off-by: Francesco Romani <fromani@redhat.com>
2026-03-27 19:44:50 +00:00
Sascha Grunert
9d8bbea593 Fix device plugin admission failure after container restart
When a container restarts before kubelet restarts, containerMap has
multiple entries (old exited + new running). GetContainerID() may
return the exited container, causing the running check to fail. Fixed
by checking if ANY container for the pod/name is running.

Also filter terminal pods from podresources since they no longer
consume resources, and fix test error handling to avoid exiting
Eventually immediately on transient errors.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2026-03-26 21:39:40 +00:00
Kubernetes Prow Robot
a09ab89a6e Merge pull request #136281 from chaochn47/automated-cherry-pick-of-#135685-upstream-release-1.35
Automated cherry pick of #135685: Bugfix: calculate request latency properly in audit log filter
2026-03-27 00:28:23 +05:30
Kubernetes Prow Robot
e54bba53d9 Merge pull request #137885 from HirazawaUi/automated-cherry-pick-of-#137146-upstream-release-1.35
Automated cherry pick of #137146: kubelet: fix containers not restarting when sidecar keeps running
2026-03-21 01:30:15 +05:30
Lalit Chauhan
d8a562b647 Fix backport differences for 1.35 (remove WithOrigin and MarkAlpha) 2026-03-20 08:20:51 +00:00
yongruilin
b6ee759d8e Add slice and map union member support with tests
- Code generator: use len() != 0 for slice/map member extractors
  instead of != nil, so empty slice/map are treated as "not set"
- Add slice and map members to union test types (both discriminated
  and undiscriminated)
- Add test coverage for nil vs empty, ratcheting, and nil oldObj
  with slice/map members

Co-authored-by: Tim Hockin <thockin@google.com>
2026-03-20 08:17:42 +00:00
yongruilin
3d39627cd9 Use IsZero instead of IsNil for union ratcheting check
- Use reflect.ValueOf(oldObj).IsZero() instead of IsNil() so union
  validation works with non-nilable T (e.g. value types)
- Remove hasOldValue guard from inner loop conditionals; only check
  at the final ratcheting skip point
- Add doc comments explaining T is "any" rather than "comparable"
  because union members can be slices
- Add value-type subtests for Union and DiscriminatedUnion

Co-authored-by: Tim Hockin <thockin@google.com>
2026-03-20 08:16:18 +00:00
yongruilin
7b708cc7c6 Add DRA test for device attribute with no value set
Test that declarative validation catches a DeviceAttribute with no
value fields set, which was the original bug scenario where union
ratcheting incorrectly skipped validation for new map entries.
2026-03-20 08:16:18 +00:00
yongruilin
863ed56ac0 Add nil OldValue test coverage for union doc_tests
Add tests for Union, DiscriminatedUnion, and ZeroOrOneOfUnion
validating that nil oldObj (new map entry or newly-set pointer
field during update) does not skip validation via ratcheting.
2026-03-20 08:16:18 +00:00
yongruilin
9a39e5c49f Fix union validation ratcheting when oldObj is nil
When oldObj is nil (e.g. new map entry added during update), union
ratcheting incorrectly treats nil old and empty new as unchanged
membership, skipping validation entirely. Fix by checking
reflect.ValueOf(oldObj).IsNil() and disabling ratcheting when
oldObj is nil, so the new value is fully validated.

This affects Union, DiscriminatedUnion, and ZeroOrOneOfUnion
(via unionValidate).
2026-03-20 08:16:17 +00:00
Maciej Szulik
b0ec348c24 KEP-961: demote maxUnavailable feature in statefulset to off by default
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-03-20 08:53:35 +01:00
Kubernetes Prow Robot
a886e95855 Merge pull request #137807 from danwinship/automated-cherry-pick-of-#137501-origin-release-1.35
Automated cherry pick of #137501: Fix kube-proxy on systems with nft 1.1.3 (take 2)
2026-03-19 18:04:32 +05:30
George Angel
570f471d7c kubelet: fix sidecar restart after kubelet restart
When a pod has a sidecar (initContainer with restartPolicy: Always) with
a startupProbe, and one or more regular containers crash after a kubelet
restart, the kubelet fails to restart the regular containers. RestartCount
stays at 0 indefinitely.

When ChangeContainerStatusOnKubeletRestart is disabled (default in v1.35),
the prober worker skips seeding probe results for containers that predate
the kubelet restart. For a sidecar with a startupProbe this means
startupManager.Get() returns found=false permanently. In
computeInitContainerActions, the sidecar Running case breaks out early at
the !found check, leaving podHasInitialized=false. computePodActions then
returns early at the !hasInitialized guard without restarting the crashed
regular containers.

Fix: when the gate is off and a restartable init container's startup probe
is being seeded for the first time after a kubelet restart, check the
container's Started field in the pod status. If Started=true, the sidecar
had already passed startup before the restart, so seed the startup manager
with Success. This allows computeInitContainerActions to detect pod
initialization via the sidecar Running path without altering readiness or
liveness probe seeding behaviour.

Add and update tests to cover the fix:
- worker unit tests for sidecar startup/readiness/liveness restart behaviour
- e2e node regression test for sidecar with startupProbe across kubelet restart

Fixes: https://github.com/kubernetes/kubernetes/issues/136910
2026-03-19 19:08:41 +08:00