Middle
Ako verzionujete panely vo vašich projektoch?
sobes.tech AI
Odpoveď od AI
Používame semantické verzionovanie (SemVer) vo forme MAJOR.MINOR.PATCH.
MAJOR: Zmeny, ktoré narušujú spätnú kompatibilitu.MINOR: Pridanie funkcií pri zachovaní spätnej kompatibility.PATCH: Opravy chýb pri zachovaní spätnej kompatibility.
Nasledujúce praktiky sa uplatňujú:
- Verzia chartu je uvedená v súbore
Chart.yaml. - Pri každej zmene chartu, ktorá ovplyvňuje nasadenie (aj malá), sa verzia zvýši podľa SemVer.
- Git tagy sa používajú na zaznamenanie verzií chartov. Tag zodpovedá verzii chartu (napríklad
mychart-1.2.3). - Pri nasadení sa používa konkrétna verzia chartu, nie najnovšia.
- Verziovanie je integrované do CI/CD pipeline.
Príklad Chart.yaml:
# Chart.yaml
apiVersion: v2
name: my-app
description: Helm chart pre moju aplikáciu
version: 1.2.3 # Verzia chartu
appVersion: "1.0.0" # Verzia aplikácie
Flow CI/CD:
- Vývojár vykonáva zmeny v chart.
- Otvorí sa Merge Request.
- CI pipeline vykonáva linting a testovanie chartu (
helm lint,helm test). - Pri zlúčení do hlavnej vetvy sa verzia chartu zvýši (ručne alebo automaticky pomocou nástrojov CI/CD).
- Vytvorí sa Git tag s novou verziou chartu.
- Chart-y sa balia (
helm package) a zverejňujú v repozitári chart-ov (napríklad, Artifactory, Nexus, OCI Registry).
Toto umožňuje vrátiť sa k predchádzajúcim verziám a jasne definovať zmeny medzi verziami.