Sobes.tech
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 поток:

  1. Разработчикът прави промени в чарта.
  2. Отваря се Merge Request.
  3. CI pipeline изпълнява linting и тестове на чарта (helm lint, helm test).
  4. При сливане в основната клонка, версията на чарта се увеличава (ръчно или автоматично с помощта на CI/CD инструменти).
  5. Създава се Git таг с новата версия на чарта.
  6. Чартовете се пакетизират (helm package) и се публикуват в репозитория за чартове (например, Artifactory, Nexus, OCI Registry).

Това позволява връщане към предишни версии и ясно определяне на промените между версиите.