11.3. Generic Chart setup
In the following labs we are going to create our first Helm Charts with the help of Baloise’s Generic Chart and deploy them.
Baloise’s Generic Helm Chart is meant as a template and easy starting point to deploy common Kubernetes resource manifests. By declaring the Generic Chart as a dependency of your own Chart, you can make use of all the features the Generic Chart offers.
Task 11.3.1: Setup the dependency
So first, let’s create your own Chart. Open your favorite terminal and make sure you’re in the workspace for this lab, e.g. cd ~/<workspace-kubernetes-training>
:
helm create mychart
You will now find a mychart
directory with the newly created chart. It already is a valid and fully functional Chart which deploys an nginx instance.
However, instead of using these generated templates and values, we want to use the Generic Chart.
Change into your Chart’s directory and remove the generated templates:
cd mychart/
rm -r templates/
Before we declare the Generic Chart as a dependency, have a look at the generated Chart.yaml
using your favorite text editor:
vim Chart.yaml
As you can see, the Chart.yaml
defines the metadata for your chart, so feel free to change anything.
Also note that the version
and appVersion
values are different.
This is because the version
field refers to the Helm Chart’s version while the appVersion
refers to the application’s version that’s deployed using this Chart.
In order to declare the Generic Chart as a dependency, add the following lines to your Chart.yaml
:
dependencies:
- name: generic-chart
version: 3.13.0
repository: https://CHART-REPOSITORY-URL/shared/release/
alias: first-example-app
Save and close the file. You can check if you added the dependency correctly be executing:
helm dependency list
Above command should show you the dependency:
helm dependency list
NAME VERSION REPOSITORY STATUS
generic-chart 3.13.0 https://CHART-REPOSITORY-URL/shared/release/ missing
Note the STATUS
field and its missing
value. This is because the dependency has not yet been downloaded. Let’s change this, execute:
helm dependency update
Note that helm dependency list
now shows ok
under STATUS
and the charts/
directory contains a gzipped tarball.