Как стать автором
Обновить

Комментарии 3

Интересная статья, спасибо. Реализовывал аналогичный оператор, пришли к достаточно похожим решениям.

А какие преимущества использования sigs пакета controller-runtime?
Почему не сделали как в куберовском примере? Как минимум, используя нативные куберовские средства, мы более явно контролируем на обновления каких объектов подписываться.

Мы хотели простой в реализации и будущей поддержке оператор. Использование архитектуры sample-controller подразумевает прямой использование функционала client-go. Получается слишком низкоуровнего и если кто-то захочет поучаствовать в разработке оператора (опенсорс же все) - будет сложней.

Нам понравилась реализация Controller Runtime, где все объекты соответствуют и интерфейсу client.Object и runtime.Object. (Минусы, конечно, есть. Из этой же статьи их видно)

+ нативное использование Controller Runtime в kubebuilder и OpenSDK стало немаловажным фактором.

Изначально мы архитектурно хотели сделать оператор схожим с оператором seaweedfs, но в процессе поняли, что настолько "в лоб" не получится и начали "поглядывать" на реализацию оператора у Виктории и того же Логгинг Оператора. (У логгинг мы точно знали все минусы, т.к. тесно с ним работали и даже отсылали им пулреквесты на всякие мелочи (да и не мелочи тоже), а у Виктории, на мой взгляд, очень хорошая и понятная архитектура кода)

Сорри - OperatorSDK, а не OpenSDK. Попутал

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации