В чем разница между app version и chart version в Helm
1️⃣ Как кратко ответить
App version в Helm указывает на версию самого приложения, которое будет развернуто, тогда как chart version относится к версии Helm-чарта, который описывает, как это приложение должно быть развернуто. Chart version управляет изменениями в структуре и конфигурации чартов, а app version — это версия самого приложения, которое чарт разворачивает.
2️⃣ Подробное объяснение темы
Helm — это инструмент для управления пакетами Kubernetes, который позволяет упрощать развертывание приложений и управлять их конфигурацией. В Helm используются понятия app version и chart version, которые играют важные роли в управлении версиями.
App Version
App version — это версия самого приложения, которое будет развернуто с помощью Helm-чарта. Она указывает на конкретную версию программного обеспечения, например, 1.0.0, 2.1.3 и т.д. Эта версия обычно соответствует версии контейнерного образа, который будет использоваться в Kubernetes. App version важна для отслеживания изменений в самом приложении, таких как новые функции, исправления ошибок или изменения в API.
Пример: если у вас есть приложение Nginx, app version может быть 1.19.6, что указывает на конкретную версию Nginx, которую вы хотите развернуть.
Chart Version
Chart version — это версия самого Helm-чарта. Она управляет изменениями в структуре и конфигурации чартов. Chart version используется для отслеживания изменений в шаблонах, значениях по умолчанию, зависимостях и других аспектах, которые определяют, как приложение будет развернуто в Kubernetes. Chart version следует семантическому версионированию (semver), что позволяет четко обозначать изменения, такие как исправления ошибок, добавление новых функций или изменения, нарушающие обратную совместимость.
Пример: если вы обновили шаблоны Helm-чарта для улучшения конфигурации или добавили новые параметры, вы увеличите chart version, например, с 1.0.0 до 1.1.0.
Пример файла Chart.yaml
apiVersion: v2
name: my-application
description: A Helm chart for Kubernetes
version: 1.1.0 # Chart version
appVersion: 2.1.3 # App version
version: 1.1.0— это chart version. Она указывает на версию самого Helm-чарта. Изменения в этой версии отражают изменения в структуре и конфигурации чартов.appVersion: 2.1.3— это app version. Она указывает на версию приложения, которое будет развернуто. Это может быть версия контейнерного образа или самого программного обеспечения.
Зачем это нужно
Разделение app version и chart version позволяет управлять изменениями в приложении и его конфигурации независимо друг от друга. Это важно для DevOps-практик, так как позволяет более гибко управлять развертыванием и обновлением приложений в Kubernetes. Например, вы можете обновить chart version для улучшения конфигурации без изменения app version, если само приложение не изменилось. Или наоборот, обновить app version, если вышла новая версия приложения, не меняя chart version, если структура чартов остается прежней.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться