#kubernetes #operator-sdk
Вопрос:
По умолчанию оператор-sdk создает структуру папок следующим образом
корневая папка
|- api
|- config
|- |- crd
|- |- default
|- |- manager
|- |- ..
|- controllers
|- hack
некоторые папки были опущены для краткости.
То, что я ищу, — это как изменить эту структуру папок и настроить sdk оператора для соблюдения этой структуры папок.
Итак , скажем, я хочу переименовать config
в cmd
, как этого добиться при использовании operator-sdk
Ответ №1:
Ты вроде как не можешь. Некоторые материалы основаны на специальных комментариях и в основном будут работать независимо от макета, но чем дальше вы отклоняетесь от макета по умолчанию, тем больше строительных лесов не будет работать для вас в будущем.
Тем не менее, вы можете просто делать все, что хотите, и больше не использовать OSDK. Базовые библиотеки Go (среда выполнения контроллера, инструменты контроллера) в основном не заботятся о макетах, и это ваше программное обеспечение, поэтому вы можете делать все, что угодно.
Комментарии:
1. Спасибо, что ответили. Да, я понимаю, что это сработало бы, и в каком-то смысле так оно и есть. Например, когда я переименовываю
config
, чтобы сказатьcmd
и запустить оператор локально, он работает, но он генерируетconfig/rbac/role.yaml
, даже если я переместил папку rbac в cmd2. Большинство выходных путей контроллера общего назначения можно перенастроить с помощью параметров интерфейса командной строки. Вероятно, это в вашем файле Makefile. Я думаю, что некоторые из них не могут быть тем не менее, геном IIRC webhook был жестко закодирован или что-то в этом роде. Хотя нет причин, по которым это должно быть, патчи приветствуются выше по течению, чтобы исправить ситуацию 🙂