Files
english/.opencode/skills/devops/references/kubernetes-helm.md
2026-04-12 01:06:31 +07:00

1.8 KiB

Helm Package Management

Core Concepts

  • Chart: Helm package with K8s resource definitions
  • Repository: Collection of charts
  • Release: Deployed instance of a chart
  • Values: Configuration that parameterizes charts

Chart Structure

mychart/
├── Chart.yaml              # Metadata
├── values.yaml             # Default values
├── charts/                 # Dependencies
├── templates/
│   ├── deployment.yaml
│   ├── service.yaml
│   ├── _helpers.tpl       # Template helpers
│   └── NOTES.txt
└── values.schema.json     # Validation (optional)

Essential Commands

helm create mychart           # Create chart
helm lint mychart             # Validate
helm template myrelease ./mychart  # Render locally
helm install myrelease ./mychart --dry-run --debug  # Preview

helm install myrelease ./mychart
helm install myrelease ./mychart -f values-prod.yaml
helm install myrelease ./mychart --set replicaCount=3

helm upgrade myrelease ./mychart
helm rollback myrelease 1
helm list
helm uninstall myrelease

Multi-Environment

# Files: values.yaml, values-dev.yaml, values-prod.yaml
helm install myapp ./mychart -f values.yaml -f values-prod.yaml
helm install myapp ./mychart --set replicaCount=3 --set image.tag=v1.2.3

values.yaml Example

replicaCount: 2
image:
  repository: myapp
  tag: "1.0.0"
  pullPolicy: IfNotPresent
service:
  type: ClusterIP
  port: 8080
resources:
  limits: { cpu: 500m, memory: 512Mi }
  requests: { cpu: 250m, memory: 256Mi }

Dependencies

# Chart.yaml
dependencies:
  - name: postgresql
    version: "12.1.0"
    repository: "https://charts.bitnami.com/bitnami"
helm dependency update mychart

See kubernetes-helm-advanced.md for templates, hooks, and packaging.