Skip to content

Commit 7771e7a

Browse files
committed
improve language on optionality of EndpointSlices
Signed-off-by: lauralorenz <[email protected]>
1 parent e13f841 commit 7771e7a

File tree

1 file changed

+14
-8
lines changed
  • keps/sig-multicluster/1645-multi-cluster-services-api

1 file changed

+14
-8
lines changed

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

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -657,12 +657,12 @@ this cluster.
657657
#### Service Types
658658

659659
- `ClusterIP`: This is the straightforward case most of the proposal assumes.
660-
Each `EndpointSlice` in a producing cluster associated with the exported
661-
service is combined with slices from other clusters to make up the clusterset
660+
Each endpoint from a producing cluster associated with the exported service is
661+
aggregated with endpoints from other clusters to make up the clusterset
662662
service. They will be imported to the cluster behind the clusterset IP, with a
663663
`ServiceImport` of type `ClusterSetIP`. The details on how the clusterset IP
664664
is allocated or how the combined slices are maintained may vary by
665-
implementation; see also [EndpointSlices](#EndpointSlices).
665+
implementation; see also [Tracking Endpoints](#TrackingEndpoints).
666666
- `ClusterIP: none` (Headless): Headless services are supported and will be
667667
imported with a `ServiceImport` like any other `ClusterIP` service, but do not
668668
configure a VIP and must be consumed via [DNS](#DNS). Their `ServiceImport`s
@@ -854,15 +854,19 @@ additional label gives additional context, which is implementation-dependent and
854854
may be used for instance to uniquely identify the cluster registry with which a
855855
cluster is registered.
856856
857-
### EndpointSlices
858-
859-
_Optional to create, but specification defined if present._
857+
### Tracking Endpoints
860858
861859
The specific mechanism by which the `mcs-controller` maintains references to the
862860
individual backends for an aggregated service is an implementation detail not
863861
fully prescribed by this specification. Implementations may depend on a higher
864862
level (possibly vendor-specific) API, offload to a load balancer or xDS server
865-
(like Envoy), or use Kubernetes networking APIs.
863+
(like Envoy), or use Kubernetes networking APIs. If the implementation depends
864+
on Kubernetes networking APIs, specifically `EndpointSlice` objects, they must
865+
conform to the specification in the following section.
866+
867+
#### Using `EndpointSlice` objects to track endpoints
868+
869+
_Optional to create, but specification defined if present._
866870
867871
If an implementation does create `discovery.k8s.io/v1 EndpointSlice`s, they must
868872
conform to the following structure. This structure was originally required as
@@ -892,7 +896,9 @@ imported for a service are not guaranteed to exactly match the originally
892896
exported `EndpointSlice`s, but each slice is guaranteed to map only to a single
893897
source cluster.
894898
895-
The mcs-controller is responsible for managing imported `EndpointSlice`s.
899+
If the implementation is using `EndpointSlice`s in this way, the mcs-controller
900+
is responsible for managing the imported `EndpointSlice`s and making sure they
901+
are conformant with this section.
896902
897903
```yaml
898904
apiVersion: multicluster.k8s.io/v1alpha1

0 commit comments

Comments
 (0)