mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Add API for feature gate ServiceTopology
This commit is contained in:
parent
581d3e26c9
commit
cdaeabfb46
@ -214,6 +214,7 @@ API rule violation: list_type_missing,k8s.io/api/core/v1,ServiceAccountList,Item
|
|||||||
API rule violation: list_type_missing,k8s.io/api/core/v1,ServiceList,Items
|
API rule violation: list_type_missing,k8s.io/api/core/v1,ServiceList,Items
|
||||||
API rule violation: list_type_missing,k8s.io/api/core/v1,ServiceSpec,ExternalIPs
|
API rule violation: list_type_missing,k8s.io/api/core/v1,ServiceSpec,ExternalIPs
|
||||||
API rule violation: list_type_missing,k8s.io/api/core/v1,ServiceSpec,LoadBalancerSourceRanges
|
API rule violation: list_type_missing,k8s.io/api/core/v1,ServiceSpec,LoadBalancerSourceRanges
|
||||||
|
API rule violation: list_type_missing,k8s.io/api/core/v1,ServiceSpec,TopologyKeys
|
||||||
API rule violation: list_type_missing,k8s.io/api/core/v1,TopologySelectorLabelRequirement,Values
|
API rule violation: list_type_missing,k8s.io/api/core/v1,TopologySelectorLabelRequirement,Values
|
||||||
API rule violation: list_type_missing,k8s.io/api/core/v1,TopologySelectorTerm,MatchLabelExpressions
|
API rule violation: list_type_missing,k8s.io/api/core/v1,TopologySelectorTerm,MatchLabelExpressions
|
||||||
API rule violation: list_type_missing,k8s.io/api/events/v1beta1,EventList,Items
|
API rule violation: list_type_missing,k8s.io/api/events/v1beta1,EventList,Items
|
||||||
|
@ -3503,6 +3503,21 @@ type ServiceSpec struct {
|
|||||||
// cluster (e.g. IPv6 in IPv4 only cluster) is an error condition and will fail during clusterIP assignment.
|
// cluster (e.g. IPv6 in IPv4 only cluster) is an error condition and will fail during clusterIP assignment.
|
||||||
// +optional
|
// +optional
|
||||||
IPFamily *IPFamily
|
IPFamily *IPFamily
|
||||||
|
|
||||||
|
// topologyKeys is a preference-order list of topology keys which
|
||||||
|
// implementations of services should use to preferentially sort endpoints
|
||||||
|
// when accessing this Service. Topology keys must be valid label keys and
|
||||||
|
// at most 16 keys may be specified.
|
||||||
|
// If any ready backends exist for index [0], they should always be chosen;
|
||||||
|
// only if no backends exist for index [0] should backends for index [1] be considered.
|
||||||
|
// If this field is specified and all entries have no backends that match
|
||||||
|
// the topology of the client, the service has no backends for that client
|
||||||
|
// and connections should fail.
|
||||||
|
// The special value "" may be used to mean "any node". This catch-all
|
||||||
|
// value, if used, only makes sense as the last value in the list.
|
||||||
|
// If this is not specified or empty, no topology constraints will be applied.
|
||||||
|
// +optional
|
||||||
|
TopologyKeys []string
|
||||||
}
|
}
|
||||||
|
|
||||||
// ServicePort represents the port on which the service is exposed
|
// ServicePort represents the port on which the service is exposed
|
||||||
|
@ -538,6 +538,12 @@ const (
|
|||||||
//
|
//
|
||||||
// Enable all logic related to the PodDisruptionBudget API object in policy
|
// Enable all logic related to the PodDisruptionBudget API object in policy
|
||||||
PodDisruptionBudget featuregate.Feature = "PodDisruptionBudget"
|
PodDisruptionBudget featuregate.Feature = "PodDisruptionBudget"
|
||||||
|
|
||||||
|
// owner: @m1093782566
|
||||||
|
// alpha: v1.17
|
||||||
|
//
|
||||||
|
// Enables topology aware service routing
|
||||||
|
ServiceTopology featuregate.Feature = "ServiceTopology"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -623,6 +629,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
|
|||||||
StartupProbe: {Default: false, PreRelease: featuregate.Alpha},
|
StartupProbe: {Default: false, PreRelease: featuregate.Alpha},
|
||||||
AllowInsecureBackendProxy: {Default: true, PreRelease: featuregate.Beta},
|
AllowInsecureBackendProxy: {Default: true, PreRelease: featuregate.Beta},
|
||||||
PodDisruptionBudget: {Default: true, PreRelease: featuregate.Beta},
|
PodDisruptionBudget: {Default: true, PreRelease: featuregate.Beta},
|
||||||
|
ServiceTopology: {Default: false, PreRelease: featuregate.Alpha},
|
||||||
|
|
||||||
// inherited features from generic apiserver, relisted here to get a conflict if it is changed
|
// inherited features from generic apiserver, relisted here to get a conflict if it is changed
|
||||||
// unintentionally on either side:
|
// unintentionally on either side:
|
||||||
|
@ -3940,6 +3940,7 @@ type ServiceSpec struct {
|
|||||||
// of peer discovery.
|
// of peer discovery.
|
||||||
// +optional
|
// +optional
|
||||||
PublishNotReadyAddresses bool `json:"publishNotReadyAddresses,omitempty" protobuf:"varint,13,opt,name=publishNotReadyAddresses"`
|
PublishNotReadyAddresses bool `json:"publishNotReadyAddresses,omitempty" protobuf:"varint,13,opt,name=publishNotReadyAddresses"`
|
||||||
|
|
||||||
// sessionAffinityConfig contains the configurations of session affinity.
|
// sessionAffinityConfig contains the configurations of session affinity.
|
||||||
// +optional
|
// +optional
|
||||||
SessionAffinityConfig *SessionAffinityConfig `json:"sessionAffinityConfig,omitempty" protobuf:"bytes,14,opt,name=sessionAffinityConfig"`
|
SessionAffinityConfig *SessionAffinityConfig `json:"sessionAffinityConfig,omitempty" protobuf:"bytes,14,opt,name=sessionAffinityConfig"`
|
||||||
@ -3953,6 +3954,21 @@ type ServiceSpec struct {
|
|||||||
// cluster (e.g. IPv6 in IPv4 only cluster) is an error condition and will fail during clusterIP assignment.
|
// cluster (e.g. IPv6 in IPv4 only cluster) is an error condition and will fail during clusterIP assignment.
|
||||||
// +optional
|
// +optional
|
||||||
IPFamily *IPFamily `json:"ipFamily,omitempty" protobuf:"bytes,15,opt,name=ipFamily,Configcasttype=IPFamily"`
|
IPFamily *IPFamily `json:"ipFamily,omitempty" protobuf:"bytes,15,opt,name=ipFamily,Configcasttype=IPFamily"`
|
||||||
|
|
||||||
|
// topologyKeys is a preference-order list of topology keys which
|
||||||
|
// implementations of services should use to preferentially sort endpoints
|
||||||
|
// when accessing this Service. Topology keys must be valid label keys and
|
||||||
|
// at most 16 keys may be specified.
|
||||||
|
// If any ready backends exist for index [0], they should always be chosen;
|
||||||
|
// only if no backends exist for index [0] should backends for index [1] be considered.
|
||||||
|
// If this field is specified and all entries have no backends that match
|
||||||
|
// the topology of the client, the service has no backends for that client
|
||||||
|
// and connections should fail.
|
||||||
|
// The special value "" may be used to mean "any node". This catch-all
|
||||||
|
// value, if used, only makes sense as the last value in the list.
|
||||||
|
// If this is not specified or empty, no topology constraints will be applied.
|
||||||
|
// +optional
|
||||||
|
TopologyKeys []string `json:"topologyKeys,omitempty" protobuf:"bytes,15,opt,name=topologyKeys"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// ServicePort contains information on service's port.
|
// ServicePort contains information on service's port.
|
||||||
|
Loading…
Reference in New Issue
Block a user