Closed roberthbailey closed 4 years ago
The Kubernetes v1.16 Release Notes have some points that we should keep in mind for this upgrade:
apiextensions.k8s.io/v1beta1
version of CustomResourceDefinition is deprecated and will no longer be served in v1.19. Use apiextensions.k8s.io/v1
instead.CustomResourceDefinition
API type as it was promoted to apiextensions.k8s.io/v1
apps/v1
, networking.k8s.io/v1
, policy/v1beta1
, networking.k8s.io/v1beta1
, scheduling.k8s.io/v1
CustomResourceDefaulting
feature is promoted to beta and enabled by default. Defaults may be specified in structural schemas via the apiextensions.k8s.io/v1
API. 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 :
1.16 has a few api changes to be aware of - things graduating from beta -> ga, older beta apis being dropped We reference beta APIs in our go code: https://github.com/googleforgames/agones/search?l=Go&q=v1beta1 A good first step would be to move the resources in the Helm chart (like CRDs) from betav1 to v1 E.g. Many beta APIs are no longer served: use apps/v1, networking.k8s.io/v1, policy/v1beta1, networking.k8s.io/v1beta1, scheduling.k8s.io/v1 - we should explore and see if we have any.
The apiextensions.k8s.io/v1beta1 version of CustomResourceDefinition is deprecated and will no longer be served in v1.19. Use apiextensions.k8s.io/v1 instead.
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 :+1:
Adding to this list:
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:
Move API references from beta to GA. For instance,
scheduling.k8s.io/v1beta1
toscheduling.k8s.io/v1
. See https://github.com/googleforgames/agones/search?l=Go&q=v1beta1
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 https://github.com/googleforgames/agones/issues/1799).
For things where beta was dropped in 1.16 (like scheduling.k8s.io/v1beta1
) we need to move now. But I did a search and only found one instance which was updated already in https://github.com/googleforgames/agones/pull/1714 so that task is complete.
AKS is ready, regarding EKS I have a draft PR working on the fix.
For things where beta was dropped in 1.16 (like scheduling.k8s.io/v1beta1) we need to move now. But I did a search and only found one instance which was updated already in #1714 so that task is complete.
Sweet. Ticked the box.
All ticks are in place. Just want to add that we need to add check Metrics checkbox as some names might be changed, there is a section about metrics: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.16.md#metrics-changes I look through our metrics, definitely that's not the case right now.
Thanks @aLekSer. I've created https://github.com/googleforgames/agones/issues/1824 for the 1.17 upgrade so that we can start capturing any additional steps there. Please feel free to edit that issue to add any steps that you know are missing.
Awesome work. Any objections to closing this issue then?
I think we are all set.
CLOSIING!
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