Мы потихоньку развиваем оператор кубернетеса для нашего медиасервера Flussonic и возникает вот какой вопрос по самой концепции: вот один инстанс CRD должен отвечать за один экземпляр медиасервера или за целый кластер разнообразных серверов с разными версиями, конфигурациями железа и дисков?
Вводная такая, что софт у нас расчитан на то, чтобы забирать под себя весь сервер и не особо кого ещё там видеть. Т.е. это не 500 маленьких приложух, а одна большая на все 100 ядер.
Я так посмотрел, вроде как Cloud Native Postgres управляет сразу всем кластером.
У меня ситуация такая, что есть ряд настроек, которые будут разные у разных инстансов и если управлять из одного ресурса всем кластером, то неизменно возникают такие настройки, как:
configPerNode:
- hostname: "node1"
disks:
....
- hostname: "node2"
hasGpu: true
disks: []
А ещё наверное неплохо было бы (ну так, чисто теоретически) на разных серверах иметь разный логин-пароль и соответственно это тоже надо куда-то складывать.
И вот получается, что если ресурс и контроллер описывает весь кластер, то к нему понятно как ходить, но по сути его настройки легко могут превратиться в портянку из кучи разных вариаций для разных нод. Уже не говоря о том, что если с этим одним большим контроллером что-то пойдет не так, то он вполне может положить вообще всё.
А если создавать по одному инстансу CRD на каждый экземпляр (т.е. ноду), то получается, что у нас на каждый сервак отдельная запись и не будет ли это тяжело поддерживать?
Какой опыт? Читал в https://sdk.operatorframework.io/docs/best-practices/best-practices/ и ответов не нашел. В чатгпт не ходил.

