Jacco Taal draws a parallel between Helm and PHP, highlighting their success despite focusing on templating strings. He discusses Helm's flaws, alternative tools, managing third-party packages, and duplicated charts. The podcast also covers community reaction, expressing opinions, and scuba diving in Zealand.
Helm's templating approach treats YAML files as plain text instead of proper Kubernetes resources, leading to readability and maintainability challenges.
Use ArgoCD, Prometheus, and an ELK stack as essential tools for a brand new Kubernetes cluster.
Deep dives
Issues with Helm's Design and Flaws
Jacob, a CTO and founder based in the Netherlands, criticizes the design of Helm, a popular tool for packaging Kubernetes YAML templates. He argues that Helm's templating approach is fundamentally flawed, comparing it to similar issues in the PHP language. Jacob believes that Helm treats YAML files as plain text files instead of proper Kubernetes resources, leading to readability and maintainability challenges. He highlights difficulties such as managing multi-line strings and losing strict schema enforcement. Despite acknowledging the stability of Helm packages, Jacob suggests using Customize as a better alternative for configuring individual projects.
Using ArgoCD, Prometheus, and an ELK Stack as Preferred Tools
When asked about the first three tools to install on a brand new Kubernetes cluster, Jacob recommends ArgoCD, Prometheus, and an ELK stack. ArgoCD is praised for enabling GitOps and automating deployments, reducing manual Kubernetes commands. Prometheus is essential for proper server metrics, providing insights into cluster health. Additionally, Jacob emphasizes the importance of an ELK stack for monitoring and analyzing cluster logs. These tools are widely popular, mature, and align with Jacob's preference for automated workflows and observability.
Customize as an Alternative to Helm
Jacob expresses his preference for using Customize instead of Helm for his own projects. He finds Customize to be well-defined, well-documented, and a suitable approach for managing individual deployments. While acknowledging that Customize has its own flaws, Jacob believes it aligns better with GitOps principles and offers good support in tools like ArgoCD. He emphasizes that Customize is not a package manager, but a tool for personal project management, advising users to leverage Helm packages when appropriate.
Helm is a popular tool for templating and packaging Kubernetes resources, but does it mean it's the best?
In this episode of KubeFM, Jacco draws a parallel between Helm and PHP and the similarity in which both tools became a success despite their focus on templating strings.
You will also learn:
Helm's flaws and how you can avoid them.
Alternative tools that can (partially) replace Helm.
How to manage third-party packages and templating internal YAML resources.
Jacco shared several examples demonstrating duplication in Helm charts and a lack of structured typing.