Kopf is forked

Sergey Vasilyev
8 min readAug 20, 2020

TL;DR

Kopf is forked into a new repository: https://github.com/nolar/kopf/ — and moves according to the previous roadmap.

Kopf is a Pythonic framework for Kubernetes Operators originally made by me, Sergey Vasilyev, under Zalando’s open-source umbrella. However, our team’s work tasks shifted away from it, and it was stagnating for months. Now, I continue it as a personal project to not let it die.

A temporary logo for Kopf — a cubic head (cubic — because KUBErnetes; head — because “Kopf” means “head” in German in all meanings). The ear-worm on the left is supposed to be a python (snake), but I am bad in the arts.

Dawn of Kopf

Back in 2018–2019, we in our team in Zalando started a migration from STUPS and manually managed servers to Kubernetes. But since we all were new to Kubernetes, we did this in small iterative steps, one application at a time. That also means that we migrated the applications “as-is”: without leveraging Kubernetes’s features in any way or making them Cloud Native (not even knowing what that means).

We started creating Jobs and PersistentVolumeClaims for every data-crunching run. And so, we have discovered a concept of Kubernetes operators and custom resources: we, humans, create a little YAML file, send it to Kubernetes, and a special application reacts to that, and spawns Job+PVC pairs with all the details, and monitors how the Pods are doing, and reports back.

Perhaps, this approach is not what Kubernetes operators were intended for — i.e. not operating the applications…

--

--

Sergey Vasilyev

🐍 Pythonista. 🗿 Author of #Kopf. 🧡 Sr Backend Engineer @ Zalando. 👽 Chronic imposter. 🤷‍♂️ He/him. ♻️ But everything changes. Always.