Helm¶
Helm is the Kubernetes packaging solution. It packages kubernetes deployment artifacts into a single, parameterised bundle that can deliver consistent deployments.
Testing¶
The workflow around Helm doesn't appear very well established. There is a testing capability build into helm, using hooks, but this doesn't appear to be in mainstream use.
There are a number of different opinions and strategies around CI/CD helm development workflows:
- Kubernetes Helm Charts Testing
- 13 Best Practices for using Helm - this is weaker on testing
- How To Continuously Test and Deploy Your Helm Charts on Kubernetes Clusters Using Kind
- Testing strategy of Helm Chart - discussion on helm testing in Apache discussion forum
Pre-install Validation¶
It is possible to add a schema to validate input variables before a Helm install is run. This ensures that all required values are provided and in the correct format.
The values validation uses a JSON Schema
There is also the helm lint command to verify the helm chart is OK and the --dry-run flag to generate the deployment artifacts, which could be used to test the correct generation with different input values.