Sobes.tech
Middle

Como implantar automaticamente um Helm Chart?

sobes.tech IA

Resposta da IA

Utilizar um pipeline CI/CD.

Etapas típicas:

  1. Construção (Build): Criação da imagem da aplicação (Docker).
  2. Testar (Test): Verificação da funcionalidade e qualidade do código/imagem.
  3. Empacotamento (Package): Criação ou atualização do chart Helm e seu empacotamento (helm package).
  4. Publicação (Publish): Armazenar o chart empacotado em um repositório (por exemplo, ChartMuseum, Artifact Registry).
  5. Implantação (Deploy): Atualizar ou instalar a release do chart Helm no cluster Kubernetes (helm upgrade --install).

Ferramentas:

  • Plataformas CI/CD: GitLab CI, GitHub Actions, Jenkins, CircleCI.
  • Helm: Ferramenta de gerenciamento de pacotes para Kubernetes.
  • Repositórios de charts: ChartMuseum, Nexus, Artifactory.
  • CLI do Kubernetes: kubectl.

Exemplo de fragmento de pipeline (GitHub Actions):

name: Deploy Helm Chart

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout do código
        uses: actions/checkout@v3

      - name: Instalar Helm
        uses: azure/setup-helm@v3
        with:
          version: '3.x'

      - name: Empacotar o chart Helm
        run: helm package ./charts/my-app # Empacotamento do chart

      - name: Configurar credenciais do Kubernetes
        # Etapa para configurar o acesso ao cluster (por exemplo, via conta de serviço)
        run: |
          echo "${{ secrets.KUBECONFIG }}" | base64 -d > ~/.kube/config

      - name: Implantar o chart Helm
        # Implantação/atualização do release
        run: |
          helm upgrade --install \
            my-release \
            ./my-app-*.tgz \
            --namespace my-namespace \
            --values ./charts/my-app/values.yaml \
            --wait # Esperar até que o release esteja pronto

A automação permite reduzir operações manuais, aumentar a frequência de implantações e garantir a reprodutibilidade do processo. O aspecto chave é a integração com o sistema de controle de versões e infraestrutura (Kubernetes).