Наука

Nelm против Helm 4: анализ обновлений и преимуществ Nelm в новой версии конкурента

Краткое резюме

В новой версии Helm 4 используется Server-Side Apply вместо 3-Way Merge для решения проблем с некорректным обновлением ресурсов. Nelm остаётся более эффективной альтернативой из-за быстрого темпа разработки и решения давних проблем Helm.

Недавно была представлена новая версия Helm — Helm 4. Это событие даёт возможность вновь провести сравнение с альтернативным решением — Nelm. В этой статье мы рассмотрим нововведения в обоих проектах, подробно обсудим их различия и обозначим дальнейшие планы для Nelm. **Изменения в Helm 4** В новой версии Helm 4 основное изменение, которое будет интересно пользователям, касается решения проблем с некорректным обновлением ресурсов. Теперь используется Server-Side Apply вместо 3-Way Merge. Остальные обновления в основном направлены на устранение технического долга. Несмотря на значимость внедрения SSA, ожидания от Helm 4 были выше. Пользователи хотели увидеть альтернативу Go-шаблонам и улучшения в работе с Custom Resource Definition, но эти изменения пока не запланированы. Полный перечень обновлений можно найти в нашем обзоре Helm 4. **Перспективы развития Helm** Перед выпуском Helm 4 темп разработки ускорился, но после релиза он, вероятно, снова замедлится. По-прежнему существуют системные проблемы: долгие процессы согласования через Helm Improvement Proposals (HIP), высокие требования к обратной совместимости, значительный объём технического долга в кодовой базе и нехватка участников-контрибьюторов. Основываясь на текущем опыте, можно предположить, что в ближайшие годы в Helm 4 будут вноситься лишь небольшие функции и исправления ошибок, как это было в Helm 3. Любые значительные изменения, скорее всего, появятся только в следующем крупном релизе Helm. **Что такое Nelm** Nelm представляет собой современную альтернативу Helm 4, уделяя особое внимание обратной совместимости с Helm-чартами и Helm-релизами. Nelm выполняет те же задачи, что и Helm, но делает это более эффективно. Nelm был разработан во «Фланте» в ответ на медленный темп разработки, сложности с внедрением изменений и игнорирование давних проблем в Helm. Хотя часть кодовой базы Helm используется, наиболее проблемные компоненты, особенно связанные с развёртыванием, были переписаны с нуля. **Отличия Nelm от Helm 4** С выходом нового релиза Helm достиг уровня поддержки Server-Side Apply, аналогичного Nelm. Однако Nelm также продвинулся вперёд, добавив настройку жизненного цикла ресурсов через аннотации werf.io/delete-policy, werf.io/ownership, werf.io/deploy-on. Рассмотрим основные отличия Nelm от Helm 4: 1. **Полноценный выкат CRD**. В Helm рекомендуется размещать CRD в директории crds чарта. Однако ресурсы из этой директории не обновляются и выкатываются только при первой установке релиза. При последующих «helm upgrade» директория crds даже не читается. В Nelm достаточно просто поместить CRD в директорию crds. Выкат из неё реализован полноценно: CRD могут обновляться и выкатываться при последующих upgrade’ах релиза. 2. **Задание порядка выката**. В Helm для задания порядка выката обычно используют Helm-хуки.

Фильтры и сортировка