Commit Graph

137087 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
cd90f1a01c Merge pull request #139233 from rahulbabu95/automated-cherry-pick-of-#138736-upstream-release-1.36
Automated cherry pick of #138736: fix: avoid panic on services with empty IPFamilies
2026-06-08 16:34:10 +05:30
Kubernetes Prow Robot
38e4ee021d Merge pull request #139228 from aramase/automated-cherry-pick-of-#139045-upstream-release-1.36
Automated cherry pick of #139045: fix(csi): preserve mount dir when NodePublish fails on a remount
2026-06-08 16:34:03 +05:30
Kubernetes Prow Robot
d52dde2e43 Merge pull request #139211 from ashvindeodhar/automated-cherry-pick-of-#139040-upstream-release-1.36
Automated cherry pick of #139040: DRA: account for shared devices when rebuilding counters
2026-06-08 16:33:55 +05:30
Kubernetes Prow Robot
7949d48093 Merge pull request #139136 from gnufied/automated-cherry-pick-of-#138981-upstream-release-1.36
Automated cherry pick of #138981: Improve performance characteristic of selinux metric emission
2026-06-08 16:33:47 +05:30
Kubernetes Prow Robot
ba80304d08 Merge pull request #138988 from pohly/automated-cherry-pick-of-#138885-origin-release-1.36
Automated cherry pick of #138885: DRA: fix AllocationModeAll with consumed counters
2026-06-08 16:33:39 +05:30
Kubernetes Prow Robot
86ce997ef5 Merge pull request #139192 from liggitt/env-binary-1.36
[1.36] Restore ability to plumb binary data through envvar values
2026-06-08 15:13:10 +05:30
Kubernetes Prow Robot
8090133843 Merge pull request #138871 from BenTheElder/1.36-1.26.3
release-1.36: upgrade go to 1.26.4
2026-06-04 16:57:46 +05:30
Benjamin Elder
088d4d9d86 upgrade go to 1.26.4 2026-06-03 12:06:24 -07:00
Kubernetes Prow Robot
20cb5a2243 Merge pull request #139329 from kannon92/automated-cherry-pick-of-#139287-upstream-release-1.36
Automated cherry pick of #139287: batch/job: Fix scheduling directives mutation for not-yet-started suspended Jobs
2026-06-01 19:00:50 +05:30
Kevin Hannon
0f0c734c52 batch/job: Fix scheduling directives mutation for not-yet-started suspended Jobs
When MutableSchedulingDirectivesForSuspendedJobs feature gate is
enabled, it overwrites the notStarted check with a stricter condition
requiring the JobSuspended=True condition. This rejects mutations on
suspended Jobs that have never started but whose JobSuspended condition
has not yet been set by the job controller, breaking external
controllers like MultiKueue that inject scheduling directives
immediately after creating a suspended Job.

Preserve the notStarted path as an OR condition alongside the
JobSuspended condition check, restoring pre-1.36 behavior for
not-yet-started Jobs while maintaining the new relaxation for
previously-started Jobs.

Kubernetes-issue: https://github.com/kubernetes/kubernetes/issues/139281
2026-05-27 10:28:13 -04:00
Rahul
c106d15f1f fix(endpoint): avoid panic on services with empty IPFamilies
Accessing svc.Spec.IPFamilies[0] without a bounds check panics when a
service reaches the controller with an empty IPFamilies field. This can
happen via watch events: the apiserver's defaultOnRead decorator populates
IPFamilies on GET/LIST but not on watch (cachingObject wrapping bypasses
the type assertion).

Restore the inference logic removed in #130101: fall back to ClusterIP
for headful services and pod IP for headless services.

Signed-off-by: Rahul <rahulbabu95@gmail.com>
2026-05-21 13:36:04 -07:00
Anish Ramasekar
6c684db7a3 fix(csi): preserve mount dir on NodePublish error during remount
On a remount (e.g. CSIDriver.spec.requiresRepublish=true), the volume is
already published and the pod is observing the existing bind mount.
Removing the mount dir on a NodePublish error left the pod with stale
contents that subsequent successful republishes could not repair.
2026-05-21 14:15:31 -05:00
Anish Ramasekar
238883be8d feat(volume): add IsRemount to MounterArgs
Thread the reconciler's existing isRemount signal into MounterArgs so
volume plugins can distinguish an initial publish from a republish
(e.g. CSIDriver.spec.requiresRepublish=true). No behavior change.
2026-05-21 14:15:29 -05:00
Ashvin Deodhar
37349f7bac DRA: account for shared devices when rebuilding counters
When DRAConsumableCapacity is enabled, multi-allocatable device
 allocations are tracked via AllocatedSharedDeviceIDs and
 AggregatedCapacity instead of AllocatedDevices. The incubating and
 experimental allocators only checked AllocatedDevices when rebuilding
 available SharedCounters, so committed shared allocations could be
 missed across scheduling cycles.

 Add an internal IsDeviceAllocated helper that checks all committed
 allocation-state sources, and use it when reconstructing consumed
 counters. Add a regression test for a fresh allocator seeing committed
 shared-device counter consumption.
2026-05-20 22:01:07 -07:00
Jordan Liggitt
65cef41e78 Restore ability to plumb binary data through envvar values 2026-05-20 13:53:31 -04:00
Hemant Kumar
314bf620c9 Only emit non-dupicated values as metrics 2026-05-18 09:46:32 -04:00
Hemant Kumar
46a0b049e1 Optimize how deletions are handled 2026-05-18 09:46:32 -04:00
Hemant Kumar
aee40ed77b Improve performance characteristic of selinux metric emission 2026-05-18 09:46:32 -04:00
takonomura
d2b5ca01c7 DRA: fix AllocationModeAll with consumed counters
When collecting all matching devices for AllocationModeAll, the allocator did not record the source pool on the candidate device. Devices with consumed counters use that pool when checking shared counter availability, which caused kube-scheduler to panic.

Set the pool on all-devices candidates in the stable, incubating, and experimental allocators, and add a shared regression test for AllocationModeAll with consumed counters.
2026-05-12 12:07:04 +02:00
Kubernetes Release Robot
102c4a4f87 Update CHANGELOG/CHANGELOG-1.36.md for v1.36.1 2026-05-12 10:04:25 +00:00
Kubernetes Release Robot
756939600b Release commit for Kubernetes v1.36.1 v1.36.1 2026-05-12 09:51:33 +00:00
Kubernetes Prow Robot
710a59eee8 Merge pull request #138958 from neolit123/automated-cherry-pick-of-#138957-origin-release-1.36
Automated cherry pick of #138957: kubeadm: use dedicated ClusterRole for apiserver kubelet client
2026-05-11 17:53:51 +05:30
Micah Hausler
b0b25e8ade kubeadm: use dedicated ClusterRole for apiserver kubelet client
Signed-off-by: Micah Hausler <mhausler@amazon.com>
2026-05-11 11:25:19 +02:00
Kubernetes Prow Robot
493c5a49de Merge pull request #138500 from soltysh/automated-cherry-pick-of-#138499-upstream-release-1.36
Automated cherry pick of #138499: Ensure the path inside the container is correctly handled
2026-05-09 05:15:19 +05:30
Kubernetes Prow Robot
0c872bc694 Merge pull request #138535 from pohly/automated-cherry-pick-of-#137958-origin-release-1.36
Automated cherry pick of #137958: localupcluster: properly query /readyz and /healthz, change cluster modification procedure
2026-05-09 01:57:18 +05:30
Kubernetes Prow Robot
cc1b390ed4 Merge pull request #138590 from BenTheElder/fix-zfs-136
release-1.36: re-introduce cadvisor ZFS support to kubelet
2026-05-08 23:55:19 +05:30
Kubernetes Prow Robot
294c4333d2 Merge pull request #138859 from alaypatel07/automated-cherry-pick-of-#138530-upstream-release-1.36
Automated cherry pick of #138530: KEP-5304:  DecodeMetadataFromStream only skips metadata entries with unknown API versions
2026-05-08 21:05:26 +05:30
Kubernetes Prow Robot
3aa1cf5ec2 Merge pull request #138825 from alaypatel07/automated-cherry-pick-of-#138394-upstream-release-1.36
Automated cherry pick of #138394: KEP-5304, fix: merge same request metadata across drivers
2026-05-08 21:05:18 +05:30
Kubernetes Prow Robot
29952022e7 Merge pull request #138802 from neolit123/automated-cherry-pick-of-#138692-origin-release-1.36
Automated cherry pick of #138692: kubeadm: skip LocalAPIEndpoint defaulting on worker join
2026-05-08 17:25:17 +05:30
Alay Patel
2bd86062e7 KEP-5304: DecodeMetadataFromStream only skips metadata entries with unknown API versions
Signed-off-by: Alay Patel <alayp@nvidia.com>
2026-05-07 09:25:33 -04:00
Or Shoval
b643483ccc DRA: merge same request metadata across drivers
When multiple driver metadata files contain the same request name, keep a
single request entry and merge devices into it. This avoids duplicate request
objects when count>1 allocations are split across drivers.

Assisted-by: Cursor (codex-5.3)
Signed-off-by: Or Shoval <oshoval@redhat.com>
2026-05-06 14:28:27 -04:00
Seena Fallah
f0d0ff95d2 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:19 +02:00
Kubernetes Prow Robot
5cdb448736 Merge pull request #138635 from aojea/automated-cherry-pick-of-#138571-upstream-release-1.36
Automated cherry pick of #138571: kube-proxy: don't do full periodic syncs on large cluster mode
2026-05-06 06:40:20 +05:30
Kubernetes Prow Robot
e9d3bc8634 Merge pull request #138682 from neolit123/automated-cherry-pick-of-#138449-origin-release-1.36
Automated cherry pick of #138449: kubeadm: use the localAPIEndpoint for all API calls in 'init'
2026-05-05 20:34:23 +05:30
Kubernetes Prow Robot
76cd418bc2 Merge pull request #138603 from princepereira/automated-cherry-pick-of-#138000-upstream-release-1.36
Automated cherry pick of #138000: Delete remote endpoint if it has same ip as local endpoint in the system.
2026-05-05 08:02:21 +05:30
Lubomir I. Ivanov
100bf5d499 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:35:31 +02:00
Antonio Ojea
0008353cef 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:33 +00:00
Prince Pereira
a45cef81d6 Delete remote endpoint if it has same ip as local endpoint in the system. 2026-04-26 09:55:19 +00:00
Prince Pereira
cbb38cd5ce Delete remote endpoint if it has same ip as local endpoint in the system. 2026-04-26 09:55:19 +00:00
Benjamin Elder
28dd6f2757 hack/update-vendor.sh 2026-04-24 21:41:50 -07:00
Benjamin Elder
529473cc4d register zfs cadvisor plugin 2026-04-24 21:40:50 -07:00
Kubernetes Prow Robot
3e8d44c79c Merge pull request #138538 from ahrtr/automated-cherry-pick-of-#138403-upstream-release-1.36
Automated cherry pick of #138403: kubeadm: Evaluate etcd cluster health using quorum
2026-04-23 18:46:49 +05:30
Benjamin Wang
07144e39cd Add a (*Client) addEndpoint method
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2026-04-23 09:14:21 +01:00
Benjamin Wang
98ecfc63fe Evaluate etcd cluster health using quorum
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2026-04-23 09:14:21 +01:00
Ed Bartosh
891a905031 test/localupcluster: stop all components before starting replacements
Modify() was replacing components one at a time: stop X, start X, stop Y,
start Y, ... in version-skew order (apiserver last on downgrade). This
caused a crash during downgrade: KCM-1.35 started against the still-
running apiserver-1.36, passed its /healthz, and then immediately lose
its connection when apiserver-1.36 was killed by the localupcluster.
KCM-1.35 would reconnect to the not-yet-ready apiserver-1.35, hit a
403 RBAC error during controller initialization, and exit — because that
initialization phase does not retry on RBAC errors.

Fix by splitting Modify() into two phases:

  Phase 1 — stop all components to be replaced, in reverse startup order
  (kube-proxy down to apiserver), so dependent components release their
  connections before the apiserver is stopped.

  Phase 2 — start all replacement components in standard startup order
  (apiserver first), so each component connects to a fully-ready apiserver.
2026-04-23 08:27:36 +02:00
Ed Bartosh
1d850e8427 localupcluster: set readiness polling interval to 1 second
Without an explicit interval, Gomega's default polling is very frequent,
generating a large volume of /readyz and /healthz requests in the component
logs. Set an explicit 1-second interval to reduce noise while still
detecting readiness promptly.
2026-04-23 08:27:36 +02:00
Ed Bartosh
62d05adc8b localupcluster: properly query /readyz and /healthz
Despite being called checkReadiness, the function was only performing
a liveness check: /healthz was polled over HTTPS without verifying the
certificate or authenticating, and any HTTP response was accepted as a
signal that the component was up. The only exception was kubelet,
where a node readiness check was added on top.

Switched to /readyz for kube-apiserver and kube-scheduler,
kept /healthz for the rest and require HTTP 200 in all cases.

This ensures that the kube-apiserver is fully initialized before
dependent components are started.
2026-04-23 08:27:36 +02:00
Kubernetes Release Robot
745e271a9c Update CHANGELOG/CHANGELOG-1.36.md for v1.36.0 2026-04-22 14:04:16 +00:00
Kubernetes Release Robot
ecf6decece Release commit for Kubernetes v1.36.0 v1.36.0 2026-04-22 13:51:51 +00:00
Maciej Szulik
b2ba48e510 Escape path inside the container
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-04-21 10:53:58 +02:00