-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
⚠ Bump k8s.io/ to v1.30.0-beta.0 #2693
Conversation
Welcome @twz123! |
Hi @twz123. 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. |
@twz123 Do you have time to rebase to v1.30.0-beta.0? In general I would bump to v1.30 now for early feedback. I'm not sure I understand what the breaking change around leader election metrics is EDIT: Ah that they renamed & changed the SwitchMetric/LeaderMetric interface? I don't think we can mitigate that. The problem is that we can't add an additional method which returns |
/ok-to-test |
/retest |
Is there some way to let Prow use Go 1.22? Kubernetes 1.30 requires it. |
Yes, you have to bump the images in:
Can you open a PR for that? (then I can approve) |
go.mod
Outdated
go 1.22.0 | ||
|
||
toolchain go1.21.0 | ||
toolchain go1.22.1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you know what the exact implications are of using go 1.22.0 and toolchain go1.22.1?
(specifically the exact patch version in each)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to https://go.dev/doc/toolchain#config, IIUC, the go
directive specifies the minimum required version, while the toolchain
directive specifies the suggested version. Perhaps the toolchain directive could be removed altogether here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe. Is it automatically added by go mod tidy
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've seen this added automatically sometimes, but I haven't caught the pattern yet. It definitely won't be added by go mod tidy
if everything is in sync, at least not for me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did a bit of reserach:
- if
go
andtoolchain
use the same version,go mod tidy
will removetoolchain
(i.e. it's only preserved if the versions are different) - we introduced
toolchain
when bumping to Go 1.21. I believe either this was added because we used1.21
(instead of1.21.0
) for the go directive or because the cleanup ingo mod tidy
wasn't implemented yet.
Kubernetes today only sets the Go directive to 1.22.0
and omits the toolchain
directive: https://github.com/kubernetes/kubernetes/blob/master/go.mod#L9
I would like to follow this pattern for now, if we don't have a good reason to set the toolchain
directive as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here is more context on the whole topic: https://go.dev/doc/toolchain
My tl;dr for here is basically I don't think we need a different minimum and preferred toolchain
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This one is interesting
Commands that incorporate new module versions that require new Go versions write the new minimum go version requirement to the current workspace’s go.work file or the main module’s go.mod file, updating the go line. For repeatability, any command that updates the go line also updates the toolchain line to record its own toolchain name. The next time the go command runs in that workspace or module, it will use that updated toolchain line during toolchain selection.
/retest |
All the tool binaries are managed via go install nowadays, so no need to keep the module files around. Add a .keep file to keep the now empty tools directory. It will still be used by the build to store the tool binaries. Even though it would be created automatically, having it as part of the git tree makes it more obvious that it's still being used by the build. See: 9847243 ("Use go-install for versioned dependencies") Signed-off-by: Tom Wieczorek <[email protected]>
This is a prerequisite for Kubernetes 1.30. Signed-off-by: Tom Wieczorek <[email protected]>
Kubernetes 1.30 has a breaking API change around leader election metrics. Adapt to those API changes accordingly. Signed-off-by: Tom Wieczorek <[email protected]>
kubernetes-sigs/controller-runtime#2693 broke the content provider while doing docker-build with following issue[1] In order to unblock the CI, we are pinning sigs.k8s.io/controller-runtime/tools/setup-envtest at previous working commit[2] [1]. kubernetes-sigs/controller-runtime#2720 [2]. kubernetes-sigs/controller-runtime@c7e1dc9 Co-Authored-By: Balazs Gibizer <[email protected]>
kubernetes-sigs/controller-runtime#2693 broke the content provider while doing docker-build with following issue[1] In order to unblock the CI, we are pinning sigs.k8s.io/controller-runtime/tools/setup-envtest at previous working commit[2] [1]. kubernetes-sigs/controller-runtime#2720 [2]. kubernetes-sigs/controller-runtime@c7e1dc9 Co-Authored-By: Balazs Gibizer <[email protected]>
kubernetes-sigs/controller-runtime#2693 broke the content provider while doing docker-build with following issue[1] In order to unblock the CI, we are pinning sigs.k8s.io/controller-runtime/tools/setup-envtest at previous working commit[2] [1]. kubernetes-sigs/controller-runtime#2720 [2]. kubernetes-sigs/controller-runtime@c7e1dc9 Signed-off-by: Hongwei Liu <[email protected]>
kubernetes-sigs/controller-runtime#2693 broke the content provider while doing docker-build with following issue[1] In order to unblock the CI, we are pinning sigs.k8s.io/controller-runtime/tools/setup-envtest at previous working commit[2] [1]. kubernetes-sigs/controller-runtime#2720 [2]. kubernetes-sigs/controller-runtime@c7e1dc9 Signed-off-by: Hongwei Liu <[email protected]>
kubernetes-sigs/controller-runtime#2693 broke the content provider while doing docker-build with following issue[1] In order to unblock the CI, we are pinning sigs.k8s.io/controller-runtime/tools/setup-envtest at previous working commit[2] [1]. kubernetes-sigs/controller-runtime#2720 [2]. kubernetes-sigs/controller-runtime@c7e1dc9
kubernetes-sigs/controller-runtime#2693 broke the content provider while doing docker-build with following issue[1] In order to unblock the CI, we are pinning sigs.k8s.io/controller-runtime/tools/setup-envtest at previous working commit[2] [1]. kubernetes-sigs/controller-runtime#2720 [2]. kubernetes-sigs/controller-runtime@c7e1dc9
Change[0] in controller-runtime is causing our tests to fail with go version mismatch. This version restriction should be removed once the issue is fixed in the controller-runtime [0] kubernetes-sigs/controller-runtime#2693 Signed-off-by: Jiri Podivin <[email protected]>
Change[0] in controller-runtime is causing our tests to fail with go version mismatch. This version restriction should be removed once the issue is fixed in the controller-runtime [0] kubernetes-sigs/controller-runtime#2693 Signed-off-by: Jiri Podivin <[email protected]>
kubernetes-sigs/controller-runtime#2693 broke the content provider while doing docker-build with following issue[1] In order to unblock the CI, we are pinning sigs.k8s.io/controller-runtime/tools/setup-envtest at previous working commit[2] [1]. kubernetes-sigs/controller-runtime#2720 [2]. kubernetes-sigs/controller-runtime@c7e1dc9
kubernetes-sigs/controller-runtime#2693 broke the functional tests running downstream with following issue[1] In order to unblock the CI, we are pinning sigs.k8s.io/controller-runtime/tools/setup-envtest at previous working commit[2] Links: [1]. kubernetes-sigs/controller-runtime#2720 [2]. kubernetes-sigs/controller-runtime@c7e1dc9 Signed-off-by: Chandan Kumar <[email protected]>
kubernetes-sigs/controller-runtime#2693 broke the content provider while doing docker-build with following issue[1] In order to unblock the CI, we are pinning sigs.k8s.io/controller-runtime/tools/setup-envtest at previous working commit[2] [1]. kubernetes-sigs/controller-runtime#2720 [2]. kubernetes-sigs/controller-runtime@c7e1dc9
kubernetes-sigs/controller-runtime#2693 broke the content provider while doing docker-build with following issue[1] In order to unblock the CI, we are pinning sigs.k8s.io/controller-runtime/tools/setup-envtest at previous working commit[2] [1]. kubernetes-sigs/controller-runtime#2720 [2]. kubernetes-sigs/controller-runtime@c7e1dc9 Signed-off-by: Chandan Kumar <[email protected]>
Can we have this in
with recent k8s 1.30 packages? |
No because this would make CR v0.17.x incompatible with client-go v0.29 |
ACK. When do we expect to ship 0.18? |
Current plan is ~ this week. Can't guarantee it though. Mostly depends on #2783 as far as I can tell |
Kubernetes 1.30 has a breaking API change around leader election metrics, introduced in kubernetes/kubernetes#122069. Not sure if there's a trick to fixing this in a way that's compatible with both 1.29 and 1.30 at the same time. Not sure when controller-runtime wants to jump to k8s 1.30, so leaving this as a draft.