Helm3 Mixin Improvements

Helm3 Mixin Improvements

September 28, 2021

If you use Helm in your bundles, then you are going to want the latest helm3 mixin release! With improved defaults, and new flags supported, the helm3 v0.1.15 mixin will help make your bundles more reliable.

If you are still using the deprecated helm mixin, now’s the time to switch over to Mohamed Chorfa’s Helm3 mixin.

New Defaults

The helm3 mixin has changed its default behavior to be more robust and avoid situations where the mixin fails when an action is retried.

Upgrade or Install

The upsert setting has been removed because it is now the default behavior for the install and upgrade actions. Now the mixin always uses helm upgrade --install which improves reliability when you need to retry a failed action.

Create Namespace

The mixin specifies --create-namespace by default so that the release namespaces is created automatically when it is not already present.

Atomic

The --atomic flag is now specified by default, failed helm releases are rolled back so that your release is always in a working state.

New Settings

The helm3 mixin now supports additional Helm flags:

  • The noHooks setting prevents hooks from being executed and defaults to false.
  • The skipCrds setting skips installing CRDs during upgrade. By default, CRDs are installed if not already present.
  • The timeout setting sets how long Helm will wait for the release to complete successfully before rolling it back (due to the atomic behavior).
  • The debug setting gives you more insight into why a release failed and was rolled back.

Removed Settings

  • The upsert setting has been removed because it is the default behavior.
  • The replace setting has been removed because it is not recommended for production use, and shouldn’t be necessary with the new default behavior.

The Porter project has already upgraded our bundles to use this latest version, and I recommend upgrading your bundles to take advantage of the improved reliability. The only hiccup in our upgrade was that the --atomic behavior made us quickly realize that some of our charts were never actually installing 100% successfully. 🤦‍♀️ If you have charts that don’t work well with --atomic or --wait, or need additional flags exposed, let us know!