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:
- O desenvolvedor faz alterações no chart.
- Uma solicitação de merge é aberta.
- O pipeline CI realiza linting e testes do chart (
helm lint,helm test). - Ao fazer merge na branch principal, a versão do chart é incrementada (manual ou automaticamente com ferramentas CI/CD).
- Uma tag Git é criada com a nova versão do chart.
- 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.