Open moredure opened 5 years ago
Sorry, I don't understand. Can you give a code snippet or log entries to show what you're trying to do, and what the resulting behavior is?
So, I has
childResources:
- apiVersion: v1
resource: pods
- apiVersion: v1
resource: persistentvolumeclaims
- apiVersion: voyager.for.example
resource: ingress
- apiVersion: v1
resource: services
updateStrategy:
method: InPlace
When I try to utilise ingress, it create additional resources (Voyager Operator creates it: services, pods, etc) and looks like metacontroller tries to reconcile them. But I expect Voyager Ingress resource to be black box and not expose underling resources to metacontroller, can it be avoided somehow, I don't want to manage voyager resources in my metacontroller instance? Because of that Voyager fails to infinite loop of reconciling, my sync hook not expects to be voyager resources in desired childs.
It sounds like the Voyager Operator is not adding ControllerRef to the objects it creates. That's an important rule that controllers need to follow in order to maintain the "black box" isolation you mentioned.
If it's not possible for you to fix the Voyager Operator (e.g. you didn't write it), one way you might be able to work around this is to make sure that the label selector for the parent object in your controller does not match the objects created by the Voyager Operator.
When running other resources managed by another operator (Voyager) via metacontroller, he tries to reconcile state of internal resources of Voyager (service, etc.).