Banzai Cloud Pipeline can automatically install custom Helm charts on every newly-created managed cluster. You can specify the charts to install in the controlplane’s configuration.
The quick start guides use the default configuration of the platform and do not install any custom helm charts, but you may need to configure the system to your specific requirements.
Note the following points when using this feature, as they affect how you have to manage and upgrade your existing clusters.
- Banzai Cloud Pipeline installs the custom charts only on clusters that are created after the custom charts were configured. No charts are installed on existing clusters.
- The custom charts are installed when the cluster is created. No charts are installed when a cluster or node pool is upgraded.
- If you modify the list of default charts (for example, add a new chart), it won’t be installed on any existing clusters, only on clusters that are created after the change. This also means that if you delete a chart from the list, you have to manually delete it from existing clusters.
- Banzai Cloud Pipeline doesn’t upgrade the custom charts. If you want to upgrade a chart on an existing cluster (for example, to apply a security fix), you have to do that manually.
Edit your Pipeline configuration 🔗︎
To automatically install Helm charts your clusters created with the Banzai Cloud Pipeline platform, complete the following steps.
Find the configuration file of your Banzai Cloud Pipeline installation. By default, it is the
~/.banzai/pipeline/<workspace>/values.yamlfile. The name of the workspace is
Open the configuration file. You can customize settings and add default custom Helm charts to install on every managed cluster by editing this file. To add a custom Helm chart, add an array to the file’s
pipeline.configuration.cluster.chartspath. The custom chart configurations are the items of the array. You can add the following parameters to the charts:
enabled: Whether to install the chart or not. Setting
enabled: falsedoesn’t install the chart, but you don’t have to remove the whole entry.
chartName: The chart’s name in
chartVersion: The version of the chart to install.
releaseName: A name for the Helm release.
values: (Optional) Custom
valuesof the chart as a continuous multiline string to override its default settings.
If you use a custom Helm repository, add it to the
pipeline.configuration.helm.repositoriespath as well in the same configuration file as
For your changes to take effect, run the
banzai pipeline up [--workspace=default]command and confirm the deployment plan offered.
See the following example for details.
Example: Install a custom NGINX ingress Helm chart 🔗︎
In the following example, the Pipeline controlplane is configured to install a custom NGINX ingress Helm chart to every managed cluster it creates.
The example configures the corresponding
ingress-nginx custom Helm repository
(residing at https://kubernetes.github.io/ingress-nginx) to be added to the
known Helm repositories handled by the control plane.
The example also configures the installed NGINX ingress to be enabled and use
IngressClass resource on clusters with Kubernetes version 1.18+ and set
nginx ingress class as the default ingress class.
Lastly, the example - through the configuration - explicitly turns off the other ingress-related resources which could possibly be installed on managed clusters by the controlplane, including the ingress service and the ingress posthook.
pipeline: configuration: cluster: charts: - enabled: true chartName: ingress-nginx/ingress-nginx chartVersion: "3.34.0" releaseName: ingress values: | controller: ingressClassResource: enabled: true default: true ingress: enabled: false posthook: ingress: enabled: false helm: repositories: ingress-nginx: "https://kubernetes.github.io/ingress-nginx"