O Que É um Helm Chart? Empacotando Apps Kubernetes
Um Helm chart é um pacote reutilizável de manifests Kubernetes templatizados mais valores padrão - o "pacote apt" dos apps Kubernetes.
Fazer deploy de um app real no Kubernetes significa uma pilha de manifests relacionados: Deployment, Service, ConfigMap, Ingress e mais. Manter isso à mão através de ambientes é tedioso e propenso a erros. Um Helm chart os agrupa como templates com valores configuráveis, então você instala e faz upgrade de um app como uma única unidade versionada.
O que há dentro de um chart
Chart.yaml- nome, versão e metadados.templates/- manifests Kubernetes com placeholders de templating.values.yaml- valores de configuração padrão.- Dependências opcionais em outros charts.
Templates e values
Templates usam placeholders como {{ .Values.image.tag }}. No momento da instalação, o Helm renderiza os templates com seus values, produzindo manifests concretos. Ambientes diferentes apenas fornecem values diferentes.
Releases
Instalar um chart cria uma "release" nomeada. helm upgrade a atualiza, helm rollback a reverte, e helm history mostra revisões passadas - gerenciamento de ciclo de vida versionado para todo o seu app.
Um comando típico
helm upgrade --install web ./chart --set image.tag=1.4 instala ou faz upgrade da release web, sobrescrevendo a tag da imagem para o build que você quer entregar.
Helm charts em CD
Um pipeline de entrega renderiza ou faz upgrade de um chart com a tag ou digest da imagem que o CI acabou de produzir. O chart mantém as diferenças de ambiente em arquivos de values, então o mesmo chart promove limpo de staging para prod.
Principais conclusões
- Um Helm chart empacota manifests Kubernetes templatizados mais valores padrão.
- Values customizam um chart por ambiente; releases rastreiam o ciclo de vida.
- O CD faz upgrade de um chart com a tag ou digest da imagem recém-construída.