Commit Graph
142538 Commits
Author SHA1 Message Date
kubernetes-prow[bot] 5ea567004b Merge pull request #143410 from serathius/watchcache-selector-on-watcher
Watchcache selector on watcher
2026-10-26 12:55:59 +00:00
kubernetes-prow[bot] fb59ba2a2a Merge pull request #143356 from SEPURI-SAI-KRISHNA/fix-kubeadm-etcd-listmembers-retry
kubeadm: retry etcd member listing on transient errors
2026-10-26 12:55:48 +00:00
kubernetes-prow[bot] 184f9f8000 Merge pull request #143409 from serathius/watchcache-snapshot-resource-version
Watchcache snapshot resource version
2026-10-26 11:58:17 +00:00
kubernetes-prow[bot] 3437fce9c1 Merge pull request #143407 from serathius/etcd-getCurrentState
Make getCurrentState just a function and defer callers to wrap it if needed
2026-10-26 11:58:07 +00:00
Marek Siarkowicz c2252902d2 Add selector onto watcher 2026-10-26 12:16:45 +01:00
kubernetes-prow[bot] e0f3d4ec95 Merge pull request #143365 from alkaid040492/dra-watch-stop
DRA client: stop converting watch when Stop is called
2026-10-26 11:10:09 +00:00
kubernetes-prow[bot] abc76a70fd Merge pull request #143353 from serathius/watchcache-watch-initial-events-init
Pass initial events through input channel preparing for moving the initial event fetching to separate goroutine
2026-10-26 11:10:00 +00:00
SEPURI-SAI-KRISHNA 6419e1e0ad kubeadm: retry etcd member listing on transient errors
listMembers polls MemberList until the EtcdAPICall timeout, but its
condition returned the error, which stops the poll immediately. One
transient error failed GetMemberID and ListMembers, breaking control
plane join right after adding a learner, and etcd member removal on
reset. Return false, nil like the other etcd retry loops.

Now that the poll runs to the deadline, say that the retry timeout was
exhausted and keep the last etcd error as the cause.
2026-10-26 16:26:30 +05:30
Marek Siarkowicz f11e2e4017 Use resource version from snapshot 2026-10-26 11:09:34 +01:00
Marek Siarkowicz 1c5e68ca9e Make getCurrentState just a function and defer callers to wrap it if needed 2026-10-26 10:49:46 +01:00
kubernetes-prow[bot] c4dd39a0e6 Merge pull request #143276 from serathius/watchcache-unify-reading-snapshot-list-get
Watchcache unify reading snapshot list get
2026-10-26 09:41:54 +00:00
kubernetes-prow[bot] b4cf73f449 Merge pull request #143376 from yogeshbendre/fix-devicetoleration-empty-effect
dra: honor empty effect in DeviceToleration for NoExecute eviction
2026-10-26 08:00:10 +00:00
kubernetes-prow[bot] 623dec64e7 Merge pull request #143336 from antcybersec/remove-gate-allowoverwritetgps
pkg/features: remove deprecated feature gate AllowOverwriteTerminationGracePeriodSeconds
2026-10-26 03:14:05 +00:00
kubernetes-prow[bot] cb3caf7368 Merge pull request #143335 from antcybersec/remove-gate-execprobetimeout
pkg/features: remove GA feature gate ExecProbeTimeout
2026-10-26 02:18:05 +00:00
kubernetes-prow[bot] 765dd1d145 Merge pull request #143337 from antcybersec/remove-gate-systemdwatchdog
pkg/features: remove GA feature gate SystemdWatchdog
2026-10-24 15:00:02 +00:00
yogeshbendre 7dacc57ce2 dra: honor empty effect in DeviceToleration for NoExecute eviction
DeviceToleration.effect documents that an empty value matches all taint
effects, and resourceclaim.ToleratesTaint implements that. The eviction
controller however skipped every toleration whose effect was not exactly
NoExecute before calling it, so a toleration without effect did not
protect the pod from a NoExecute taint.

Accept an empty effect as well, and add a test case.

Signed-off-by: yogeshbendre <07.yogesh@gmail.com>
2026-10-24 19:38:59 +05:30
Ania Borowiec 1027685136 Add integration test that checks if NNN is set during preemption and cleared after binding in podgroup preemption (#142143) 2026-10-24 08:34:04 +00:00
alkaid040492 73169fc4c7 DRA client: stop converting watch when Stop is called
In watchSomething.run, the stopChan case of the select used "break",
which only leaves the select, not the enclosing for loop. After Stop,
run kept reading and converting events from the upstream watch and
never closed its result channel unless the upstream closed its own
channel first.

Return instead, which runs the deferred close of the result channel.
2026-10-24 14:59:52 +11:00
kubernetes-prow[bot] 2d50144abf Merge pull request #143358 from ivanvc/etcd-3.7.3-sdk
etcd: Bump etcd 3.7.3 SDK
2026-10-23 22:17:40 +00:00
kubernetes-prow[bot] 820ed7ad21 Merge pull request #143237 from yongruilin/dv-eq-restartpolicy
Migrate template restartPolicy to declarative validation
2026-10-23 22:17:26 +00:00
kubernetes-prow[bot] 89144b11d2 Merge pull request #143221 from rishabhraj1572/patch-3
kubelet: reject unseparated hash suffixes in env files
2026-10-23 19:45:11 +00:00
kubernetes-prow[bot] 331dee13cd Merge pull request #142805 from bart0sh/PR252-kubelet-remove-context-TODO
kubelet: narrow down context.TODO() and klog.TODO()
2026-10-23 19:45:03 +00:00
Ivan Valdes 09048f5ccf Bump etcd 3.7.3 SDK 2026-10-23 10:55:18 -07:00
kubernetes-prow[bot] 3a30613701 Merge pull request #143147 from SEPURI-SAI-KRISHNA/fix-kubelet-log-compress-close
kubelet: keep rotated log when compressing it fails at close
2026-10-23 17:51:08 +00:00
kubernetes-prow[bot] b5a25d613d Merge pull request #142655 from dims/kubelet-cel-free-authorizer
apiserver: keep CEL out of the webhook authorizer and authorizerfactory
2026-10-23 17:51:00 +00:00
kubernetes-prow[bot] fbd477a8bf Merge pull request #143352 from serathius/etcd-refactor
Decouple updateState and updateOnce from store and span
2026-10-23 16:13:25 +00:00
Danki Hong 5ffb754375 kubectl: separate scale flags from runtime options (#142796)
* kubectl: separate scale flags from runtime options

* kubectl: remove unused scale fields

* kubectl: address scale errcheck hints
2026-10-23 16:13:15 +00:00
Marek Siarkowicz b5cca736ab Pass initial events through input channel preparing for moving the initial event fetching to separate goroutine 2026-10-23 17:02:07 +02:00
kubernetes-prow[bot] 95f9a388b7 Merge pull request #143183 from jdzikowski/cpg-placement-feasible-msg
scheduler: Improve PlacementFeasible's status message
2026-10-23 14:45:16 +00:00
Jarosław Dzikowski 20a7792e27 Report scheduled, unschedulable and not-evaluated counts in PlacementFeasible status
The GangScheduling PlacementFeasible status reported scheduled and
remaining children:

  scheduling policy's minimum threshold (2) cannot be satisfied: 0 scheduled, 1 remaining

These counts don't add up to the threshold, which reads as if the group
had too few members. Report the scheduled children, the children
evaluated as unschedulable and the children not evaluated yet instead:

  scheduling policy's minimum threshold (2) cannot be satisfied: 0 scheduled, 1 unschedulable, 1 not-evaluated

To track the unschedulable count, add an Unschedulable field to
PlacementProgress and increment it alongside Scheduled in the pod group
and composite pod group scheduling loops.
2026-10-23 13:50:10 +00:00
kubernetes-prow[bot] f81cad6d4a Merge pull request #143338 from hakman/scl-tech-leads
Add hakman and sbueringer as SIG Cluster Lifecycle tech leads
2026-10-23 13:46:00 +00:00
kubernetes-prow[bot] 4d3dba8098 Merge pull request #142136 from iomarsayed/fix-assume-perf-penalty-for-pg-and-cpg-scheduling
Fix assume performance penalty for single podgroups and composite podgroups
2026-10-23 13:45:51 +00:00
kubernetes-prow[bot] ee3d3cd315 Merge pull request #143339 from palnabarun/update-go-1.27.3
Bump images and versions to Go 1.27.3 and update distroless-iptables
2026-10-23 12:59:57 +00:00
kubernetes-prow[bot] 4e850a936e Merge pull request #142935 from wojtek-t/optimize_watch_event_allocations
Optimize watch event allocations
2026-10-23 12:59:48 +00:00
kubernetes-prow[bot] b21510de61 Merge pull request #143304 from serathius/watchcache-watch-interval-rv
Enforce that RV in watch cache interval should not be decreasing and use that to simplify watch RV computation
2026-10-23 12:07:31 +00:00
Marek Siarkowicz ca2af7c89f Decouple updateState and updateOnce from store and span 2026-10-23 13:57:11 +02:00
iomarsayed 3fd3d7e5b7 Fix assume performance penalty for single podgroups and composite podgroups scheduling 2026-10-23 11:51:17 +00:00
Dominik Marciński 674b5161f0 scheduler: Parametrize disruption metric by victim type and unify standalone and workload pod victims ordering (#142955)
* scheduler: rank pods from disruption mode Single groups as individual preemption victims

* scheduler: label preemption_workload_disruptions by victim type

Record workload preemption disruptions per preemption unit type (pod,
podgroup, compositepodgroup) instead of a single count of group-related
units.

- PreemptionVictim gains Type(); PreemptionCandidate replaces
  NumPodGroupDisruptions() with NumDisruptionsByVictimType().
- The unit type is the topmost DisruptionMode=All group, or pod for
  pods evicted on their own (standalone or in DisruptionMode=Single
  groups). isGroupVictim is removed.
- The metric stays workload-preemptor only: legacy pod preemption keeps
  its own metrics until naked pods move to the workload scheduling cycle.
2026-10-23 10:39:53 +00:00
kubernetes-prow[bot] 946be53a07 Merge pull request #142092 from jdzikowski/cpg-maxtreedepth
scheduler: Drop redundant hierarchy depth and cycle checks in helper traversals
2026-10-23 10:39:44 +00:00
kubernetes-prow[bot] dc5eeea813 Merge pull request #143347 from saschagrunert/kubeadm-windows-copydir
kubeadm: Don't prompt in the Windows CopyDir
2026-10-23 09:27:55 +00:00
kubernetes-prow[bot] 6dcc6f31c5 Merge pull request #143325 from serathius/watchcache-snapshotter-compact
Track compaction RV in snapshotter and keep last snapshot behind compaction window
2026-10-23 09:27:47 +00:00
Jarosław Dzikowski 338b61c3d3 scheduler: drop redundant hierarchy depth and cycle checks in helper traversals
In a CompositePodGroup hierarchy, each group has at most one parent:
- Cycles are caught during upward root resolution (workloadForest,
  HierarchyTracker, cache.FindRootGroup), so a cyclic hierarchy has no
  root and never enters the scheduling cycle.
- Hierarchy depth (WorkloadMaxTreeDepth) is validated once at the start
  of each pod group scheduling cycle in validatePodGroupSubtree.

Consequently, traversals that run during or after the scheduling cycle
don't need their own WorkloadMaxTreeDepth bounds or cycle checks:
- GetPodGroupStates drops its depth check without adding a cycle check,
  as it runs after root resolution and validatePodGroupSubtree.
- TraverseHierarchyUp drops its WorkloadMaxTreeDepth bound and visited
  set, as preemption only walks up from pods that are already scheduled.

Traversals in the scheduling queue, which run before the scheduling
cycle, keep cycle detection:
- getRootLookupInfoForParentCPG replaces sets.Set[fwk.EntityKey] with a
  visited slice (slices.Contains) seeded with the starting group key,
  matching cache.FindRootGroup and HierarchyTracker, and logs the full
  cycle path.
- getLeafPodGroups and buildPodGroupInfo keep sets.Set[fwk.EntityKey]
  without enforcing WorkloadMaxTreeDepth.
2026-10-23 09:08:55 +00:00
Wojciech Tyczyński 40791d69f5 Add end-to-end benchmark comparing Pod List and WatchList 2026-10-23 07:57:38 +00:00
Wojciech Tyczyński 71a0c36bbe Avoid DeepCopy for watch events
# Conflicts:
#	staging/src/k8s.io/apiserver/pkg/registry/generic/registry/decorated_watcher.go
#	staging/src/k8s.io/apiserver/pkg/registry/generic/registry/decorated_watcher_test.go
#	staging/src/k8s.io/apiserver/pkg/storage/cacher/cache_watcher_test.go
2026-10-23 07:57:27 +00:00
kubernetes-prow[bot] d5579952b3 Merge pull request #141014 from pravk03/fix-sandbox
Treat partially declared cpu and memory limits as unlimited in AggregateContainerLimits()
2026-10-23 07:19:34 +00:00
Sascha Grunert 2c373ec34d kubeadm: Don't prompt in the Windows CopyDir
xcopy prompts whether a non-existent destination is a file or a directory and
whether to overwrite existing files, and both prompts fail without an
interactive stdin. The first breaks TestCopyDir/success on Windows (exit status
2), the second would break the etcd data rollback, which copies over an existing
data dir. Pass /I and /Y so xcopy doesn't prompt.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2026-10-23 09:14:41 +02:00
Ciprian Hacman 7d8238dd50 Add hakman and sbueringer as SIG Cluster Lifecycle tech leads 2026-10-23 08:58:36 +03:00
Anant Kumar 9b67ff81a0 Remove GA feature gate SystemdWatchdog
Locked to default in 1.35, so 1.38 is the first release that can drop
it under the three-release emulation window. Nothing outside the
registration referenced it.
2026-10-23 09:01:29 +05:30
Anant Kumar b2c68cf95c Remove deprecated feature gate AllowOverwriteTerminationGracePeriodSeconds
Deprecated in 1.32, locked to false in 1.35 with a "remove in 1.38"
note. The soft-eviction override it guarded is already gone, so only
the registration was left.
2026-10-23 08:58:41 +05:30
Anant Kumar e0e863d284 Remove GA feature gate ExecProbeTimeout
The gate went GA in 1.20 and was locked to default in 1.35 with a
"remove in v1.38" note. Nothing reads it any more: the only references
left were its own registration.
2026-10-23 08:58:22 +05:30