Helm
🌷 Spring is here, and a new version of Helm has bloomed. Helm 2.3.0 is packed full of features and fixes.
Our community keeps growing, and we'd love to have you participate.
- Join the discussion in Kubernetes Slack:
#helm - Hang out at the Public Developer Call: Thursday, 9:30 Pacific via Zoom
- Test, debug, and contribute charts: GitHub/kubernetes/charts
Install! Upgrade!
Download Helm 2.3. 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.
Introducing the Helm Plugin Manager
We introduced Helm plugins in 2.1.0. And now we're bringing plugins to a new level with the Helm Plugin Manager. Installing plugins is now as easy as this:
$ helm plugin install https://github.com/adamreese/helm-last
The above will install the helm last plugin directly from GitHub. You can view your plugins with helm plugin list and remove plugins with helm plugin remove.
Plugin developers get a few new goodies, too, including a workflow for local development and a hook system for running special commands on install and delete. We're creating a list of Helm plugins to help the community find useful extensions.
A Garden of New Template Functions
We've been hard at work making the Chart template system more powerful.
- There is now a
requiredtemplate function for marking a parameter as required. - Along with
toYamlandtoJson, we also have atoTomlconversion function. ConfigMap generation just got a lot easier. - Sprig (our template function library) has dozens of new functions, many for improving flow control. And the library has new documentation too.
Hoisting Values from Child Charts to Parent Charts
It is now possible to hoist values from a child chart to its parent. Building on 2.2.0's changes to requirements.yaml, Helm 2.3 allows chart developers to specify child values that should be extracted from the child chart and inserted into the parent.
This makes it possible to share variables upward without surprises. Check out the docs for this new feature.
And More TLS!
In Helm 2.2, we made it possible to use TLS to secure your chart repositories. With 2.3 we now support TLS encryption between helm and tiller (vai SSL gRPC). To get started with this, run helm init --help and take a look at the new TLS flags.
Other Features Have Sprung Up
We've included many more features in Helm.
- Hooks can now be "weighted", giving chart authors the ability to run hooks in order
- The
--reuse-valuesflag makes it possible to run ahelm upgradeand re-use the old values - Two new fields have been added to Chart.yaml:
appVersionfor specifying the version of an application that a chart provides, anddeprecatedto indicate that a chart is no longer maintained. - A
--skip-refreshflag has been added tohelm repoandhelm initto prevent Helm from re-fetching repository index files. - The plugin system can be disabled via environment variable.
helm servenow has a--urlparameter for specifying a base URL.
Pile on a few dozen bug fixes and documentation changes, and you'll see how our always growing community has been hard at work.
What's Next?
- Patch releases will begin with Helm 2.3.1, focused on bug fixes and documentation changes.
- Helm 2.4.0 is the next major release. The planned major features are:
- Migration to the Kuberenetes 1.6 library
- New Tiller-side plugins (called Rudders)
- Helm Authentication
- Protocol hooks for Helm plugins
Changelog
- feat(helm): add plugin management commands 51b8d8a6eeda62b1dda037d717a515a9662a5932 (Adam Reese)
- fix (pkg/chartutil): correctly parse input values for ProcessRequirementsEnabled 8c720ee2c2804880491319b74fead9fa187a2bf1 (Justin Scott)
- feat/tls: add TLS support for helm / tiller 735f4e3d4a9dbf24b8dec21006a09d09b3e176e5 (fibonacci1729)
- Trigger deployment as success when new replicaSet has reached minimum you need which is number of replicas minus maxUnavailable e3655bb142020d40567d63eb4376ffcf1a27672e (Kiichiro Okano)
- fix(*): add missing proto for weight hook e4d39fd8c8fd5597611aaf22ead21cce6f538798 (Adam Reese)
- fix(glide.yaml): update SemVer to 1.2.3 8928a10071aa32d3bdbe4f5a9e7e91e7e8a4e035 (Matt Butcher)
- docs(chart_hooks.md): Rename annotation from hookWeight to hook-weight fe57500930e8c797fe12dffa5364afab534ac959 (Jonathan Chauncey)
- feat(helm): add --reuse-values flag to upgrade daa39c2689c90453db5ea9799e1cd7b012cdeb72 (Matt Butcher)
- fix(helm): add 'skip-refresh' flag to 'helm init' ba6c55c987aa76b6c6f63cefdacaebbe037106a5 (Matt Butcher)
- fix(hooks): Change annotation from hookWeight to hook-weight b9ef8dbe563e6626c047d1cf91b1367ac7f087c2 (Jonathan Chauncey)
- feat(helm): add support for repo alias c010da4d9310a067dc45bf8cc2adb8c2d1533a92 (Qin Wang)
- Update comment. 68d400cd382d93d1132b1ec8641761c8c1cae221 (Anubhav Mishra)
- Correct indention of YAML field in subchartB 75ea56641318bd8f47cce9f1687c69efeb3068f4 (Justin Scott)
- Remove commented code 31e57d89212d54d621d30d7908a85064d5b27fb0 (Justin Scott)
- Fix codefences and nits in charts.md. Correct whitespace in charts. Add clarity to description of ImportValues requirements field. 3bf143f05223018eec79ca7ea9d91cf3fa559ec8 (Justin Scott)
- Update docs with details about exports 1a8e728ed9a7a29345df856ccc879c2fd4d4868a (Justin Scott)
- Refactor so parent's values win 7ea4d8c7c460eae18bf74c682832acfb009445ce (Justin Scott)
- Fixup style and errors 4a5721fb360bb25c88163e880ca020f4e460a17a (Justin Scott)
- Implement 'exports' convetion for simple list items 007bb9dbae5f893f8a18ed4feee78edd8813a420 (Justin Scott)
- Cleanup old todo, unused log and value for ImportValues feature 2bd4d1d003abadbe051eb1a72b0e621d8a509db4 (Justin Scott)
- Handle missed error and make error messages unique d1424f6c08ce1eb11c2958ca832e7d937d5c8fd9 (Justin Scott)
- WIP feat(helm): import child values to parent 0e81899f5f4f95fcef385bf84fee1edb288abaec (Justin Scott)
- Separate manifests with document boundary markers da950c5c57dfe93dc04bd94696c2e96f1f2c4b85 (Steven E. Harris)
- Fix identation of
helm dephelp text 5734c2162e6960b015b23a443421b77b10b817ad (David Wittman) - Fixes TestInstallRelease_VerifyOptions & TestUpdateRelease_VerifyOptions a484d00e33039d91a42104060d5e59e623e1f9ae (Sushil Kumar)
- Add more object kinds to sorted installation order 4178ec08ac57284075b3177522924b3f58fc4627 (Steven E. Harris)
- Sort dependent RBAC role and binding kinds 7ccfc6d7d48c874bb5bd97624372e70bbba656c8 (Steven E. Harris)
- able to build without being in a git repository 2dc69cfdb097f24434eae46a36744894e965e826 (Gergo Huszty)
- fix(helm): local path in requirements.yaml relative to working dir e6b79e138b1ec26c519b805fd9b100fe08128451 (Qin Wang)
- fix(helm): fix typo 76ebf20aac7b7939904130a3bf61b56e22cdf904 (Anubhav Mishra)
- fix(helm): more quotation fixes b208258f5304f8beb748f23e9f43129bb6ea3362 (Anubhav Mishra)
- fix tests 6aeadb272d53872f41b48c4b7aed9e58fafe6c56 (Anubhav Mishra)
- fix(helm): fix comments and removed unwanted split 1cf197d69e824e2747d674b3e4e2e0c6708fbcfa (Anubhav Mishra)
- fix(tiller): now better formatting 73fd0e4557e6557121b573db51b731bc214966ce (Anubhav Mishra)
- docs(plugins): add more helm plugin links c37c222731f98c187f12bf410b6a36656682e685 (Adam Reese)
- fix(helm): using regexp to match whitespaces instead 837da9360edea2d53169b2199202ba7a8a10a298 (Anubhav Mishra)
- fix(tiller): adding kind to tiller client logs c17ce5f9c1bd5d32ccdd0e48f3607ffd41707f1e (Anubhav Mishra)
- fix(helm): manifests string parsing works for newlines in the manifests 611bba0f51770d9b6671183171505e68b801383d (Anubhav Mishra)
- Forgot gofmt e42f39a1147a2965a19455ed60077f9a1f47c570 (John Welsh)
- fix(helm): Don't assume index.yaml is sorted f4486d485855f389e8244ea56cc3f0ebd43e1e49 (John Welsh)
- Fix typo in chart guide 694402a7638cad445d5e118b512a9ddf34427ef8 (Mario Lamontagne)
- docs(docs/charts_hooks.md): Add information about hook weights 91e7f6bfd69c4fde8cd382051c17486da304fc19 (Jonathan Chauncey)
- feat(hooks): Adds weighted hooks closes #2136 * Adds new annotation
helm.sh/hookWeight* Sorts executing hooks of similar kind in ascending order * There is no upper or lower bounds on the weights 05d0fcb774d8134b49e60587f4dd7db98c8ef7b7 (Jonathan Chauncey) - fix(helm): add --destination flag to 'helm package' a2ab1aaa09300186bd9d137e794c9b8a24313ff1 (Louis Taylor)
- docs(related): Added podcast, plugin article f4f274c571453c1d0566cb39a1baac17ee32238c (Matt Butcher)
- Added unit tests cfd041eed56002475841aac89116390447722bd3 (Sushil Kumar)
- Add link to Quay App Registry 7cffe38f84dbf809c226bbcd210ed51767fdc658 (Derek Perkins)
- feat: helm support for TLS ad614b91a53df2b5566a407760fc03c6cd14e248 (fibonacci1729)
- fix(ci): disable gosimple 41f727761556c0b37a0794c9317ca9bf60f2f98f (Adam Reese)
- fix(tiller): fix helm status failure on missing resource 27c3ff595a6ec7aad28bba27a37cf782b83528d7 (Matt Butcher)
- run glide up d2af40080601931de7db3f9d47ba3f8354e24efc (Matthew Fisher)
- Add checking installed helm version before downloading latest release 0d399baec2acda578a217d1aec8d7d707c71e44d (Leszek Charkiewicz)
- docs(related): add "Deploying Kubernetes Applications with Helm" 8108062543e71f329d3ef35dd747787741cb745c (Matt Butcher)
- ref/installer: pass arguments in options struct to installer apis efe5e2744b4f2940478a6638db3cc53a2f944331 (fibonacci1729)
- document toYaml syntax in --set for annotations d44b7ada14582ab471b369743f374b6f00f07f47 (Matthew Fisher)
- ref(helmpath): simplify path building of helmpath 390217d416537d3ca7abd7d2d0b4d0fd3d64aebe (Adam Reese)
- feat(tiller): update to Sprig 2.10. 4f79469a7289697a4e421ce834a0a4889cad3d56 (Matt Butcher)
- fix(tiller): enforce release name length on uninstall d4061b5b608cb328dc62c37e52348d0bdbe8fcd0 (Adam Reese)
- feat(proto): add deprecated field 8210dc7883642f95085fc9fce99ac2bd5b4436e9 (Adnan Abdulhussein)
- Add Blog post to related.md 06931e188bb64750e5ec0c9d831445e6f279aa8f (Jack Zampolin)
- Fixing plugin test 41f7c97a48645fb09ecd08c8fc9924a66c632c7d (libesz)
- Regenerate docs ea63663455c770bf9c8a42e006efa6abde765595 (Christoph Blecker)
- Add docs info to dependency.go bd2fad1987d42c88d331d541e385321e3caf6bf6 (Christoph Blecker)
- Add script to clean homedir out of docs 7b1a383950bf5acabdf3f13d4008f386980f7700 (Christoph Blecker)
- Change example to use the trademarked WordPress instead of Wordpress. 838ccd368c377e2f3affb7ddaeea697b3772650a (Brandon DuRette)
- fix(helm): remove max column width for repo list 3a5787335e1b9fab995bb9aad063c875ecde8df2 (Adam Reese)
- fix(tiller): Fixes problem with
--waiton headless Services 185fb4f43c0f77664430d7946f2a42a7c468b238 (Taylor Thomas) - Fix link for chart.md file 0499e3101789dd4795d7125fec478623b256190b (Eduardo Baitello)
- helm(version): set 5 seconds timeout c359ddf43ccef7e8da91bb3a9918229a7d8ccad1 (Ladicle)
- move pkg cmd/helm/strvals to pkg/strvals 1aee50f5dbc38dcd444b2dfd0f2d46df862892ee (Matthew Fisher)
- fix(docs): Updates hook documentation for
--waitflag 6a319bd8f5c5bee3c81b0ec036ff5afa9057566a (Taylor Thomas) - Update related.md 4bed6297a057123b5f4fd2697aa0a7079725fc76 (Luiz Bezerra)
- Update related.md c33677c3521480ff7fac0e10d9bd31c19bee4124 (Luiz Bezerra)
- docs(OWNERS): initial add of owners file cc8f0ee1e6136619cab67d7a740cd3918659c4ff (Matt Butcher)
- fix(helm): fix bug when helm update can't find release 1. d0c9bae9e92fbd2512d775fbaef8bfa52ef50da5 (Matt Butcher)
- Fix link to charts.md file 6ba9a14db0bff7981c6c23562b6fa33c592268a7 (Eduardo Baitello)
- helmpath goes under /pkg/helm/ 0537b08779039a6f77893e8fea76cecaa5fa4d5d (libesz)
- feat(helm): add support for required properties 79a3db0a63aad7d717454a4ddfd989096bc1c39e (Steve Wilkerson)
- feat(proto): add appVersion field 396f6cbcb221f89e13be523979fa05b28069dcb9 (Matt Butcher)
- docs(README): update downloads to 2.2.2. 273f6bd6914231b066c2204ab923f3191ade8f20 (Matt Butcher)
- child charts -> subcharts 022fcb813965ac77423ad4e0cca0fd22aa0ae684 (Adam Stankiewicz)
- Clarify inheritance behavior for global variables 42f598d8135ac72a6cc1c6d6d72e072b86dd7daf (Adam Stankiewicz)
- docs(chart_best_practices): create best practices guide 6a1fca9313105853c25dbdf8d6105fce2ab64d3d (Matt Butcher)
- fix checksum example 65a33d6ff0423d446090462068ae360a352fb338 (Fabian Ruff)
- docs(related): add "Using Helm to Deploy to Kubernetes" 0b9dce0aa617dd39c23f865143bce30ce25c08f5 (Matt Butcher)
- Add docs 2cb72f0589f15c9801db91d02150783565ec3b9b (Fabian Ruff)
- Add .Template.BasePath to template system 43a6bcff4086255a5410b4d5a9d5bb4f222842db (Fabian Ruff)
- Fixing pkg->cmd call by moving helmpath under /pkg 024fc5c8060959b61179d2fb1c8cfc731bd6af93 (libesz)
- Fix helm dep list reporting wrong status ee5dab9cb3eced74f5709cda6726794df4e152ae (Qin Wang)
- Link to the Helm Chart repository from the Helm project 5b5d689186055657b341dcb3fd1ec87db7b5b86b (Aaron Roydhouse)
- Change description a1fae7b419eabb9dd39f0415dafc996e1f76d643 (Fabian Ruff)
- docs(related): Add link to helm-diff plugin 9551f553cc730ee6e95582d621577e51d19dfeda (Fabian Ruff)
- install: Return more user-friendly response on eexists 33ace505cc95cf63b2589e66e19d3c288a0a7b92 (Dmitry Monakhov)
- fix(tiller): Fixes
--waitpanic on upgrade 9afa04b71bfdea012898f0790a381e70bdd0c61b (Taylor Thomas) - Add missing dependancy eb82c3f6307617a06e61135c1a73ae16ffbde226 (Jack Zampolin)
- Add missing dependancy b48236e4acf938dd17fbd3b979ef841b7414cf7f (Jack Zampolin)
- Add toToml function fc60d51be92aa46e829c278fe4c916cab918a423 (Jack Zampolin)
- Fix typo singing -> signing cbe372b8b149314757c457b5cbdd0d6104ffd5ab (Luke Kysow)
- expose LoadFiles as a usable function de6fb23e7ada129b92a6c5dbdac3befbc2f481f1 (Matthew Fisher)
- docs(related): add Monocular project reference 7916e659226b79231b80b5ee300539e8d68c90f3 (Miguel Ángel Martínez Triviño)
- docs(related): add KubeCon 2016 videos ae6836a3b82780c5be9628eadd46c13ae5de9b12 (Ladicle)
- fix(helm): add message if release deleted successfully e0596ec4c3d1254ca7cb659ff39da1a127bb4c87 (Tao Zhou)
- docs(wrapping_up): fix broken link to Tips and Tricks 6888a12f3d96603b3164f3538af5e3dbb9aaf05c (Tao Zhou)
- docs(related): add cog-helm to 'Additional Tools' 98721776ffec59f5d577b195522b41972d55f99c (Kyle Guthrie)
- local path repo verbose - issue #2020 0bef00078cd11c89fb13489fb78278f6f9f85b83 (Qin Wang)
- fix(kube): fix wait and recreate 12db1f945f2ab229910b431eec0df235c1801331 (Adam Reese)
- feat(helm): add --skip-refresh flag to 'helm dep up' f7b010a140671e9711a2a0ca376cf9f70e468695 (Matt Butcher)
- fix(helm): resolve symlinks when loading chart edd4e561124d1d9620f510cf020b8227ff08e85e (Maxim Ivanov)
- ref(*): remove error if no tests found on test cmd e52746cbefdc60ac624e52eb9441bb7441ca81a8 (Michelle Noorali)
- Mention saltside/await in misc related projects 27800652449978bc177cd71418e2df3ba7a16612 (Adam Hawkins)
- feat(helm): allow disabling plugins 81dbdeb1086f5583e1e6141daf47a21543ccc1ee (Matt Butcher)
- Add --url option to helm serve 95cdc705af0c91c6001750201893c8478352107b (Jian Qiu)
- Use backtick quotes to avoid excess escaping cd7275069eb9c6957042337acc7a8315cac27182 (YuviPanda)
- Add tests for ToJson 97a655d2254902039ec58984d74448a5d556cbac (YuviPanda)
- Add ToJson and FromJson template functions 5c52fe6ad6283ea9eae53e43859a9e6f3e466031 (YuviPanda)
- docs(named_templates): fixed broken template 078c365677ab617279b6f8f0cd5cb25aebf979b5 (Matt Butcher)
- fix(local-cluster): fix missing variable option 84e014026cedd5382e08cac9e95f6420874e7065 (Ladicle)
- docs(chart_repository): fix bug in code example 393d13af31278bb5865feea88b6f664af2aeec27 (Matt Butcher)
- Adds "Workflow Umbrella Chart" article to related f410e0112340aa2b5a0fc0892d34cc08de6da80e (Jose Aguirre)
- chore(*): bump kubernetes v1.5.3 49b392dd74baaa35dcbb7c1feabc3e03128dd99f (Adam Reese)
- docs(index): Move doc index into a separate file. d9173cc9ba4c161ebcf32c865c20d1337f25b5af (Matt Butcher)
- docs(related): add CI/CD docs 50cbab37f1c835f0fc5dafa70a86d35d2330decf (Matt Butcher)
- fix(helm): fix broken cache paths in repositories 4829fad3a39c86f3062ca2cd839b718246b43f79 (Matt Butcher)
- set $HOME in tiller container to /tmp d1cbd7adae987a41e6a871cf04903783d1e88cca (Matthew Fisher)