Первый major-релиз addon-operator для Kubernetes — v1.0.0. Стабильные Go-хуки и не только

Блог компании Флант Open source Системное администрирование DevOps Kubernetes
У addon-operator , нашего Open Source-инструмента для работы с дополнениями в Kubernetes, появился долгожданный релиз v1.0.0 (а вскоре и корректирующий v1.0.1). Напомним, что с помощью addon-operator можно управлять модулями к K8s, созданными с использованием другого Open Source-проекта, — shell-operator . Последний же предназначен для того, чтобы просто и быстро создавать Kubernetes-операторы. Для знакомства с основными возможностями этих инструментов рекомендуем обзорные статьи про addon-operator и shell-operator, а также текстовую версию видеодоклада « Расширяем и дополняем Kubernetes ». С первым major-релизом в addon-operator появилось немало новых фич. Расскажем о самых важных. Изменения в addon-operator v1.0 Новые фичи общего характера: Добавлена переменная HELM_IGNORE_RELEASE , чтобы установить addon-operator с помощью Helm в тот же namespace, где будут установлены модули (подробнее см. в #176 и в документации ). В конфигурации хука появились параметры executionMinPeriod и executionBurst из shell-operator (подробнее см. в #256 ) . Они задают максимальную частоту выполнения хука, чтобы у него была возможность обрабатывать всплески событий.  Разделены экземпляры клиента Kubernetes для хуков, патчеров и мониторинга ресурсов Helm. У каждого клиента теперь свои настройки throttling ( подробнее в документации и в коде ), поэтому уменьшение частоты запросов от мониторов Helm-ресурсов не затормаживает события на запуск хуков. Ускорен выкат Helm-релизов модулей благодаря изменениям в механизме auto-healing ( #234 ): Helm 3 стал частью addon-operator. Если в образе нет бинарника Helm, то будет использоваться встроенный Helm. Это ускоряет обработку шаблонов модулей перед их запуском. Монитор Helm-ресурсов запрашивает информацию о ресурсах параллельно и заканчивает свою работу, как только найдёт несуществующий ресурс. Устранена плавающая ошибка при старте подписок хука: добавлено ожидание синхронизированного состояния кэша информеров. Изменение пришло из shell-operator ( #326 ). Кодовая база переведена на Go 1.16. Около года назад в addon-operator появилась поддержка хуков, написанных на языке Go. В частности, мы воспользовались этим в своей Kubernetes-платформе Deckhouse, модули которой переписали на Go. За минувшее время поддержка Go-хуков дорабатывалась и улучшалась, благодаря чему больше не является экспериментальной (хотя всё ещё нуждается в документации). В контексте Go-хуков релиз addon-operator 1.0 принёс: Добавлен MetricsCollector для упрощения работы с метриками ( #223 , #211 ). Патчи Kubernetes объектов теперь накапливаются через PatchCollector и применяются после работы хука, как и для обычных хуков ​​( #229 ). Экспериментальная возможность динамических привязок. Теперь во время работы хука можно «переподписаться» на другие объекты, изменив apiVersion и kind , или остановить работу подписки ( подробнее см. в #216 ). Множество улучшений во внутреннем устройстве Go-хуков ( #212 , #210 , #206 , #200 , #196 и другие). Изменения в версии 1.0.1 , выпущенной сегодня: Сообщения от Kubernetes клиентов и helm3lib перенаправляются в logrus для формирования валидного JSON-лога ( #253 ). Исправлен откат Pending-релизов в helm3lib​ ( #254 ). Одновременно с релизом addon-operator 1.0 вышло и незначительное обновление shell-operator — 1.0.4 . Главным изменением в нем стала аналогичная миграция кодовой базы на Go 1.16. Развитие проектов В настоящий момент проекты фактически развиваются вместе с Kubernetes-платформой Deckhouse , будучи её важными компонентами. Новые фичи добавляются по мере появления потребности в них именно в контексте развития платформы. Несмотря на это, оба инструмента популярны и как самостоятельные проекты: shell-operator набрал уже 1400+ звезд на GitHub , addon-operator — 300+ . В частности, нам известно об их применении в таких компаниях, как KubeSphere, Confluent и Adobe. P. S.  Читайте также в нашем блоге: « Прогресс shell-operator и addon-operator: хуки как admission webhooks, Helm 3, OpenAPI, хуки на Go и многое другое »; « Go? Bash! Встречайте shell-operator (обзор и видео доклада с KubeCon EU'2020) »; « Расширяем и дополняем Kubernetes (обзор и видео доклада) ».)
Теги:
Хабы: