Re: Does Helm has a plan to support the complete Operator maturity level?
To complement and add to Paul and Matt's response.
Helm and Operator serve separate purposes and can be used in combination to achieve your application packaging and distribution goal. An Operator is typically developed if you want to perform certain application specific tasks in Kubernetes-native manner. We have seen a number of DevOps teams start out first by packaging their application as a Helm chart. They may use popular community Operators on their cluster (such as cert manager, Prometheus etc.) and create their custom resources through the Helm chart. Lot of times this arrangement is sufficient and does not require a brand-new Operator development. If you still see the need to perform certain application specific configurations through Kubernetes API, then you can explore writing an Operator for your application.
Going a step further beyond understanding the difference between an Operator and Helm, there are also some Operators in the community that are written to automate distribution and management of Helm charts, such as the Helm Operator from Operator SDK and our project KubePlus (https://github.com/cloud-ark/kubeplus). These Operators essentially wrap a Kubernetes-native API around Helm charts. The need for such Operators arises in situations when there are multiple teams or personas involved, such as provider of the application and consumer of the application, - say a DevOps team is looking to deliver an application as a service to their product team. For such a service-based delivery model, the typical day 2 operations include things like - ability to apply resource policies at application-level, ability to troubleshoot the deployed applications, ability to track resource consumption per application instance, etc. Generic Operators like KubePlus can help with these operations. If you are looking for day 2 operations such as the above, you can check out KubePlus.
From: cncf-helm@... on behalf of Matt Farina
Sent: Wednesday, October 6, 2021 2:04 PM
To: Anil Kumar
Cc: cncf-helm@...; Paul C
Subject: Re: [cncf-helm] Does Helm has a plan to support the complete Operator maturity level?
I’d like to add to what Paul said.
Helm and operators are two different types of things. They don’t solve the same problem. Think of it this way, would I ask apt or yum to implement ansible features? The answer is obviously no because they solve two different problems and can be used to compliment each other. Ansible regularly uses RPMs and Debian packages.
Helm is a package manager like apt or yum. It is used to install, upgrade, and uninstall packages.
Operators are more complex. To quote the original definition of operators…
It’s about managing instances of applications. This reminds me of something like ansible or Chef. It’s more like Chef conceptually because Chef did things with agents and a pull based model.
These two can complement each other. An operator can use Helm and charts for the install, upgrade, and uninstall elements. In fact, some do.
So, I would not expect to have Helm support operator capabilities because they solve different problems. The fact that they’re compared that way is marketing rather than technical.
- Matt Farina