Skip to content

Commit d232824

Browse files
committed
KEP 1645: add traffic distribution and internal traffic policies fields
Signed-off-by: Arthur Outhenin-Chalandre <arthur@cri.epita.fr>
1 parent fb5200e commit d232824

File tree

1 file changed

+23
-2
lines changed
  • keps/sig-multicluster/1645-multi-cluster-services-api

1 file changed

+23
-2
lines changed

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

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ tags, and then generate with `hack/update-toc.sh`.
107107
- [Service Port](#service-port)
108108
- [Headlessness](#headlessness)
109109
- [Session Affinity](#session-affinity)
110+
- [Internal Traffic Policy](#internal-traffic-policy)
111+
- [Traffic Distribution](#traffic-distribution)
110112
- [Labels and Annotations](#labels-and-annotations)
111113
- [Test Plan](#test-plan)
112114
- [Graduation Criteria](#graduation-criteria)
@@ -481,8 +483,9 @@ ensure that a name is shared by multiple services within the namespace if and
481483
only if they are instances of the same service.
482484

483485
Most information about the service, including ports, backends, topology and
484-
session affinity, will continue to be stored in the `Service` objects, which
485-
are each name mapped to a `ServiceExport`. This does not apply for labels and
486+
session affinity, internal traffic policy, and traffic distribution
487+
will continue to be stored in the `Service` objects, which are each name
488+
mapped to a `ServiceExport`. This does not apply for labels and
486489
annotations which are stored in `ServiceExport` directly in `spec.exportedLabels`
487490
and `spec.exportedAnnotations`. Exporting labels and annotations is optionally
488491
supported by MCS-API implementations. If supported, annotations or labels must
@@ -575,6 +578,12 @@ type ServiceImportSpec struct {
575578
SessionAffinity corev1.ServiceAffinity `json:"sessionAffinity"`
576579
// +optional
577580
SessionAffinityConfig *corev1.SessionAffinityConfig `json:"sessionAffinityConfig"`
581+
// +optional
582+
InternalTrafficPolicy *corev1.ServiceInternalTrafficPolicy `json:"internalTrafficPolicy,omitempty"`
583+
// The possible TrafficDistribution values should match what can be similarly
584+
// defined in a Service, see https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
585+
// +optional
586+
TrafficDistribution *string `json:"trafficDistribution,omitempty"`
578587
}
579588

580589
// ServicePort represents the port on which the service is exposed
@@ -1026,6 +1035,18 @@ Session affinity affects a service as a whole for a given consumer. The derived
10261035
service's session affinity will be decided according to the conflict resolution
10271036
policy.
10281037

1038+
#### Internal Traffic Policy
1039+
1040+
Internal traffic policy affects a service as a whole for a given consumer. The derived
1041+
service's internal traffic policy will be decided according to the conflict resolution
1042+
policy.
1043+
1044+
#### Traffic Distribution
1045+
1046+
Traffic distribution affects a service as a whole for a given consumer. The derived
1047+
service's traffic distribution will be decided according to the conflict resolution
1048+
policy.
1049+
10291050
#### Labels and Annotations
10301051

10311052
If supported, exporting labels and annotations would affect a `Service` as a whole

0 commit comments

Comments
 (0)