Gerenciando o ciclo de vida de aplicações com Helm
O Helm é uma ferramenta open-source que permite gerenciar aplicações Kubernetes de forma simples e eficiente. Com o Helm, você pode instalar, atualizar e desinstalar aplicações em um cluster Kubernetes com facilidade.
As aplicações Helm são definidas em arquivos chamados charts. Um chart é um pacote que contém todos os recursos necessários para executar uma aplicação no Kubernetes, como deployments, services, configmaps, secrets, entre outros.
Instalação
Para instalar o Helm, execute o seguinte comando:
Criando um chart
Para criar um chart, execute o seguinte comando:
A partir disso você terá uma estrutura de diretórios e arquivos para gerenciar a aplicação. A estrutura de diretórios e arquivos de um chart é a seguinte:
O arquivo Chart.yaml
contém as informações sobre o chart, como nome, versão, descrição, entre outros. O arquivo values.yaml
contém os valores padrão que serão utilizados para configurar a aplicação.
O Helm Charts
do meu giropops-senhas está disponível em um repositório privado no GitHub no endereço: https://github.com/nataliagranato/senhas. Esse pacote é utilizado na pipeline de CI/CD disponível em .github/workflows/deploy-helm-chart.yml.
A pipeline contempla os seguintes passos:
Checkout do código fonte
Clone do repositório de Helm Charts
Instalação do Kubectl
Conexão com o cluster e validação
Instalação do Helm
Criação de namespaces
Deploy do pacote Helm para cada ambiente
Com o helm você pode utilizar mais de um arquivo values.yaml
para cada ambiente, como por exemplo values-dev.yaml
, values-prod.yaml
, values-stage.yaml
e assim por diante. Assim, você pode configurar a aplicação de acordo com as necessidades de cada ambiente.
No meu caso, eu utilizo o arquivo values.yaml
para configurar a aplicação e o arquivo values-dev.yaml
para configurar o ambiente de desenvolvimento. Separando os ambientes por namespaces, normalmente em ambientes produtivos, você pode ter um cluster para cada ambiente, como dev
, prod
, stage
, qa
, entre outros.
Last updated