Skip to content

Handle ManifestWork cache lag in determineStatus #98

Description

@mkolesnik

determineStatus reads operator ManifestWorks from the informer cache, but doReconcile writes them via WorkApplier directly to the API server.
This can cause a transient IsNotFound error when the cache hasn't received the watch event yet.

This results in a ReconcileError status condition and error log on the mesh, which resolves on the next reconcile once the cache catches up.

Reproducible in integration tests on every run:

Successfully reconciled MultiClusterMesh test-ns/mesh
Encountered an error while reconciling MultiClusterMesh test-ns/mesh: failed to get operator ManifestWork for cluster cluster-xxx: ManifestWork "multicluster-mesh-operator" not found

Metadata

Metadata

Assignees

No one assigned

    Labels

    controllerReconciler internals and performancestatusStatus conditions and spoke feedback

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions