Kompost - A Kubernetes Operator written in Elixir


I’ve build Kompost, a Kubernetes Operator written in Elixir. Kompost is meant to be a “fertiliser” for development teams running their services/application in Kubernetes. It gives them the ability to manage certain infrastructure resources through their Kubernetes Cluster. Combine Kompost with ArgoCD or similar to manage databases and hopefully soon other resources, too, in a GitOps manner.


In the past year, I’ve spent quite some time maintaining and refactoring Cory O’Dainel’s libraries k8s (Kubernetes Client) and Bonny (Kubernetes Operator SDK). Now it was time to eat some of that dog food and create my own Kubernetes operator with Bonny.

Kompost is built as a set of components (Kompos). At this moment there are only two components: Postgres and Temporal whereas Temporal is in very beta state, so let’s talk about Postgres. The Postgres Kompo lets you manage (create) databases on an existing Postgres server by applying the right custom resources to it.

Some time into development I found out db-operator does the same as my Postgres Kompo already. I’ve started using db-operator and lost motivation to work on Kompost for some time. But then I found some things I would have done differently and it gave me back motivation to work in Kompost and bring it to a usable state (add some more features to the Postgres Kompo, Create some nice documentation, create a Helm chart, etc.)

So if you’re working with Kubernetes, give it a spin, I’d love to hear from your experience.


PS: I guess there’s only a category for libraries and none for projects in this forum, right? So I’ve put this under “Chat/Discussions”…