Closed
Description
Need
We are running behind on client releases by quite a margin. The latest Kubernetes client
Proposed Solution
Parallel Alpha releases of the client
- Create the release branches
release-17.0
,release-18.0
,release-19.0
checking them out of the current state ofmaster
branch where the client is snapshotted to Kubernetes 1.16.
Corresponding Kubernetes Releases
Client | Kubernetes |
---|---|
17.0.0 | 1.17 |
18.0.0 | 1.18 |
19.0.0 | 1.19 |
- Generate Alpha client in each of the branches changing the upstream version corresponding to each release.
- Release the Kubernetes Client Alpha version.
- Any bug fixes need to be merged to the release branch itself since the generated client on the
master
branch will be out of sync with the release branch. - The Beta and Stable releases can be done as client on
master
branch catches up.
Changes to
python-base
can still be merged tomaster
branch since they are supposed to be generic tooling and should ideally work with any Kubernetes version.
Problems
- The bug fixes have to be merged to the corresponding release branches.
- Masters snapshot would considerably be out of sync with the release branches. To mitigate this we can do the following:
- Let's say Kubernetes Client 12.0.0 stable (based on Kubernetes 1.16) gets released.
- After that, we will snapshot the
master
branch based on Kubernetes 1.17. The client inmaster
branch now will be in sync with the client generated inrelease-1.17
. - As for bug fixes made to
release-1.17
branch, we can cherry-pick them tomaster
branch in the order they were merged to the release branch. - This way gradually
master
branch would catch-up to the release branch.
Release Cadence
To catch up to the releases, we can set a release cadence until we catch up. For example, let's say every 2 weeks we will try to release a new client version until we catch up.
Proposed Timeline (if this proposal is accepted this week)
Date | Client Version Released/Master Snapshot | Release PRs (if done) |
---|---|---|
2020-09-09 | 12.0.0b1 (doesn't depend on this proposal) | #1235 |
2020-10-12 | 12.0.0 Stable (doesn't depend on this proposal) | #1280 |
The client takes a jump in version number. See this for more information. | ||
2020-11-13 | 17.0.0-snapshot (master snapshot) | #1307 |
2020-11-14 | 17.14.0a1 | #1317 |
2020-11-24 | 18.0.0-snapshot (master snapshot) | #1319 |
2021-12-21 | 19.0.0-snapshot (master snapshot) | #1320 |
2021-04-23 | 18.0.0a1 | #1411 |
2021-05-03 | 17.17.0b1 | #1449 |
2021-05-13 | 17.10.0 Stable | #1464 |
2021-06-22 | 18.20.0b1 | #1496 |
2021-08-17 | 18.20.0 Stable | #1520 |
2021-09-20 | 19.15.0a1 | #1552 |
2021-10-11 | 19.15.0b1 | #1569 |
2021-09-14 | 19.15.0 Stable | #1584 |
2021-09-28 | 20.0.0-snapshot (master snapshot) | TBD |
2021-09-29 | 20.Y.0a1 | TBD |
2021-10-06 | 20.Y.0b1 | TBD |
2021-10-07 | 20.Y.0 Stable | TBD |
2021-10-21 | 21.0.0-snapshot (master snapshot) | TBD |
2021-10-22 | 21.Y.0a1 | TBD |
2021-10-29 | 21.Y.0b1 | TBD |
2021-11-05 | 21.Y.0 Stable | TBD |
2021-11-19 | 22.0.0-snapshot (master snapshot) | TBD |
2021-11-20 | 22.Y.0a1 | TBD |
2021-11-27 | 22.Y.0b1 | TBD |
2021-12-07 | 22.Y.0 Stable | TBD |
With the above schedule, we will just be able to catch up to the Kubernetes releases. The next Kubernetes version (1.23) will tentatively release on 7th December.
Updates
- Updated the timeline according to the latest information
- Updated the client release versions according to the latest versioning changes ([RFC] Syncing Kubernetes Client versions with upstream Kubernetes versions #1244)
/assign