Обновление Helm Charts: подробное руководство с примерами кода

Чтобы обновить диаграмму Helm, вы можете использовать несколько методов в зависимости от ваших конкретных требований и среды, в которой вы работаете. Вот некоторые распространенные методы с примерами кода:

Метод 1: использование команды обновления Helm

Самый простой способ обновить диаграмму Helm — использовать команду helmupgrade. Этот метод предполагает, что вы уже установили диаграмму и развернули выпуск.

helm upgrade <release-name> <chart-name> [flags]

Пример:

helm upgrade my-release stable/nginx-ingress

Метод 2: обновление значений диаграммы

Вы также можете обновить диаграмму Helm, изменив значения диаграммы, а затем применив изменения с помощью команды helm update. Этот метод полезен, если вы хотите настроить конфигурацию диаграммы.

helm upgrade <release-name> <chart-name> -f <path-to-values-file> [flags]

Пример:
Предполагая, что у вас есть файл values.yaml, содержащий обновленные значения, вы можете запустить:

helm upgrade my-release stable/nginx-ingress -f values.yaml

Метод 3: использование Helmfile

Helmfile — это декларативная спецификация для развертывания диаграмм Helm. Это позволяет вам определять и управлять несколькими выпусками в одном файле. Используя Helmfile, вы можете легко обновить свои диаграммы.

Пример Helmfile.yaml:

releases:
  - name: my-release
    chart: stable/nginx-ingress
    version: 1.2.3

Чтобы обновить диаграмму, вы можете изменить поле версии в файле Helmfile и запустить:

helmfile sync

Метод 4: использование подхода GitOps с Flux

Если вы используете подход GitOps с Flux, вы можете обновить свои диаграммы Helm, зафиксировав изменения в своем репозитории Git. Flux автоматически обнаружит изменения и применит их к вашему кластеру.

Пример:
Предполагая, что у вас есть выпуск Helm, определенный в манифесте HelmRelease, вы можете обновить версию диаграммы и зафиксировать изменения в репозитории Git.

apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: my-release
  namespace: my-namespace
spec:
  releaseName: my-release
  chart:
    spec:
      chart: stable/nginx-ingress
      version: 1.2.3

После внесения изменений Flux согласует состояние вашего кластера и соответствующим образом обновит версию Helm.