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 March 14, 2021

Developer News

We are in code freeze.

The kubernetes-csi/drivers repo has been archived, since the various CSI drivers have their own repos now.

Please fill out the contributor survey! The project needs this information so we know what parts of Kubernetes’ contributor infrastructure and processes to work on for the next year.

Release Schedule

Next Deadline: Test Freeze, March 24

We are currently in Code Freeze, and the 1.21 release has 49 tracked enhancements. If your enhancement isn’t on there, file an exception. You should also have already started on docs for your features and opened an incomplete docs PR. Release Lead Nabarun Pal runs down the sequence of events. We will hit Test Freeze soon, which means you stop trying to expand test coverage for the new release and instead focus on just troubleshooting the existing test failures.

Speaking of which, these two chronic test issues need more eyeballs; folks are working on them but don’t seem to be near a resolution:

Release Burndowns have started, so if you’re a SIG lead, it’s helpful if you attend at least one a week, particularly if you own current exceptions or failing test jobs.

1.20.5, 1.19.9, 1.18.17 patch releases are due out March 17th. These will include backports of the NUMA sockets and EndpointSlice cache coherency fixes.

Structured Logging for Kubelet

Rather than list the large (and awesome) number of PRs over the past few weeks upgrading the Kubelet from old-school printf-style logging to the new structured syntax, we are going to feature them all together as a group. The overall goal of moving to structured logging is to make the related information on each log line be more accessible to the logging system and its formatters. For the simple text-based format, this ends up looking fairly similar in the end, but now we can output directly to JSON which allows for advanced querying in many log data platforms.

An example of converting an unstructured to structured log:

- klog.Errorf("Startup probe already exists! %v - %v",
-     format.Pod(pod), c.Name)
+ klog.ErrorS(nil, "Startup probe already exists for container",
+     "pod", klog.KObj(pod), "containerName", c.Name)

While the Kubelet was a particular focus for 1.21, the overall goal is to move all logging to the structured format over the next few releases.

#98946: Upgrade kustomize-in-kubectl to v4.0.5

An upgrade that has been a long time in the works, the vendored copy of Kustomize is jumping all the way from v2.0.3 to v4.0.5. This applies to both the kubectl kustomize command as well as the various kubectl -k options on other commands. While the new version brings many improvements, it’s also jumping across two major revisions which did include backwards-incompatible changes. If you make heavy use of the built-in Kustomize, you may want to either test with a newer standalone Kustomize before upgrading or set up Kustomize v2.0.3 on its own and switch to using that now so as to smooth out your upgrade process.

#96968: Add default namespace labels to all namespaces for selectors

Namespace selectors are used across many Kubernetes types, both in-tree and community operators. A long-running frustration has been that the second-most common “selector” (after “all namespaces”) is “only namespace X”. Previously this usually resulted in a quick manual update of the namespace labels with name: whatever. Now this will be handled automatically for all namespace objects with a kubernetes.io/metadata.name label.

Other Merges


Version Updates

Last Week In Kubernetes Development (LWKD) is a product of some members of the Kubernetes project, but is not an official publication of the Kubernetes project or the CNCF. 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.