Helm Generate

Helm-generate is a generator command to be used with FluxCD. It recursively generates several Helm charts by rendering the Charts to STDOUT.
Alternatives To Helm Generate
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Helm23,9895772 days ago289September 12, 2022620apache-2.0Go
The Kubernetes Package Manager
Lens20,834
2 days ago885otherTypeScript
Lens - The way the world runs Kubernetes
Charts15,483
a year ago1apache-2.0Go
⚠️(OBSOLETE) Curated applications for Kubernetes
Charts6,921
a day ago163apache-2.0Mustache
Bitnami Helm Charts
Helm Charts3,697
9 hours ago131apache-2.0Mustache
Prometheus community Helm charts
Arkade3,3842a day ago31April 24, 202176mitGo
Open Source Marketplace For Developer Tools
Chartmuseum3,13422 days ago42June 30, 2022101apache-2.0Go
Host your own Helm Chart Repository
Awesome Apache Airflow3,060
7 months ago2Shell
Curated list of resources about Apache Airflow
Spark On K8s Operator2,293213 days ago18April 24, 2021454apache-2.0Go
Kubernetes operator for managing the lifecycle of Apache Spark applications on Kubernetes.
Kube Linter2,24714 days ago14June 29, 202270apache-2.0Go
KubeLinter is a static analysis tool that checks Kubernetes YAML files and Helm charts to ensure the applications represented in them adhere to best practices.
Alternatives To Helm Generate
Select To Compare


Alternative Project Comparisons
Readme

helm-generate

Recursively generates Kubernetes manifests from a folder using Helm. This project began as a generator command for using with Flux.

Docker

Available at: Docker Hub and Quay.io.

Requirements

  • Helm

Overview GoDoc

Helm-generate renders Helm Charts recursively from a folder. It don't actually install any Chart, only render them, similar to helm template. Helm repositories must be managed through helm cli, as helm-generate uses the same configuration as your helm binary. How it works:

  • Helm-generate transverse folders and subfolders searching for values.yaml files.
  • If a values.yaml file is found, the Chart configuration is defined by the following precende:
    1. Existing .helm.yaml file on the same folder as the values.yaml.
    1. --default-chart and --default-chart-version flags.
    1. HELM_DEFAULT_CHART and HELM_DEFAULT_CHART_VERSION environment variables.
  • The Namespace manifest for that chart is rendered.
  • The Chart is rendered using the values.yaml file.
  • All generated manifests are printed to STDOUT.

Helm-generate also handles the namespace injection on the manifests, as helm template don't handle this this and we don't want to have a requirement for charts to have namespace defined.

There are two required keys on values.yaml: namespace and releaseName. Those are internally used by helm-generate to correctly render the desired charts.

It is possible to inject (key -> value) pairs to the top level of the values map through the CLI, using the flag --set my_key=my_value. This flag is parsed as []string, therefore it can be passed multiple times to inject multiple pairs. This flag overrides the values from values.yaml.

.helm.yaml

This is a special control file designed to change the behavior of helm-generate for a specific folder, this don't apply to any subfolders. The current keys available at .helm.yaml are:

chart: repository/chart-name
chartVersion: 1.x.x
postRenderBinary: path-to-binary

If no .helm.yaml is present at the same folder as a values.yaml file, the default values are used.

Install

Go module:
go get github.com/topfreegames/helm-generate

Build from source:
git clone github.com/topfreegames/helm-generate
cd helm-generate
make all

Example

Usage:
  helm-generate docs/examples/multiple-apps --default-chart=example-chart --default-chart-version=1.0.0
Popular Chart Projects
Popular Helm Projects
Popular User Interface Components Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Golang
Chart
Helm
Flux
Helm Charts