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

What is the process for supporting new version of Kubernetes? #507

Closed
tamalsaha opened this issue Dec 4, 2018 · 7 comments
Closed

What is the process for supporting new version of Kubernetes? #507

tamalsaha opened this issue Dec 4, 2018 · 7 comments

Comments

@tamalsaha
Copy link

Kubernetes releases a new major client-go every 3 months. Usually every release has some breaking that needs updating any library that uses k8s.io packages to same release. We are interested in using kubebuilder. I would appreciate if you could answer the following questions:

  • What are the usual technical steps for updating kubebuilder to support a new version of Kubernetes?

  • Are there any plans to do this at the same time a version of kubernetes is released? (like client-go etc.)

Thanks. /cc: @pwittrock

@tamalsaha
Copy link
Author

@droot
Copy link
Contributor

droot commented Dec 12, 2018

We are getting lot of queries around upgrading to new kubernetes. I will write a detailed section in the kubebuilder book, but here is a quick summary:

kubebuilder project uses controller-runtime (higher level abstraction built on top of client-go and other k8s stuff in core) and controller-tools for manifests generation. So let say controller-{runtime, tools} have been upgraded to desired k8s version, then the steps involved in your kubebuilder project would be to update the deps using dep ensure -update sigs.k8s.io/controller-runtime sigs.k8s.io/controller-tools. Here is the doc describing versioning for controller-runtime.

Re: timing of moving to newer releases of k8s, so far we have been 3 months behind the official releases. As we are improving tooling around releases etc in kubebuilder repos, we hope to move faster on that.

@tamalsaha
Copy link
Author

Thanks @droot !

Regarding timing, do you accept contributions on upgrading the runtime and tools? Or, things just stay in review until other downstream projects are ready to update?

In other words, if we send prs to upgrade these repos, will those be merged?

@droot
Copy link
Contributor

droot commented Dec 12, 2018

Regarding timing, do you accept contributions on upgrading the runtime and tools? Or, things just stay in review until other downstream projects are ready to update?

Yes, We accept contributions on upgrading and We don't wait for downstream projects to update. We do coordinate updating the deps in controller-runtime/tools at the same time because kubebuilder projects can't have the mix of tools and runtime depend on different k8s releases.

For last couple of releases upgrading k8s didn't introduce any breaking changes to the controller-runtime/tools API, so it has been mostly straight forward, but if they do then then will require bumping up the revisions for runtime/or tools which may require some communication and impact analysis.

@tamalsaha
Copy link
Author

tamalsaha commented Dec 12, 2018

The issue is client-go makes breaking changes in every release. https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md

So, there may be no changes in the parts used by runtime/tools. But downstream projects always have some impact as they may use the parts that had breaking changes in client-go.

@mengqiy
Copy link
Member

mengqiy commented Dec 14, 2018

@tamalsaha You are welcome to contribute.
kubernetes-sigs/controller-runtime#221 is an example of upgrading k8s dependencies. You can see that even though there are breaking changes in client-go, there are no breaking changes at controller-runtime surface.

@droot
Copy link
Contributor

droot commented Dec 17, 2018

Closing this issue since there aren't any next steps.

@droot droot closed this as completed Dec 17, 2018
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