Helm Charts Manager
A command line tool to easily lint, plan and deploy multiple helm charts.
- Helm chart linting.
- Helm chart planning and comparison with existing deployment.
- Helm chart deployment.
- YAML based configuration and environment definition.
- Automated updating and re-packaging existing charts
- Parallelized structure for optimized performance.
helm-charts-manager lint [options]: Run helm charts manager in linting mode to check charts for errors and bad practices.
helm-charts-manager plan [options]: Run helm charts manager in planning mode to see the difference between existing deployment and current charts.
helm-charts-manager apply [options]: Run helm charts manager in deployment mode to deploy the charts. Apply always plans first and has to be approved before deploying. This behaviour can be overriden with
Command line options
-h | --help: Shows the help screen.
-v | --version: Shows version string.
--config-file <configFile>: Path to the configuration YAML file for helm-charts-manager. Defaults to
--charts-path <chartsPath>: Path to the base directory where helm charts are stored. Defaults to
--charts <charts>: List of chart names separated with a comma to select the charts to be lined/planned/deployed. Defaults to the list of chart names in the configuration YAML.
--auto-approve: Overrides the deployment y/n query. Useful for automated deployment via CI/CD pipelies.
--update: Update and repackage the charts before linting/planning/deploying.
--debug: Enable debug printouts for every command executed.
Configuration via YAML
RELEASE_VERSION environment variables are mandatory.
It is possible to specify multiple stages in the same configuration file.
STAGE environment variable serves as a selector between different stages.
First download and install minikube and helm. Start a local kubernetes cluster with:
Then download all files from the
example directory in repository and execute the following commands:
cd example helm repo add bitnami https://charts.bitnami.com/bitnami helm-charts-manager apply --update
You should see the following output:
The charts for nginx and kubernetes-dashboard are installed on our minikube cluster.
If we want to override some values we need to configure the helm-charts-manager-config.yaml file.
Open helm-charts-manager-config.yaml and add in line 22 at the end "--set kubernetes-dashboard.service.type=NodePort".
Now apply the changes with this command:
helm-charts-manager apply --charts kubernetes-dashboard
You should see this output
As you can see helm-charts manager just updated our kubernetes-dashboard chart.