Helm
Happy May! We'd like to introduce you to Helm 2.4.0. This is a feature release, and we strongly recommend that Kubernetes 1.6 users upgrade to this version.
The community keeps growing, and we'd love to see you there.
- Join the discussion in Kubernetes Slack:
#helm-usersfor questions and just to hang out#helm-devsfor discussing PRs, code, and bugs
- Hang out at the Public Developer Call: Thursday, 9:30 Pacific via Zoom
- Test, debug, and contribute charts: GitHub/kubernetes/charts
Installation and Upgrading
Download Helm 2.4. The common platform binaries are here:
Once you have the client installed, upgrade Tiller with helm init --upgrade.
Note: On Kubernetes 1.6, you will need to decide how to configure your RBACs for Tiller.
The Quickstart Guide will get you going from there. For upgrade instructions or detailed installation notes, check the install guide. You can also use a script to install on any system with bash.
Kubernetes 1.6 Native!
This version of Helm is compiled against Kubernetes 1.6. This means that all of the 1.6 features are officially supported.
Since kubeadm recently enabled RBAC by default, we have also made it easy to set a Service Account on your Tiller server during installation:
$ helm init --service-account=SOME_NAME
Note that if you are an RBAC user, you will still need to configure your service account and rules.
If you are running Kubernetes 1.6, you should upgrade to Helm 2.4.
Plugins, Phase 3 (of 5)
In Helm 2.1 we introduced client-side plugins. In Helm 2.3.0 we introduced the new plugin manager. Now, in 2.4 we are introducing protocol hooks. This is the first implementation of a design pattern that allows developers to hook into Helm's runtime.
In this case, a protocol handler can declare a protocol (like s3) to Helm. Any time Helm encounters an a matching protocol request (s3://foo/bar), it will execute the plugin.
All of this is done by adding a downloaders section to your plugin.yaml:
name: "testgetter"
version: "0.1.0"
# ...
downloaders:
- command: "$HELM_PLUGIN_DIR/get.sh"
protocols:
- "test" # handles test:// URLs
Where it makes sense, we will be adding new lifecycle hooks to the client-side plugin system.
Still to come:
- Server-side plugins are on their way.
- In-place plugin upgrading will arrive (probably) this summer.
Breaking Changes
Several important Helm/Tiller subsystems changed with this release. While none of these changes violated our guidelines on breaking changes, we like to call out things that could be important to users of Helm and Helm's internal libraries.
Usage Changes
- Template execution will now fail if an
includetemplate function cannot find the file it was trying to include. This is now consistent withtemplate. - When a
requirements.yamlfile has a dependency not found incharts/,helm installandhelm updatewill fail with an error (instead of printing a warning).
Developer Changes
- We upgraded to gRPC 1.2 for security reasons. This changes the generated
.pb.gofiles. - Moving to Kubernetes 1.6 means we had to add some extra build steps to
make bootstrap. You cannot currently simplyglide install. On rare occasions, rebuilding from source may first require deleting yourvendor/folder and then runningmake bootstrap. - The TLS client auth policy introduced in 2.3 has improved.
- The
local-clusterscript for starting a development Kubernetes instance has been removed.
Other Features
After 2.3's massive new feature set, we focused our 2.4 energy on stability. But we still managed to squeeze in some exciting little additions.
- New Helm template function:
merge(with Sprig 2.11.0) - Now we have zsh completion!!! Use
helm completion zshfor zsh andhelm completion bashfor bash. - New locking on release objects has been introduced.
- The
getscript for installing Helm has been improved - Add
--net-hostto init - Change your default repository on init
- Add Prometheus hooks for monitoring Tiller
- Simplify testing with canary images
- Charts can now have version constraint checks
These and many other fixes and updates are listed below.
What's Next?
- Helm 2.4.1 will be our next patch release.
- Helm 2.5.0 is the next major release. While 2.4's development cycle was accelerated to accommodate Kubernetes 1.6, we will be returning to our regular pace with 2.5.
Changelog
- chore(tiller): bump Sprig to 2.11.0 4d8f23e0c63aada4d7c57a25b4b384734bc3c930 (Matt Butcher)
- fix(releaseutil): remove newline on SplitManifests dcfbb2bd35b90cac6a25fa2a9bbd59150ff70abf (Michelle Noorali)
- fix(create): incorrect URL in default NOTES.txt f8b2c5eb571e46d99b88dab8498408b35f892f11 (Adnan Abdulhussein)
- Return as not ready if it new RS is nil 46cad979502c44724241a9542f49f6805d4723bf (Kiichiro Okano)
- fix(tiller): make new version check backwards compatible 9ae84c730f6b1b3e77f013138c1b6420a585c494 (Adam Reese)
- ref(getter): flatten the getter package tree bd02f3938426ebfc26bc2ed7280c5b71da38a547 (Matt Butcher)
- fix(*): handle unreleased versioning 2e819e014d78b83c15252571f7bcac75cd226ab7 (Adam Reese)
- feat(helm): add service account flag to helm init 64e9e471838ac44e551c32abcbd19f671c80ecce (Michelle Noorali)
- fix(tiller): fix TOML panic 46035c35c418a18df7c62686196ac7d3ef54ac2f (Matt Butcher)
- Add support for zsh to helm completion 49e7aa854a19cde5c72fface2316fbf402d70242 (Nikhil Manchanda)
- chore(ci): bump go 1.8.1 5c53661a506c2d608855d8476e64b969de677691 (Adam Reese)
- Fail template execution if included template fails 124235ffed93e5c70e8a3826bfaad68dd4ceae85 (Fabian Ruff)
- fix(helm): fix style issues 3c55a0ee65804293c9f20d48108d5f4f273a35ba (Matt Butcher)
- Update Makefile to require Mercurial 8c437e518b33ba88edcf0d2c0be0cf6a4d135b8c (Reinhard Nägele)
- Add Git and Mercurial to build prerequisites 6bdc7ed9906aabe07ed09f55108ac07e7e8b3ca0 (Reinhard Nägele)
- chore(ci): remove travis configuration 83ed3384d29aa980c5a5ed8d5dbb6ae1d804d572 (Adam Reese)
- chore(scripts): remove unsupported local-cluster script 074d2eb711258efe822d48307f586936023e5331 (Adam Reese)
- docs(chart_hooks): clarify hook execution order 3516314838e7907296f96c2e594878ac736ef9e7 (Matt Butcher)
- fix(helm): return error when dependencies are missing 6246fa12a807e5c6ceb863f38dd6afa05ffc14fb (Matt Butcher)
- feat(*): update to latest gRPC and Protobuf 7094651493648b706613cb9fd04b477870d6b5ef (Matt Butcher)
- Update Slack channels f206f03a1baab9b15927bf773549eb05bec772df (Trevor Hartman)
- Update comment in function 18fc8a853911c4fdbd068628496fb081279fb273 (Jorge Marin)
- Release are locked to avoid parallel changes ec92b760543cccce343fdd9be0a17ab9b2572f61 (Maciej Kwiek)
- Print escaped chars 6adf7d59dea439e81f50a88d35764e47f7fcf012 (Jorge Marin)
- Use '-SsL' for all 'curl' calls to get response using SSL, silently and following reedirections e114807c453d2e63e5234c70beb39a37f285cd73 (Jorge Marin)
- Replace call to Github HTTP API with normal Github URL 037ff5b51c593c3d23c6f2fc83bc95630e10dc31 (Jorge Marin)
- fix(tiller): update tls client auth policy d7240ff9430e31fa950e27fe5aa7a60edc3d99bf (fibonacci1729)
- chore(README.md): update zoom meeting link dfbdd4c5eaf5a87a58d0a03506e63937589924e2 (Michelle Noorali)
- chore(*): bump kubernetes to v1.6.2 2540836133fbeadbaf312dc7f5b086bf4fec3a6f (Adam Reese)
- Added reference to plugins 4fb7deb023df7af6a25390f972099bd534fdd157 (spiddy)
- ref(helm): use new debug method to standardize debug output 50eee8364655b7240108f4af2fb4e835c1ddfb2d (Adam Reese)
- ref(*): Regenerates protobuf files with protoc 3.2.0 c463e1f1854a7e2101ca0d0ecb555080de2b5991 (Taylor Thomas)
- Fix indent for defaultDeployment ce505f16e6671417135c23ebc9d28916ce8cea6c (Matthias Thubauville)
- bug(helm) - install/upgrade/search semver constraint support 7150fc3d9e06e1532b55399a328210637bce7865 (Shane Starcher)
- Add docs for new init flag 'net-host'. 85b7890bfd5b6b5a756b9d7f48208d8f121ddae4 (Justin Scott)
- WIP feat(tiller): add --net-host flag to 'helm init' 48649fe03ee85ac6a7ad74a0dbd89394c917999c (Justin Scott)
- test(*): add tests for new tls support 73e63992945029e7dca05b1b60aa9021a73cc457 (fibonacci1729)
- Validates chart-dir before running dependency list command 99065aa331ce1c4686e4cea9e97d891421f2dce1 (Sushil Kumar)
- Pluggable downloaders. Closes #2093, #2094. b4ca198cc625f5dc8a3544c475b2ad4c3499c5db (Gergo Huszty)
- Docs updated for new flags 2e8d2c0178e9b6d432c32426070af37b0166c923 (Sushil Kumar)
- Exposes repository-URLs as flags on helm init command 5431f33cb1feed93f50318569913afc180928368 (Sushil Kumar)
- Add prometheus monitoring for tiler 8c81e7336abde2b2f1680dfd930e92d2740457b0 (sadlil)
- clarify helm serve's intent 43b393f617608ee5c9d2c6d640fc46e0e36a7a72 (Matthew Fisher)
- fix(tiller): ignore empty YAML documents during delete 573a8a190c85e6bea538f4a739e16d5634c128b2 (Matt Butcher)
- docs(*): generate latest docs a92a36762c631e0654062004c52be9e552b7611d (Adam Reese)
- fix(scripts): don't include plugins for generating docs 6bcd19d5191b223612b1cda5b73dab2fab66b978 (Adam Reese)
- Update docs 190e5c82dd6eb536bcb751c1a8a02f7935906cac (Christoph Blecker)
- Add docs-verify script 797800a289d93c4a644a855450b25159bfd3bff0 (Christoph Blecker)
- fix(helm): fix nil pointer in requirements.go 19b111b1238d6aa770cb371dbf8b99492ae38d99 (Matt Butcher)
- fix(tiller): increase maximum size of gRPC message 26343023a3cff4ef4a484e9a04b80ed0fc6190c1 (Serguei Bezverkhi)
- fix(helm): correct import for apps api 7a141a10b3972a0761aab7b47d4d159bf7b59df0 (Adam Reese)
- ref(*): kubernetes v1.6 85c41ef11ab34b266cf31096826057040a1576b8 (Adam Reese)
- fix(init): use ImagePullPolicy Always for canary installs 264ad3271ed01697c359bdfd1506c8cacf35721c (Adam Reese)
- Added release-name to helm delete error 000bf9fd1a09666ca08af887f02f52fee87a6367 (Sushil Kumar)
- Fixes hard-coded linux based file-separator 84fc5b776f6aadc5bcaecfdbf5e521dee4d45d72 (Sushil Kumar)
- Add note about gopath in developer docs 8654962defcd6c404cc98c455f3a4b278f57eb63 (Dan Bode)
- Change secret name to something more standard 5bdcbee9af0bf0397fe0d76b1efa7d2a2654b9b3 (Scott Rigby)
- Change to hosts array, and parameterize serviceName and servicePort 2be4547d13ed850f3402c155fea8a411094cf61c (Scott Rigby)
- docs(related): add note about helm-plugin GitHub tag 88a4c156139a7c609114f9e5312f0918a7582e19 (Matt Butcher)
- Replaced InstallRelease with InstallReleaseFromChart in cmd/install.go 72c0c1ae8bb867112d5f425a67b47d044a08e449 (Sushil Kumar)
- fix(helm): remove duplicate commands 1a79c28f45f64967be118d0d684008dd7e493835 (Matt Butcher)
- ref(plugin): cleanup unused functions e611936893a2cea3c79df0841b57ec8928110097 (Adam Reese)
- docs(*): Adds developer workflow documentation 73747b953317c5842483410c9b17fada641442ec (Taylor Thomas)
- feat(tiller): support version constraint on chart e4e0e320645c75bd7d6fe8f73c4c017e4ba5e245 (Matt Butcher)
- docs(plugins): add app registry plugin link b4cf7f11905435c3bbdae3a092659ff618023e14 (Jimmy Zelinskie)
- Fix spacing 22cec7cdc13ccf26f24f80d0b911c7a9045bdd16 (Scott Rigby)
- Update TestCreateStarterCmd expected templates c9e6c410516941657357ad9fcbbb20594edef9e8 (Scott Rigby)
- chartutil create ingress example 37fd7df6275fe74a6f1ccaeb6d36026a177903b0 (Scott Rigby)