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

Bump Kubernetes version to 1.31.0 and add CI matrix #597

Merged
merged 8 commits into from
Sep 3, 2024
Merged

Conversation

frouioui
Copy link
Member

@frouioui frouioui commented Aug 28, 2024

This PR bumps the supported version of Kubernetes to v1.31.0. To do that, all the Kubernetes dependencies were updated to v1.31.0, and the changes made to the K8S API were reported back into our code.

I also added a new matrix of test in BuildKite to ensure vitess-operator works with the three latest version of Kubernetes. I did not find a way to reuse the string constants that define the K8S versions we want to test, so for now they look a bit "re-used". Only solution I could find was to generate the pipeline YAML within the runtime of the pipeline, which did not feel scalable and clean to read.

Moreover, the versions are hardcoded right now, but I hope in the future to add some automation to automatically bump those constants, kind of like we have in Vitess with the Golang version.

Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
@frouioui frouioui marked this pull request as ready for review August 29, 2024 22:37
Copy link
Collaborator

@mattlord mattlord left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @frouioui !

README.md Outdated

If for some reason you must attempt to use versions outside the recommend
window, we still welcome bug reports since a workaround might be possible.
However, in some cases we may be unable to overcome the underlying limitations
in our dependencies.

Each major release of the vitess-operator will support the three latest major release of Kubernetes at the time
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Releases plural

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed via 4ccd230


If for some reason you must attempt to use versions outside the recommend
window, we still welcome bug reports since a workaround might be possible.
However, in some cases we may be unable to overcome the underlying limitations
in our dependencies.

Each major release of the vitess-operator will support the three latest major release of Kubernetes at the time
of the vitess-operator's major release RC-1. This will ensure that the major release of the vitess-operator will
always support at least one major release of Kubernetes for its whole lifetime (1 year).
Copy link
Collaborator

@mattlord mattlord Aug 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be good to link to the EOL policy so it’s clear what this 1 year lifetime is about.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed via 4ccd230

Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
@@ -19,13 +19,18 @@ compatible with certain Vitess and Kubernetes versions, as shown in this table:
| `v2.11.*` | `v18.0.*` | `v1.22.*`, `v1.23.*`, `v1.24.*`, or `v1.25.*` |
| `v2.12.*` | `v19.0.*` | `v1.25.*`, `v1.26.*`, `v1.27.*`, or `v1.28.*` |
| `v2.13.*` | `v20.0.*` | `v1.25.*`, `v1.26.*`, `v1.27.*`, or `v1.28.*` |
| `latest` | `latest` | `v1.25.*`, `v1.26.*`, `v1.27.*`, or `v1.28.*` |
| `latest` | `latest` | `v1.29.*`, `v1.30.*`, `v1.31.*` |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we need an overlapping Kubernetes version with the previous release, to make upgrading easier/less risky?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is, to support v1.28 through v1.31.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The main branch does support 1.28 technically

@frouioui frouioui merged commit c85f611 into main Sep 3, 2024
21 checks passed
@frouioui frouioui deleted the bump-k8s-version branch September 3, 2024 22:59
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

Successfully merging this pull request may close these issues.

4 participants