Middle
Comment versionnez-vous les tableaux dans vos projets?
sobes.tech IA
Réponse de l'IA
Nous utilisons la versionnage sémantique (SemVer) sous la forme MAJOR.MINOR.PATCH.
MAJOR: Changements qui rompent la compatibilité ascendante.MINOR: Ajout de fonctionnalités tout en conservant la compatibilité ascendante.PATCH: Corrections de bugs tout en conservant la compatibilité ascendante.
Les pratiques suivantes sont appliquées :
- La version du chart est indiquée dans le fichier
Chart.yaml. - À chaque modification du chart affectant le déploiement (même mineure), la version est incrémentée selon SemVer.
- Des tags Git sont utilisés pour fixer les versions des charts. Le tag correspond à la version du chart (par exemple,
mychart-1.2.3). - Lors du déploiement, une version spécifique du chart est utilisée, pas la dernière.
- La versionning est intégrée dans le pipeline CI/CD.
Exemple de Chart.yaml :
# Chart.yaml
apiVersion: v2
name: my-app
description: Un chart Helm pour mon application
version: 1.2.3 # Version du chart
appVersion: "1.0.0" # Version de l'application
Flux CI/CD :
- Le développeur apporte des modifications au chart.
- Une demande de fusion est ouverte.
- Le pipeline CI effectue le linting et les tests du chart (
helm lint,helm test). - Lors de la fusion dans la branche principale, la version du chart est incrémentée (manuellement ou automatiquement via des outils CI/CD).
- Une étiquette Git est créée avec la nouvelle version du chart.
- Les charts sont empaquetés (
helm package) et publiés dans un dépôt de charts (par exemple, Artifactory, Nexus, OCI Registry).
Cela permet de revenir à des versions antérieures et de définir clairement les changements entre les versions.