From 012e81d71f6fcda0ce52e4f0ef63c96081b2e48b Mon Sep 17 00:00:00 2001 From: Arthur Outhenin-Chalandre Date: Mon, 30 Sep 2024 21:15:31 +0200 Subject: [PATCH] KEP 1645: clarify port conflict rules Signed-off-by: Arthur Outhenin-Chalandre --- .../1645-multi-cluster-services-api/README.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/keps/sig-multicluster/1645-multi-cluster-services-api/README.md b/keps/sig-multicluster/1645-multi-cluster-services-api/README.md index 656567d3b2f..d45c73d12ac 100644 --- a/keps/sig-multicluster/1645-multi-cluster-services-api/README.md +++ b/keps/sig-multicluster/1645-multi-cluster-services-api/README.md @@ -994,10 +994,16 @@ The conflict will be resolved by assigning precedence based on each A derived service will be accessible with the clusterset IP at the ports dictated by child services. If the external properties of service ports for a set of exported services don’t match, the clusterset service will expose the -union of service ports declared on its constituent services. Should a port name -be used for multiple non-identical (`port`, `protocol`, `appProtocol`) service -ports by different constituent services, the conflict resolution policy will -determine which values are used by the derived service. +union of service ports declared on its constituent services. + +Like regular services, the resulting ports must respect two rules: +- Have no duplicated names (including unnamed/empty name) +- Two ports must not have the same protocol and port number + +As a result, MCS-API implementations should merge ports from constituent +services first based on port name then by the protocol and port number pair. +The conflict resolution policy will determine which of the duplicated ports +are used by the ServiceImport. #### Headlessness