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

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

Интересно, как люди решают все эти типовые задачи, если платформа не предоставляет разрешения на использование CRD и установку операторов и контроллеров? Хочу наладить декларативный гитопс, при этом щас все висит на gitlabci + набор helm-команд в степах

Без CRD можно использовать конфигмапы и секреты для хранения настроек. Будет не так красиво, но решение рабочее. Запретить оператор невозможно в принципе. Это же просто сервис, который использует стандартное API. Всё до чего могут дотянуться ваши руки, можно настроить и для оператора.

Но вообще можно и отдельный сервис реализовать. Но использование нативных возможностей всегда в приоритете.

Про размер можно не волноваться, бинарь на Го с
подключенным client-go компилится где-то в 30-40мб. Питон под ansible около 100. Не то, чтобы драматическая разница в реалиях 2023.
Теоретически уменьшить размер можно микропитоном, его пакет для ansible весит меньше bash'а. Но на практике мы пробовали на нём написать хук под shell-operator, оказалось, слишком урезанная версия питона, kopf на нём не заработает скорее всего.

s/ansible/alpine/ :facepalm:

В принципе, если собрать Python 3.11 из сырцов, без SQLite и некоторых бинарников, которые скорее всего не нужны для kopf и python-kubernetes, то думаю 20-30мб можно получить экономии. Alpine я бы не стал использовать. Есть прецеденты неадекватного поведения. Если ещё и базовый образ изначально полегче собрать (без кучи лишних утилит, которые не нужны оператору), то можно в принципе неплохо так сжать образ. Думаю я ещё много всяких оптимизаций смогу прикрутить, чтобы сделать базовый красивый образ под операторы на Python.

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

Публикации

Истории