Helm v3 Beta 1 Released
Tue, Aug 27, 2019
Helm v3 development has hit a new milestone with the release of the first beta. This is an especially important milestone because it is the end of the effort to refactor Helm v3. The last of the intended breaking changes has landed. From this point on, Helm v3 is focused on bug fixes, stability, and preparing it for a stable release.
If you are interested in Helm v3 now is a great time to test it out. If you find issues please file an issue if one has not already been filed.
Notable changes since Helm v2
- Tiller has been removed. This simplifies the experience of using Helm. There is no more need to have cluster admin privileges or to install a Tiller in every namespace. With Tiller removed, Helm now uses the settings and access defined in the local kubeconfig file.
- A name is now required on install or you can use the
--generate-name
flag to have one automatically generated. This is a reverse of the Helm v2 behavior. - The
helm init
command has been removed. It performed two primary functions. First, it installed Tiller. This is no longer needed. Second, it setup directories and repositories where Helm configuration lived. This is now automated. If the directory is not present it will be created. - The Helm home directory used to be located off a users home directory. There is a standard known as the XDG Base Directory Specification that describes a standard method to handle these directories. Helm now follows the XDG specification.
- The
stable
repository is no longer added by default. This repository will be deprecated during the life of Helm v3 and we are now moving to a distributed model of repositories that can be searched by the Helm Hub. - The
helm search
command has been refactored to have sub-commands that can search the local repositories and the Helm Hub. - Release names are now scoped to namespaces. In Helm v2 the names were scoped to the namespace Tiller was running in. When Tiller was running for an entire cluster the names were scoped to the cluster. Names are now scoped to the same namespace as the release.
- JSON schemas can now be imposed on chart values and bundled with the chart. The schemas can be used for validating chart values.
- A new API version of charts are available. This new
apiVersion
isv2
and contains several changes including:- Requirements are now listed in the
Chart.yaml
file instead of therequirements.yaml
file. - A
crd
directory has been added to charts for the placement of CRDs. These will be installed before the rendering of the templates is performed. Once the Kubernetes community has worked out more workflow details with CRDs more features can be added to Helm to support them.
- Requirements are now listed in the
- The
crd-install
hook has been removed and will not work for Helm v2 charts. A “legacy” plugin will be released by the Helm project to support v1 charts with thecrd-install
hook. - Experimental feature gates are now supported. As new potential features are added to Helm they can be worked on as experiments and enabled using an environment variable.
- Pushing and pulling charts from OCI registries is now an experimental feature. The final details of this feature are being worked out with the OCI on the proper use of the API. To access this feature set the environment variable
HELM_EXPERIMENTAL_OCI=1
needs to be set. helm serve
has been removed.- Helm now supports library charts. These charts are not meant to be installed but can be depended on and referenced by other charts. These were inspired by the common chart in the incubator repository.
helm test
received some major refactoring. This included thetest-success
hook’s behavior coming in line with other hooks and the removal of thetest-failure
hook due to lack of use.- Several CLI changes have happened for usability including:
helm inspect
is nowhelm show
helm fetch
is nowhelm pull
helm delete
is nowhelm uninstall
- Instead of using the
--purge
flag onhelm uninstall
the behavior is to use the--keep-history
if you want to keep the history.
Helm v3 Next Steps
The next steps in the road to a Helm v3 stable release will be to focus on fixing bugs and stability. More beta releases or release candidates will follow before making a final 3.0.0
release.