Изменение структуры каталогов для проекта, созданного оператором-sdk (Kubernetes)

#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 в cmd

2. Большинство выходных путей контроллера общего назначения можно перенастроить с помощью параметров интерфейса командной строки. Вероятно, это в вашем файле Makefile. Я думаю, что некоторые из них не могут быть тем не менее, геном IIRC webhook был жестко закодирован или что-то в этом роде. Хотя нет причин, по которым это должно быть, патчи приветствуются выше по течению, чтобы исправить ситуацию 🙂