Nelm CLI
Альтернатива Helm для деплоя чартов в Kubernetes с планом изменений, трекингом ресурсов и шифрованными секретами
- 1 114 ★ репозитория
- Последний коммит
Широкий доступ
Почему такой уровень
- Применяет и удаляет ресурсы в Kubernetes
- Работает с ключами шифрования секретов
Установка
- Работает в
Ручная установка
Установи Nelm по инструкции на странице GitHub Releases репозитория werf/nelm. Перед каждым nelm release install запускай nelm release plan install и показывай мне diff.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Применяет и удаляет ресурсы в Kubernetes
- Работает с ключами шифрования секретов
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Nelm берет обычный Helm-чарт и выкатывает его в кластер своей командой nelm release install, а релиз записывает в том же формате, что и Helm. Перед выкаткой nelm release plan install показывает diff между текущим и будущим состоянием через пробный Server-Side Apply, а флаг --save-plan сохраняет план в файл, который потом применяется через --use-plan. Во время деплоя утилита строит граф операций, выкатывает независимые ресурсы параллельно, ждет готовности и раз в несколько секунд печатает таблицу статусов. Порядок задают аннотации werf.io/weight и werf.io/deploy-dependency, а политику удаления и пересоздания ресурсов задают werf.io/delete-policy и werf.io/resource-policy. Команды chart secret шифруют values-файлы и произвольные файлы из папки secret ключом из переменной NELM_SECRET_KEY, расшифровка идет в памяти при рендере.
Для кого. DevOps-инженерам, которые деплоят Helm-чарты и хотят предсказуемых релизов.
Подходит, если
- В CI стоит helm upgrade --install --atomic --wait, а при падении релиза не видно, какой ресурс не стал готовым и почему
- Перед выкаткой в прод нужно показать ревьюеру точный diff и применить тот же проверенный план без пересчета
- Чарт ставит ресурсы в строгом порядке, например оператор, затем его CRD, затем кастомный ресурс, и хуки Helm стали неудобными
- Пароли лежат в репозитории открытым текстом, и нужно хранить их зашифрованными рядом с чартом
- Вы обновляете CRD из папки crds/ при каждом апгрейде, а Helm трогает их только при первой установке
Не подходит, если
- Ваш процесс держится на плагинах Helm: их поддержку авторы не планируют, часть функций (план, секреты) встроена в Nelm, остальное придется заменять
- Кластер на Kubernetes 1.13 и старше: без Server-Side Apply Nelm не работает, на 1.14 и 1.15 его нужно включить вручную
- Вы хотите, чтобы новый релиз брал значения из предыдущего, как это делает Helm: Nelm так не делает, берутся только значения из явных --values и --set
- Вам нужен конвейер со сборкой образов и деплоем в одном инструменте: посмотрите werf, для которого Nelm служит движком деплоя
Пример запроса к агенту
В файле .gitlab-ci.yml замени helm upgrade --install --atomic --wait для релиза billing в пространстве имен prod на nelm release install с --auto-rollback и добавь перед ним job с nelm release plan install --save-planОграничения
Доступ: расширенный. Утилита обращается к кластеру через ваш kubeconfig и может создавать, менять и удалять ресурсы в выбранных пространствах имен, так что права определяются учетной записью кластера. Ключ шифрования секретов передается через NELM_SECRET_KEY и нужен любой команде, которая шифрует или расшифровывает, включая nelm chart render. Нужен включенный Server-Side Apply (по умолчанию с Kubernetes 1.16). Плагины Helm не поддерживаются, CLI, флаги и переменные окружения отличаются от Helm. Часть функций включается переменными вида NELM_FEAT_*. Установка: бинарные файлы на странице релизов GitHub, платных частей нет.
Как отключить. Верните команды helm в CI: релизы совместимы, миграция обратно не нужна.
Частые вопросы
Можно ли деплоить один релиз и Helm, и Nelm?
Да, Nelm хранит информацию в формате Helm Releases, и по README их можно использовать попеременно. Миграция в обе стороны не нужна.
Как заменить helm template?
По таблице соответствий в README это nelm chart render ./chart. Для helm dependency build команда nelm chart dependency download, для helm uninstall nelm release uninstall.
Как установить Nelm?
README отсылает к странице релизов на GitHub: скачайте бинарный файл под вашу систему. Отдельной команды установки через менеджер пакетов в README нет.
Как проверить, что Nelm видит кластер и чарт?
Выполните nelm chart lint и nelm chart render для чарта, затем nelm release plan install с теми же -n и -r. Если план показывает ожидаемые изменения, связка работает; при пустом чарте diff будет пустым.
Чем Nelm отличается от Helm при ошибке деплоя?
Он отслеживает готовность каждого ресурса, печатает логи подов и таблицу статусов, поэтому ошибка привязана к конкретному ресурсу. README называет это более продвинутым трекингом, чем в Helm.
Что делать, если команда ругается на Server-Side Apply?
Проверьте версию Kubernetes: с 1.16 функция включена, на 1.14 и 1.15 ее нужно включить на стороне кластера, на 1.13 и старше Nelm использовать нельзя.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыCLI для полного цикла CI/CD в Kubernetes: сборка образов, деплой через Helm и очистка container registry
Kubernetes MCP
MCP Server Kubernetes
MCP-сервер для управления кластером Kubernetes через kubectl и Helm, с режимом без разрушающих операций
Скилл KubeShark: агент сначала ищет режим отказа, потом пишет манифесты, Helm и Kustomize по официальным практикам и возвращает план проверки и отката
Открытый интерфейс Kubernetes с встроенным MCP-сервером: агент осматривает кластер, разбирает поломки и выполняет операции с учетом RBAC
MCP-сервер на Go для Kubernetes и OpenShift: ресурсы, поды, логи, Helm и Tekton напрямую через API кластера
Deckhouse CLI (d8)
D8 - Deckhouse CLI
Консольный клиент d8 для Deckhouse Kubernetes Platform: статус кластера, модули, бэкапы, зеркалирование и диагностика
Коротко о README
Nelm позиционируется как альтернатива Helm 4 и служит движком деплоя werf. Он переписывает подсистему деплоя Helm на основе графа операций и добавляет аннотации для порядка и жизненного цикла ресурсов. Есть двухэтапный деплой через сохраненный план, трекинг состояний, вывод логов и управление зашифрованными секретами. README содержит quickstart, таблицу соответствия команд Helm и полный справочник аннотаций.