У меня есть оператор, у которого есть 2 контроллера. Контроллер A следит за CRD_A, и если он находит CR (у нас может быть только один CR этого типа в кластере) этого типа A, контроллер создает podA и устанавливает CR как владельца podA. Контроллер B наблюдает за CRD_B, если он находит CR типа B, контроллер проверяет, существует ли podA, и настраивает модуль, отправляя HTTP-запрос на podA с информацией из CR. Это простой обзор работы оператора.
Проблема в том, что когда podA удаляется (я или Kubernetes хочет перепланировать его), запускается согласование controllerA, потому что CR_A является владельцем podA и создает новый podA. Но я также хочу, чтобы controllerB был согласован, потому что он должен настроить podA, потому что теперь он не согласован, потому что нет соединения между podA и controllerB.
Как правильно инициировать согласование контроллера B, когда происходит такое событие? Я не могу назначить двух CR в качестве владельцев модуля. Я думаю, что как-то controllerA должен отправить событие согласования на controllerB, но я не знаю, как это может произойти, и правильно ли это?