Helm 2 vs Helm 3 Architecture
- Helm and k8s work like a client/server application.
- Helm client pushes the resources to the k8s cluster.
- In Helm 2 the server-side depends on the Tiller whereas Helm 3 got rid of Tiller and entirely relies on Kubernetes API
- Helm 3 authenticates and authorizes by taking the credentials
kubectl
Quick YAML Refresher
- Multi line string
configurations: |
server.port=8443
logging.file.path=/var/log
Helm Chart Structure
- Refer Here
- When we create a helm chart the directory structure will be as shown below
- Now lets try to understand the purpose of file/directory in the helm charts
| File/directory | Definition | Required |
|---|---|---|
| Chart.yaml | This file contains metadata about Helm chart | Yes |
| templates/ | This directory contains K8s resources in YAML Format | Yes, unless dependencies are declared in Chart.yaml |
| template/NOTES.txt | A file that can be generated to provide usage instructions during chat installtions | No |
| values.yaml | This file contains the charts default values | No, but every chart should contain this file as a best practice |
| .helmignore | A file that consists of list of files and directories that should be ommited from Helm Charts packaging | No |
| charts/ | This directory contains charts that the current Helm Chart depends on | Does not need to be explicitly provided as Helm’s dependency management system will automatically create this directory |
| Chart.lock | A file used to save the previously applied dependency version | Does not need to be explicitly provided as Helm’s dependency management system will automatically create this directory |
| crds/ | A directory that contains Custom Resource Definition YAML resources to be installed before templates | No |
| README.md | A file that contains installation & usage information about Helm Chart | No, but every chart should contain this file as a best practice |
| LICENSE | A file that contains HELM charts LICENSE | No |
| values.schema.json | A file that contains the chart’s value schema in JSON format | No |
- Lets create a dummy chart
helm create --help
helm create helloworld
