Files
kubernetes-conventions/changelog/2026-04-30.md
T
2026-04-30 14:06:51 +00:00

3.3 KiB

Kubernetes Digest — 2026-04-30

Highlights

kube-proxy: No periodic full syncs in large cluster mode (#138571)

  • Author: @aojea
  • Impact: High — eliminates periodic traffic disruption on clusters with >1000 endpoints
  • Discussion: Dan Winship suggested reducing to 24h; Aojea argued any periodic disruption is unacceptable. Clean elimination won over frequency reduction.
  • Scope: iptables mode only (nftables improvement planned)
  • Release note: kube-proxy does not perform full-sync operations when operating in large cluster mode (more than 1000 endpoints)

kubeadm: Use localAPIEndpoint for all API calls in init (#138449)

  • Author: @neolit123
  • Impact: Unblocks CAPI infra providers (CAPA, CAPG) that provision LB after kube-apiserver starts
  • Discussion: Multiple rounds of E2E testing caught subtle bugs — first iteration broke kubeadm join after node replacement because bootstrap token config was rewritten with local endpoint
  • Pattern: Init ordering dependencies in distributed bootstrapping are only catchable with full provider E2E, not unit tests

client-go reflector: Object count in trace (#138576)

  • Author: @p0lyn0mial
  • Impact: Better debugging of slow list operations — count shown inline with timing
  • Before: Two trace lines needed correlation
  • After: Single "Objects listed" step shows count + duration

Declarative Validation: +k8s:update list/map support (#138472)

  • Author: @aaron-prindle
  • Impact: DV framework extends to compound types with NoAddItem/NoRemoveItem payloads
  • Significance: Next step toward DV as standard validation for all API types

Regression Fixes

kubelet ZFS cadvisor plugin (#138587)

  • Author: @BenTheElder
  • Fix: Re-introduced accidentally dropped cadvisor ZFS support
  • Release note: Fixed kubelet failure starting on ZFS due to missing cadvisor plugin

kubectl column alignment (#138550)

  • Author: @rawkode
  • Fix: Pre-scan computes max cell widths before first tabwriter flush
  • Cause: Periodic flush (from #138023) misaligned when wide cells appeared after row 100
  • Preserves: Memory/CPU wins (135 allocs/op, O(1) memory across 500k rows)

Cleanup & GA Progress

PR What Why
#138583 Drop StructuredAuthenticationConfiguration gate GA since 1.34, removed for 1.37
#138669 DRA DeviceTaintRule CRUD E2E Required for DRA GA conformance
#138451 StatefulSet reconcile skip metrics registration Metrics were silently unregistered
#138626 Remove unused kubectl help command Dead code since Cobra built-in
#138708 Scheduler queue hints cleanup Gate locked since 1.34

Dependencies

  • CoreDNS → v1.14.3 (#138536)
  • cri-tools → v1.36.0 (#138613)

Patterns to Extract

  • Elimination over reduction: When periodic operations are disruptive, eliminate them entirely rather than reducing frequency. "Once a day" is still a disruption window someone will hit.
  • Provider E2E catches init ordering: Unit tests can't catch distributed bootstrapping races. Full CAPI provider E2E suites are the only reliable way to validate init-phase changes.
  • Trace observability wins: Adding context (counts, keys) to existing trace points costs nothing but saves debugging hours. The reflector already had the count — it just wasn't printing it at the right time.