July 26, 2022, 4:25 a.m.

LWKD: Week Ending July 24, 2022

Last Week In Kubernetes Development

Developer News

Last LWKD covered the migration to Ginkgo v2 for testing. This change may break your code in a few different ways, including changing test timeouts and deprecating the -parallel flag, and quitting using the Measure method Please fix your tests accordingly.

Tim Xiu proposed Elastic GPU for GPU allocation & management.

Kubernetes Contributor Summit NA 2022 will happen on October 24th in Detroit. Registration will open soon. Note that there will also be some changes to COVID-19 precautions for the event.

SIG-Release wants your thoughts on metrics for our releases.

Release Schedule

Next Deadline: CODE FREEZE August 2nd

Time to finish those features and push your last PR. It’s Code Freeze time! Yes, you can ask for an exception, but the answer might be “no”. More deadlines: Docs placeholders Aug. 4, Test Freeze Aug. 10, final docs Aug. 9.

(https://groups.google.com/a/kubernetes.io/g/dev/c/os8nyAVTL7A), 1.24.3, 1.23.9, 1.22.12, and 1.21.15 came out July 13th, addressing a list of noncritical bugs.

Featured PRs

#111181: Introduce config for API Priority and Fairness

The APF system balances quality-of-service for kube-apiserver, ensuring no one client can destabilize the whole cluster (we hope). So far this has used a lot of hard-coded constants for tuning the algorithms. This PR moves us closer to a world where admins can tweak those for exceptional situations. The configuration structs are modeled like Kubernetes API objects, but for now are just themselves hardcoded as the constants were before. In the future this configuration can be sourced from the API (or possibly from the local filesystem) and the core plumbing will be all set!

#111101: enable stylecheck check in golangci

A smaller PR but a great reminder that linters exist to help us all by checking the easy stuff for us. This PR adds the ST1019 linter to our config, which catches files which import the same package multiple times. This usually only happens during a big copy-paste refactor and is easy to miss when reviewing changes in isolation. If you’ve got ideas for additional lint checks which could improve our code quality, please do open a PR with SIG-Testing.

Other Merges

  • You can checkpoint containers for archival, migration, or forensic purposes
  • Controller migration offers running_managed_controllers option for cloud provider migration
  • kube-proxy goes distroless
  • Use slashes in sysctl commands
  • API StatusClause has error handling
  • Validate CSI secretnames via DNS spec, and validate unknown CR fields
  • De-duplicate all the imports across the project
  • Don’t perform duplicate unmounting checks
  • alpha.kubernetes.io/provided-node-ip is set regardless of cloud provider
  • Scheduler retries based on a backoff loop
  • APF metrics were changed to use better histograms, including denominators
  • Initialize the scheduler framework’s PodInformer
  • kube-proxy kernelspace mode is the default on Windows
  • --audit-log-path must actually exist
  • Clear some pod metrics on restart, and don’t report terminated container metrics
  • kubectl describe shows RuntimeClass and ServiceAccount
  • Handle having more than one default IngressClass
  • Add some compilation metrics for custom expressions
  • Kubelet doesn’t panic when asked for resource metrics
  • Dynamically update IPs for LB firewalling
  • Kubeadm adds configurable etcd watch

Test cleanup: kubectl explain gets unit tests, clean controlplane shutdown and serviceaccount, patch leaky goroutines in more places, podgc gets tests, HPA gets scale-down and scale-up tests

Promotions

  • CSIMigrationvSphere is enabled by default
  • Server side validation is beta and enabled by default
  • Pod Topology MinDomains is beta
  • StatefulSet minReadySeconds is GA
  • DaemonSet MaxSurge is GA
  • podOS field is GA

Deprecated

  • HNS v1 APIs are removed for kube-proxy on Windows

Version Updates

  • pause container 3.8
  • ClusterAPI Kubemark 0.4.0
  • cel-go to v0.12.3

You just read issue #42 of Last Week In Kubernetes Development. You can also browse the full archives of this newsletter.

Brought to you by Buttondown, the easiest way to start and grow your newsletter.