Automatically migrating to K8s 1.16 (and beyond) with Janos

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:

The code can be found here: https://github.com/sumup-oss/janos

So just create a branch, run the tool and generate a PR with all this changes.

> git checkout -b eks-migration

Installation

Build the image before running the script, because it will be executed inside the container.

Usage

All the rules are in the file migration.js.

EKS update done :)

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

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store