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

Tasks to bump to Kubernetes v1.26 #7671

Closed
13 tasks done
ykakarap opened this issue Nov 30, 2022 · 23 comments
Closed
13 tasks done

Tasks to bump to Kubernetes v1.26 #7671

ykakarap opened this issue Nov 30, 2022 · 23 comments
Assignees
Labels
triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@ykakarap
Copy link
Contributor

ykakarap commented Nov 30, 2022

This issue is tracking the tasks that should be implemented after the Kubernetes minor release has been released.

Tasks

Prerequisites:

  • Decide which Cluster API release series will support the new Kubernetes version
    • If feasible we usually cherry-pick the changes back to the latest release series.
    • The v1.26 Kubernetes version support should go back till v1.2.

Supporting managing and running on the new Kubernetes version

This section contains tasks to update our book, e2e testing and CI to use and test the new Kubernetes version
as well as changes to Cluster API that we might have to make to support the new Kubernetes version. All of these
changes should be cherry-picked to all release series that will support the new Kubernetes version.

Using new Kubernetes dependencies

This section contains tasks to update Cluster API to use the latest Kubernetes Go dependencies and related topics
like using the right Go version and build images. These changes are only made on the main branch. We don't
need them in older releases as they are not necessary to manage workload clusters of the new Kubernetes version or
run the Cluster API controllers on the new Kubernetes version.

@k8s-ci-robot k8s-ci-robot added the needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. label Nov 30, 2022
@fabriziopandini
Copy link
Member

/triage accepted

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Nov 30, 2022
@fabriziopandini
Copy link
Member

FYI this issue seems linked to this work

@sbueringer
Copy link
Member

sbueringer commented Nov 30, 2022

FYI this issue seems linked to this work

Yup thx it is. @ykakarap can you please add it as release related task to the 2nd section? (Using new Kubernetes dependencies)

@ykakarap
Copy link
Contributor Author

FYI this issue seems linked to this work

Yup thx it is. @ykakarap can you please add it as release related task to the 2nd section? (Using new Kubernetes dependencies)

done

@ykakarap ykakarap mentioned this issue Dec 7, 2022
13 tasks
@aniruddha2000
Copy link
Contributor

/assign

I would like to work on this 😊

@sbueringer
Copy link
Member

sbueringer commented Dec 22, 2022

Regarding the prerequisite:

Decide which Cluster API release series will support the new Kubernetes version

Let's start with the assumption that we implement it on main and only cherry-pick it into release-1.3. I think we have to discuss it (and I wanted to bring this up anyway next year) but this shouldn't block the work for main and release-1.3.

We can then still additionally cherry-pick back into release-1.2 after we made the decision.

@sbueringer
Copy link
Member

sbueringer commented Jan 2, 2023

Quick update. I discussed with Fabrizio if we should support v1.26 in v1.2.

Given:

For a given Cluster API minor release, we give best-effort support for future Kubernetes versions that are released
during the release's active support period. Depending on the changes made in Kubernetes, users may be required to
update to the next patch release of Cluster API to maintain compatibility.

We would support v1.26 in v1.2. We are interpreting "best-effort" as we are trying to support it except if we find a major showstopper while implementing it.

Independent of that I'll bring up the discussion if we want to support new Kubernetes releases in "older" stable releases in the future. But this won't affect the Kubernetes 1.26 bump.

@aniruddha2000
Copy link
Contributor

Is there any reference I can look to find the go minor version Kubernetes is using?
I can see go.mod is using 1.19.

@sbueringer
Copy link
Member

sbueringer commented Jan 2, 2023

Is there any reference I can look to find the go minor version Kubernetes is using? I can see go.mod is using 1.19.

I usually refer to the release notes: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.26.md

Not sure why the latest entry there is 1.19.3. The 1.26 kubekins image is using v1.19.4. But given that we only need to know the minor version it's good enough.

So tl;dr we don't have to bump further as we are already using 1.19

P.S. I updated the task list accordingly mit "does not apply"

@aniruddha2000
Copy link
Contributor

aniruddha2000 commented Jan 4, 2023

What would be the conversion-gen version for this release? In the release tag I can see v0.26.0.

@sbueringer can you describe what kind of work I have to do here?

PR 1.3: TODO
PR 1.2: TODO

@sbueringer
Copy link
Member

sbueringer commented Jan 4, 2023

What would be the conversion-gen version for this release? In the release tag I can see v0.26.0.

v0.26.0 is perfect

@sbueringer can you describe what kind of work I have to do here?

PR 1.3: TODO
PR 1.2: TODO

Let's start with the ones below "Modify quickstart and CAPD to use the new Kubernetes release". Essentially open PRs against release-1.3 and release-1.2 with a cherry-pick of the commit from #7799

We always try to do this with the bot but because of conflicts that's not always possible (#7799 (comment))

I would say start with opening a PR against release-1.3 and try to best-effort resolve the conflicts the way you think it's correct. I'll take a closer look once the PR is open and let you know if there is more to do.

@sbueringer
Copy link
Member

sbueringer commented Jan 6, 2023

@aniruddha2000 Do you have time to work on those cherry-picks and on the findings on kubernetes/test-infra#28309? Otherwise I"m happy to take this over. I just want to reduce the time that our branches (and jobs) are in different states.

@aniruddha2000
Copy link
Contributor

@sbueringer Yes I will open the cherry picks by today and will resolve the findings

One query for the cherry-pick is Should I open PR with the same changes targeting the branch 'release-1.2' & 'release-1.3'? Because it's my first time performing something like this.

@sbueringer
Copy link
Member

One query for the cherry-pick is Should I open PR with the same changes targeting the branch 'release-1.2' & 'release-1.3'? Because it's my first time performing something like this.

No worries, feel free to ask as many questions as you want :)

Should I open PR with the same changes targeting the branch 'release-1.2' & 'release-1.3'?

Yes

That's what I tried to say here:

#7671 (comment)

@sbueringer
Copy link
Member

Quick update about the current state / merge order. Next steps:

I'll start merging the PRs (when they are ready) after the patch releases

(cc @aniruddha2000 @ykakarap @fabriziopandini)

@sbueringer
Copy link
Member

sbueringer commented Jan 11, 2023

Okay all of them are merged now.

Kudos again to @aniruddha2000 !

Next up would be bumping controller-runtime (v0.14.1) and controller-tools v0.11.1 (only on main)

(I read through both release notes it should be mostly bumping the versions, making sure it still compiles / tests are green)

@aniruddha2000 Do you want to take care of this as well?

@aniruddha2000
Copy link
Contributor

Yes, @sbueringer I can. But are there any specific places where I have to make the changes? or it's the project-level controller-runtime & controller-tools in the go.mod file?

@sbueringer
Copy link
Member

sbueringer commented Jan 11, 2023

controller-tools is bumped in the Makefile
prior art: https://github.com/kubernetes-sigs/cluster-api/pull/7262/files#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52
(makefile + run make generate-modules generate-manifests + document it in the v1.3-v1.4 migration doc)

@sbueringer
Copy link
Member

Controller-runtime should be bumped in all of our go.mod files + documented in the migration doc

@sbueringer
Copy link
Member

Perfect. We're almost done.

One last task: Inform users about klog flags removal when importing Kubernetes v1.26

I'll take a closer look at that one later. I think it just comes down to making sure our next release notes contain a note (I just want to verify something to make sure we add the right note)

@ykakarap
Copy link
Contributor Author

All the items in the list are complete! Bumping to support Kubernetes v1.26 is now complete.

Big thanks to everyone who helped with this effort! 👏🏼

/close

@k8s-ci-robot
Copy link
Contributor

@ykakarap: Closing this issue.

In response to this:

All the items in the list are complete! Bumping to support Kubernetes v1.26 is now complete.

Big thanks to everyone who helped with this effort! 👏🏼

/close

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.

@ykakarap
Copy link
Contributor Author

Perfect. We're almost done.

One last task: Inform users about klog flags removal when importing Kubernetes v1.26

I'll take a closer look at that one later. I think it just comes down to making sure our next release notes contain a note (I just want to verify something to make sure we add the right note)

This is now tracked in the release tracking issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
None yet
Development

No branches or pull requests

5 participants