Skip to content

incorrect merging when mixing create/update and ssa #81

@cbarbian-sap

Description

@cbarbian-sap

How to reproduce

Create an object with update policy to ssa-merge or ssa-override, having two annotations set. Then remove one of the annotations, and wait until component-operator-runtime has updated the object.

Expected behaviour: the removed annotation is removed from the object in the cluster.

Actual behaviour: the removed annotation is still there.

Additional information

It seems that this is because (when using ssa), the framework uses Create() to create the object. As a consequence, the fields are owned by manager reconcilerName and operation Update. The ssa update then happens with Patch(), which leads to field owner records with the same manager, but with operation Apply. Which the API server treats as independent owners. As the removed annotation is not part of the specified manifest, the API server concludes that the sender of this manifest has no opinion on the removed annotation, and therefore keeps it with the old owner (the one with operation Update).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions