Что такое Helm Subchart и как его использовать

Когда вы начинаете работать с Helm для управления приложениями в Kubernetes, быстро становится ясно: не всё стоит хранить в одном чарте.
Часто приложение зависит от других компонентов — например, базы данных или кеша. Для этого и существуют subcharts.


Что такое Subchart?

Subchart — это обычный Helm-чарт, который лежит в папке charts/ внутри основного чарта.
По сути, это способ описать зависимости. Например, вашему приложению нужен Redis. Вместо того чтобы писать манифесты заново, можно подключить готовый Helm-чарт Redis как subchart.


Зачем использовать Subcharts?

  • Повторное использование — не нужно копировать манифесты зависимостей.
  • Контроль версий — можно зафиксировать нужную версию.
  • Чистая структура — основной чарт отвечает только за приложение, зависимости вынесены отдельно.
  • Гибкость — можно переопределять параметры subchart через values.yaml.

Пример: добавляем Subchart

Предположим, вашему приложению нужен Redis. Опишем его в Chart.yaml:

# Chart.yaml
dependencies:
  - name: redis
    version: 17.8.3
    repository: "https://charts.bitnami.com/bitnami"

Затем выполним:

helm dependency update

Redis появится в папке charts/.

Как переопределить параметры Subchart

Вы можете настраивать Redis прямо из values.yaml основного чарта:

redis:
  architecture: standalone
  auth:
    enabled: false

Так не нужно лезть в исходный чарт Redis — достаточно задать нужные значения в values.yaml.

Итог

Helm subcharts — это простой и удобный способ управлять зависимостями. Вместо того чтобы тянуть всё в один чарт, можно использовать готовые проверенные решения и настраивать их под себя.

Кратко

  • Subchart = вложенный Helm-чарт.
  • Используется для зависимостей (например, Redis или Prometheus).
  • Подключается через dependencies в Chart.yaml.
  • Настраивается через values.yaml родительского чарта.