Плюсы такого подхода:
- честный GitOps: git отражает реальное состояние деплоя, коммит тупо не пройдет если не получится его задеплоить.
- работа не выходя из консоли: я заебался переключаться в браузер чтобы посмотреть что там пошло не так в сиайке и почитать лог деплоя
- безопасность: девелопер может не иметь доступа в продакшен куб в принципе, секреты и различия между environments можно передавать в values. Изменения в prod можно дополнительно ревьювить сторонними инструментами.
- совместимость: можно задеплоить любой уже существующий чарт, просто отрендерив его с помощью helm template и положив выхлоп в репо.
- универсальность: можно использовать любой тул для генерации манифестов, или писать их руками, причём хельм-хуки будут нормально работать в обоих случаях.
При удалении release удаляется и репо для описания его деплоя
Таже идея и с билдом docker-образов. Есть отдельный CRD: dockerImage, с описанием репо куда запушить, ссылкой на секрет для доступа к нему и build-args (опционально)
Ресурс создаёт git-репо, Пуш в этот репо инициализирует сборку образа с помощью kaniko, выхлоп передаётся пользователю. Пуш по тэгам также инициирует сборку и пуш в докер-регистри конкретного тэга.