Automatically migrating to K8s 1.24 (and beyond) with Janos

Pablo Loschi
2 min readJan 26, 2023

TLDR: Janos will keep your YAML manifest up to date, automatically migrating Kubernetes deprecated APIs

Following up on this, the cute little monster that we created some time ago with Denis Policastro, Janos, was just updated to support Kubernetes 1.24 “Stargazer”

Kubernetes 1.24 “Stargazer”

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. Replace: extensions/v1beta1 with networking.k8s.io/v1beta1
- 1.16: for Kind: PodSecurityPolicy. Replace: extensions/v1beta1 |apps/v1beta2 with policy/v1beta1
- 1.16: Generates the now required spec.selector for Kind Deployment |Daemonset |Statefulset |ReplicaSet (using matchLabels app name, you can read more about these here), only if it doesn't exist
- 1.17: for Kinds:Role |ClusterRole |RoleBinding |ClusterRoleBinding: Replace rbac.authorization.k8s.io/v1alpha1 | rbac.authorization.k8s.io/v1beta1 with rbac.authorization.k8s.io/v1
- 1.19: for Kind: HorizontalPodAutoscaler. Replace: autoscaling/v2beta1 with autoscaling/v2beta2
- 1.21: for ValidatingWebhookConfiguration and MutatingWebhookConfiguration: Replace admissionregistration.k8s.io/v1beta1 with…

--

--

Pablo Loschi

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