Sobes.tech
Middle

Como é que a gestão de versões é feita no Helm?

sobes.tech IA

Resposta da IA

A gestão de versões no Helm é feita em dois níveis:

  1. Versão do Chart (Chart Version): Define a versão de todo o Helm Chart. É alterada ao fazer qualquer modificação nos modelos, valores padrão ou metadados do Chart. Especifica-se no arquivo Chart.yaml.

  2. Versão da Aplicação (App Version): Define a versão da própria aplicação, que é entregue com este Chart. Especifica-se no arquivo Chart.yaml e é apenas informativa para o utilizador final do Chart. Não afeta o funcionamento do Helm.

Ficheiro Chart.yaml:

# Ficheiro com metadados do Chart
apiVersion: v2       # Versão da API do Helm
name: my-app         # Nome do Chart
description: A minha aplicação # Descrição do Chart
version: 1.2.3       # Versão do Chart. Recomenda-se seguir SemVer.
appVersion: "2.5.0"  # Versão da aplicação. É uma string.

Ciclo de vida e versionamento de releases:

Sempre que instala ou atualiza um Chart do Helm, o Helm cria uma nova release. Cada release tem um número de revisão único. Este número aumenta a cada operação helm install, helm upgrade ou helm rollback para um mesmo nome de release.

Exemplo de trabalho com releases:

# Instalação do Chart (criação da release, revisão 1)
helm install my-release ./my-chart

# Atualização do Chart (criação de uma nova versão da release, revisão 2)
helm upgrade my-release ./my-chart

# Reverter para a versão anterior da release (criação de uma nova versão, revisão 3)
helm rollback my-release 2

# Ver histórico da release
helm history my-release

Uso de versões na instalação e atualização:

Ao instalar ou atualizar um Chart de um repositório, pode indicar uma versão específica usando a flag --version:

# Instalar uma versão específica do Chart
helm install my-release my-repo/my-chart --version 1.2.3

# Atualizar para uma versão específica do Chart
helm upgrade my-release my-repo/my-chart --version 1.3.0

Assim, o versionamento no Helm cobre tanto o pacote (Chart) com o seu conteúdo, como o histórico de implementações desse pacote (releases).