We have written more than 10 operators for Kubernetes.
When we started our journey in 2020, we thought lots of people surely must have done this already.
We could not have been more wrong.
As it turns out, most people write a single operator: For their product. All of them slightly different. Everyone has their own way of specifying Pod overrides, storage, TLS or LDAP support, log aggregation, monitoring, and so on.
This is before we have entered the land of horror that is Kerberos, multi-homing and various other fun topics like certifications.
We knew that we would be writing more than one we made sure to move as much functionality into a common framework as possible. That is also the reason we did not pick Go as our programming language of choice but are using Rust instead. Its support for generic (which Go lacked at that point) made it much easier to extract common functionality.
In this talk we will tell you about some of the things we learned while writing our operators, pitfalls, open questions, and a plea to collaborate on some standards in the operator world. We – as a community – can do better than today's state, I am sure of it.
But you will not only hear the developer’s side, but you will also hear the side of a user and partner of ours who appreciates the ease of use across multiple operators and utilize the Stackable platform to build on prem data platforms for their customers.
Would we do it again? Yes.
Would we do it differently? Also, yes. |