Middle
Как версионирате таблата във вашите проекти?
sobes.tech AI
Отговор от AI
Използваме семантично версиониране (SemVer) във вида MAJOR.MINOR.PATCH.
MAJOR: Промени, които нарушават обратната съвместимост.MINOR: Добавяне на функционалности, като се запазва обратната съвместимост.PATCH: Корекции на грешки, като се запазва обратната съвместимост.
Следните практики се прилагат:
- Версията на чарта е посочена във файла
Chart.yaml. - При всяка промяна на чарта, която влияе на внедряването (дори и малка), версията се увеличава съгласно SemVer.
- Използват се Git тагове за фиксиране на версиите на чартовете. Тагът съответства на версията на чарта (например,
mychart-1.2.3). - При деплойване се използва конкретна версия на чарта, а не последната.
- Версионирането е интегрирано в CI/CD pipeline.
Пример Chart.yaml:
# Chart.yaml
apiVersion: v2
name: my-app
description: Helm chart за моето приложение
version: 1.2.3 # Версия на чарта
appVersion: "1.0.0" # Версия на приложението
CI/CD поток:
- Разработчикът прави промени в чарта.
- Отваря се Merge Request.
- CI pipeline изпълнява linting и тестове на чарта (
helm lint,helm test). - При сливане в основната клонка, версията на чарта се увеличава (ръчно или автоматично с помощта на CI/CD инструменти).
- Създава се Git таг с новата версия на чарта.
- Чартовете се пакетизират (
helm package) и се публикуват в репозитория за чартове (например, Artifactory, Nexus, OCI Registry).
Това позволява връщане към предишни версии и ясно определяне на промените между версиите.