Skip to content

Commit 22e1b5c

Browse files
authored
Merge pull request #5588 from MrFreezeex/kep1645-traffic-distribution
KEP 1645: add traffic distribution and internal traffic policies fields
2 parents 49691ae + d232824 commit 22e1b5c

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)
@@ -477,8 +479,9 @@ ensure that a name is shared by multiple services within the namespace if and
477479
only if they are instances of the same service.
478480

479481
Most information about the service, including ports, backends, topology and
480-
session affinity, will continue to be stored in the `Service` objects, which
481-
are each name mapped to a `ServiceExport`. This does not apply for labels and
482+
session affinity, internal traffic policy, and traffic distribution
483+
will continue to be stored in the `Service` objects, which are each name
484+
mapped to a `ServiceExport`. This does not apply for labels and
482485
annotations which are stored in `ServiceExport` directly in `spec.exportedLabels`
483486
and `spec.exportedAnnotations`. Exporting labels and annotations is optionally
484487
supported by MCS-API implementations. If supported, annotations or labels must
@@ -586,6 +589,12 @@ type ServiceImportSpec struct {
586589
SessionAffinity corev1.ServiceAffinity `json:"sessionAffinity"`
587590
// +optional
588591
SessionAffinityConfig *corev1.SessionAffinityConfig `json:"sessionAffinityConfig"`
592+
// +optional
593+
InternalTrafficPolicy *corev1.ServiceInternalTrafficPolicy `json:"internalTrafficPolicy,omitempty"`
594+
// The possible TrafficDistribution values should match what can be similarly
595+
// defined in a Service, see https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
596+
// +optional
597+
TrafficDistribution *string `json:"trafficDistribution,omitempty"`
589598
}
590599

591600
// ServicePort represents the port on which the service is exposed
@@ -1043,6 +1052,18 @@ Session affinity affects a service as a whole for a given consumer. The derived
10431052
service's session affinity will be decided according to the conflict resolution
10441053
policy.
10451054

1055+
#### Internal Traffic Policy
1056+
1057+
Internal traffic policy affects a service as a whole for a given consumer. The derived
1058+
service's internal traffic policy will be decided according to the conflict resolution
1059+
policy.
1060+
1061+
#### Traffic Distribution
1062+
1063+
Traffic distribution affects a service as a whole for a given consumer. The derived
1064+
service's traffic distribution will be decided according to the conflict resolution
1065+
policy.
1066+
10461067
#### Labels and Annotations
10471068

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

0 commit comments

Comments
 (0)