Skip to content

Commit 749e40e

Browse files
authored
Merge pull request kubernetes#4683 from MrFreezeex/clarify-svcexport-conflict
KEP 1645: clarify the chosen conflict resolution algorithm
2 parents 87cd54e + ec3670b commit 749e40e

File tree

1 file changed

+17
-0
lines changed
  • keps/sig-multicluster/1645-multi-cluster-services-api

1 file changed

+17
-0
lines changed

keps/sig-multicluster/1645-multi-cluster-services-api/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ tags, and then generate with `hack/update-toc.sh`.
118118
- [<code>ObjectReference</code> in <code>ServiceExport.Spec</code> to directly map to a Service](#objectreference-in-serviceexportspec-to-directly-map-to-a-service)
119119
- [Export services via label selector](#export-services-via-label-selector)
120120
- [Export via annotation](#export-via-annotation)
121+
- [Other conflict resolution algorithms](#other-conflict-resolution-algorithms)
121122
- [Infrastructure Needed](#infrastructure-needed)
122123
<!-- /toc -->
123124

@@ -1240,6 +1241,22 @@ achieve the same result. As the use of a multi-cluster service implementation
12401241
would be an optional addon, it doesn't warrant a change to such a fundamental
12411242
resource.
12421243

1244+
### Other conflict resolution algorithms
1245+
1246+
When a service has a ServiceExport and a ServiceImport, we could have taken the
1247+
approach of favoring a "local truth" by giving a higher precedence to the locally
1248+
exported Service in the conflict resolution algorithm. This alternative
1249+
approach was not adopted, as in this KEP we favored global consistency across
1250+
the ClusterSet.
1251+
1252+
The conflict resolutions algorithm could also have been based on majority
1253+
instead of ServiceExport oldness. However, with this approach, we would have
1254+
to consider a tie breaking factor that could have also been based on age. This
1255+
would complicate the implementation of MCS-API and, most importantly, might be
1256+
more confusing for users. Having just one simple deciding factor based on
1257+
ServiceExport oldness makes resolving conflicts straightforward, and this
1258+
alternative conflict resolution algorithm could hinder this ease of use.
1259+
12431260
## Infrastructure Needed
12441261
<!--
12451262
Use this section if you need things from the project/SIG. Examples include a

0 commit comments

Comments
 (0)