Helm é npm/apt para Kubernetes. Empacota apps inteiras (deployment, service, ingress) em charts reutilizáveis e versionados.
Conceitos Principais
Chart
Pacote de templates K8s. Estrutura: Chart.yaml (metadata), values.yaml (configs), templates/ (YAML com Go templates).
Values
Arquivo de configuração. Define replicas, image, resources. Override via CLI ou values-prod.yaml. Reutilize chart para dev/staging/prod.
Templates
YAML + Go templating. {{ .Values.replicaCount }}. Loops, condicionais. DRY para múltiplos manifests.
Release
Instância de chart deployada. helm install cria release. helm upgrade atualiza. helm rollback reverte. Histórico versionado.
Passo a Passo
- Instale Helm:
brew install helm(Mac).helm version. Adicione repo:helm repo add bitnami https://charts.bitnami.com/bitnami. - Use Chart Existente: Install Postgres:
helm install my-db bitnami/postgresql. Valores default aplicados. Credentials em secret. Acesse: my-db-postgresql:5432. - Crie Chart Custom:
helm create minha-app. Estrutura gerada. Edite values.yaml: image.repository, replicaCount. Templates em templates/. - Deploy Chart:
helm install minha-app ./minha-app-chart. Override values: --set image.tag=v1.2. Ou -f values-prod.yaml. - Gerencie Releases: Liste:
helm list. Upgrade:helm upgrade minha-app ./chart. Rollback:helm rollback minha-app 1. History:helm history minha-app.
Boas Praticas
Recomendacoes
• Use charts oficiais (bitnami, stable)
• Versione charts (Chart.yaml version)
• Secrets via sealed-secrets ou Vault
• Lint charts: helm lint
• Template testing: helm template
Erros Comuns
Evite estes erros
• Hardcodar valores nos templates
• Não versionar values.yaml
• Secrets direto no values (use external secrets)
• Não testar dry-run antes de apply
Checklist
- Helm instalado
- Chart criado ou selecionado
- values.yaml configurado
- Deploy testado em staging
- Rollback testado
- CI/CD integrado com Helm