Skip to content

izelnakri/helman

Repository files navigation

Helman: Kubernetes Kustomize <> Helm

The package manager layer on top of Helm and Kubernetes. Allows for helm chart based kustomizations. I hope functionality described in this cli tool will be a part of helm cli in future. In the meantime, this cli tool provides an essential complexity management to helm and kustomize workflows.

System Requirements

  • helm
  • kubectl

Installation

npm install -g helman

helman help

Usage

helman init
# -> creates npm/package.json like helm.json, helm_charts folder and k8s folder for kustomize

helman install jetstack/cert-manager
# -> saves latest cert-manager chart to helm_charts folder
# -> saves the installed version to helm.json
# -> creates k8s/bases/cert-manager/kustomization.yaml folder and links it to k8s/bases/kustomization.yaml
# -> builds the jetstack/cert-manager helm chart and creates k8s/bases/cert-manager/helm.yaml
# -> links k8s/bases/cert-manager/helm.yaml to k8s/bases/cert-manager/kustomization.yaml

# jetstack/cert-manager is a custom helm chart that isnt in stable repos, in case if jetstack isnt in your local helm repo:
helm repo add jetstack https://charts.jetstack.io && helman install jetstack/cert-manager

helman install stable/prometheus v0.8.1
# -> saves v0.8.1 prometheus chart to helm_charts folder
# -> saves the installed version to helm.json
# -> creates k8s/bases/prometheus/kustomization.yaml folder and links it to k8s/bases/kustomization.yaml
# -> builds the stable/prometheus helm chart and creates k8s/bases/prometheus/helm.yaml
# -> links k8s/bases/prometheus/helm.yaml to k8s/bases/prometheus/kustomization.yaml

helman build
# -> reads all the helm charts on helm.json and starts building their helm template outputs:
# -> rebuilds jetstack/cert-manager to k8s/bases/cert-manager/helm.yaml
# -> rebuilds stable/prometheus to k8s/bases/prometheus/helm.yaml

helman uninstall jetstack/cert-manager
# -> removes jetstack/cert-manager from helm_charts
# -> removes jetstack/cert-manager from helm.json
# -> removes k8s/bases/cert-manager

rm -rf helm_charts && helman install
# -> resets/reinstalls helm_charts folder with defined charts on helm.json and rebuilds them