Skip to content

Support mutability of permissions, topic permissions and bindings #755

@Zerpet

Description

@Zerpet

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions