-
Notifications
You must be signed in to change notification settings - Fork 76
Description
Is your feature request related to a problem? Please describe.
It is not possible to update permissions, topic permissions or bindings at the moment. This is due to a limitation in the HTTP API, that does not directly support updates of these objects. However, we can keep a record of the existing permission/topic-permission/binding, and perform an "update" as delete existing, declare new.
Describe the solution you'd like
We can store inside an annotation the last good known state. That is, the last state after a successful API call to rabbit. Upon an update to a permission/topic-permission/binding object, we can infer the previous state from the annotation, delete the previous permission/topic-permission/binding, and create the new updated permission/topic-permission/binding with the information from the new request.
Additional context
We may need to ensure that only one reconcile is running for a given topology object. At the moment, multiple event sources may trigger a reconcile for a given object, resulting in parallel reconciles. Most of the time this has no side-effect, since the result of all the reconciles is the same. However, by deleting an object in rabbit, we would be causing a side-effect, and the previous assumption is not valid anymore.