Automatically migrating to K8s 1.16 (and beyond) with Janos

Pablo Loschi
2 min readMar 12, 2021

I thought I’d strike again with a small hands-on tutorial on using Janos, a tool we created to simplify the migration to EKS 1.16 as required by Amazon. This will be the final step towards ending EKS 1.15 support by May 3, 2021. Nothing too fancy. Just straight to the point :)

Kubernetes sometimes deprecates apiVersions. Most notably, many deprecations occurred in the 1.16 release.

This means that you need to update your yaml files before!

Therefore, you will need to update your Kubernetes manifests to the correct API references before that deadline! At SumUp, we automated this process as we have a large number of clusters.

We started by reading this article, which is a great start but is missing some steps, such as making spec.selector a mandatory field for kind = Deployment |Daemonset |Statefulset |ReplicaSet .

You can see all the required steps for Kubernetes version 1.16 here and 1.17 here.

Janos performs the following changes:

* 1.16: for Kind: Deployment |Daemonset |Statefulset |ReplicaSet Replace for extensions/v1beta1 | apps/v1beta1 | apps/v1beta2 with apps/v1* 1.16: for Kind: Ingress. Replaces: extensions/v1beta1 with networking.k8s.io/v1beta1* 1.16: for Kind: PodSecurityPolicy. Replaces: extensions/v1beta1…

--

--

Pablo Loschi

Devops K8s and some random stuff from here and there. Berlin based, currently working at Verve