Назад к вопросам
Middle
107
questionbank

Как осуществляется версионирование в Helm?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Версионирование в Helm осуществляется на двух уровнях:

  1. Версия Chart (Chart Version): Определяет версию всего Helm Chart. Изменяется при внесении любых изменений в шаблоны, значения по умолчанию или метаданные Chart. Указывается в файле Chart.yaml.

  2. Версия Приложения (App Version): Определяет версию самого приложения, которое доставляется с помощью этого Chart. Указывается в файле Chart.yaml и носит исключительно информационный характер для конечного пользователя Chart. Не влияет на работу Helm.

Файл Chart.yaml:

# Файл с метаданными Chart
apiVersion: v2       # Версия API Helm
name: my-app         # Название Chart
description: Мое приложение # Описание Chart
version: 1.2.3       # Версия Chart. Желательно следовать SemVer.
appVersion: "2.5.0"  # Версия приложения. Строка.

Жизненный цикл и версионирование релизов:

Каждый раз, когда вы устанавливаете или обновляете Helm Chart, Helm создает новый релиз. Каждый релиз имеет уникальный номер версии (revision). Этот номер увеличивается при каждой операции helm install, helm upgrade или helm rollback для одного и того же имени релиза.

Пример работы с релизами:

# Установка Chart (создание релиза, revision 1)
helm install my-release ./my-chart

# Обновление Chart (создание новой версии релиза, revision 2)
helm upgrade my-release ./my-chart

# Откат к предыдущей версии релиза (создание новой версии релиза, revision 3)
helm rollback my-release 2

# Просмотр истории релиза
helm history my-release

Использование версий при установке и обновлении:

При установке или обновлении Chart из репозитория можно указать конкретную версию с помощью флага --version:

# Установка конкретной версии Chart
helm install my-release my-repo/my-chart --version 1.2.3

# Обновление до конкретной версии Chart
helm upgrade my-release my-repo/my-chart --version 1.3.0

Таким образом, версионирование в Helm охватывает как сам пакет (Chart) с его содержимым, так и историю развертываний этого пакета (релизы).