LWKD logo

Last Week in Kubernetes Development

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

Subscribe
Mastodon
Twitter
RSS

View LWKD on GitHub

Week Ending July 9, 2023

Developer News

LWKD is looking for new/additional writers. We would love to have more folks who can help us produce LWKD, and add important coverage for Kubernetes developers, such as current KEPs or Kubernetes subprojects; volunteer on those issues.

Release Schedule

Next Deadline: Feature Blog Freeze, July 10

Monday was the deadline for Exception Requests; hope you didn’t miss it. You also need your blurbs for the Feature Blog prepared this week, and next week begins Code Freeze.

Patch releases for all supported versions are expected out this Wednesday. This will be the last patch set for 1.24; if you are still using 1.24, plan your upgrade now.

#116429: Add SidecarContainers feature

There have been many feature proposals under the banner of “official support for sidecar containers” but one has finally landed. As so often happens with contentious design areas, this proposal and PR takes a more minimalist stance on things. The core of the new feature is that if you add restartPolicy: Always to an init container, rather than the usual behavior of running to completion before the next init container launches it will just be left running until the pod is terminated. The KEP describes the future goals, to hopefully be merged as the feature progresses through our usual cycle, with the next big thing being support for lifecycle hooks and probes as with normal (non-init) containers.

The main obvious use case for this feature is tools like service meshes where a proxy daemon should be up before anything else and stay up until all related processes are gone. This has always been a bit dicey with the proxy running as a normal secondary container, as there wasn’t an easy way to ensure it would start first and PostStart lifecycle hooks could get fairly complex and situational. Another predicted use case is parallelizing complex initialization steps, running the steps until completion and then signaling the main container to start and sleeping forever.

If you’ve got anything in your stack you would call a “sidecar”, it’s definitely worth a look to see if this new feature can help streamline thing. And if you interact with the Pod state machine at all, get ready to consider some new edge cases!

#116720: Remove long/golang version information making short the default

A relatively standard post-deprecation cleanup but potentially one that may still catch folks unawares. Back in 2022, we deprecated the “long” kubectl version output. You know the one, the raw version.Info{...} struct output that made sense to Ge developers but no one else. It has now been fully removed in favor of the (until now) --short output which is much more user friendly. If you’ve been parsing out the Go struct data in some bash regexes for a funky script somewhere in a corner, now is a good time to dust it off and switch to kubectl version --output=json | jq ... instead.

Other Merges

Testing Cleanup: PSa labels in all tests, remove unused GCP test, verify-master fix, kubeadm migration, watch storage, delete NetworkPolicy tests, kubeadm DNS, TestPerPodSchedulingMetrics, storage cache test, scheduler performance, add levelrestricted test, OIDC integration

Promotions

Deprecated

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.