Helmwave is the true release manager.

Dmitrii Zhiliaev
3 min readMay 3, 2022

Hi everyone! I am the owner of helmwave. I use kubernetes and helm everyday. Because I designed helmwave based on my pain.

https://github.com/helmwave/helmwave

Helmwave closes popular issues with helm workflow.

Forget bash deploy around helm.

The example: https://helmwave.github.io/docs/0.19.x/examples/pass-git-tag/

helm install app ./ --set image.tag=$CI_COMMIT_TAG

just describe helmwave.yml and use next command

helmwave up

The example: https://helmwave.github.io/docs/0.19.x/examples/single-app-multi-envs/

#!/bin/bash
if [ $CI_ENV == 'prod' ]
then
helm upgrade app -f prod.yml
else
helm install app -f values.yml
fi

You can describe it in yaml with helmwave. And up it in one command!

helmwave up --build

Live tracking deploy!

With helmwave you can see an application logs and Kubernetes events.

The example: https://helmwave.github.io/docs/0.19.x/examples/kubedog/

You don’t need an umbrella chart anymore!

I think that an umbrella chart is an anti-pattern.

if you have 2 app with message broker between each other.

Simple helmwave.yml

releases:
- name: message-broker
- name: app1
- name: app

Helmwave will execute each release in other thread*.

  • Of course, I mean goroutine.

Dependencies releases

Suppose we have next 3-tier application. And we need step by step deployment.

  1. DB;
  2. backend;
  3. frontend.
releases:
- name: frontend
depends_on: backend@test
namespace: test

- name: backend
depends_on: db@test
namespace: test

- name: db
namespace: test

We also added allow_failure option. When allow_failure is set true. It allows the installation to proceed.

Show graph

Also helmwave shows a graph dependencies.

Secrets

Helmwave can use gomplate for fetch secrets from popular services such like aws sm, vault, etc.

gomplate is a template renderer which supports a growing list of datasources, such as: JSON (including EJSON — encrypted JSON), YAML, AWS EC2 metadata, BoltDB, Hashicorp Consul and Hashicorp Vault secrets.

Use helmwave for all your releases.

You can also template helmwave.yml. Just create the helmwave.yml.tpl.

Template everything!

For example:

  • Store list releases in databases;
  • Template list releases;
  • Template values base on releases;
  • Imagination is infinite!

Become a helm hero with helmwave!

https://github.com/helmwave/helmwave

Helmwave needs your github stars.

--

--