Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement conflict checking for SessionAffinity #1632

Merged

Commits on Sep 4, 2024

  1. Implement conflict checking for SessionAffinity

    The MCS spec's conflict resolution policy states that a "conflict will
    be resolved by assigning precedence based on each ServiceExport's
    creationTimestamp, from oldest to newest". We don't have a central
    MCS controller with access to all cluster's ServiceExports but we
    can store each cluster's ServiceExport creationTimestamp as
    annotations in the aggregated ServiceImport and use them to
    resolve conflicts. The SessionAffinity and SessionAffinityConfig
    fields on the aggregated ServiceImport will be set by the cluster
    with the oldest timestamp. The other clusters will set a
    ServiceExportConflict condition if their corresponding local
    service's fields do not match those on the aggregated ServiceImport.
    If a local service is updated in any cluster, each cluster
    re-evaluates the updated aggregated ServiceImport and either clears
    or sets the conflict conditon. Also if the service from the
    precedent cluster is unexported, the next precedent cluster will
    set the fields.
    
    Signed-off-by: Tom Pantelis <[email protected]>
    tpantelis committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    62ec10b View commit details
    Browse the repository at this point in the history