LWKD: Week Ending September 12, 2021
Developer News
There have been some changes in the plan for the contributor summit at KubeCon NA. The social event is still planned for those attending in-person but the rest of the SIG events are going to be more ad-hoc. Space will be available for SIG meetings or other discussions but no firm schedule is planned as many peoples’ travel plans are still in flux. We hope to catch up with everyone virtually at the celebration event if you cannot join us in San Diego!
Release Schedule
Next Deadline: Burndown and Exceptions, Nov. 1st
KEPs are locked in so we’re in the main stretch for 1.23 development! You’ve got about 8 weeks to code up all the features approved for the next release, so put the pedal to the metal and make those PRs shine.
Featured KEPs
As it was a light week on PRs due to enhancement freeze, we’ll be looking at KEPs targeted for 1.23. As always, an accepted KEP is not a guarantee the feature will be completed or merged, or that it will exactly match the KEP if it is.
KEP-2876: CRD Validation Expression Language
Over the years we’ve added more and more schema control tools to CustomResourceDefinitions. As CRDs have become the beating heart of so many Kubernetes tools, strong validation has become important to a lot of workflows. Our current solution for complex validation, beyond the bounds of OpenAPI checks, is webhooks. Tools like Kubebuilder and Operator-SDK help streamline these but they are still a lot of complexity for even relatively basic validations like ensuring one field is greater than another. This KEP is looking to add more complex server-side validations using the CEL expression language. This will not fully replace webhooks, for example anything making a network call or using a third-party library will still need them, but it could take over some of the medium complexity cases.
Also a related shoutout for KEP-2885, to allow rejecting incoming data that has fields not specified in the schema.
KEP-2229: kubectl xdg base dir
The XDG Base Directory Specification defines a series of folders and environment variables for desktop apps to store data and settings. In practical terms this proposal is to (very slowly) migrate our client configuration from ~/.kube
to ~/.config/kube
. This will bring us in line with the XDG spec and generally smooth out interactions with other tools (backups, dotfiles management, etc) and distros. For now both folders will be supported, paving the way for a future migration.
KEP-2593: Enhanced NodeIPAM to support Discontiguous Cluster CIDR
This KEP gets straight to the point: right now we only support a single CIDR block for the cluster. It would be cool if we could support more than one block. So let’s do that! The goal is to add a new ClusterCIDRConfig
core type that will allow adding multiple IP blocks as well as reconfiguring them on the fly.
Merges
- API Priority and Fairness is moving to v1beta2 with no API changes so far
- The API REST implementation for Services has been greatly streamlined
- Client IP preservation works with SCTP services
- Don’t allow starting a SharedInformer more than once
Deprecations
- Several
kubectl run
flags, again