LWKD: Week Ending May 8, 2022
Last Week In Kubernetes Development
Week Ending May 8, 2022
Developer News
Kubernetes 1.24 "Stargazer" is released! Highlights of the new version include: signed release artifacts, volume expansion, migration of storage plugins to CSI, contextual logging, and IP collision avoidance. Dockershim has been removed and you may need to make changes to accommodate the new CNI version. Also, with the completion of 1.24, release branch fast-forward is live.
You have until May 13th (EU time) to register for the Contributor Summit. There's games and more for the Contributor Social, and SIGs should sign up for the Meet & Greet. You can also still propose an Unconference topic.
Patrick Ohly proposed that we employ linter checks earlier in the development process. This and other topics around improving reliability will get discussed at the Contributor Summit.
The May Community Meeting is deferred due to Kubecon EU.
Release Schedule
Next Deadline: 1.25 Cycle Starts, May 23rd
We are in the "time between releases", which is actually the time contributors should be thinking about "what can I realistically get done for 1.25". Enhancements Freeze is June 17th, so you want to have your development goals figured out before then.
Cherry Pick Deadline for the next patch releases is May 20th, so if you're going to Kubecon get your PRs done now.
Featured PRs
#109464: Use module mode when building/installing
With the Go 1.18 upgrade finally finished, we're reworked the build scripts to use module mode rather than GOPATH mode. This will allow better use of the new buildinfo API in Go. This feature stores a debug log inside each binary with information like build arguments, git state, and dependency versions, which can be read either via the new debug.ReadBuildInfo()
method from inside the binary or externally using go version -m /path/to/binary
. All together this should help track down unusual CI failures or other similar build state issues. If you've got your own build scripting, you might need to make similar updates and even if not required maybe try it out anyway.
#109443: Add Apply and ApplyStatus methods to dynamic ResourceInterface
The typed clients from client-go
have supported Server Side Apply helpers for a while now, but this PR adds the same kind of interface to the dynamic client. As more things switch to SSA, this keeps code a bit nicer to read than the previous approach of a Patch()
call with ApplyPatchType
.
Other Merges
- New NodeInclusionPolicies link together nodeAffinity with pod topology spread constraints
- The CSI driver client gets NodeExpandSecrets to handle auth for expansion requests
kubectl top pod --sum
can do totalskubectl describe
shows Topology Spread Constraints- Metrics now can use both weighted and timing-based histograms
- Kubelet will wait for ephemeral storage to be availble
- Handle
search .
in host resolv.conf files - Prevent ServiceIPStaticSubrange from creating duplicate IP addresses, and LoadBalancers from duplicating Node IPs
- Kubeadm will only taint control plane nodes in legacy mode
- Framework delete timout for PVs is 5 minutes, as documented
- Fix NeedResize on Windows
apiserver_watch_cache_initializations_total
removes the duplicatewatch_cache
from the metric name- Treat CRD metadata fields as known fields
- Display MaxUnavailable when describing StatefulSets
- API Server logs use of the watch cache
Deprecated
Old beta feature gates that graduated to GA in 1.23 or earlier and were unconditionally enabled have been removed: CSIServiceAccountToken, ConfigurableFSGroupPolicy, EndpointSlice, EndpointSliceNodeName, EndpointSliceProxying, GenericEphemeralVolume, IPv6DualStack, IngressClassNamespacedParams, StorageObjectInUseProtection, TTLAfterFinished, VolumeSubpath, WindowsEndpointSliceProxying. Please remove these from your YAML configs.
- JobTrackingWithFinalizers is off by default in 1.23 and 1.24 due to an unresolved bug
- PodSecurityPolicy admission plugin, deprecated with PSP, is gone
- Multiple deprecated controller-manager flags, and more are now removed
- Deprecated
metadata.clusterName
field is removed - Deprecated
kubectl.kubernetes.io/default-logs-container
annotation is removed; you should be using default container annotations instead