/janos-k8s-migration-tool

Janos K8s update and validation tool

Primary LanguageShell

Janos

Welcome, time traveling soul… janos is a tool for Updating Kubernetes YAML configuration files. It performs the steps required for a migration from K8s 1.15 to 1.16 therefore can validate schemas for multiple versions of Kubernetes.

It has the following dependencies:

Janos performs 3 operations:

  • Migration of deprecated APIs for K8s 1.16
  • Generates field spec.selector which is required since 1.16 if it doesnt exist (it gets generated dinamically using matchLabels $app-name)
  • Validate the resulting yaml for any K8s version using Kubeval

There is a dockerfile with all the dependecies Here

To install them on linux:

wget https://github.com/instrumenta/kubeval/releases/latest/download/kubeval-linux-amd64.tar.gz && tar xf kubeval-linux-amd64.tar.gz && sudo cp kubeval /usr/local/bin
wget https://github.com/mikefarah/yq/releases/download/v4.3.2/yq_linux_amd64.tar.gz && tar xf yq_linux_amd64.tar.gz && mv yq_linux_amd64 /usr/local/bin/yq

For a story about this use case see Story.