Kubernetes moves to end ‘permanent beta’ for some APIs
Developers told to hurry up and get features stable as support for other features extends to help slow upgraders
The Kubernetes project has decided the time has come to stop existing in a state of permanent beta.
The decision, included in the Changelog for version 1.19 of the container-wrangling code and explained in a blog post, reflects the fact that Kubernetes offers plenty of REST APIs and they can evolve … or not.
The project’s new rules mean that when a new feature's API reaches beta, a nine-month countdown commences. Within that timeframe, the beta must either reach general availability (which deprecates the beta) or start anew (which deprecates the previous beta).
“The motivation here seems pretty clear: get features stable,” wrote Kubernetes contributor Tim Bannister of The Scale Factory. “Guaranteeing that beta features will be deprecated adds a pretty big incentive so that people who want the feature continue their effort until the code, documentation and tests are ready for this feature to graduate to stable, backed by several Kubernetes' releases of evidence in real-world use.”
Another version 1.19 feature introduces warnings of deprecated APIs.
The new release also extends bugfix support via patch releases for a Kubernetes minor release has from nine months to a full year.
“A survey conducted in early 2019 by the working group (WG) Long Term Support (LTS) showed that a significant subset of Kubernetes end-users fail to upgrade within the previous nine-month support period,” says the version 1.19 Changelog. “A yearly support period provides the cushion end-users appear to desire, and is more in harmony with familiar annual planning cycles.”
An Alpha feature adds storage capacity tracking, a welcome addition given that the Kubernetes scheduler currently assumes infinite storage capacity in a cluster. Previous fixes partially fixed that situation but the system still had no way of knowing if sufficient storage would be available for new pods.
“This feature serves as a stepping stone for supporting dynamic provisioning for local volumes and other volume types that are more capacity constrained,” the changelog says. ®