Ответ
Основной инструмент для обновления — команда helm upgrade. В реальных проектах я комбинирую её с дополнительными флагами и практиками для обеспечения надёжности.
Базовое обновление:
helm upgrade my-release ./my-chart --values values.yaml
Ключевые флаги и сценарии их использования:
--install: Создаёт релиз, если он не существует. Стандартная практика в CI/CD-пайплайнах.helm upgrade --install my-release ./my-chart--atomic: Автоматически выполняет откат, если обновление не удалось. Критически важно для продакшн-развёртываний.helm upgrade --atomic --timeout 5m my-release ./my-chart--reuse-values: Сохраняет пользовательские значения из предыдущего релиза. Полезно при обновлении только версии чарта.--reset-values: Игнорирует предыдущие значения и использует только те, что указаны в команде (по умолчанию изvalues.yaml).
Практики, которые я применяю:
- Предварительный просмотр изменений: Перед
upgradeвсегда запускаюhelm diffдля проверки, какие ресурсы в Kubernetes будут изменены.helm diff upgrade my-release ./my-chart - Версионирование: Чарты версионирую по SemVer, а в CI/CD передаю конкретную версию для воспроизводимости.
- Структура values: Использую несколько файлов
values(например,values-prod.yaml,values-staging.yaml) и передаю нужный через--values. - Откат: Если что-то пошло не так, делаю откат к предыдущей рабочей версии.
helm rollback my-release 1