Kevin Ashcraft
Linux & Radio Tutorials
Helm Charts on Kubernetes
This is an example of how to create a Helm Chart for your application.
A Chart is a group of configuration files used to run your application on Kubernetes.
Overview
Extra
Chart Structure
A Chart has three basic components. A templates directory where your Services and Deployments will be, a values.yaml file that's used to define any variable values, and a Chart.yaml file with some metadata about the chart.
/templates # configuration files/templates /values.yaml # values used in the templates /Chart.yaml # metadata about the Chart
Create a Chart
Chart can be created with the `helm create` command. This will create a new directory with some placeholder files.
helm create example
An Example Chart
This is an example Chart that will setup a Deployment of the latest Nginx container.
Chart.yaml
apiVersion: v1 appVersion: "1.0" description: An Example Chart name: example-com version: 0.1.0
values.yaml
version: latest
templates/example-com.deployment.yaml
kind: Deployment apiVersion: apps/v1 metadata: name: example-com-controller labels: app: example-com spec: replicas: 1 matchSelector: labels: app: example-com template: metadata: name: example-com-pod labels: app: example-com spec: containers: - name: example-com-nginx image: nginx: ports: - containerPort: 80
Install a Chart
The Chart can be install with Helm using the `helm install` command. This will apply all of the configuration files within the Chart.
helm install -n example-com /path/to/chart
If you don't specify a name, a random one will be issued. This is fun, but can get confusing over time.
Set Specific Values
Value references used in template files will first be resolved with the values.yaml file. You can override these values by using the `--set` flag when running Helm.
As with our example, if we wanted to install a specific version we could do it by setting the 'version' value,
helm install --set version=1.2.3 /path/to/chart
Upgrade a Chart
You can upgrade a Helm Chart to apply any configuration changes.
To upgrade a chart run the `helm upgrade` command.
helm upgrade example-com /path/to/chart
Additional Commands
List all of the install Charts
helm ls
Delete a Chart completely
helm delete --purge $app-name