helm install: Установка чарта: кастомные values, создание namespace, dry-r
Установка чарта: кастомные values, создание namespace, dry-run
Базовый синтаксис
Команда helm install разворачивает приложение в кластере Kubernetes из пакета, который называется чарт. Вот минимальный рабочий пример:
helm install my-release bitnami/nginx
Разберем по частям:
my-release— имя релиза. Это уникальный идентификатор вашего развертывания в кластере. По этому имени вы будете управлять установкой (обновлять, удалять).bitnami/nginx— путь к чарту.bitnami— имя репозитория,nginx— имя чарта в этом репозитории. Helm предварительно должен знать о репозитории (helm repo add bitnami https://charts.bitnami.com/bitnami).
После выполнения команды Helm создаст в текущем namespace набор Kubernetes-ресурсов (Deployment, Service и т.д.), описанных в чарте nginx, и присвоит им метки, связывающие с релизом my-release.
Полезные флаги
--values и --set — для кастомизации конфигурации.
Чарты используют файлы values.yaml для параметров. Чтобы переопределить их, передайте свой файл или укажите значения напрямую.
# Передаем свой конфигурационный файл
helm install my-app ./my-chart --values=production-values.yaml
# Или задаем конкретные параметры прямо в командной строке
helm install my-app bitnami/nginx --set replicaCount=3,service.type=LoadBalancer
--values используется для сложной конфигурации (например, staging/prod окружения). --set удобен для быстрого переопределения одного-двух параметров.
--namespace и --create-namespace — для работы с пространствами имен.
По умолчанию установка идет в namespace default. Чтобы установить в конкретный namespace и создать его, если он не существует:
helm install my-app ./my-chart --namespace=monitoring --create-namespace
Без --create-namespace команда упадет с ошибкой, если namespace monitoring не создан.
--dry-run — для проверки перед реальной установкой.
Флаг позволяет сгенерировать итоговые манифесты и проверить, что именно будет отправлено в API Kubernetes, без реального применения.
helm install my-app ./my-chart --dry-run --debug
Ключ --debug выводит полный рендеренный шаблон. Это главный инструмент для отладки чартов.
Типичные сценарии
1. Установка с кастомными values для разных окружений. У вас есть базовый чарт и два файла конфигурации: для разработки и продакшена. Установка в production будет выглядеть так:
helm install my-backend ./app-chart \
--namespace=production \
--values=values.yaml \
--values=values.production.yaml
Helm мержит значения из файлов последовательно. Параметры из values.production.yaml перезапишут одноименные из values.yaml.
2. Предпродакшенная проверка (dry-run). Перед обновлением продакшен-релиза вы хотите убедиться, что новые значения не сломают шаблоны и создадут корректные ресурсы.
helm upgrade --install my-backend ./app-chart \
--namespace=production \
--values=values.production.yaml \
--dry-run
Комбинация upgrade --install (установит, если релиза нет) с --dry-run — стандартный этап CI/CD пайплайна.
Частые ошибки
Конфликт --set и --values.
Значения, заданные через --set, имеют наивысший приоритет и перезапишут даже те, что указаны в файлах из --values. Это может привести к неожиданному поведению, если вы забыли про этот флаг в длинной команде. Всегда проверяйте итоговые значения командой helm get values <release-name>.
Пропущенный --create-namespace.
Ошибка Error: create: failed to create: namespaces "monitoring" not found возникает, когда вы пытаетесь установить релиз в несуществующий namespace, не используя флаг --create-namespace. Всегда добавляйте его, если не уверены в существовании namespace.