<p>Can anyone explain in simple terms what is the difference between deploying Kafka through Kubernetes operator (for example Strimzi ) and Kafka helm chart or manifest file?</p>
<p>Previously in my project we used helm chart for kafka but for now we've received requirement to move to kafka strimzi-operator. I can't access people who invented it but my colleguess also don't know the reason.</p>
<p>So please explain why kafka strimzi operator better (or maybe worse) than kafka helm chart ?</p>

<p>Helm is like a package manager. It can install applications on your cluster, but it has only some basic logic for updates to its configuration or for version upgrades. You control it through the <code>helm</code> commands and call it when you need it. So it helps you with some tasks, but it is still up to you to run your Kafka cluster day-to-day.</p>
<p>Operators on the other hand are (usually) more sophisticated. They don't handle only the installation but also <em>day-2 operations</em>. They essentially try to encode the knowledge and the tasks a human operator running someting like a Kafka cluster would need and do into an application (= the operator). The operator runs all the time in your cluster, and constantly monitors the Kafka cluster to see what is happening in it, if some actions should be taken, and so on. For something like Kafka, the Strimzi operator for example incorporates the rolling update knowledge such as that the controller broker should be rolled last and partition replicas kept in-sync, it deals with upgrades which in Kafka usually consist of multiple rolling updates, handles certificate renewals, and much more.</p>
<p>So an operator will normally do a lot more things for you than a Helm Chart as it operates the Kafka cluster for you. For stateful applications such as Kafka or for example databases, this can often make a huge difference. But it is usually also more opinionated as it does things the way it was programmed to which might be different from what you were used to. Helm Charts normally give you a lot of freedom to do things any way you want.</p>
<p><em>Note: Different operators have different features and levels of maturity. So they might or might not support different tasks.</em></p>
<p>If you google for it, you will find many different articles, videos, or conference talks about the <em>Kubernetes operator pattern</em> and compare it with Helm Charts which will explain the differences.</p>
<p><em>(Disclaimer: I'm one of the Strimzi project maintatainers)</em></p>
