What Are the 5 Most Important Changes in Helm 3? A Deep Dive
This article explains the five key Helm 3 changes—including the removal of Tiller, the shift to distributed chart repositories, JSON schema validation, enhanced testing, and command‑line syntax updates—while providing practical command examples and discussing their impact on Kubernetes workflows.
Removal of Tiller
Helm 3 eliminates the server‑side component Tiller, turning Helm into a pure client‑side tool that uses the same credentials as kubectl. This removes the need for ClusterRole permissions, avoids the security gap between Tiller and kubectl, and simplifies installation by discarding helm init.
Distributed Repository Model and Helm Hub
Helm now uses a distributed repository model. The pre‑defined central repository is gone, and Helm Hub is introduced as a discovery platform for distributed chart repositories.
Pre‑defined central repository removed.
Helm Hub added to helm search for chart discovery.
To install a chart like Hazelcast, you must first add its repository:
$ helm3 repo add hazelcast https://hazelcast.github.io/charts/ $ helm3 repo update $ helm3 install my-release hazelcast/hazelcastYou can also search the Hub: $ helm3 search hub hazelcast This command lists all distributed repositories containing charts with “hazelcast” in their name.
JSON Schema Validation
Helm 3 allows chart maintainers to define a JSON Schema for values, preventing invalid configurations from being applied. For example, setting a string where a numeric port is expected triggers a clear validation error.
$ helm2 install --name my-release --set service.port=string-name hazelcast/hazelcastThe error output shows the schema mismatch, helping users identify the problem quickly.
Helm 3 also enables OpenAPI validation of Kubernetes objects before they are sent to the API server.
Helm Test Improvements
Testing support has been refined: tests can now be defined as Job resources instead of long‑running Pods, and Helm can automatically clean up test resources unless the --cleanup flag is used.
Tests run as Jobs instead of Pods.
Resources are removed automatically by default.
Command‑Line Syntax Changes
Helm 3 introduces several CLI changes that break compatibility with Helm 2. Release names are now required; to generate a name automatically, use --generate-name. The helm init command is removed, and uninstalling a release is simplified to helm uninstall <release-name>. Some commands have been renamed or aliased, and a full list is available in the official documentation.
$ helm2 install --name my-release --set service.port=string-name hazelcast/hazelcast $ helm3 install my-release hazelcast/hazelcast $ helm uninstall my-releaseWhen writing tutorials, specify whether commands target Helm 2 or Helm 3.
Conclusion
Helm 3 marks a significant evolution, turning Helm into a lightweight client tool, embracing distributed repositories via Helm Hub, adding JSON schema validation, improving testing, and updating CLI syntax. These changes enhance security, flexibility, and user experience for Kubernetes package management.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Alibaba Cloud Native
We publish cloud-native tech news, curate in-depth content, host regular events and live streams, and share Alibaba product and user case studies. Join us to explore and share the cloud-native insights you need.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
