If you do not have a Helm chart to start with you can make a copy of the hull-test Helm chart which is used for unit testing. You then need to rename the chart folder to your desired Helm chart's name and adjust the Chart.yaml
to your desired charts name.
To add the HULL library chart to an existing Helm chart:
-
choose a version that fits your targeted Kubernetes API versions best. The HULL chart version matches the implemented Kubernetes API version that is used for validation, so it should be at least the minimum version of the cluster(s) you target.
-
follow the basic instructions on how to add library charts to a Helm chart to add HULL as a library chart to your Helm chart.
You can either download the chosen HULL chart from the HULL releases page or add the public HULL repo to your Helm repos via this command:
helm repo add hull https://vidispine.github.io/hull
and pull it to use it locally. Otherwise just get it via the
dependencies
in theChart.yaml
-
from the HULL library chart you included, you need to
-
copy the single file named
hull.yaml
from the HULL charts root folder to your parent charts/templates
folder.or
-
copy all the files from the folder
/files/templates
to your parent charts/templates
folder.
⚠️ Generally it is required to have the singlehull.yaml
or the individual files from/files/templates
HULL library functions render the objects specified under the keyhull.objects
in the parent charts/templates
folder! As of this moment Helm only considers files in the parent charts/templates
folder for rendering. Consider adding this step to your build pipeline when creating releases of your Helm chart which include HULL.⚠️ ⚠️ There are indications that when a single file in the parent Helm charts/templates
folder contains many objects to render this impacts performance negatively when run against a real Kubernetes cluster. The time it takes tohelm template
,helm update
orhelm install
appears to be significantly longer when using one instead of several files. The reason for this is unclear and the behavior looks unneeded and fixable in Helm, it should not matter for processing if objects are read from many or a single template. But right now this would require a fix in Helm itself which is currently out of scope. To workaround this problem (or if you anyway like to have multiple files per object type for rendering) you can alternatively select to use the multiple files per object type from/files/templates
instead ofhull.yaml
from the HULL charts root folder for rendering!⚠️ -
If these preliminary steps have been taken you can start using the HULL chart to render Kubernetes objects from your Helm chart.
Back to README.md