Sobes.tech
Middle

Como versiona os seus quadros nos seus projetos?

sobes.tech IA

Resposta da IA

Utilizamos a versionamento semântico (SemVer) na forma MAJOR.MINOR.PATCH.

  • MAJOR: Alterações que quebram a compatibilidade retroativa.
  • MINOR: Adição de funcionalidades mantendo a compatibilidade retroativa.
  • PATCH: Correções de bugs mantendo a compatibilidade retroativa.

As seguintes práticas são aplicadas:

  • A versão do chart é especificada no arquivo Chart.yaml.
  • A cada alteração no chart que afete a implantação (mesmo que pequena), a versão é incrementada de acordo com SemVer.
  • Utilizamos tags Git para fixar as versões dos charts. A tag corresponde à versão do chart (por exemplo, mychart-1.2.3).
  • Ao fazer o deploy, usamos uma versão específica do chart, não a mais recente.
  • A versionamento é integrado ao pipeline CI/CD.

Exemplo de Chart.yaml:

# Chart.yaml
apiVersion: v2
name: my-app
description: Um chart Helm para minha aplicação
version: 1.2.3 # Versão do chart
appVersion: "1.0.0" # Versão da aplicação

Fluxo CI/CD:

  1. O desenvolvedor faz alterações no chart.
  2. Uma solicitação de merge é aberta.
  3. O pipeline CI realiza linting e testes do chart (helm lint, helm test).
  4. Ao fazer merge na branch principal, a versão do chart é incrementada (manual ou automaticamente com ferramentas CI/CD).
  5. Uma tag Git é criada com a nova versão do chart.
  6. Os charts são empacotados (helm package) e publicados em um repositório de charts (por exemplo, Artifactory, Nexus, OCI Registry).

Isso permite reverter para versões anteriores e definir claramente as mudanças entre versões.