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
[:warning:] bump k8s dependencies to 1.19 in 0.6.x release #1266
[:warning:] bump k8s dependencies to 1.19 in 0.6.x release #1266
Conversation
Hi @varshaprasad96. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: varshaprasad96 The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@joelanford @alvaroaleman @vincepri - Can you please have a look on whether we can upgrade k8s dependencies with patch version releases of controller-runtime. |
This would be a compat break, so I don't think we should do it. |
/hold 1.19 is going to come in v0.7.x |
@varshaprasad96 We usually wait for the next minor release before updating, the current mainline branch has v0.19.x, but we usually don't backport minor kubernetes version bumps because it could cause breaking changes to clients using controller runtime |
SDK maintainers were discussing various options for getting to 1.19 and then 1.20 shortly after it GAs. This was one option that we wanted to explore, even if just for completeness sake. I turned up two potential breaking API changes in my quick perusal of the v1.19 notes (there could be more):
Also just to be transparent if we did go down this path, the intention would also be to bump v0.6.x to Kubernetes 1.20 provided there are no API breaks in that release either. The benefit with this approach would be that users could use newer versions of Kubernetes without having to migrate their projects to handle breaking changes in controller-runtime. Downside of course is the aforementioned potential for API breaks. Another option would be what's been suggested here and what we've traditionally done: minor versions of controller-runtime that have breaking changes and/or Kubernetes version bumps. I think the implication is that there could be up to 4 new kubebuilder go plugin versions every year to handle breaking changes in controller-runtime if we always allow breaking changes on The v0.7.0 (for 1.19) and then subsequent v0.8.0 (for 1.20) option requires a new version of the Kubebuilder go plugin because of the breaking changes in controller runtime. Right now that would be the v3-alpha plugin. IMO, before we can make that the default in Kubebuilder (and Operator SDK) and start migrating users, we need to make that plugin stable so users can migrate and trust that it won't break. There are some outstanding items in the kubebuilder v3 plugin milestone and possibly other breaking changes we need to make to project version TL;DR: |
/ok-to-test |
@varshaprasad96: The following tests failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
Ah. Looks like there are also some breaking changes in controller-runtime APIs due to the logr change. Even if we were good with all of the other changes that bumping v0.6 to 1.19 would bring, I think it would be a non-starter to directly break a controller-runtime API in a patch release. @varshaprasad96 I think this means we need to close this PR and make a push to:
Thoughts? |
Based on the discussion, closing this PR in favor of #1268 which bumps master to k8s 1.20. |
This PR bumps k8s dependencies in 0.6.x release of controller-runtime to 1.19.4.
Reason:
The current v2 plugin in Kubebuilder uses controller-runtime 0.6.x. If its possible to make patch releases of controller-runtime having upper versions of Kubernetes, it would be helpful to upgrade v2 plugin to use latest releases of k8s without any breaking changes which controller-runtime v0.7.0 may cause. This would also be helpful to update Operator SDK to support latest releases of Kubernetes, without bumping controller-runtime to 0.7.0.
cc: @joelanford