LWKD logo

Last Week in Kubernetes Development

Stay up-to-date on Kubernetes development in 15 minutes a week.


View LWKD on GitHub

Week Ending April 30, 2023

Developer News

In Memoriam: Carolyn Van Slyck, Kubernetes, CNCF, and Porter contributor.

Last week we held the Kubernetes Contributor Summit, which included many discussion sessions(Notes). Big takeaways from this include the revival of the LTS Working Group, as well as discussions on using golangci-lint and how we deal with having many repositories.

Release Schedule

Next Deadline: 1.28 Cycle Begins, May 15th

A new release cycle is starting, with its associated deadlines and plans. The first one coming up is Production Readiness freeze on June 8th. In the meantime, happy hacking!

Shortly before Kubecon we released Patch versions 1.27.1(yes, already), 1.26.4, 1.25.9, 1.24.13. These include Golang updates, runc updates to fix several CVEs, and other fixes listed below.

With the changes to the E2E testing framework, you need to update how you write your tests. Good news, the updates make testing easier and more consistent.

#115843: Remove/Withdraw NetworkPolicy Status

Originally added in 1.24, the alpha Status field on NetworkPolicy objects is being withdrawn. This was created as a place for network policy plugins to communicate status data, especially errors in policy configuration that were specific to that one provider, out to users. While this was a good goal, the project never really gained much steam and in the interim there have been other options added/popularized such as admission webhooks which cover a lot of the same use cases. SIG-Network may revisit this idea in the future if a more concrete use case with buy-in from the providers is found. But for now if you’ve been using this field either as a policy provider or a user tool consuming it, you can remove that code.

#117558: Remove support for EndpointsLeases and ConfigMapsLeases lock from leader election

We have reached the final phase of the migration of leader elections from the older style to the new Leases system. Originally added way back in Kubernetes 1.12, the Leases API is a high-performance system for managing presence signals, originally for kubelet heartbeats and later extended to other areas. This was later added to the suite of backend supported by client-go’s leader election library as the same performance benefits that made it useful for node heartbeats also reduced the overhead of leader elections while also making them less likely to jam. Over the past few years, the client-go team has worked to migrate toward this being the only option, to reduce the maintenance burden and generally encourage people to use the obviously better thing. This took the form of adding dual-system migration plugins to allow upgrading from the older systems to Leases, and then a gradual removal of the old plugins, starting with the original single-mode ones and now the migration plugins as well.

In concrete terms, this means that all services using the leader election library, such as almost all Operators, that compile against future releases of client-go will only be able to use Leases mode. If you maintain an Operator, now would be a good time to review your upgrade documentation to show people how to handle those upgrades safely, and to make sure you’re switched over to Leases!

Other Merges

ContextualLogging Migrations: NodeResources, PodTopologySpread, Preemption, and write NamespacedName consistently, pod-security-admission

Bug Fixes in the following areas, most of which are included in the recent patch releases: kube-openapi, scheduler performance, discovery-content-type, strategic merge, CRD conversion, APIservice, TopologyCache, TopologyAwareHints, PreEnqueue plugin execution, http header probes, kubectl-convert, APIserver shutdown, UID authentication, kubelet pod cache, pod resource checks, volume detach, mount points


Version Updates

Last Week In Kubernetes Development (LWKD) is a product of multiple contributors participating in Kubernetes SIG Contributor Experience. All original content is licensed Creative Commons Share-Alike, although linked content and images may be differently licensed. LWKD does collect some information on readers, see our privacy notice for details.

You may contribute to LWKD by submitting pull requests or issues on the LWKD github repo.