CLI Nelm целиком
Что нужно знать перед уроком
- M4.04 — Три стадии Nelm подробно — нужно понимать Render/Plan/Apply, чтобы осознанно использовать соответствующие команды CLI
Что нужно знать перед уроком
M4 урок 4 — три стадии Nelm и уже встречавшиеся команды chart render/release plan install/release install. Здесь — полный обзор CLI Nelm по группам команд.
Теория
Группы команд Nelm
| Группа | Команды | Назначение |
|---|---|---|
| Release | install, plan install, uninstall, list, history, get, rollback | управление жизненным циклом релиза в кластере |
| Chart | lint, render, download, upload, pack | работа с самим чартом как артефактом |
| Chart secret | key create, key rotate, values-file edit/encrypt/decrypt, file edit/encrypt/decrypt | шифрование секретов чарта (M4 урок 2) |
| Chart dependency | download, update | управление sub-charts из Chart.lock |
| Repo | add, remove, update, login, logout | управление источниками чартов (OCI-репозитории) |
release: полный жизненный цикл
| |
Соответствие командам Helm (для тех, кто уже знаком с Helm 3) — таблица прямых эквивалентов:
| Helm | Nelm |
|---|---|
helm upgrade --install --atomic --wait -n ns release ./chart | nelm release install --auto-rollback -n ns -r release ./chart |
helm uninstall -n ns release | nelm release uninstall -n ns -r release |
helm template ./chart | nelm chart render ./chart |
helm dependency build | nelm chart dependency download |
Обратите внимание на --auto-rollback у nelm release install — прямой аналог связки --atomic у Helm (при ошибке деплоя автоматически откатывается на предыдущую успешную ревизию, а не оставляет релиз в промежуточном сломанном состоянии).
chart: работа с самим чартом как артефактом
| |
pack/upload/download — механизм публикации/получения чартов через OCI-реестры (тот же тип registry, что используется и для образов, и для Package/Application-пакетов, разбирается детально в M9) — чарт как артефакт живёт своим независимым жизненным циклом версионирования, отдельно от версий самих образов внутри него.
chart dependency: sub-charts
| |
update пересчитывает версии зависимостей согласно ограничениям версий в Chart.yaml и обновляет Chart.lock (аналог package-lock.json/go.sum — фиксация точных разрешённых версий); download — детерминированная установка уже зафиксированных версий из существующего Chart.lock, без пересчёта (аналог npm ci вместо npm install).
repo: управление источниками чартов
| |
Частые ошибки и подводные камни
- Путать
nelm chart download/upload(публикация самого чарта) с публикацией Application-пакета черезd8 package build. Это разные уровни артефактов: чарт — внутренняя часть Application-пакета,d8 package build(детально — M5 урок 9) оперирует пакетом целиком (чарт + образы + метаданныеpackage.yaml). - Не использовать
--auto-rollbackв CI и получать сломанные промежуточные релизы при ошибке деплоя. Без этого флага неудачныйrelease installможет оставить кластер в частично применённом состоянии. - Забыть
nelm chart dependency update/downloadпередrender/install, если у чарта есть sub-charts. Без загруженных зависимостей вcharts/рендер/установка завершится ошибкой отсутствующих зависимостей.
Практика в кластере
- Проверьте чарт Vikunja линтером и убедитесь, что нет ошибок:
| |
- Установите релиз с автоматическим откатом при ошибке:
| |
- Внесите изменение (например, увеличьте
replicaCountв values) и обновите релиз, затем изучите историю ревизий:
| |
- Смоделируйте откат на предыдущую ревизию:
| |
Практика разработки
Упакуйте чарт как переносимый артефакт и загрузите в тестовый OCI-реестр (если доступен):
| |
Шпаргалка команд урока
| |
Полная шпаргалка: 📋 nelm .
Вопросы для самопроверки
--auto-rollback предотвращает промежуточное сломанное состояние релиза при неудачном деплое, откатывая на последнюю успешную ревизию.
Источник: Nelm — README на GitHub
chart render — только шаблонизация без обращения к кластеру для применения, аналог helm template.
Источник: Nelm — README на GitHub
update — аналог npm install (пересчёт), download — аналог npm ci (детерминированная установка по lock-файлу).
Источник: Nelm — README на GitHub
Это разные уровни артефактов: чарт — внутренняя часть пакета, package build оперирует пакетом целиком.
Источник: Рекомендуемая литература
release history показывает последовательность ревизий релиза, необходимую, в частности, для последующего rollback на конкретную ревизию.
Источник: Nelm — README на GitHub
Рекомендуемая литература
Официальная документация
Статьи и блоги
- Вышла werf 2.0: новый движок развёртывания Nelm — Flant на Habr.
- Представляем werf 1.0 stable: GitOps и Helm — Flant на Habr.
- GitLab + K8s + Werf — Habr.
Книги
- Matt Butcher, Matt Farina, Josh Dolitsky. Learning Helm. 2019. ISBN 978-1492036781.
Связанные материалы
- Предыдущий урок: M4.04 — Три стадии Nelm подробно.
- Следующий урок: M4.06 — Секреты в шаблонах.
- Публикация Application-пакета целиком: M5 урок 9.
- Шпаргалка: 📋 nelm .
✓ Урок пройден — все вопросы самопроверки отвечены верно