-
Notifications
You must be signed in to change notification settings - Fork 820
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
Upgrade to Kubernetes 1.16 #1649
Comments
The Kubernetes v1.16 Release Notes have some points that we should keep in mind for this upgrade:
|
We should switch to 1.16 after this next release is cut, as Azure is about to put 1.18 into GA (estimated date is Aug 20th) at which point they will drop official support for 1.15. |
Working up updating the dev gke and e2e clusters to 1.16 -- which is now powered by the GKE terraform module, so taking care of several tasks in one go. |
Just heads-up that the final 1.16 patch is scheduled for 9/2 |
Ugh. Always on the tail end..... That being said, GKE's release notes for today just remove support for new clusters at 1.14 and are upgrading 1.14 -> 1.15 in the stable channel while the regular channel is being moved from 1.15 -> 1.16. So we are right in line with where GKE is at in terms of k8s version support. |
I would add a PR for AKS and EKS soon. |
Adding some notes from the Agones Community Meeting, mentioned by @roberthbailey :
|
Most of this is in this issue above. The important things to catch when upgrading to 1.16 are to make sure that we aren't relying on APIs that are no longer being served (like scheduling.k8s.io/v1beta1). For APIs that graduated to v1 in 1.16, if we immediately adopt the v1 API then we will prevent Agones from being installed on older versions of k8s. I'd suggest that we wait to take advantage of the newly promoted APIs until 1.17 (or even 1.18) to give folks a longer window to upgrade (even though as a project we won't be testing those versions any longer). |
Working on upgrading client-go 👍 |
Worth noting that cache.WaitForCacheSync has changed its internal implementation to now use `err := wait.PollImmediateUntil(...)`, so there is no more implicit 100ms sleep before the sync. Therefore it didn't _actually_ wait to populate from Watch or allow events to fire - it just made room for it to occur. So had to now using assert/require.Eventually() to make sure that the system is in a state that matches what we expect before testing. Work on googleforgames#1649
Worth noting that cache.WaitForCacheSync has changed its internal implementation to now use `err := wait.PollImmediateUntil(...)`, so there is no more implicit 100ms sleep before the sync. Therefore it didn't _actually_ wait to populate from Watch or allow events to fire - it just made room for it to occur. So had to now using assert/require.Eventually() to make sure that the system is in a state that matches what we expect before testing. Work on googleforgames#1649
Worth noting that cache.WaitForCacheSync has changed its internal implementation to now use `err := wait.PollImmediateUntil(...)`, so there is no more implicit 100ms sleep before the sync. Therefore it didn't _actually_ wait to populate from Watch or allow events to fire - it just made room for it to occur. So had to now using assert/require.Eventually() to make sure that the system is in a state that matches what we expect before testing. Work on googleforgames#1649
* Update k8s.io/client-go to v0.16.15 * Upgrade k8s.io/apiextensions-apiserver to v0.16.15 Note: overwrote grpc to keep at current version. * Upgrade client-go and apimachinery to 0.16.5 Worth noting that cache.WaitForCacheSync has changed its internal implementation to now use `err := wait.PollImmediateUntil(...)`, so there is no more implicit 100ms sleep before the sync. Therefore it didn't _actually_ wait to populate from Watch or allow events to fire - it just made room for it to occur. So had to now using assert/require.Eventually() to make sure that the system is in a state that matches what we expect before testing. Work on #1649 Co-authored-by: Alexander Apalikov <[email protected]>
Both the build and the e2e image. Work on googleforgames#1649
Adding to this list:
|
Both the build and the e2e image. Work on #1649
Only a small change Work on googleforgames#1649
Only a small change Work on #1649 Co-authored-by: Robert Bailey <[email protected]>
A reminder - RC is next week, so probably makes sense to prioritise work for this ticket over others, so we can get support for 1.16 out the door. |
Did a review - looks like it's just the EKS/AKS stuff that needs updating. @aLekSer are you on that? And to confirm:
We're waiting on 1.17 to do this (@roberthbailey ) ? |
For things that just graduated to GA, we are waiting until 1.17 to migrate our configs (see #1799). For things where beta was dropped in 1.16 (like |
AKS is ready, regarding EKS I have a draft PR working on the fix. |
Sweet. Ticked the box. |
All ticks are in place. |
Awesome work. Any objections to closing this issue then? |
I think we are all set. |
CLOSIING! |
* Update k8s.io/client-go to v0.16.15 * Upgrade k8s.io/apiextensions-apiserver to v0.16.15 Note: overwrote grpc to keep at current version. * Upgrade client-go and apimachinery to 0.16.5 Worth noting that cache.WaitForCacheSync has changed its internal implementation to now use `err := wait.PollImmediateUntil(...)`, so there is no more implicit 100ms sleep before the sync. Therefore it didn't _actually_ wait to populate from Watch or allow events to fire - it just made room for it to occur. So had to now using assert/require.Eventually() to make sure that the system is in a state that matches what we expect before testing. Work on googleforgames#1649 Co-authored-by: Alexander Apalikov <[email protected]>
Both the build and the e2e image. Work on googleforgames#1649
Only a small change Work on googleforgames#1649 Co-authored-by: Robert Bailey <[email protected]>
As discussed on the monthly community meeting today, it's time to think about when we should upgrade our official support to Kubernetes 1.16.
It looks like we might be on track to do it for the Agones 1.8 release.
List of items to do for upgrading to 1.16 (this is copied from the 1.15 issue and may need to be updated):
e2e-image/Dockerfile
Helm documentation(no longer neccessary)scheduling.k8s.io/v1beta1
toscheduling.k8s.io/v1
. See https://github.com/googleforgames/agones/search?l=Go&q=v1beta1site/assets/templates/crd-doc-config.json
The text was updated successfully, but these errors were encountered: