What Is New in Helm 2.1?
| Category | Highlights |
|---|---|
| New Features |
|
| Improvements |
|
| Bug Fixes |
|
| Documentation |
|
What Are the Core Changes Introduced in Helm 2.1?
Kubernetes Compatibility
Helm now bundles the client libraries for Kubernetes 1.5 while retaining full compatibility with 1.4. This matters because you can adopt newer cluster features without waiting for a separate Helm release.
Plugin Architecture
The plugin framework lets you extend Helm with scripts written in Bash, Python, or any executable. Plugins are discovered from $HELM_HOME/plugins and can hook into any Helm command.
Resource‑Policy Keep
Adding resource-policy: keep as an annotation prevents Tiller from deleting the annotated resource when the release is removed. Useful for preserving CRDs or external services.
Files Object Enhancements
The .Files template helper now supports Glob for pattern matching and methods AsConfig / AsSecrets to generate ConfigMaps or Secrets directly from file bundles.
SemVer 2 Range Support
Dependencies declared in requirements.yaml can now use full SemVer 2 range syntax, enabling more precise version constraints for sub‑charts.
User‑Facing Improvements
- Multiple
--valuesfiles are merged in order. - New template functions like
trimSuffixandLinessimplify string handling. - Enhanced error output points directly to the offending template line.
FAQ
Can I run Helm 2.1 against a Kubernetes 1.4 cluster?
Yes – the release is tested against 1.4 and works without modification.
How do I create a simple plugin for Helm?
Place an executable script in $HELM_HOME/plugins/myplugin with a plugin.yaml manifest; Helm will expose it as helm myplugin.
What does the resource-policy: keep annotation look like?
Add annotations: helm.sh/resource-policy: keep to any manifest you want Helm to leave untouched on delete.
Is there a limit to the number of --values files I can supply?
Helm merges any number of files sequentially; later files override earlier keys.
Do the new .Files.Glob and AsConfig helpers require any chart changes?
Just reference them in your templates, e.g., {{ .Files.Glob "config/*.yaml" | .AsConfig }}, and Helm will create the ConfigMap automatically.