-
-
Notifications
You must be signed in to change notification settings - Fork 12.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
k3s: document upkeep process #298479
k3s: document upkeep process #298479
Conversation
47b9749
to
742b3cf
Compare
635eee2
to
c4d51c4
Compare
Could you please not mention my user in the commit msg? Github spams me otherwise. You can use:
|
0a7a2ef
to
dd13c69
Compare
Co-authored-by: <973709+yajo@users.noreply.github.com>
dd13c69
to
515d3f4
Compare
How should |
@euank I need your feedback here. Release is happening. And I'm not sure I have correctly documented the process. |
It seems to me like the process you outlined here is very good 🤔 |
Thanks for writing this up @superherointj, appreciated! You're right that the intention originally was to remove k3s versions from the next version's release branch, but to leave all supported ones on unstable. I do feel like deleting all but the newest version on unstable periodically would be really convenient for those of us who only use unstable, but I think we're stuck with following something like I wrote before if we want to allow people to follow k8s's upstream upgrade recommendations, and also stick to nixos stable releases. I think leaving versions in unstable is also required for backporting patches to older versions while they're supported, i.e. so we can backport 1.28 patches to 23.11 for the month-or-so after 24.05 when it's still supported. I think that's also necessary if we want people to be able to follow upstream k8s's upgrade recommendations (1 version at a time, always using the latest patch version iiuc) Based on the timeline in #303285, it does sound like we have time to sort this out though hopefully! If we're following what I wrote before, the required next actions would be:
Again, apologies for being busy and not putting as much attention into this as I should! I can open a PR updating some of this documentation in the next couple days as a means to discuss it further, if that sounds good; I'm also happy to change my mind on any of this if we feel like taking some other approach is more pragmatic. The "trimming versions after we branch off" really is a tight timing window, and seems fraught, so I'd love an alternative to that 😅 What do y'all think? |
@euank Thanks for correcting me. As always, glad to have you here! I've reached a new understanding: As contributors are limited. To be realistic. The criteria should not rely on individual contributors doing timely work. Basically:
Currently, for example, would mean:
This way special upkeep for Back-porting to stable speeds up package removal. With increased back-porting contributions, version removal will speed up naturally. It seems, this criteria naturally works for all situations. I'm against forcing an external artificial deadline for packages, while not having the manpower to keep up with such level of contributions. As the package gets used more, new contributors may contribute and then the quality/speed of upkeep will improve naturally. We can't force better output than this. I honestly cannot keep up with much more than what I do already. If some package goes EOL, we have to be realistic. It is just debt that doesn't get solved by a deadline. Polar thinking is bad. On agreement, I may open a PR fixing documentation with this new understanding. |
I agree reducing maintainership load for k3s is important, and minimizing the number of k3s versions we support is good! I also think what you've proposed means there's always a supported k3s upgrade path, though it does force people on unstable to upgrade more aggressively. I think the main reason we ended up where we are in terms of versions was based on discussion in this issue: #224483 @yajo, since you had some thoughts then, just to double check, the above proposal works for you right? I'm okay with the proposal personally, I just use unstable (and can pluck versions off release branches if I need to). Thanks for writing it up @superherointj, happy to review a docs PR and help push towards that setup if @yajo's also onboard! |
To avoid coupling system upgrade and K3s upgrade, it would be necessary to keep last stable version in unstable. This would avoid breaking K3s instantly on system upgrades, and the user could migrate K3s version at his own timing, in a discrete manner. As Kubernetes has differences in application, such as manifests version, CRDs, adds-ons having to catch up to Kubernetes version. This makes sense. So, I agree, that last proposal was too aggressive to unstable (could affect applications not ready for lastest version) and stable (coupled system upgrade). The proposal of a hasty upgrade was in trying to comply with previous nixpkgs release manager demands. So the compromise of the compromise, would be to keep at least one/the last version of stable in unstable. Then, stable users can upgrade NixOS without going into an instant K3s upgrade crisis. Thoughts? |
I'm happy with that proposal, yup! To be sure I understand the proposal, another way to say it is:
This leads to unstable having either 1 or 2 k3s versions, and stable having all versions between the version on unstable when it was cut, up to the current version on unstable, or one version before. Specifically, that might lead to things like (using hypothetical future versions) "Stable has 1.28 (version when it was cut) + 1.29 + 1.30, unstable has just 1.30, or unstable has 1.30 + 1.31". Does that sound accurate? If I'm summarizing what you're saying correctly, that sounds good to me! |
TLDR: Skip this. Thinking from
I'll prepare the documentation. Then, we can iterate in the PR. Other considerations:
|
It's becoming a bit complex to understand for me, I guess It'll be easier on the PR. However, to put it simple, unstable and stable should share at least one minor k3s version. I a gree with this sentence:
Reasoning:
|
Sorry about my previous convoluted answer.
Does this sums up? |
Formalizes discussion from NixOS#298479
k3s: document upkeep process
The user guidelines has to be improved too. But this is a start.
Let me know of corrections, improvements and objections.
CC K3s maintainers: @euank @yajo @Mic92