Pular para o conteúdo

Helm

kubernetes
Comando O que faz
helm repo add nome <url> Adiciona repositório
helm repo update Atualiza índices
helm repo list Lista repositórios
helm search repo <termo> --versions Busca charts e versões
helm search hub <termo> Busca no Artifact Hub
helm pull nome/chart --version 1.2.3 --untar Baixa o chart para inspecionar
helm registry login registry.exemplo.com Charts em registry OCI
Comando O que faz
helm install <release> <chart> Instala
helm upgrade --install <release> <chart> Instala ou atualiza (idempotente)
-n <ns> --create-namespace Namespace de destino
--version 1.2.3 Fixe a versão do chart
-f values-prod.yaml Arquivo de valores (pode repetir)
--set imagem.tag=1.8.3 Valor pontual
--set-string anotacao=001 Força tipo string
--atomic --timeout 5m Reverte se não ficar pronto no prazo
--wait Espera os recursos ficarem prontos
--dry-run=server Valida contra o cluster, sem aplicar
--create-namespace Cria o namespace se não existir
Janela do terminal
helm upgrade --install loja ./chart \
-n loja-prod --create-namespace \
-f values-prod.yaml --atomic --timeout 5m

--atomic é a diferença entre um upgrade que falha limpo e um que deixa metade dos recursos atualizados.

Comando O que faz
helm template <release> <chart> -f values.yaml Renderiza sem tocar no cluster
helm template ... | kubectl apply --dry-run=server -f - Valida o resultado
helm show values <chart> Valores padrão do chart
helm show chart <chart> Metadados
helm get values <release> -n <ns> Valores efetivos da release
helm get manifest <release> -n <ns> YAML aplicado
helm get all <release> -n <ns> Tudo sobre a release
helm list -A Releases em todos os namespaces
helm list -A --pending Releases presas em transição

helm template é o comando mais usado no dia a dia: leia o YAML final antes de aplicar.

Comando O que faz
helm history <release> -n <ns> Revisões
helm rollback <release> <rev> -n <ns> Volta para uma revisão
helm rollback <release> -n <ns> Volta uma revisão
helm uninstall <release> -n <ns> Destrutivo: remove a release
helm uninstall <release> --keep-history Remove, mantendo histórico
Comando O que faz
helm create meu-chart Esqueleto
helm lint ./chart Verifica erros comuns
helm lint ./chart -f values-prod.yaml Com valores reais
helm dependency update ./chart Baixa subcharts do Chart.yaml
helm dependency build ./chart Usa o Chart.lock
helm package ./chart Empacota .tgz
helm test <release> -n <ns> Roda os hooks de teste
Janela do terminal
helm upgrade --install loja ./chart --debug --dry-run # mostra o YAML e os valores
helm template ./chart --debug # erro de template com contexto
helm get manifest loja -n loja-prod | kubectl diff -f - # diferença contra o cluster
# release presa em pending-upgrade
helm history loja -n loja-prod
helm rollback loja <ultima-revisao-boa> -n loja-prod

Se a release ficar em pending-install/pending-upgrade após uma interrupção, o rollback para a última revisão saudável costuma destravar.

Do menor para o maior peso:

  1. values.yaml do chart
  2. values.yaml do chart pai (para subcharts)
  3. -f arquivo.yaml (o último arquivo vence)
  4. --set, --set-string, --set-file
  • Nunca instale sem --version: o chart pode mudar entre execuções.
  • --set com ponto no valor precisa de escape: --set anotacao=a\.b.
  • Valor numérico com zero à esquerda vira número; use --set-string.
  • helm upgrade não remove recursos criados fora do chart.
  • CRDs de subchart não são atualizados pelo Helm em upgrades — trate-os à parte.
  • Release e namespace são o par de identidade: mesma release em namespaces diferentes são coisas distintas.
  • Em GitOps, prefira renderizar (helm template) e versionar, ou usar o suporte a Helm do Argo/Flux, em vez de aplicar da máquina de alguém.