Skip to content
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

Release ahead of Kubernetes #1213

Closed
saschagrunert opened this issue Jul 18, 2023 · 10 comments
Closed

Release ahead of Kubernetes #1213

saschagrunert opened this issue Jul 18, 2023 · 10 comments

Comments

@saschagrunert
Copy link
Member

saschagrunert commented Jul 18, 2023

The main problem is that we vendor Kubernetes, requiring an updated go.mod which is just available after the final Kubernetes release. Therefore we usually lack days/weeks behind Kubernetes, which is not really acceptable from a packaging point of view, because Kubernetes deb/rpm packages have direct requirements on cri-tools.

Given that cri-tools v1.27.1 (latest) may not work 100% correctly with Kubernetes v1.28.0, I'm proposing to:

Release cri-tools before Kubernetes with vendoring the latest release candidate.

@kubernetes-sigs/cri-tools-maintainers thoughts on that? I think this makes things easier from a release flow perspective.

@haircommander
Copy link
Contributor

is it possible to do a similar thing to cri-o and commit to a release timeline after kubernetes? or is even a day's lag or something unacceptable from the kubernetes packaging perspective?

@saschagrunert
Copy link
Member Author

is it possible to do a similar thing to cri-o and commit to a release timeline after kubernetes?

Yes, that's indeed possible from my point of view.

@haircommander
Copy link
Contributor

since cri-tools has fewer blocking changes than cri-o, we could commit to something short like a day or two?

@saschagrunert
Copy link
Member Author

saschagrunert commented Jul 18, 2023

Hm, we release v1.28.0 on Aug 15 and the rc.1 on Aug 10th. So we can prepare the vendor change on Aug 11th and release cri-tools v1.28.0 right on Monday, Aug 14.

See: https://github.com/kubernetes/sig-release/tree/master/releases/release-1.28

@afbjorklund
Copy link
Contributor

afbjorklund commented Jul 21, 2023

This is making the compatibility "window" really really short, compared to how it used to be (1.19 forever).

It makes it even more important to install cri-tools with the kubernetes version, and not a global installation.

@afbjorklund
Copy link
Contributor

afbjorklund commented Jul 21, 2023

Given that cri-tools v1.27.1 (latest) may not work 100% correctly with Kubernetes v1.28.0,

This sounds like the CRI API is broken. Changing the dependency would be a rather big change.

Kubernetes v1.27.0 had kubernetes-cni (>= 1.1.1), cri-tools (>= 1.25.0) with a much bigger skew.

Wouldn't it be enough to bump it to 1.27.0, and the release take the days or weeks that it needs?

@saschagrunert
Copy link
Member Author

Given that cri-tools v1.27.1 (latest) may not work 100% correctly with Kubernetes v1.28.0,

This sounds like the CRI API is broken. Changing the dependency would be a rather big change.

It's not. If we assume we add new CRI fields in k8s v1.28.0, which may be required by CRI-O v1.28.0 as well, then a cri-tools v1.27.x is not able to provide the full client data set like a kubelet v1.28, so we cannot guarantee that it 100% works correctly if the runtime does not manually add upgrade paths. So it all depends on the runtime from my point of view.

@afbjorklund
Copy link
Contributor

afbjorklund commented Jul 21, 2023

Stills sounds like a very tight coupling for an external project - but I will go with whatever the kubernetes release does...

Note that if you release cri-tools 1.28 now, there will be many 1.27 installations picking it up (since it is not pinned/held)

Then again, they are current using 1.26.0 (since there was no release for 1.27.0) - so maybe it's more of a recommendation

And soon, they will have different package repositories for different k8s versions - after the OBS introduction in KEP-1731

@saschagrunert
Copy link
Member Author

I propose that we try it out for 1.28, especially since we can check the new OBS workflow this way. I'm going to propose a vendor update after v1.28.0-rc.1 has been cut: kubernetes/sig-release#2301

@saschagrunert
Copy link
Member Author

Done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants