Helm é o gerenciador de pacotes para o Kubernetes. Assim como gerenciadores de pacotes facilitam a instalação de ferramentas para sistemas operacionais, o Helm facilita a instalação de aplicações nos clusters Kubernetes.

Enquanto Helm (em maiúsculo) é o nome do projeto, a ferramenta de linha de comando também se chama helm. Por convenção utiliza-se Helm em maiúsculo ao falar do projeto. Quando se faz referência ao cliente utiliza-se helm em mínusculo.

Chart

É um pacote Helm que contém as informações necessárias para instalar uma série de recursos e manifestos do Kubernetes em um cluster.

Os Charts contém um arquivo Chart.yaml bem como templates dos manifestos, valores padrão (values.yaml), e outras dependêncas.

Os Charts são desenvolvidos dentro de uma estrutura de diretório bem definida, e depois empacotados em um formato de arquivo chamado chart archive.


A instalação do Helm segue um modelo simples de download do aplicativo. Para realiza-la, basta seguir os passos do link https://helm.sh/pt/docs/intro/install/

Uma vez com o chart-archive em mãos, basta executar o seguinte comando para atualiar o ambiente:

helm upgrade NAMESPACE chart.tgz  --namespace=NAMESPACE  --debug --install --timeout 1800000 --recreate-pods -f NAMESPACE.yaml

Onde:

  • NAMESPACE - Nome do ambiente do cluster
  • --debug: exibe uma saída verbosa
  • --install: Instala o ambiente se ele não existir
  • --timeout: timeout para qualquer operação individual do Kubernetes (como Jobs para hooks) (padrão 5m0s)
  • --recreate-pods: recria os pods em execução com as novas informações
  • -f --values strings: especifica os valores atráves de um arquivo YAML file ou uma URL (pode especificar vários arquivos YAML)


Consultando o histórico de charts do ambiente

helm history NAMESPACE

Este comando irá demonstar os ultimos charts implantados para o ambiente NAMESPACE


Realizando o Rollback de um chart

helm rollback NAMESPACE revisao 


Realizando a exclusão de um ambiente

helm delete NAMESPACE --no-hooks

onde:

  • --no-hooks: serve para não chamar nenhum job durante a exclusão.