Use when understanding and creating Helm charts for packaging and deploying Kubernetes applications.
Read-only skill
Additional assets for this skill
This skill cannot use any tools. It operates in read-only mode without the ability to modify files or execute commands.
Understanding and creating Helm charts for Kubernetes applications.
mychart/
├── Chart.yaml # Chart metadata
├── values.yaml # Default values
├── charts/ # Chart dependencies
├── templates/ # Template files
│ ├── NOTES.txt # Usage notes
│ ├── deployment.yaml
│ ├── service.yaml
│ ├── _helpers.tpl # Template helpers
│ └── tests/ # Test files
└── .helmignore # Files to ignore
apiVersion: v2
name: my-app
description: A Helm chart for my application
type: application
version: 1.0.0
appVersion: "1.0.0"
keywords:
- web
- api
maintainers:
- name: Your Name
email: you@example.com
dependencies:
- name: postgresql
version: "12.1.0"
repository: "https://charts.bitnami.com/bitnami"
condition: postgresql.enabled
replicaCount: 3
image:
repository: myapp
pullPolicy: IfNotPresent
tag: "1.0.0"
service:
type: ClusterIP
port: 80
ingress:
enabled: false
className: "nginx"
hosts:
- host: myapp.local
paths:
- path: /
pathType: Prefix
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 250m
memory: 256Mi
autoscaling:
enabled: false
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 80
helm create mychart
# Install from directory
helm install myrelease ./mychart
# Install with custom values
helm install myrelease ./mychart -f custom-values.yaml
# Install with value overrides
helm install myrelease ./mychart --set image.tag=2.0.0
helm upgrade myrelease ./mychart
# Upgrade or install
helm upgrade --install myrelease ./mychart
# Lint chart
helm lint ./mychart
# Dry run
helm install myrelease ./mychart --dry-run --debug
# Template rendering
helm template myrelease ./mychart
# List releases
helm list
# Get release status
helm status myrelease
# Get release values
helm get values myrelease
# Rollback
helm rollback myrelease 1
# Uninstall
helm uninstall myrelease
dependencies:
- name: redis
version: "17.0.0"
repository: "https://charts.bitnami.com/bitnami"
condition: redis.enabled
tags:
- cache
helm dependency update ./mychart
helm dependency build ./mychart
helm dependency list ./mychart
# Add repository
helm repo add bitnami https://charts.bitnami.com/bitnami
# Update repositories
helm repo update
# Search charts
helm search repo nginx
# Search hub
helm search hub wordpress
Provide sensible defaults in values.yaml:
# Good defaults
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 100m
memory: 128Mi
# Allow customization
config: {}
env: {}
Include NOTES.txt for post-installation instructions:
Thank you for installing {{ .Chart.Name }}.
Your release is named {{ .Release.Name }}.
To learn more about the release, try:
$ helm status {{ .Release.Name }}
$ helm get all {{ .Release.Name }}