From 73b31381444a755583faa67efd32cafb3a39ef80 Mon Sep 17 00:00:00 2001
From: jukie <10012479+Jukie@users.noreply.github.com>
Date: Thu, 22 May 2025 00:50:02 -0600
Subject: [PATCH 01/11] api: add requestdistribution config
Signed-off-by: jukie <10012479+Jukie@users.noreply.github.com>
---
api/v1alpha1/loadbalancer_types.go | 78 ++
api/v1alpha1/zz_generated.deepcopy.go | 131 +++
....envoyproxy.io_backendtrafficpolicies.yaml | 81 ++
....envoyproxy.io_envoyextensionpolicies.yaml | 86 ++
.../gateway.envoyproxy.io_envoyproxies.yaml | 393 ++++++++
...ateway.envoyproxy.io_securitypolicies.yaml | 352 +++++++
....envoyproxy.io_backendtrafficpolicies.yaml | 81 ++
....envoyproxy.io_envoyextensionpolicies.yaml | 86 ++
.../gateway.envoyproxy.io_envoyproxies.yaml | 393 ++++++++
...ateway.envoyproxy.io_securitypolicies.yaml | 352 +++++++
site/content/en/latest/api/extension_types.md | 79 ++
test/helm/gateway-crds-helm/all.out.yaml | 912 ++++++++++++++++++
.../envoy-gateway-crds.out.yaml | 912 ++++++++++++++++++
13 files changed, 3936 insertions(+)
diff --git a/api/v1alpha1/loadbalancer_types.go b/api/v1alpha1/loadbalancer_types.go
index d4d0925d61..4de97dc24e 100644
--- a/api/v1alpha1/loadbalancer_types.go
+++ b/api/v1alpha1/loadbalancer_types.go
@@ -34,6 +34,12 @@ type LoadBalancer struct {
//
// +optional
SlowStart *SlowStart `json:"slowStart,omitempty"`
+
+ // RequestDistribution defines the configuration related to the distribution of requests between localities.
+ //
+ // +optional
+ // +notImplementedHide
+ RequestDistribution *RequestDistribution `json:"requestDistribution,omitempty"`
}
// LoadBalancerType specifies the types of LoadBalancer.
@@ -135,3 +141,75 @@ type SlowStart struct {
Window *metav1.Duration `json:"window"`
// TODO: Add support for non-linear traffic increases based on user usage.
}
+
+// RequestDistribution defines the configuration related to the distribution of requests between localities.
+// Exactly one of PreferLocalZone or WeightedLocality must be specified.
+// +kubebuilder:validation:XValidation:rule="self.preferLocalZone == null || self.weightedLocality == null",message="only one of preferLocalZone or weightedLocality may be specified"
+// +kubebuilder:validation:XValidation:rule="self.preferLocalZone != null || self.weightedLocality != null",message="one of preferLocalZone or weightedLocality must be specified"
+type RequestDistribution struct {
+ // PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
+ // +optional
+ // +notImplementedHide
+ PreferLocalZone *PreferLocalZone `json:"preferLocalZone,omitempty"`
+
+ // WeightedLocality configures explicit weights for each locality.
+ // +optional
+ // +notImplementedHide
+ WeightedLocality *WeightedLocality `json:"weightedLocality,omitempty"`
+}
+
+// PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone
+type PreferLocalZone struct {
+ // ForceLocalZone defines override configuration for local zone routing.
+ // +optional
+ // +notImplementedHide
+ ForceLocalZone *ForceLocalZone `json:"forceLocalZone,omitempty"`
+
+ // MinClusterSize is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ // +kubebuilder:validation:Minimum=1
+ // +optional
+ // +notImplementedHide
+ MinClusterSize *uint64 `json:"minClusterSize,omitempty"`
+}
+
+// ForceLocalZone defines override configuration for local zone routing.
+type ForceLocalZone struct {
+ // Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts available.
+ // +optional
+ // +notImplementedHide
+ Enabled *bool `json:"enabled"`
+
+ // MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone override.
+ // +kubebuilder:validation:Minimum=1
+ // +optional
+ // +notImplementedHide
+ MinZoneSize *uint64 `json:"minZoneSize,omitempty"`
+}
+
+// WeightedLocality defines explicit traffic weights per locality (zone).
+type WeightedLocality struct {
+ // Weights specifies a list of localities and their corresponding traffic weights.
+ // +kubebuilder:validation:MinItems=1
+ // +notImplementedHide
+ Weights []LocalityWeights `json:"weights"`
+}
+
+// LocalityWeights associates a locality with a traffic weight.
+type LocalityWeights struct {
+ // Locality identifies the zone for which the weight applies.
+ // +notImplementedHide
+ Locality Locality `json:"locality"`
+
+ // Weight is the relative weight for traffic distribution to the specified locality.
+ // +kubebuilder:validation:Minimum=0
+ // +notImplementedHide
+ Weight int32 `json:"weight"`
+}
+
+// Locality specifies a single zone identifier.
+type Locality struct {
+ // Zone is the name of the locality zone (e.g., availability zone or rack).
+ // +kubebuilder:validation:Pattern="^[A-Za-z0-9_-]+$"
+ // +notImplementedHide
+ Zone string `json:"zone"`
+}
diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go
index 92cbe6bb34..edc9e9bc89 100644
--- a/api/v1alpha1/zz_generated.deepcopy.go
+++ b/api/v1alpha1/zz_generated.deepcopy.go
@@ -2792,6 +2792,31 @@ func (in *FilterPosition) DeepCopy() *FilterPosition {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ForceLocalZone) DeepCopyInto(out *ForceLocalZone) {
+ *out = *in
+ if in.Enabled != nil {
+ in, out := &in.Enabled, &out.Enabled
+ *out = new(bool)
+ **out = **in
+ }
+ if in.MinZoneSize != nil {
+ in, out := &in.MinZoneSize, &out.MinZoneSize
+ *out = new(uint64)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ForceLocalZone.
+func (in *ForceLocalZone) DeepCopy() *ForceLocalZone {
+ if in == nil {
+ return nil
+ }
+ out := new(ForceLocalZone)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GRPCActiveHealthChecker) DeepCopyInto(out *GRPCActiveHealthChecker) {
*out = *in
@@ -4275,6 +4300,11 @@ func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer) {
*out = new(SlowStart)
(*in).DeepCopyInto(*out)
}
+ if in.RequestDistribution != nil {
+ in, out := &in.RequestDistribution, &out.RequestDistribution
+ *out = new(RequestDistribution)
+ (*in).DeepCopyInto(*out)
+ }
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancer.
@@ -4339,6 +4369,37 @@ func (in *LocalRateLimit) DeepCopy() *LocalRateLimit {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Locality) DeepCopyInto(out *Locality) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Locality.
+func (in *Locality) DeepCopy() *Locality {
+ if in == nil {
+ return nil
+ }
+ out := new(Locality)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *LocalityWeights) DeepCopyInto(out *LocalityWeights) {
+ *out = *in
+ out.Locality = in.Locality
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalityWeights.
+func (in *LocalityWeights) DeepCopy() *LocalityWeights {
+ if in == nil {
+ return nil
+ }
+ out := new(LocalityWeights)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Lua) DeepCopyInto(out *Lua) {
*out = *in
@@ -4732,6 +4793,31 @@ func (in *PolicyTargetReferences) DeepCopy() *PolicyTargetReferences {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PreferLocalZone) DeepCopyInto(out *PreferLocalZone) {
+ *out = *in
+ if in.ForceLocalZone != nil {
+ in, out := &in.ForceLocalZone, &out.ForceLocalZone
+ *out = new(ForceLocalZone)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.MinClusterSize != nil {
+ in, out := &in.MinClusterSize, &out.MinClusterSize
+ *out = new(uint64)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreferLocalZone.
+func (in *PreferLocalZone) DeepCopy() *PreferLocalZone {
+ if in == nil {
+ return nil
+ }
+ out := new(PreferLocalZone)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Principal) DeepCopyInto(out *Principal) {
*out = *in
@@ -5570,6 +5656,31 @@ func (in *RequestBuffer) DeepCopy() *RequestBuffer {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RequestDistribution) DeepCopyInto(out *RequestDistribution) {
+ *out = *in
+ if in.PreferLocalZone != nil {
+ in, out := &in.PreferLocalZone, &out.PreferLocalZone
+ *out = new(PreferLocalZone)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.WeightedLocality != nil {
+ in, out := &in.WeightedLocality, &out.WeightedLocality
+ *out = new(WeightedLocality)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestDistribution.
+func (in *RequestDistribution) DeepCopy() *RequestDistribution {
+ if in == nil {
+ return nil
+ }
+ out := new(RequestDistribution)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RequestHeaderCustomTag) DeepCopyInto(out *RequestHeaderCustomTag) {
*out = *in
@@ -6371,6 +6482,26 @@ func (in *WasmEnv) DeepCopy() *WasmEnv {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *WeightedLocality) DeepCopyInto(out *WeightedLocality) {
+ *out = *in
+ if in.Weights != nil {
+ in, out := &in.Weights, &out.Weights
+ *out = make([]LocalityWeights, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WeightedLocality.
+func (in *WeightedLocality) DeepCopy() *WeightedLocality {
+ if in == nil {
+ return nil
+ }
+ out := new(WeightedLocality)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *XDSTranslatorHooks) DeepCopyInto(out *XDSTranslatorHooks) {
*out = *in
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index 4aeb42b0aa..4357e0d699 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -637,6 +637,87 @@ spec:
- message: If consistent hash type is cookie, the cookie field
must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie) : !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration related
+ to the distribution of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware routing
+ to prefer sending traffic to the local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override configuration
+ for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route all requests
+ to the local zone if there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum number of
+ upstream hosts in the local zone required to honor
+ the forceLocalZone override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum number of total
+ upstream hosts across all zones required to enable zone-aware
+ routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit weights
+ for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities and
+ their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates a locality with
+ a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the zone for which
+ the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of the locality
+ zone (e.g., availability zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative weight for traffic
+ distribution to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality may
+ be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality must be
+ specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index 7e8fa5d33c..b00b25fa9e 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -731,6 +731,92 @@ spec:
field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum number
+ of total upstream hosts across all zones required
+ to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates a
+ locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the zone
+ for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of the
+ locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative weight
+ for traffic distribution to the specified
+ locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
index 8ec65f47c5..9a55265d20 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11262,6 +11262,110 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines
+ the configuration related to the
+ distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone
+ defines override configuration
+ for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes
+ Envoy to route all requests
+ to the local zone if
+ there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize
+ is the minimum number
+ of upstream hosts in
+ the local zone required
+ to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize
+ is the minimum number of
+ total upstream hosts across
+ all zones required to enable
+ zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality
+ configures explicit weights
+ for each locality.
+ properties:
+ weights:
+ description: Weights specifies
+ a list of localities and
+ their corresponding traffic
+ weights.
+ items:
+ description: LocalityWeights
+ associates a locality
+ with a traffic weight.
+ properties:
+ locality:
+ description: Locality
+ identifies the zone
+ for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone
+ is the name of
+ the locality zone
+ (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight
+ is the relative weight
+ for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone
+ or weightedLocality may be specified
+ rule: self.preferLocalZone == null
+ || self.weightedLocality == null
+ - message: one of preferLocalZone
+ or weightedLocality must be specified
+ rule: self.preferLocalZone != null
+ || self.weightedLocality != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -12281,6 +12385,110 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines
+ the configuration related to the
+ distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone
+ defines override configuration
+ for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes
+ Envoy to route all requests
+ to the local zone if
+ there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize
+ is the minimum number
+ of upstream hosts in
+ the local zone required
+ to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize
+ is the minimum number of
+ total upstream hosts across
+ all zones required to enable
+ zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality
+ configures explicit weights
+ for each locality.
+ properties:
+ weights:
+ description: Weights specifies
+ a list of localities and
+ their corresponding traffic
+ weights.
+ items:
+ description: LocalityWeights
+ associates a locality
+ with a traffic weight.
+ properties:
+ locality:
+ description: Locality
+ identifies the zone
+ for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone
+ is the name of
+ the locality zone
+ (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight
+ is the relative weight
+ for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone
+ or weightedLocality may be specified
+ rule: self.preferLocalZone == null
+ || self.weightedLocality == null
+ - message: one of preferLocalZone
+ or weightedLocality must be specified
+ rule: self.preferLocalZone != null
+ || self.weightedLocality != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -13370,6 +13578,101 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines
+ the configuration related to the distribution
+ of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines
+ override configuration for local
+ zone routing.
+ properties:
+ enabled:
+ description: Enabled causes
+ Envoy to route all requests
+ to the local zone if there
+ are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is
+ the minimum number of upstream
+ hosts in the local zone required
+ to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the
+ minimum number of total upstream
+ hosts across all zones required
+ to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures
+ explicit weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a
+ list of localities and their corresponding
+ traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies
+ the zone for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone is the
+ name of the locality
+ zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the
+ relative weight for traffic
+ distribution to the specified
+ locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or
+ weightedLocality may be specified
+ rule: self.preferLocalZone == null ||
+ self.weightedLocality == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null ||
+ self.weightedLocality != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -14393,6 +14696,96 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the
+ local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy
+ to route all requests to the local
+ zone if there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the
+ local zone required to honor the
+ forceLocalZone override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across
+ all zones required to enable zone-aware
+ routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list
+ of localities and their corresponding
+ traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies
+ the zone for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone is the name
+ of the locality zone (e.g.,
+ availability zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
index 0160988061..249ce0cfc8 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1230,6 +1230,93 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across all
+ zones required to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the
+ zone for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of
+ the locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution to
+ the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -2147,6 +2234,93 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across all
+ zones required to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the
+ zone for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of
+ the locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution to
+ the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -3270,6 +3444,97 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the
+ configuration related to the distribution
+ of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending traffic
+ to the local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines
+ override configuration for local zone
+ routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy
+ to route all requests to the local
+ zone if there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the
+ minimum number of upstream hosts
+ in the local zone required to
+ honor the forceLocalZone override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across
+ all zones required to enable zone-aware
+ routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures
+ explicit weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list
+ of localities and their corresponding
+ traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies
+ the zone for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone is the name
+ of the locality zone (e.g.,
+ availability zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -4366,6 +4631,93 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across all
+ zones required to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the
+ zone for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of
+ the locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution to
+ the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index 2f79f196d2..f643b3d591 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -636,6 +636,87 @@ spec:
- message: If consistent hash type is cookie, the cookie field
must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie) : !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration related
+ to the distribution of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware routing
+ to prefer sending traffic to the local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override configuration
+ for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route all requests
+ to the local zone if there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum number of
+ upstream hosts in the local zone required to honor
+ the forceLocalZone override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum number of total
+ upstream hosts across all zones required to enable zone-aware
+ routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit weights
+ for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities and
+ their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates a locality with
+ a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the zone for which
+ the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of the locality
+ zone (e.g., availability zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative weight for traffic
+ distribution to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality may
+ be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality must be
+ specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index d49a6046d2..09a90fa1c3 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -730,6 +730,92 @@ spec:
field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum number
+ of total upstream hosts across all zones required
+ to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates a
+ locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the zone
+ for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of the
+ locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative weight
+ for traffic distribution to the specified
+ locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
index 0a5d48d5bd..589d6a9345 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11261,6 +11261,110 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines
+ the configuration related to the
+ distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone
+ defines override configuration
+ for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes
+ Envoy to route all requests
+ to the local zone if
+ there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize
+ is the minimum number
+ of upstream hosts in
+ the local zone required
+ to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize
+ is the minimum number of
+ total upstream hosts across
+ all zones required to enable
+ zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality
+ configures explicit weights
+ for each locality.
+ properties:
+ weights:
+ description: Weights specifies
+ a list of localities and
+ their corresponding traffic
+ weights.
+ items:
+ description: LocalityWeights
+ associates a locality
+ with a traffic weight.
+ properties:
+ locality:
+ description: Locality
+ identifies the zone
+ for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone
+ is the name of
+ the locality zone
+ (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight
+ is the relative weight
+ for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone
+ or weightedLocality may be specified
+ rule: self.preferLocalZone == null
+ || self.weightedLocality == null
+ - message: one of preferLocalZone
+ or weightedLocality must be specified
+ rule: self.preferLocalZone != null
+ || self.weightedLocality != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -12280,6 +12384,110 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines
+ the configuration related to the
+ distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone
+ defines override configuration
+ for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes
+ Envoy to route all requests
+ to the local zone if
+ there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize
+ is the minimum number
+ of upstream hosts in
+ the local zone required
+ to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize
+ is the minimum number of
+ total upstream hosts across
+ all zones required to enable
+ zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality
+ configures explicit weights
+ for each locality.
+ properties:
+ weights:
+ description: Weights specifies
+ a list of localities and
+ their corresponding traffic
+ weights.
+ items:
+ description: LocalityWeights
+ associates a locality
+ with a traffic weight.
+ properties:
+ locality:
+ description: Locality
+ identifies the zone
+ for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone
+ is the name of
+ the locality zone
+ (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight
+ is the relative weight
+ for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone
+ or weightedLocality may be specified
+ rule: self.preferLocalZone == null
+ || self.weightedLocality == null
+ - message: one of preferLocalZone
+ or weightedLocality must be specified
+ rule: self.preferLocalZone != null
+ || self.weightedLocality != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -13369,6 +13577,101 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines
+ the configuration related to the distribution
+ of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines
+ override configuration for local
+ zone routing.
+ properties:
+ enabled:
+ description: Enabled causes
+ Envoy to route all requests
+ to the local zone if there
+ are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is
+ the minimum number of upstream
+ hosts in the local zone required
+ to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the
+ minimum number of total upstream
+ hosts across all zones required
+ to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures
+ explicit weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a
+ list of localities and their corresponding
+ traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies
+ the zone for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone is the
+ name of the locality
+ zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the
+ relative weight for traffic
+ distribution to the specified
+ locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or
+ weightedLocality may be specified
+ rule: self.preferLocalZone == null ||
+ self.weightedLocality == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null ||
+ self.weightedLocality != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -14392,6 +14695,96 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the
+ local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy
+ to route all requests to the local
+ zone if there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the
+ local zone required to honor the
+ forceLocalZone override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across
+ all zones required to enable zone-aware
+ routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list
+ of localities and their corresponding
+ traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies
+ the zone for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone is the name
+ of the locality zone (e.g.,
+ availability zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
index a7be8cd8d5..b6124aacb3 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1229,6 +1229,93 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across all
+ zones required to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the
+ zone for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of
+ the locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution to
+ the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -2146,6 +2233,93 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across all
+ zones required to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the
+ zone for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of
+ the locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution to
+ the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -3269,6 +3443,97 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the
+ configuration related to the distribution
+ of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending traffic
+ to the local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines
+ override configuration for local zone
+ routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy
+ to route all requests to the local
+ zone if there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the
+ minimum number of upstream hosts
+ in the local zone required to
+ honor the forceLocalZone override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across
+ all zones required to enable zone-aware
+ routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures
+ explicit weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list
+ of localities and their corresponding
+ traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies
+ the zone for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone is the name
+ of the locality zone (e.g.,
+ availability zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -4365,6 +4630,93 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across all
+ zones required to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the
+ zone for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of
+ the locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution to
+ the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/site/content/en/latest/api/extension_types.md b/site/content/en/latest/api/extension_types.md
index b5170e1e90..c57c5a99a1 100644
--- a/site/content/en/latest/api/extension_types.md
+++ b/site/content/en/latest/api/extension_types.md
@@ -1931,6 +1931,19 @@ _Appears in:_
| `after` | _[EnvoyFilter](#envoyfilter)_ | true | | After defines the filter that should come after the filter.
Only one of Before or After must be set. |
+#### ForceLocalZone
+
+
+
+ForceLocalZone defines override configuration for local zone routing.
+
+_Appears in:_
+- [PreferLocalZone](#preferlocalzone)
+
+| Field | Type | Required | Default | Description |
+| --- | --- | --- | --- | --- |
+
+
#### GRPCActiveHealthChecker
@@ -3040,6 +3053,32 @@ _Appears in:_
| `rules` | _[RateLimitRule](#ratelimitrule) array_ | false | | Rules are a list of RateLimit selectors and limits. If a request matches
multiple rules, the strictest limit is applied. For example, if a request
matches two rules, one with 10rps and one with 20rps, the final limit will
be based on the rule with 10rps. |
+#### Locality
+
+
+
+Locality specifies a single zone identifier.
+
+_Appears in:_
+- [LocalityWeights](#localityweights)
+
+| Field | Type | Required | Default | Description |
+| --- | --- | --- | --- | --- |
+
+
+#### LocalityWeights
+
+
+
+LocalityWeights associates a locality with a traffic weight.
+
+_Appears in:_
+- [WeightedLocality](#weightedlocality)
+
+| Field | Type | Required | Default | Description |
+| --- | --- | --- | --- | --- |
+
+
#### LogLevel
_Underlying type:_ _string_
@@ -3371,6 +3410,19 @@ _Appears in:_
| `targetSelectors` | _[TargetSelector](#targetselector) array_ | true | | TargetSelectors allow targeting resources for this policy based on labels |
+#### PreferLocalZone
+
+
+
+PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone
+
+_Appears in:_
+- [RequestDistribution](#requestdistribution)
+
+| Field | Type | Required | Default | Description |
+| --- | --- | --- | --- | --- |
+
+
#### Principal
@@ -4103,6 +4155,20 @@ _Appears in:_
| --- | --- | --- | --- | --- |
+#### RequestDistribution
+
+
+
+RequestDistribution defines the configuration related to the distribution of requests between localities.
+Exactly one of PreferLocalZone or WeightedLocality must be specified.
+
+_Appears in:_
+- [LoadBalancer](#loadbalancer)
+
+| Field | Type | Required | Default | Description |
+| --- | --- | --- | --- | --- |
+
+
#### RequestHeaderCustomTag
@@ -4841,6 +4907,19 @@ _Appears in:_
| `hostKeys` | _string array_ | false | | HostKeys is a list of keys for environment variables from the host envoy process
that should be passed into the Wasm VM. This is useful for passing secrets to to Wasm extensions. |
+#### WeightedLocality
+
+
+
+WeightedLocality defines explicit traffic weights per locality (zone).
+
+_Appears in:_
+- [RequestDistribution](#requestdistribution)
+
+| Field | Type | Required | Default | Description |
+| --- | --- | --- | --- | --- |
+
+
#### WithUnderscoresAction
_Underlying type:_ _string_
diff --git a/test/helm/gateway-crds-helm/all.out.yaml b/test/helm/gateway-crds-helm/all.out.yaml
index 74682a77bf..f79c32b325 100644
--- a/test/helm/gateway-crds-helm/all.out.yaml
+++ b/test/helm/gateway-crds-helm/all.out.yaml
@@ -18259,6 +18259,87 @@ spec:
- message: If consistent hash type is cookie, the cookie field
must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie) : !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration related
+ to the distribution of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware routing
+ to prefer sending traffic to the local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override configuration
+ for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route all requests
+ to the local zone if there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum number of
+ upstream hosts in the local zone required to honor
+ the forceLocalZone override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum number of total
+ upstream hosts across all zones required to enable zone-aware
+ routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit weights
+ for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities and
+ their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates a locality with
+ a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the zone for which
+ the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of the locality
+ zone (e.g., availability zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative weight for traffic
+ distribution to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality may
+ be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality must be
+ specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -21734,6 +21815,92 @@ spec:
field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum number
+ of total upstream hosts across all zones required
+ to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates a
+ locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the zone
+ for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of the
+ locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative weight
+ for traffic distribution to the specified
+ locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -34645,6 +34812,110 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines
+ the configuration related to the
+ distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone
+ defines override configuration
+ for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes
+ Envoy to route all requests
+ to the local zone if
+ there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize
+ is the minimum number
+ of upstream hosts in
+ the local zone required
+ to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize
+ is the minimum number of
+ total upstream hosts across
+ all zones required to enable
+ zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality
+ configures explicit weights
+ for each locality.
+ properties:
+ weights:
+ description: Weights specifies
+ a list of localities and
+ their corresponding traffic
+ weights.
+ items:
+ description: LocalityWeights
+ associates a locality
+ with a traffic weight.
+ properties:
+ locality:
+ description: Locality
+ identifies the zone
+ for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone
+ is the name of
+ the locality zone
+ (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight
+ is the relative weight
+ for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone
+ or weightedLocality may be specified
+ rule: self.preferLocalZone == null
+ || self.weightedLocality == null
+ - message: one of preferLocalZone
+ or weightedLocality must be specified
+ rule: self.preferLocalZone != null
+ || self.weightedLocality != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -35664,6 +35935,110 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines
+ the configuration related to the
+ distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone
+ defines override configuration
+ for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes
+ Envoy to route all requests
+ to the local zone if
+ there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize
+ is the minimum number
+ of upstream hosts in
+ the local zone required
+ to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize
+ is the minimum number of
+ total upstream hosts across
+ all zones required to enable
+ zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality
+ configures explicit weights
+ for each locality.
+ properties:
+ weights:
+ description: Weights specifies
+ a list of localities and
+ their corresponding traffic
+ weights.
+ items:
+ description: LocalityWeights
+ associates a locality
+ with a traffic weight.
+ properties:
+ locality:
+ description: Locality
+ identifies the zone
+ for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone
+ is the name of
+ the locality zone
+ (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight
+ is the relative weight
+ for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone
+ or weightedLocality may be specified
+ rule: self.preferLocalZone == null
+ || self.weightedLocality == null
+ - message: one of preferLocalZone
+ or weightedLocality must be specified
+ rule: self.preferLocalZone != null
+ || self.weightedLocality != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -36753,6 +37128,101 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines
+ the configuration related to the distribution
+ of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines
+ override configuration for local
+ zone routing.
+ properties:
+ enabled:
+ description: Enabled causes
+ Envoy to route all requests
+ to the local zone if there
+ are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is
+ the minimum number of upstream
+ hosts in the local zone required
+ to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the
+ minimum number of total upstream
+ hosts across all zones required
+ to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures
+ explicit weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a
+ list of localities and their corresponding
+ traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies
+ the zone for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone is the
+ name of the locality
+ zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the
+ relative weight for traffic
+ distribution to the specified
+ locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or
+ weightedLocality may be specified
+ rule: self.preferLocalZone == null ||
+ self.weightedLocality == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null ||
+ self.weightedLocality != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -37776,6 +38246,96 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the
+ local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy
+ to route all requests to the local
+ zone if there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the
+ local zone required to honor the
+ forceLocalZone override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across
+ all zones required to enable zone-aware
+ routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list
+ of localities and their corresponding
+ traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies
+ the zone for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone is the name
+ of the locality zone (e.g.,
+ availability zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -39612,6 +40172,93 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across all
+ zones required to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the
+ zone for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of
+ the locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution to
+ the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -40529,6 +41176,93 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across all
+ zones required to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the
+ zone for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of
+ the locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution to
+ the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -41652,6 +42386,97 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the
+ configuration related to the distribution
+ of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending traffic
+ to the local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines
+ override configuration for local zone
+ routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy
+ to route all requests to the local
+ zone if there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the
+ minimum number of upstream hosts
+ in the local zone required to
+ honor the forceLocalZone override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across
+ all zones required to enable zone-aware
+ routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures
+ explicit weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list
+ of localities and their corresponding
+ traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies
+ the zone for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone is the name
+ of the locality zone (e.g.,
+ availability zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -42748,6 +43573,93 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across all
+ zones required to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the
+ zone for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of
+ the locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution to
+ the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
index 894e2640e1..944407dc93 100644
--- a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
+++ b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
@@ -947,6 +947,87 @@ spec:
- message: If consistent hash type is cookie, the cookie field
must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie) : !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration related
+ to the distribution of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware routing
+ to prefer sending traffic to the local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override configuration
+ for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route all requests
+ to the local zone if there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum number of
+ upstream hosts in the local zone required to honor
+ the forceLocalZone override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum number of total
+ upstream hosts across all zones required to enable zone-aware
+ routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit weights
+ for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities and
+ their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates a locality with
+ a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the zone for which
+ the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of the locality
+ zone (e.g., availability zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative weight for traffic
+ distribution to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality may
+ be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality must be
+ specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -4422,6 +4503,92 @@ spec:
field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum number
+ of total upstream hosts across all zones required
+ to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates a
+ locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the zone
+ for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of the
+ locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative weight
+ for traffic distribution to the specified
+ locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -17333,6 +17500,110 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines
+ the configuration related to the
+ distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone
+ defines override configuration
+ for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes
+ Envoy to route all requests
+ to the local zone if
+ there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize
+ is the minimum number
+ of upstream hosts in
+ the local zone required
+ to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize
+ is the minimum number of
+ total upstream hosts across
+ all zones required to enable
+ zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality
+ configures explicit weights
+ for each locality.
+ properties:
+ weights:
+ description: Weights specifies
+ a list of localities and
+ their corresponding traffic
+ weights.
+ items:
+ description: LocalityWeights
+ associates a locality
+ with a traffic weight.
+ properties:
+ locality:
+ description: Locality
+ identifies the zone
+ for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone
+ is the name of
+ the locality zone
+ (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight
+ is the relative weight
+ for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone
+ or weightedLocality may be specified
+ rule: self.preferLocalZone == null
+ || self.weightedLocality == null
+ - message: one of preferLocalZone
+ or weightedLocality must be specified
+ rule: self.preferLocalZone != null
+ || self.weightedLocality != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -18352,6 +18623,110 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines
+ the configuration related to the
+ distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone
+ defines override configuration
+ for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes
+ Envoy to route all requests
+ to the local zone if
+ there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize
+ is the minimum number
+ of upstream hosts in
+ the local zone required
+ to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize
+ is the minimum number of
+ total upstream hosts across
+ all zones required to enable
+ zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality
+ configures explicit weights
+ for each locality.
+ properties:
+ weights:
+ description: Weights specifies
+ a list of localities and
+ their corresponding traffic
+ weights.
+ items:
+ description: LocalityWeights
+ associates a locality
+ with a traffic weight.
+ properties:
+ locality:
+ description: Locality
+ identifies the zone
+ for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone
+ is the name of
+ the locality zone
+ (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight
+ is the relative weight
+ for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone
+ or weightedLocality may be specified
+ rule: self.preferLocalZone == null
+ || self.weightedLocality == null
+ - message: one of preferLocalZone
+ or weightedLocality must be specified
+ rule: self.preferLocalZone != null
+ || self.weightedLocality != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -19441,6 +19816,101 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines
+ the configuration related to the distribution
+ of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines
+ override configuration for local
+ zone routing.
+ properties:
+ enabled:
+ description: Enabled causes
+ Envoy to route all requests
+ to the local zone if there
+ are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is
+ the minimum number of upstream
+ hosts in the local zone required
+ to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the
+ minimum number of total upstream
+ hosts across all zones required
+ to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures
+ explicit weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a
+ list of localities and their corresponding
+ traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies
+ the zone for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone is the
+ name of the locality
+ zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the
+ relative weight for traffic
+ distribution to the specified
+ locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or
+ weightedLocality may be specified
+ rule: self.preferLocalZone == null ||
+ self.weightedLocality == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null ||
+ self.weightedLocality != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -20464,6 +20934,96 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the
+ local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy
+ to route all requests to the local
+ zone if there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the
+ local zone required to honor the
+ forceLocalZone override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across
+ all zones required to enable zone-aware
+ routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list
+ of localities and their corresponding
+ traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies
+ the zone for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone is the name
+ of the locality zone (e.g.,
+ availability zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -22300,6 +22860,93 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across all
+ zones required to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the
+ zone for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of
+ the locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution to
+ the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -23217,6 +23864,93 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across all
+ zones required to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the
+ zone for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of
+ the locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution to
+ the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -24340,6 +25074,97 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the
+ configuration related to the distribution
+ of requests between localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending traffic
+ to the local locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines
+ override configuration for local zone
+ routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy
+ to route all requests to the local
+ zone if there are at least "minZoneSize"
+ healthy hosts available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the
+ minimum number of upstream hosts
+ in the local zone required to
+ honor the forceLocalZone override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across
+ all zones required to enable zone-aware
+ routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures
+ explicit weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list
+ of localities and their corresponding
+ traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies
+ the zone for which the weight
+ applies.
+ properties:
+ zone:
+ description: Zone is the name
+ of the locality zone (e.g.,
+ availability zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution
+ to the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -25436,6 +26261,93 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
+ requestDistribution:
+ description: RequestDistribution defines the configuration
+ related to the distribution of requests between
+ localities.
+ properties:
+ preferLocalZone:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocalZone:
+ description: ForceLocalZone defines override
+ configuration for local zone routing.
+ properties:
+ enabled:
+ description: Enabled causes Envoy to route
+ all requests to the local zone if there
+ are at least "minZoneSize" healthy hosts
+ available.
+ type: boolean
+ minZoneSize:
+ description: MinZoneSize is the minimum
+ number of upstream hosts in the local
+ zone required to honor the forceLocalZone
+ override.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ minClusterSize:
+ description: MinClusterSize is the minimum
+ number of total upstream hosts across all
+ zones required to enable zone-aware routing.
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ weightedLocality:
+ description: WeightedLocality configures explicit
+ weights for each locality.
+ properties:
+ weights:
+ description: Weights specifies a list of localities
+ and their corresponding traffic weights.
+ items:
+ description: LocalityWeights associates
+ a locality with a traffic weight.
+ properties:
+ locality:
+ description: Locality identifies the
+ zone for which the weight applies.
+ properties:
+ zone:
+ description: Zone is the name of
+ the locality zone (e.g., availability
+ zone or rack).
+ pattern: ^[A-Za-z0-9_-]+$
+ type: string
+ required:
+ - zone
+ type: object
+ weight:
+ description: Weight is the relative
+ weight for traffic distribution to
+ the specified locality.
+ format: int32
+ minimum: 0
+ type: integer
+ required:
+ - locality
+ - weight
+ type: object
+ minItems: 1
+ type: array
+ required:
+ - weights
+ type: object
+ type: object
+ x-kubernetes-validations:
+ - message: only one of preferLocalZone or weightedLocality
+ may be specified
+ rule: self.preferLocalZone == null || self.weightedLocality
+ == null
+ - message: one of preferLocalZone or weightedLocality
+ must be specified
+ rule: self.preferLocalZone != null || self.weightedLocality
+ != null
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
From 4658c0f028a0487837f1be70479fa167da46e4dd Mon Sep 17 00:00:00 2001
From: jukie <10012479+Jukie@users.noreply.github.com>
Date: Thu, 22 May 2025 08:22:57 -0600
Subject: [PATCH 02/11] Adjustments
Signed-off-by: jukie <10012479+Jukie@users.noreply.github.com>
---
api/v1alpha1/loadbalancer_types.go | 45 +++++++++++++++++++-----------
1 file changed, 28 insertions(+), 17 deletions(-)
diff --git a/api/v1alpha1/loadbalancer_types.go b/api/v1alpha1/loadbalancer_types.go
index 4de97dc24e..3fd2b67e05 100644
--- a/api/v1alpha1/loadbalancer_types.go
+++ b/api/v1alpha1/loadbalancer_types.go
@@ -144,72 +144,83 @@ type SlowStart struct {
// RequestDistribution defines the configuration related to the distribution of requests between localities.
// Exactly one of PreferLocalZone or WeightedLocality must be specified.
-// +kubebuilder:validation:XValidation:rule="self.preferLocalZone == null || self.weightedLocality == null",message="only one of preferLocalZone or weightedLocality may be specified"
-// +kubebuilder:validation:XValidation:rule="self.preferLocalZone != null || self.weightedLocality != null",message="one of preferLocalZone or weightedLocality must be specified"
+//
+// +kubebuilder:validation:XValidation:rule="!(has(self.preferLocalZone) && has(self.weightedLocality))",message="only one of preferLocalZone or weightedLocality may be specified."
+// +kubebuilder:validation:XValidation:rule="!(!has(self.preferLocalZone) && !has(self.weightedLocality)",message="one of preferLocalZone or weightedLocality must be specified."
type RequestDistribution struct {
// PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
+ //
// +optional
// +notImplementedHide
PreferLocalZone *PreferLocalZone `json:"preferLocalZone,omitempty"`
// WeightedLocality configures explicit weights for each locality.
+ //
// +optional
// +notImplementedHide
WeightedLocality *WeightedLocality `json:"weightedLocality,omitempty"`
}
-// PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone
+// PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
type PreferLocalZone struct {
- // ForceLocalZone defines override configuration for local zone routing.
+ // ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ // which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ //
// +optional
// +notImplementedHide
ForceLocalZone *ForceLocalZone `json:"forceLocalZone,omitempty"`
// MinClusterSize is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ //
// +kubebuilder:validation:Minimum=1
// +optional
// +notImplementedHide
MinClusterSize *uint64 `json:"minClusterSize,omitempty"`
}
-// ForceLocalZone defines override configuration for local zone routing.
+// ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+// which maintains equal distribution among upstreams while sending as much traffic as possible locally.
type ForceLocalZone struct {
- // Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts available.
+ // Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ // available.
+ //
// +optional
// +notImplementedHide
Enabled *bool `json:"enabled"`
- // MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone override.
- // +kubebuilder:validation:Minimum=1
+ // MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ // override. Defaults to 1 if not specified.
+ //
// +optional
// +notImplementedHide
- MinZoneSize *uint64 `json:"minZoneSize,omitempty"`
+ MinZoneSize *uint32 `json:"minZoneSize,omitempty"`
}
-// WeightedLocality defines explicit traffic weights per locality (zone).
+// WeightedLocality defines explicit traffic weights per locality.
type WeightedLocality struct {
// Weights specifies a list of localities and their corresponding traffic weights.
- // +kubebuilder:validation:MinItems=1
+ //
// +notImplementedHide
Weights []LocalityWeights `json:"weights"`
}
// LocalityWeights associates a locality with a traffic weight.
type LocalityWeights struct {
- // Locality identifies the zone for which the weight applies.
+ // Locality defines locality information for which the weight applies.
+ //
// +notImplementedHide
Locality Locality `json:"locality"`
// Weight is the relative weight for traffic distribution to the specified locality.
- // +kubebuilder:validation:Minimum=0
+ //
// +notImplementedHide
- Weight int32 `json:"weight"`
+ Weight uint32 `json:"weight"`
}
-// Locality specifies a single zone identifier.
+// Locality specifies the details of a particular locality. Currently only Zone is supported.
type Locality struct {
- // Zone is the name of the locality zone (e.g., availability zone or rack).
- // +kubebuilder:validation:Pattern="^[A-Za-z0-9_-]+$"
+ // Zone is the name of the locality zone (e.g. topology.kubernetes.io/zone).
+ //
// +notImplementedHide
Zone string `json:"zone"`
}
From 36210d42faa16d41cac113e03fdc03d89a7d0d9c Mon Sep 17 00:00:00 2001
From: jukie <10012479+Jukie@users.noreply.github.com>
Date: Thu, 22 May 2025 08:30:51 -0600
Subject: [PATCH 03/11] gen-check
Signed-off-by: jukie <10012479+Jukie@users.noreply.github.com>
---
api/v1alpha1/zz_generated.deepcopy.go | 2 +-
....envoyproxy.io_backendtrafficpolicies.yaml | 39 ++--
....envoyproxy.io_envoyextensionpolicies.yaml | 40 ++--
.../gateway.envoyproxy.io_envoyproxies.yaml | 184 +++++++-----------
...ateway.envoyproxy.io_securitypolicies.yaml | 166 +++++++---------
....envoyproxy.io_backendtrafficpolicies.yaml | 39 ++--
....envoyproxy.io_envoyextensionpolicies.yaml | 40 ++--
.../gateway.envoyproxy.io_envoyproxies.yaml | 184 +++++++-----------
...ateway.envoyproxy.io_securitypolicies.yaml | 166 +++++++---------
site/content/en/latest/api/extension_types.md | 9 +-
10 files changed, 354 insertions(+), 515 deletions(-)
diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go
index 39f93297d4..fe0518acf4 100644
--- a/api/v1alpha1/zz_generated.deepcopy.go
+++ b/api/v1alpha1/zz_generated.deepcopy.go
@@ -2807,7 +2807,7 @@ func (in *ForceLocalZone) DeepCopyInto(out *ForceLocalZone) {
}
if in.MinZoneSize != nil {
in, out := &in.MinZoneSize, &out.MinZoneSize
- *out = new(uint64)
+ *out = new(uint32)
**out = **in
}
}
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index 4357e0d699..e5a0de9cc5 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -646,20 +646,20 @@ spec:
to prefer sending traffic to the local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override configuration
- for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route all requests
- to the local zone if there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum number of
- upstream hosts in the local zone required to honor
- the forceLocalZone override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -682,13 +682,12 @@ spec:
a traffic weight.
properties:
locality:
- description: Locality identifies the zone for which
- the weight applies.
+ description: Locality defines locality information
+ for which the weight applies.
properties:
zone:
description: Zone is the name of the locality
- zone (e.g., availability zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -697,13 +696,11 @@ spec:
description: Weight is the relative weight for traffic
distribution to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -711,13 +708,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality may
- be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality must be
- specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index b00b25fa9e..93914fadc0 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -741,22 +741,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -779,14 +777,12 @@ spec:
locality with a traffic weight.
properties:
locality:
- description: Locality identifies the zone
- for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of the
- locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -796,13 +792,11 @@ spec:
for traffic distribution to the specified
locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -810,13 +804,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
index 9a55265d20..378bea5246 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11275,26 +11275,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone
- defines override configuration
- for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes
- Envoy to route all requests
- to the local zone if
- there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize
- is the minimum number
- of upstream hosts in
- the local zone required
- to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -11324,7 +11318,7 @@ spec:
properties:
locality:
description: Locality
- identifies the zone
+ defines locality information
for which the weight
applies.
properties:
@@ -11332,9 +11326,7 @@ spec:
description: Zone
is the name of
the locality zone
- (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -11345,13 +11337,11 @@ spec:
for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -11359,13 +11349,13 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone
- or weightedLocality may be specified
- rule: self.preferLocalZone == null
- || self.weightedLocality == null
+ or weightedLocality may be specified.
+ rule: '!(has(self.preferLocalZone)
+ && has(self.weightedLocality))'
- message: one of preferLocalZone
- or weightedLocality must be specified
- rule: self.preferLocalZone != null
- || self.weightedLocality != null
+ or weightedLocality must be specified.
+ rule: '!(!has(self.preferLocalZone)
+ && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -12398,26 +12388,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone
- defines override configuration
- for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes
- Envoy to route all requests
- to the local zone if
- there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize
- is the minimum number
- of upstream hosts in
- the local zone required
- to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -12447,7 +12431,7 @@ spec:
properties:
locality:
description: Locality
- identifies the zone
+ defines locality information
for which the weight
applies.
properties:
@@ -12455,9 +12439,7 @@ spec:
description: Zone
is the name of
the locality zone
- (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -12468,13 +12450,11 @@ spec:
for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -12482,13 +12462,13 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone
- or weightedLocality may be specified
- rule: self.preferLocalZone == null
- || self.weightedLocality == null
+ or weightedLocality may be specified.
+ rule: '!(has(self.preferLocalZone)
+ && has(self.weightedLocality))'
- message: one of preferLocalZone
- or weightedLocality must be specified
- rule: self.preferLocalZone != null
- || self.weightedLocality != null
+ or weightedLocality must be specified.
+ rule: '!(!has(self.preferLocalZone)
+ && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -13589,25 +13569,20 @@ spec:
traffic to the local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines
- override configuration for local
- zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes
- Envoy to route all requests
- to the local zone if there
- are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is
- the minimum number of upstream
- hosts in the local zone required
- to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -13632,16 +13607,14 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies
- the zone for which the weight
- applies.
+ description: Locality defines
+ locality information for
+ which the weight applies.
properties:
zone:
description: Zone is the
name of the locality
- zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -13652,13 +13625,11 @@ spec:
distribution to the specified
locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -13666,13 +13637,13 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or
- weightedLocality may be specified
- rule: self.preferLocalZone == null ||
- self.weightedLocality == null
+ weightedLocality may be specified.
+ rule: '!(has(self.preferLocalZone) &&
+ has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null ||
- self.weightedLocality != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) &&
+ !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -14707,22 +14678,20 @@ spec:
local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy
- to route all requests to the local
- zone if there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the
- local zone required to honor the
- forceLocalZone override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -14747,15 +14716,14 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies
- the zone for which the weight
+ description: Locality defines locality
+ information for which the weight
applies.
properties:
zone:
description: Zone is the name
- of the locality zone (e.g.,
- availability zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ of the locality zone (e.g.
+ topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -14765,13 +14733,11 @@ spec:
weight for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -14779,13 +14745,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
index 249ce0cfc8..86685a343c 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1241,22 +1241,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -1279,14 +1277,12 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies the
- zone for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of
- the locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ the locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -1296,13 +1292,11 @@ spec:
weight for traffic distribution to
the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -1310,13 +1304,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -2245,22 +2237,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -2283,14 +2273,12 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies the
- zone for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of
- the locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ the locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -2300,13 +2288,11 @@ spec:
weight for traffic distribution to
the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -2314,13 +2300,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -3455,23 +3439,20 @@ spec:
to the local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines
- override configuration for local zone
- routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy
- to route all requests to the local
- zone if there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is the
- minimum number of upstream hosts
- in the local zone required to
- honor the forceLocalZone override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -3496,15 +3477,14 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies
- the zone for which the weight
- applies.
+ description: Locality defines
+ locality information for which
+ the weight applies.
properties:
zone:
description: Zone is the name
- of the locality zone (e.g.,
- availability zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ of the locality zone (e.g.
+ topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -3514,13 +3494,11 @@ spec:
weight for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -3528,13 +3506,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -4642,22 +4618,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -4680,14 +4654,12 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies the
- zone for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of
- the locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ the locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -4697,13 +4669,11 @@ spec:
weight for traffic distribution to
the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -4711,13 +4681,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index f643b3d591..717fc2c173 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -645,20 +645,20 @@ spec:
to prefer sending traffic to the local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override configuration
- for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route all requests
- to the local zone if there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum number of
- upstream hosts in the local zone required to honor
- the forceLocalZone override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -681,13 +681,12 @@ spec:
a traffic weight.
properties:
locality:
- description: Locality identifies the zone for which
- the weight applies.
+ description: Locality defines locality information
+ for which the weight applies.
properties:
zone:
description: Zone is the name of the locality
- zone (e.g., availability zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -696,13 +695,11 @@ spec:
description: Weight is the relative weight for traffic
distribution to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -710,13 +707,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality may
- be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality must be
- specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index 09a90fa1c3..deca7e3728 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -740,22 +740,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -778,14 +776,12 @@ spec:
locality with a traffic weight.
properties:
locality:
- description: Locality identifies the zone
- for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of the
- locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -795,13 +791,11 @@ spec:
for traffic distribution to the specified
locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -809,13 +803,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
index 589d6a9345..359b702401 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11274,26 +11274,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone
- defines override configuration
- for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes
- Envoy to route all requests
- to the local zone if
- there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize
- is the minimum number
- of upstream hosts in
- the local zone required
- to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -11323,7 +11317,7 @@ spec:
properties:
locality:
description: Locality
- identifies the zone
+ defines locality information
for which the weight
applies.
properties:
@@ -11331,9 +11325,7 @@ spec:
description: Zone
is the name of
the locality zone
- (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -11344,13 +11336,11 @@ spec:
for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -11358,13 +11348,13 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone
- or weightedLocality may be specified
- rule: self.preferLocalZone == null
- || self.weightedLocality == null
+ or weightedLocality may be specified.
+ rule: '!(has(self.preferLocalZone)
+ && has(self.weightedLocality))'
- message: one of preferLocalZone
- or weightedLocality must be specified
- rule: self.preferLocalZone != null
- || self.weightedLocality != null
+ or weightedLocality must be specified.
+ rule: '!(!has(self.preferLocalZone)
+ && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -12397,26 +12387,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone
- defines override configuration
- for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes
- Envoy to route all requests
- to the local zone if
- there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize
- is the minimum number
- of upstream hosts in
- the local zone required
- to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -12446,7 +12430,7 @@ spec:
properties:
locality:
description: Locality
- identifies the zone
+ defines locality information
for which the weight
applies.
properties:
@@ -12454,9 +12438,7 @@ spec:
description: Zone
is the name of
the locality zone
- (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -12467,13 +12449,11 @@ spec:
for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -12481,13 +12461,13 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone
- or weightedLocality may be specified
- rule: self.preferLocalZone == null
- || self.weightedLocality == null
+ or weightedLocality may be specified.
+ rule: '!(has(self.preferLocalZone)
+ && has(self.weightedLocality))'
- message: one of preferLocalZone
- or weightedLocality must be specified
- rule: self.preferLocalZone != null
- || self.weightedLocality != null
+ or weightedLocality must be specified.
+ rule: '!(!has(self.preferLocalZone)
+ && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -13588,25 +13568,20 @@ spec:
traffic to the local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines
- override configuration for local
- zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes
- Envoy to route all requests
- to the local zone if there
- are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is
- the minimum number of upstream
- hosts in the local zone required
- to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -13631,16 +13606,14 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies
- the zone for which the weight
- applies.
+ description: Locality defines
+ locality information for
+ which the weight applies.
properties:
zone:
description: Zone is the
name of the locality
- zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -13651,13 +13624,11 @@ spec:
distribution to the specified
locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -13665,13 +13636,13 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or
- weightedLocality may be specified
- rule: self.preferLocalZone == null ||
- self.weightedLocality == null
+ weightedLocality may be specified.
+ rule: '!(has(self.preferLocalZone) &&
+ has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null ||
- self.weightedLocality != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) &&
+ !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -14706,22 +14677,20 @@ spec:
local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy
- to route all requests to the local
- zone if there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the
- local zone required to honor the
- forceLocalZone override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -14746,15 +14715,14 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies
- the zone for which the weight
+ description: Locality defines locality
+ information for which the weight
applies.
properties:
zone:
description: Zone is the name
- of the locality zone (e.g.,
- availability zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ of the locality zone (e.g.
+ topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -14764,13 +14732,11 @@ spec:
weight for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -14778,13 +14744,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
index b6124aacb3..2a3a4bb070 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1240,22 +1240,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -1278,14 +1276,12 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies the
- zone for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of
- the locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ the locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -1295,13 +1291,11 @@ spec:
weight for traffic distribution to
the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -1309,13 +1303,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -2244,22 +2236,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -2282,14 +2272,12 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies the
- zone for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of
- the locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ the locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -2299,13 +2287,11 @@ spec:
weight for traffic distribution to
the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -2313,13 +2299,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -3454,23 +3438,20 @@ spec:
to the local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines
- override configuration for local zone
- routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy
- to route all requests to the local
- zone if there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is the
- minimum number of upstream hosts
- in the local zone required to
- honor the forceLocalZone override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -3495,15 +3476,14 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies
- the zone for which the weight
- applies.
+ description: Locality defines
+ locality information for which
+ the weight applies.
properties:
zone:
description: Zone is the name
- of the locality zone (e.g.,
- availability zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ of the locality zone (e.g.
+ topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -3513,13 +3493,11 @@ spec:
weight for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -3527,13 +3505,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -4641,22 +4617,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -4679,14 +4653,12 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies the
- zone for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of
- the locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ the locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -4696,13 +4668,11 @@ spec:
weight for traffic distribution to
the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -4710,13 +4680,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
diff --git a/site/content/en/latest/api/extension_types.md b/site/content/en/latest/api/extension_types.md
index 6c3dfd7bdb..c753886ddf 100644
--- a/site/content/en/latest/api/extension_types.md
+++ b/site/content/en/latest/api/extension_types.md
@@ -1937,7 +1937,8 @@ _Appears in:_
-ForceLocalZone defines override configuration for local zone routing.
+ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+which maintains equal distribution among upstreams while sending as much traffic as possible locally.
_Appears in:_
- [PreferLocalZone](#preferlocalzone)
@@ -3059,7 +3060,7 @@ _Appears in:_
-Locality specifies a single zone identifier.
+Locality specifies the details of a particular locality. Currently only Zone is supported.
_Appears in:_
- [LocalityWeights](#localityweights)
@@ -3416,7 +3417,7 @@ _Appears in:_
-PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone
+PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
_Appears in:_
- [RequestDistribution](#requestdistribution)
@@ -4913,7 +4914,7 @@ _Appears in:_
-WeightedLocality defines explicit traffic weights per locality (zone).
+WeightedLocality defines explicit traffic weights per locality.
_Appears in:_
- [RequestDistribution](#requestdistribution)
From d0d137324318daa6b435139a345f8d74891e9d16 Mon Sep 17 00:00:00 2001
From: jukie <10012479+Jukie@users.noreply.github.com>
Date: Thu, 22 May 2025 10:05:42 -0600
Subject: [PATCH 04/11] cel validation
Signed-off-by: jukie <10012479+Jukie@users.noreply.github.com>
---
api/v1alpha1/loadbalancer_types.go | 4 +-
....envoyproxy.io_backendtrafficpolicies.yaml | 7 +-
....envoyproxy.io_envoyextensionpolicies.yaml | 8 +-
.../gateway.envoyproxy.io_envoyproxies.yaml | 40 +-
...ateway.envoyproxy.io_securitypolicies.yaml | 36 +-
....envoyproxy.io_backendtrafficpolicies.yaml | 7 +-
....envoyproxy.io_envoyextensionpolicies.yaml | 8 +-
.../gateway.envoyproxy.io_envoyproxies.yaml | 40 +-
...ateway.envoyproxy.io_securitypolicies.yaml | 36 +-
.../backendtrafficpolicy_test.go | 116 +++-
test/helm/gateway-crds-helm/all.out.yaml | 500 ++++++++----------
.../envoy-gateway-crds.out.yaml | 500 ++++++++----------
12 files changed, 729 insertions(+), 573 deletions(-)
diff --git a/api/v1alpha1/loadbalancer_types.go b/api/v1alpha1/loadbalancer_types.go
index 3fd2b67e05..00d7d78c2f 100644
--- a/api/v1alpha1/loadbalancer_types.go
+++ b/api/v1alpha1/loadbalancer_types.go
@@ -12,6 +12,7 @@ import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
//
// +kubebuilder:validation:XValidation:rule="self.type == 'ConsistentHash' ? has(self.consistentHash) : !has(self.consistentHash)",message="If LoadBalancer type is consistentHash, consistentHash field needs to be set."
// +kubebuilder:validation:XValidation:rule="self.type in ['Random', 'ConsistentHash'] ? !has(self.slowStart) : true ",message="Currently SlowStart is only supported for RoundRobin and LeastRequest load balancers."
+// +kubebuilder:validation:XValidation:rule="self.type == 'ConsistentHash' ? (!has(self.requestDistribution) || !has(self.requestDistribution.preferLocalZone)) : true ",message="ConsistentHash load balancer only supports weightedLocality in requestDistribution; preferLocalZone is not allowed."
type LoadBalancer struct {
// Type decides the type of Load Balancer policy.
// Valid LoadBalancerType values are
@@ -146,7 +147,7 @@ type SlowStart struct {
// Exactly one of PreferLocalZone or WeightedLocality must be specified.
//
// +kubebuilder:validation:XValidation:rule="!(has(self.preferLocalZone) && has(self.weightedLocality))",message="only one of preferLocalZone or weightedLocality may be specified."
-// +kubebuilder:validation:XValidation:rule="!(!has(self.preferLocalZone) && !has(self.weightedLocality)",message="one of preferLocalZone or weightedLocality must be specified."
+// +kubebuilder:validation:XValidation:rule="!(!has(self.preferLocalZone) && !has(self.weightedLocality))",message="one of preferLocalZone or weightedLocality must be specified."
type RequestDistribution struct {
// PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
//
@@ -172,7 +173,6 @@ type PreferLocalZone struct {
// MinClusterSize is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
//
- // +kubebuilder:validation:Minimum=1
// +optional
// +notImplementedHide
MinClusterSize *uint64 `json:"minClusterSize,omitempty"`
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index e5a0de9cc5..fbf4ba43e7 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -667,7 +667,6 @@ spec:
upstream hosts across all zones required to enable zone-aware
routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -712,7 +711,7 @@ spec:
rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality must be
specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -755,6 +754,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
+ - message: ConsistentHash load balancer only supports weightedLocality
+ in requestDistribution; preferLocalZone is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone)) : true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index 93914fadc0..d831ad5ee8 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -762,7 +762,6 @@ spec:
of total upstream hosts across all zones required
to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -808,7 +807,7 @@ spec:
rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -851,6 +850,11 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports weightedLocality
+ in requestDistribution; preferLocalZone is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone)) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
communicating with the backend.
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
index 378bea5246..f5d0fde84f 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11298,7 +11298,6 @@ spec:
all zones required to enable
zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -11355,7 +11354,7 @@ spec:
- message: one of preferLocalZone
or weightedLocality must be specified.
rule: '!(!has(self.preferLocalZone)
- && !has(self.weightedLocality)'
+ && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -11399,6 +11398,14 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer
+ only supports weightedLocality in
+ requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash''
+ ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -12411,7 +12418,6 @@ spec:
all zones required to enable
zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -12468,7 +12474,7 @@ spec:
- message: one of preferLocalZone
or weightedLocality must be specified.
rule: '!(!has(self.preferLocalZone)
- && !has(self.weightedLocality)'
+ && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -12512,6 +12518,14 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer
+ only supports weightedLocality in
+ requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash''
+ ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -13591,7 +13605,6 @@ spec:
hosts across all zones required
to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -13643,7 +13656,7 @@ spec:
- message: one of preferLocalZone or weightedLocality
must be specified.
rule: '!(!has(self.preferLocalZone) &&
- !has(self.weightedLocality)'
+ !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -13686,6 +13699,12 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only
+ supports weightedLocality in requestDistribution;
+ preferLocalZone is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
Protocol when communicating with the backend.
@@ -14700,7 +14719,6 @@ spec:
all zones required to enable zone-aware
routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -14749,7 +14767,7 @@ spec:
rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -14792,6 +14810,12 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
index 86685a343c..9e16781faf 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1262,7 +1262,6 @@ spec:
number of total upstream hosts across all
zones required to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -1308,7 +1307,7 @@ spec:
rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -1351,6 +1350,12 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
@@ -2258,7 +2263,6 @@ spec:
number of total upstream hosts across all
zones required to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -2304,7 +2308,7 @@ spec:
rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -2347,6 +2351,12 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
@@ -3461,7 +3471,6 @@ spec:
all zones required to enable zone-aware
routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -3510,7 +3519,7 @@ spec:
rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -3553,6 +3562,12 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
@@ -4639,7 +4654,6 @@ spec:
number of total upstream hosts across all
zones required to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -4685,7 +4699,7 @@ spec:
rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -4728,6 +4742,12 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index 717fc2c173..dfc70ec189 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -666,7 +666,6 @@ spec:
upstream hosts across all zones required to enable zone-aware
routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -711,7 +710,7 @@ spec:
rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality must be
specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -754,6 +753,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
+ - message: ConsistentHash load balancer only supports weightedLocality
+ in requestDistribution; preferLocalZone is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone)) : true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index deca7e3728..9757ae9b1c 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -761,7 +761,6 @@ spec:
of total upstream hosts across all zones required
to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -807,7 +806,7 @@ spec:
rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -850,6 +849,11 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports weightedLocality
+ in requestDistribution; preferLocalZone is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone)) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
communicating with the backend.
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
index 359b702401..9d8d90b8be 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11297,7 +11297,6 @@ spec:
all zones required to enable
zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -11354,7 +11353,7 @@ spec:
- message: one of preferLocalZone
or weightedLocality must be specified.
rule: '!(!has(self.preferLocalZone)
- && !has(self.weightedLocality)'
+ && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -11398,6 +11397,14 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer
+ only supports weightedLocality in
+ requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash''
+ ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -12410,7 +12417,6 @@ spec:
all zones required to enable
zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -12467,7 +12473,7 @@ spec:
- message: one of preferLocalZone
or weightedLocality must be specified.
rule: '!(!has(self.preferLocalZone)
- && !has(self.weightedLocality)'
+ && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -12511,6 +12517,14 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer
+ only supports weightedLocality in
+ requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash''
+ ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -13590,7 +13604,6 @@ spec:
hosts across all zones required
to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -13642,7 +13655,7 @@ spec:
- message: one of preferLocalZone or weightedLocality
must be specified.
rule: '!(!has(self.preferLocalZone) &&
- !has(self.weightedLocality)'
+ !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -13685,6 +13698,12 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only
+ supports weightedLocality in requestDistribution;
+ preferLocalZone is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
Protocol when communicating with the backend.
@@ -14699,7 +14718,6 @@ spec:
all zones required to enable zone-aware
routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -14748,7 +14766,7 @@ spec:
rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -14791,6 +14809,12 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
index 2a3a4bb070..6a1f65526f 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1261,7 +1261,6 @@ spec:
number of total upstream hosts across all
zones required to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -1307,7 +1306,7 @@ spec:
rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -1350,6 +1349,12 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
@@ -2257,7 +2262,6 @@ spec:
number of total upstream hosts across all
zones required to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -2303,7 +2307,7 @@ spec:
rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -2346,6 +2350,12 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
@@ -3460,7 +3470,6 @@ spec:
all zones required to enable zone-aware
routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -3509,7 +3518,7 @@ spec:
rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -3552,6 +3561,12 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
@@ -4638,7 +4653,6 @@ spec:
number of total upstream hosts across all
zones required to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -4684,7 +4698,7 @@ spec:
rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality)'
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -4727,6 +4741,12 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
diff --git a/test/cel-validation/backendtrafficpolicy_test.go b/test/cel-validation/backendtrafficpolicy_test.go
index 41e3c75ac0..0bb02fb884 100644
--- a/test/cel-validation/backendtrafficpolicy_test.go
+++ b/test/cel-validation/backendtrafficpolicy_test.go
@@ -342,7 +342,66 @@ func TestBackendTrafficPolicyTarget(t *testing.T) {
"spec.loadBalancer.consistentHash: Invalid value: \"object\": If consistent hash type is cookie, the cookie field must be set",
},
},
-
+ {
+ desc: "consistentHash lb with requestDistribution.preferLocalZone",
+ mutate: func(btp *egv1a1.BackendTrafficPolicy) {
+ btp.Spec = egv1a1.BackendTrafficPolicySpec{
+ PolicyTargetReferences: egv1a1.PolicyTargetReferences{
+ TargetRef: &gwapiv1a2.LocalPolicyTargetReferenceWithSectionName{
+ LocalPolicyTargetReference: gwapiv1a2.LocalPolicyTargetReference{
+ Group: gwapiv1a2.Group("gateway.networking.k8s.io"),
+ Kind: gwapiv1a2.Kind("Gateway"),
+ Name: gwapiv1a2.ObjectName("eg"),
+ },
+ },
+ },
+ ClusterSettings: egv1a1.ClusterSettings{
+ LoadBalancer: &egv1a1.LoadBalancer{
+ Type: egv1a1.ConsistentHashLoadBalancerType,
+ ConsistentHash: &egv1a1.ConsistentHash{
+ Type: "SourceIP",
+ },
+ RequestDistribution: &egv1a1.RequestDistribution{
+ PreferLocalZone: &egv1a1.PreferLocalZone{},
+ },
+ },
+ },
+ }
+ },
+ wantErrors: []string{
+ "spec.loadBalancer: Invalid value: \"object\": ConsistentHash load balancer only supports weightedLocality in requestDistribution; preferLocalZone is not allowed",
+ },
+ },
+ {
+ desc: "consistentHash lb with requestDistribution.weightedLocality",
+ mutate: func(btp *egv1a1.BackendTrafficPolicy) {
+ btp.Spec = egv1a1.BackendTrafficPolicySpec{
+ PolicyTargetReferences: egv1a1.PolicyTargetReferences{
+ TargetRef: &gwapiv1a2.LocalPolicyTargetReferenceWithSectionName{
+ LocalPolicyTargetReference: gwapiv1a2.LocalPolicyTargetReference{
+ Group: gwapiv1a2.Group("gateway.networking.k8s.io"),
+ Kind: gwapiv1a2.Kind("Gateway"),
+ Name: gwapiv1a2.ObjectName("eg"),
+ },
+ },
+ },
+ ClusterSettings: egv1a1.ClusterSettings{
+ LoadBalancer: &egv1a1.LoadBalancer{
+ Type: egv1a1.ConsistentHashLoadBalancerType,
+ ConsistentHash: &egv1a1.ConsistentHash{
+ Type: "SourceIP",
+ },
+ RequestDistribution: &egv1a1.RequestDistribution{
+ WeightedLocality: &egv1a1.WeightedLocality{
+ Weights: []egv1a1.LocalityWeights{},
+ },
+ },
+ },
+ },
+ }
+ },
+ wantErrors: []string{},
+ },
{
desc: "leastRequest with ConsistentHash nil",
mutate: func(btp *egv1a1.BackendTrafficPolicy) {
@@ -365,6 +424,61 @@ func TestBackendTrafficPolicyTarget(t *testing.T) {
},
wantErrors: []string{},
},
+ {
+ desc: "leastRequest with RequestDistribution.PreferLocalZone and RequestDistribution.WeightedLocality set",
+ mutate: func(btp *egv1a1.BackendTrafficPolicy) {
+ btp.Spec = egv1a1.BackendTrafficPolicySpec{
+ PolicyTargetReferences: egv1a1.PolicyTargetReferences{
+ TargetRef: &gwapiv1a2.LocalPolicyTargetReferenceWithSectionName{
+ LocalPolicyTargetReference: gwapiv1a2.LocalPolicyTargetReference{
+ Group: gwapiv1a2.Group("gateway.networking.k8s.io"),
+ Kind: gwapiv1a2.Kind("Gateway"),
+ Name: gwapiv1a2.ObjectName("eg"),
+ },
+ },
+ },
+ ClusterSettings: egv1a1.ClusterSettings{
+ LoadBalancer: &egv1a1.LoadBalancer{
+ Type: egv1a1.LeastRequestLoadBalancerType,
+ RequestDistribution: &egv1a1.RequestDistribution{
+ WeightedLocality: &egv1a1.WeightedLocality{
+ Weights: []egv1a1.LocalityWeights{},
+ },
+ PreferLocalZone: &egv1a1.PreferLocalZone{},
+ },
+ },
+ },
+ }
+ },
+ wantErrors: []string{
+ "spec.loadBalancer.requestDistribution: Invalid value: \"object\": only one of preferLocalZone or weightedLocality may be specified",
+ },
+ },
+ {
+ desc: "leastRequest with RequestDistribution.PreferLocalZone set",
+ mutate: func(btp *egv1a1.BackendTrafficPolicy) {
+ btp.Spec = egv1a1.BackendTrafficPolicySpec{
+ PolicyTargetReferences: egv1a1.PolicyTargetReferences{
+ TargetRef: &gwapiv1a2.LocalPolicyTargetReferenceWithSectionName{
+ LocalPolicyTargetReference: gwapiv1a2.LocalPolicyTargetReference{
+ Group: gwapiv1a2.Group("gateway.networking.k8s.io"),
+ Kind: gwapiv1a2.Kind("Gateway"),
+ Name: gwapiv1a2.ObjectName("eg"),
+ },
+ },
+ },
+ ClusterSettings: egv1a1.ClusterSettings{
+ LoadBalancer: &egv1a1.LoadBalancer{
+ Type: egv1a1.LeastRequestLoadBalancerType,
+ RequestDistribution: &egv1a1.RequestDistribution{
+ PreferLocalZone: &egv1a1.PreferLocalZone{},
+ },
+ },
+ },
+ }
+ },
+ wantErrors: []string{},
+ },
{
desc: "leastRequest with SlowStar is set",
mutate: func(btp *egv1a1.BackendTrafficPolicy) {
diff --git a/test/helm/gateway-crds-helm/all.out.yaml b/test/helm/gateway-crds-helm/all.out.yaml
index 8f4dba41bd..359bfab234 100644
--- a/test/helm/gateway-crds-helm/all.out.yaml
+++ b/test/helm/gateway-crds-helm/all.out.yaml
@@ -18271,20 +18271,20 @@ spec:
to prefer sending traffic to the local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override configuration
- for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route all requests
- to the local zone if there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum number of
- upstream hosts in the local zone required to honor
- the forceLocalZone override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -18292,7 +18292,6 @@ spec:
upstream hosts across all zones required to enable zone-aware
routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -18307,13 +18306,12 @@ spec:
a traffic weight.
properties:
locality:
- description: Locality identifies the zone for which
- the weight applies.
+ description: Locality defines locality information
+ for which the weight applies.
properties:
zone:
description: Zone is the name of the locality
- zone (e.g., availability zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -18322,13 +18320,11 @@ spec:
description: Weight is the relative weight for traffic
distribution to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -18336,13 +18332,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality may
- be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality must be
- specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -18385,6 +18379,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
+ - message: ConsistentHash load balancer only supports weightedLocality
+ in requestDistribution; preferLocalZone is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone)) : true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
@@ -21828,22 +21826,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -21851,7 +21847,6 @@ spec:
of total upstream hosts across all zones required
to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -21866,14 +21861,12 @@ spec:
locality with a traffic weight.
properties:
locality:
- description: Locality identifies the zone
- for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of the
- locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -21883,13 +21876,11 @@ spec:
for traffic distribution to the specified
locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -21897,13 +21888,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -21946,6 +21935,11 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports weightedLocality
+ in requestDistribution; preferLocalZone is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone)) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
communicating with the backend.
@@ -34828,26 +34822,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone
- defines override configuration
- for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes
- Envoy to route all requests
- to the local zone if
- there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize
- is the minimum number
- of upstream hosts in
- the local zone required
- to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -34857,7 +34845,6 @@ spec:
all zones required to enable
zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -34877,7 +34864,7 @@ spec:
properties:
locality:
description: Locality
- identifies the zone
+ defines locality information
for which the weight
applies.
properties:
@@ -34885,9 +34872,7 @@ spec:
description: Zone
is the name of
the locality zone
- (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -34898,13 +34883,11 @@ spec:
for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -34912,13 +34895,13 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone
- or weightedLocality may be specified
- rule: self.preferLocalZone == null
- || self.weightedLocality == null
+ or weightedLocality may be specified.
+ rule: '!(has(self.preferLocalZone)
+ && has(self.weightedLocality))'
- message: one of preferLocalZone
- or weightedLocality must be specified
- rule: self.preferLocalZone != null
- || self.weightedLocality != null
+ or weightedLocality must be specified.
+ rule: '!(!has(self.preferLocalZone)
+ && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -34962,6 +34945,14 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer
+ only supports weightedLocality in
+ requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash''
+ ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -35951,26 +35942,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone
- defines override configuration
- for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes
- Envoy to route all requests
- to the local zone if
- there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize
- is the minimum number
- of upstream hosts in
- the local zone required
- to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -35980,7 +35965,6 @@ spec:
all zones required to enable
zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -36000,7 +35984,7 @@ spec:
properties:
locality:
description: Locality
- identifies the zone
+ defines locality information
for which the weight
applies.
properties:
@@ -36008,9 +35992,7 @@ spec:
description: Zone
is the name of
the locality zone
- (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -36021,13 +36003,11 @@ spec:
for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -36035,13 +36015,13 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone
- or weightedLocality may be specified
- rule: self.preferLocalZone == null
- || self.weightedLocality == null
+ or weightedLocality may be specified.
+ rule: '!(has(self.preferLocalZone)
+ && has(self.weightedLocality))'
- message: one of preferLocalZone
- or weightedLocality must be specified
- rule: self.preferLocalZone != null
- || self.weightedLocality != null
+ or weightedLocality must be specified.
+ rule: '!(!has(self.preferLocalZone)
+ && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -36085,6 +36065,14 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer
+ only supports weightedLocality in
+ requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash''
+ ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -37142,25 +37130,20 @@ spec:
traffic to the local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines
- override configuration for local
- zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes
- Envoy to route all requests
- to the local zone if there
- are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is
- the minimum number of upstream
- hosts in the local zone required
- to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -37169,7 +37152,6 @@ spec:
hosts across all zones required
to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -37185,16 +37167,14 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies
- the zone for which the weight
- applies.
+ description: Locality defines
+ locality information for
+ which the weight applies.
properties:
zone:
description: Zone is the
name of the locality
- zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -37205,13 +37185,11 @@ spec:
distribution to the specified
locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -37219,13 +37197,13 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or
- weightedLocality may be specified
- rule: self.preferLocalZone == null ||
- self.weightedLocality == null
+ weightedLocality may be specified.
+ rule: '!(has(self.preferLocalZone) &&
+ has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null ||
- self.weightedLocality != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) &&
+ !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -37268,6 +37246,12 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only
+ supports weightedLocality in requestDistribution;
+ preferLocalZone is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
Protocol when communicating with the backend.
@@ -38260,22 +38244,20 @@ spec:
local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy
- to route all requests to the local
- zone if there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the
- local zone required to honor the
- forceLocalZone override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -38284,7 +38266,6 @@ spec:
all zones required to enable zone-aware
routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -38300,15 +38281,14 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies
- the zone for which the weight
+ description: Locality defines locality
+ information for which the weight
applies.
properties:
zone:
description: Zone is the name
- of the locality zone (e.g.,
- availability zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ of the locality zone (e.g.
+ topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -38318,13 +38298,11 @@ spec:
weight for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -38332,13 +38310,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -38381,6 +38357,12 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
@@ -40186,22 +40168,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -40209,7 +40189,6 @@ spec:
number of total upstream hosts across all
zones required to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -40224,14 +40203,12 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies the
- zone for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of
- the locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ the locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -40241,13 +40218,11 @@ spec:
weight for traffic distribution to
the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -40255,13 +40230,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -40304,6 +40277,12 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
@@ -41190,22 +41169,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -41213,7 +41190,6 @@ spec:
number of total upstream hosts across all
zones required to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -41228,14 +41204,12 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies the
- zone for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of
- the locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ the locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -41245,13 +41219,11 @@ spec:
weight for traffic distribution to
the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -41259,13 +41231,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -41308,6 +41278,12 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
@@ -42400,23 +42376,20 @@ spec:
to the local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines
- override configuration for local zone
- routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy
- to route all requests to the local
- zone if there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is the
- minimum number of upstream hosts
- in the local zone required to
- honor the forceLocalZone override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -42425,7 +42398,6 @@ spec:
all zones required to enable zone-aware
routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -42441,15 +42413,14 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies
- the zone for which the weight
- applies.
+ description: Locality defines
+ locality information for which
+ the weight applies.
properties:
zone:
description: Zone is the name
- of the locality zone (e.g.,
- availability zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ of the locality zone (e.g.
+ topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -42459,13 +42430,11 @@ spec:
weight for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -42473,13 +42442,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -42522,6 +42489,12 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
@@ -43587,22 +43560,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -43610,7 +43581,6 @@ spec:
number of total upstream hosts across all
zones required to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -43625,14 +43595,12 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies the
- zone for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of
- the locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ the locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -43642,13 +43610,11 @@ spec:
weight for traffic distribution to
the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -43656,13 +43622,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -43705,6 +43669,12 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
diff --git a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
index 8ff45f4804..67a460b892 100644
--- a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
+++ b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
@@ -959,20 +959,20 @@ spec:
to prefer sending traffic to the local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override configuration
- for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route all requests
- to the local zone if there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum number of
- upstream hosts in the local zone required to honor
- the forceLocalZone override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -980,7 +980,6 @@ spec:
upstream hosts across all zones required to enable zone-aware
routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -995,13 +994,12 @@ spec:
a traffic weight.
properties:
locality:
- description: Locality identifies the zone for which
- the weight applies.
+ description: Locality defines locality information
+ for which the weight applies.
properties:
zone:
description: Zone is the name of the locality
- zone (e.g., availability zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -1010,13 +1008,11 @@ spec:
description: Weight is the relative weight for traffic
distribution to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -1024,13 +1020,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality may
- be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality must be
- specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -1073,6 +1067,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
+ - message: ConsistentHash load balancer only supports weightedLocality
+ in requestDistribution; preferLocalZone is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone)) : true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
@@ -4516,22 +4514,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -4539,7 +4535,6 @@ spec:
of total upstream hosts across all zones required
to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -4554,14 +4549,12 @@ spec:
locality with a traffic weight.
properties:
locality:
- description: Locality identifies the zone
- for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of the
- locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -4571,13 +4564,11 @@ spec:
for traffic distribution to the specified
locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -4585,13 +4576,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -4634,6 +4623,11 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports weightedLocality
+ in requestDistribution; preferLocalZone is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone)) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
communicating with the backend.
@@ -17516,26 +17510,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone
- defines override configuration
- for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes
- Envoy to route all requests
- to the local zone if
- there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize
- is the minimum number
- of upstream hosts in
- the local zone required
- to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -17545,7 +17533,6 @@ spec:
all zones required to enable
zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -17565,7 +17552,7 @@ spec:
properties:
locality:
description: Locality
- identifies the zone
+ defines locality information
for which the weight
applies.
properties:
@@ -17573,9 +17560,7 @@ spec:
description: Zone
is the name of
the locality zone
- (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -17586,13 +17571,11 @@ spec:
for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -17600,13 +17583,13 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone
- or weightedLocality may be specified
- rule: self.preferLocalZone == null
- || self.weightedLocality == null
+ or weightedLocality may be specified.
+ rule: '!(has(self.preferLocalZone)
+ && has(self.weightedLocality))'
- message: one of preferLocalZone
- or weightedLocality must be specified
- rule: self.preferLocalZone != null
- || self.weightedLocality != null
+ or weightedLocality must be specified.
+ rule: '!(!has(self.preferLocalZone)
+ && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -17650,6 +17633,14 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer
+ only supports weightedLocality in
+ requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash''
+ ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -18639,26 +18630,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone
- defines override configuration
- for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes
- Envoy to route all requests
- to the local zone if
- there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize
- is the minimum number
- of upstream hosts in
- the local zone required
- to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -18668,7 +18653,6 @@ spec:
all zones required to enable
zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -18688,7 +18672,7 @@ spec:
properties:
locality:
description: Locality
- identifies the zone
+ defines locality information
for which the weight
applies.
properties:
@@ -18696,9 +18680,7 @@ spec:
description: Zone
is the name of
the locality zone
- (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -18709,13 +18691,11 @@ spec:
for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -18723,13 +18703,13 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone
- or weightedLocality may be specified
- rule: self.preferLocalZone == null
- || self.weightedLocality == null
+ or weightedLocality may be specified.
+ rule: '!(has(self.preferLocalZone)
+ && has(self.weightedLocality))'
- message: one of preferLocalZone
- or weightedLocality must be specified
- rule: self.preferLocalZone != null
- || self.weightedLocality != null
+ or weightedLocality must be specified.
+ rule: '!(!has(self.preferLocalZone)
+ && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -18773,6 +18753,14 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer
+ only supports weightedLocality in
+ requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash''
+ ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -19830,25 +19818,20 @@ spec:
traffic to the local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines
- override configuration for local
- zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes
- Envoy to route all requests
- to the local zone if there
- are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is
- the minimum number of upstream
- hosts in the local zone required
- to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -19857,7 +19840,6 @@ spec:
hosts across all zones required
to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -19873,16 +19855,14 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies
- the zone for which the weight
- applies.
+ description: Locality defines
+ locality information for
+ which the weight applies.
properties:
zone:
description: Zone is the
name of the locality
- zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -19893,13 +19873,11 @@ spec:
distribution to the specified
locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -19907,13 +19885,13 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or
- weightedLocality may be specified
- rule: self.preferLocalZone == null ||
- self.weightedLocality == null
+ weightedLocality may be specified.
+ rule: '!(has(self.preferLocalZone) &&
+ has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null ||
- self.weightedLocality != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) &&
+ !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -19956,6 +19934,12 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only
+ supports weightedLocality in requestDistribution;
+ preferLocalZone is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
Protocol when communicating with the backend.
@@ -20948,22 +20932,20 @@ spec:
local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy
- to route all requests to the local
- zone if there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the
- local zone required to honor the
- forceLocalZone override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -20972,7 +20954,6 @@ spec:
all zones required to enable zone-aware
routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -20988,15 +20969,14 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies
- the zone for which the weight
+ description: Locality defines locality
+ information for which the weight
applies.
properties:
zone:
description: Zone is the name
- of the locality zone (e.g.,
- availability zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ of the locality zone (e.g.
+ topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -21006,13 +20986,11 @@ spec:
weight for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -21020,13 +20998,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -21069,6 +21045,12 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
@@ -22874,22 +22856,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -22897,7 +22877,6 @@ spec:
number of total upstream hosts across all
zones required to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -22912,14 +22891,12 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies the
- zone for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of
- the locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ the locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -22929,13 +22906,11 @@ spec:
weight for traffic distribution to
the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -22943,13 +22918,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -22992,6 +22965,12 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
@@ -23878,22 +23857,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -23901,7 +23878,6 @@ spec:
number of total upstream hosts across all
zones required to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -23916,14 +23892,12 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies the
- zone for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of
- the locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ the locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -23933,13 +23907,11 @@ spec:
weight for traffic distribution to
the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -23947,13 +23919,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -23996,6 +23966,12 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
@@ -25088,23 +25064,20 @@ spec:
to the local locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines
- override configuration for local zone
- routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy
- to route all requests to the local
- zone if there are at least "minZoneSize"
- healthy hosts available.
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
+ available.
type: boolean
minZoneSize:
- description: MinZoneSize is the
- minimum number of upstream hosts
- in the local zone required to
- honor the forceLocalZone override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -25113,7 +25086,6 @@ spec:
all zones required to enable zone-aware
routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -25129,15 +25101,14 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies
- the zone for which the weight
- applies.
+ description: Locality defines
+ locality information for which
+ the weight applies.
properties:
zone:
description: Zone is the name
- of the locality zone (e.g.,
- availability zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ of the locality zone (e.g.
+ topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -25147,13 +25118,11 @@ spec:
weight for traffic distribution
to the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -25161,13 +25130,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -25210,6 +25177,12 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
@@ -26275,22 +26248,20 @@ spec:
locality zone.
properties:
forceLocalZone:
- description: ForceLocalZone defines override
- configuration for local zone routing.
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
properties:
enabled:
- description: Enabled causes Envoy to route
- all requests to the local zone if there
- are at least "minZoneSize" healthy hosts
+ description: |-
+ Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
available.
type: boolean
minZoneSize:
- description: MinZoneSize is the minimum
- number of upstream hosts in the local
- zone required to honor the forceLocalZone
- override.
- format: int64
- minimum: 1
+ description: |-
+ MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
+ override. Defaults to 1 if not specified.
+ format: int32
type: integer
type: object
minClusterSize:
@@ -26298,7 +26269,6 @@ spec:
number of total upstream hosts across all
zones required to enable zone-aware routing.
format: int64
- minimum: 1
type: integer
type: object
weightedLocality:
@@ -26313,14 +26283,12 @@ spec:
a locality with a traffic weight.
properties:
locality:
- description: Locality identifies the
- zone for which the weight applies.
+ description: Locality defines locality
+ information for which the weight applies.
properties:
zone:
description: Zone is the name of
- the locality zone (e.g., availability
- zone or rack).
- pattern: ^[A-Za-z0-9_-]+$
+ the locality zone (e.g. topology.kubernetes.io/zone).
type: string
required:
- zone
@@ -26330,13 +26298,11 @@ spec:
weight for traffic distribution to
the specified locality.
format: int32
- minimum: 0
type: integer
required:
- locality
- weight
type: object
- minItems: 1
type: array
required:
- weights
@@ -26344,13 +26310,11 @@ spec:
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
- may be specified
- rule: self.preferLocalZone == null || self.weightedLocality
- == null
+ may be specified.
+ rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- message: one of preferLocalZone or weightedLocality
- must be specified
- rule: self.preferLocalZone != null || self.weightedLocality
- != null
+ must be specified.
+ rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -26393,6 +26357,12 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
+ - message: ConsistentHash load balancer only supports
+ weightedLocality in requestDistribution; preferLocalZone
+ is not allowed.
+ rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
+ || !has(self.requestDistribution.preferLocalZone))
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
when communicating with the backend.
From bea63f3f1e96cf71e8693fd8b4336cff1171765f Mon Sep 17 00:00:00 2001
From: jukie <10012479+Jukie@users.noreply.github.com>
Date: Fri, 23 May 2025 17:35:05 -0600
Subject: [PATCH 05/11] regen
Signed-off-by: jukie <10012479+Jukie@users.noreply.github.com>
---
...rlapping-hostnames-and-certs-merged-gateways.out.yaml | 9 +++++++++
...s-with-overlapping-hostnames-merged-gateways.out.yaml | 9 +++++++++
2 files changed, 18 insertions(+)
diff --git a/internal/gatewayapi/testdata/gateway-with-multiple-https-listeners-with-overlapping-hostnames-and-certs-merged-gateways.out.yaml b/internal/gatewayapi/testdata/gateway-with-multiple-https-listeners-with-overlapping-hostnames-and-certs-merged-gateways.out.yaml
index f768e82020..ec8dab8c2c 100644
--- a/internal/gatewayapi/testdata/gateway-with-multiple-https-listeners-with-overlapping-hostnames-and-certs-merged-gateways.out.yaml
+++ b/internal/gatewayapi/testdata/gateway-with-multiple-https-listeners-with-overlapping-hostnames-and-certs-merged-gateways.out.yaml
@@ -191,12 +191,21 @@ xdsIR:
port: 10443
routes:
- destination:
+ metadata:
+ kind: HTTPRoute
+ name: httproute-1
+ namespace: envoy-gateway
name: httproute/envoy-gateway/httproute-1/rule/0
settings:
- addressType: IP
endpoints:
- host: 7.7.7.7
port: 8080
+ metadata:
+ kind: Service
+ name: service-1
+ namespace: envoy-gateway
+ sectionName: "8080"
name: httproute/envoy-gateway/httproute-1/rule/0/backend/0
protocol: HTTP
weight: 1
diff --git a/internal/gatewayapi/testdata/gateway-with-multiple-https-listeners-with-overlapping-hostnames-merged-gateways.out.yaml b/internal/gatewayapi/testdata/gateway-with-multiple-https-listeners-with-overlapping-hostnames-merged-gateways.out.yaml
index 0bb6b6492d..a6f72a2c85 100644
--- a/internal/gatewayapi/testdata/gateway-with-multiple-https-listeners-with-overlapping-hostnames-merged-gateways.out.yaml
+++ b/internal/gatewayapi/testdata/gateway-with-multiple-https-listeners-with-overlapping-hostnames-merged-gateways.out.yaml
@@ -227,12 +227,21 @@ xdsIR:
port: 10443
routes:
- destination:
+ metadata:
+ kind: HTTPRoute
+ name: httproute-1
+ namespace: envoy-gateway
name: httproute/envoy-gateway/httproute-1/rule/0
settings:
- addressType: IP
endpoints:
- host: 7.7.7.7
port: 8080
+ metadata:
+ kind: Service
+ name: service-1
+ namespace: envoy-gateway
+ sectionName: "8080"
name: httproute/envoy-gateway/httproute-1/rule/0/backend/0
protocol: HTTP
weight: 1
From eaa03039e350c95ceaf7ea6a5b34378b47bda31e Mon Sep 17 00:00:00 2001
From: jukie <10012479+Jukie@users.noreply.github.com>
Date: Tue, 27 May 2025 22:21:45 -0600
Subject: [PATCH 06/11] remove weighted locality config
Signed-off-by: jukie <10012479+Jukie@users.noreply.github.com>
---
api/v1alpha1/loadbalancer_types.go | 41 +-
api/v1alpha1/zz_generated.deepcopy.go | 56 ---
....envoyproxy.io_backendtrafficpolicies.yaml | 50 +--
....envoyproxy.io_envoyextensionpolicies.yaml | 52 +--
.../gateway.envoyproxy.io_envoyproxies.yaml | 245 +----------
...ateway.envoyproxy.io_securitypolicies.yaml | 208 +---------
....envoyproxy.io_backendtrafficpolicies.yaml | 50 +--
....envoyproxy.io_envoyextensionpolicies.yaml | 52 +--
.../gateway.envoyproxy.io_envoyproxies.yaml | 245 +----------
...ateway.envoyproxy.io_securitypolicies.yaml | 208 +---------
site/content/en/latest/api/extension_types.md | 40 --
.../backendtrafficpolicy_test.go | 64 +--
test/helm/gateway-crds-helm/all.out.yaml | 387 ------------------
.../envoy-gateway-crds.out.yaml | 387 ------------------
14 files changed, 81 insertions(+), 2004 deletions(-)
diff --git a/api/v1alpha1/loadbalancer_types.go b/api/v1alpha1/loadbalancer_types.go
index 00d7d78c2f..e263ab03a8 100644
--- a/api/v1alpha1/loadbalancer_types.go
+++ b/api/v1alpha1/loadbalancer_types.go
@@ -12,7 +12,7 @@ import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
//
// +kubebuilder:validation:XValidation:rule="self.type == 'ConsistentHash' ? has(self.consistentHash) : !has(self.consistentHash)",message="If LoadBalancer type is consistentHash, consistentHash field needs to be set."
// +kubebuilder:validation:XValidation:rule="self.type in ['Random', 'ConsistentHash'] ? !has(self.slowStart) : true ",message="Currently SlowStart is only supported for RoundRobin and LeastRequest load balancers."
-// +kubebuilder:validation:XValidation:rule="self.type == 'ConsistentHash' ? (!has(self.requestDistribution) || !has(self.requestDistribution.preferLocalZone)) : true ",message="ConsistentHash load balancer only supports weightedLocality in requestDistribution; preferLocalZone is not allowed."
+// +kubebuilder:validation:XValidation:rule="self.type == 'ConsistentHash' ? !has(self.requestDistribution) : true ",message="Currently RequestDistribution is only supported for LeastRequest, Random, and RoundRobin load balancers."
type LoadBalancer struct {
// Type decides the type of Load Balancer policy.
// Valid LoadBalancerType values are
@@ -144,22 +144,12 @@ type SlowStart struct {
}
// RequestDistribution defines the configuration related to the distribution of requests between localities.
-// Exactly one of PreferLocalZone or WeightedLocality must be specified.
-//
-// +kubebuilder:validation:XValidation:rule="!(has(self.preferLocalZone) && has(self.weightedLocality))",message="only one of preferLocalZone or weightedLocality may be specified."
-// +kubebuilder:validation:XValidation:rule="!(!has(self.preferLocalZone) && !has(self.weightedLocality))",message="one of preferLocalZone or weightedLocality must be specified."
type RequestDistribution struct {
// PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
//
// +optional
// +notImplementedHide
PreferLocalZone *PreferLocalZone `json:"preferLocalZone,omitempty"`
-
- // WeightedLocality configures explicit weights for each locality.
- //
- // +optional
- // +notImplementedHide
- WeightedLocality *WeightedLocality `json:"weightedLocality,omitempty"`
}
// PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
@@ -195,32 +185,3 @@ type ForceLocalZone struct {
// +notImplementedHide
MinZoneSize *uint32 `json:"minZoneSize,omitempty"`
}
-
-// WeightedLocality defines explicit traffic weights per locality.
-type WeightedLocality struct {
- // Weights specifies a list of localities and their corresponding traffic weights.
- //
- // +notImplementedHide
- Weights []LocalityWeights `json:"weights"`
-}
-
-// LocalityWeights associates a locality with a traffic weight.
-type LocalityWeights struct {
- // Locality defines locality information for which the weight applies.
- //
- // +notImplementedHide
- Locality Locality `json:"locality"`
-
- // Weight is the relative weight for traffic distribution to the specified locality.
- //
- // +notImplementedHide
- Weight uint32 `json:"weight"`
-}
-
-// Locality specifies the details of a particular locality. Currently only Zone is supported.
-type Locality struct {
- // Zone is the name of the locality zone (e.g. topology.kubernetes.io/zone).
- //
- // +notImplementedHide
- Zone string `json:"zone"`
-}
diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go
index 82bddec87e..2d26e8eea9 100644
--- a/api/v1alpha1/zz_generated.deepcopy.go
+++ b/api/v1alpha1/zz_generated.deepcopy.go
@@ -4379,37 +4379,6 @@ func (in *LocalRateLimit) DeepCopy() *LocalRateLimit {
return out
}
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Locality) DeepCopyInto(out *Locality) {
- *out = *in
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Locality.
-func (in *Locality) DeepCopy() *Locality {
- if in == nil {
- return nil
- }
- out := new(Locality)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *LocalityWeights) DeepCopyInto(out *LocalityWeights) {
- *out = *in
- out.Locality = in.Locality
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalityWeights.
-func (in *LocalityWeights) DeepCopy() *LocalityWeights {
- if in == nil {
- return nil
- }
- out := new(LocalityWeights)
- in.DeepCopyInto(out)
- return out
-}
-
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Lua) DeepCopyInto(out *Lua) {
*out = *in
@@ -5674,11 +5643,6 @@ func (in *RequestDistribution) DeepCopyInto(out *RequestDistribution) {
*out = new(PreferLocalZone)
(*in).DeepCopyInto(*out)
}
- if in.WeightedLocality != nil {
- in, out := &in.WeightedLocality, &out.WeightedLocality
- *out = new(WeightedLocality)
- (*in).DeepCopyInto(*out)
- }
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestDistribution.
@@ -6492,26 +6456,6 @@ func (in *WasmEnv) DeepCopy() *WasmEnv {
return out
}
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *WeightedLocality) DeepCopyInto(out *WeightedLocality) {
- *out = *in
- if in.Weights != nil {
- in, out := &in.Weights, &out.Weights
- *out = make([]LocalityWeights, len(*in))
- copy(*out, *in)
- }
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WeightedLocality.
-func (in *WeightedLocality) DeepCopy() *WeightedLocality {
- if in == nil {
- return nil
- }
- out := new(WeightedLocality)
- in.DeepCopyInto(out)
- return out
-}
-
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *XDSTranslatorHooks) DeepCopyInto(out *XDSTranslatorHooks) {
*out = *in
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index 38cd5b969d..c60b839b7c 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -677,49 +677,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit weights
- for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities and
- their corresponding traffic weights.
- items:
- description: LocalityWeights associates a locality with
- a traffic weight.
- properties:
- locality:
- description: Locality defines locality information
- for which the weight applies.
- properties:
- zone:
- description: Zone is the name of the locality
- zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative weight for traffic
- distribution to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality may
- be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality must be
- specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -762,10 +720,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
- - message: ConsistentHash load balancer only supports weightedLocality
- in requestDistribution; preferLocalZone is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone)) : true '
+ - message: Currently RequestDistribution is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ : true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index 1e092262a1..bbe50d4621 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -772,50 +772,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates a
- locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of the
- locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative weight
- for traffic distribution to the specified
- locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -858,11 +815,10 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports weightedLocality
- in requestDistribution; preferLocalZone is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone)) :
- true '
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
communicating with the backend.
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
index fb1f0332fe..bf5b5f0410 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11308,61 +11308,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality
- configures explicit weights
- for each locality.
- properties:
- weights:
- description: Weights specifies
- a list of localities and
- their corresponding traffic
- weights.
- items:
- description: LocalityWeights
- associates a locality
- with a traffic weight.
- properties:
- locality:
- description: Locality
- defines locality information
- for which the weight
- applies.
- properties:
- zone:
- description: Zone
- is the name of
- the locality zone
- (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight
- is the relative weight
- for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone
- or weightedLocality may be specified.
- rule: '!(has(self.preferLocalZone)
- && has(self.weightedLocality))'
- - message: one of preferLocalZone
- or weightedLocality must be specified.
- rule: '!(!has(self.preferLocalZone)
- && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -11406,14 +11352,12 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer
- only supports weightedLocality in
- requestDistribution; preferLocalZone
- is not allowed.
+ - message: Currently RequestDistribution
+ is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
- : true '
+ ? !has(self.requestDistribution) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -12436,61 +12380,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality
- configures explicit weights
- for each locality.
- properties:
- weights:
- description: Weights specifies
- a list of localities and
- their corresponding traffic
- weights.
- items:
- description: LocalityWeights
- associates a locality
- with a traffic weight.
- properties:
- locality:
- description: Locality
- defines locality information
- for which the weight
- applies.
- properties:
- zone:
- description: Zone
- is the name of
- the locality zone
- (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight
- is the relative weight
- for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone
- or weightedLocality may be specified.
- rule: '!(has(self.preferLocalZone)
- && has(self.weightedLocality))'
- - message: one of preferLocalZone
- or weightedLocality must be specified.
- rule: '!(!has(self.preferLocalZone)
- && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -12534,14 +12424,12 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer
- only supports weightedLocality in
- requestDistribution; preferLocalZone
- is not allowed.
+ - message: Currently RequestDistribution
+ is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
- : true '
+ ? !has(self.requestDistribution) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -13631,56 +13519,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures
- explicit weights for each locality.
- properties:
- weights:
- description: Weights specifies a
- list of localities and their corresponding
- traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines
- locality information for
- which the weight applies.
- properties:
- zone:
- description: Zone is the
- name of the locality
- zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the
- relative weight for traffic
- distribution to the specified
- locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or
- weightedLocality may be specified.
- rule: '!(has(self.preferLocalZone) &&
- has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) &&
- !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -13723,11 +13562,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only
- supports weightedLocality in requestDistribution;
- preferLocalZone is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is
+ only supported for LeastRequest, Random,
+ and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
@@ -14753,53 +14591,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list
- of localities and their corresponding
- traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight
- applies.
- properties:
- zone:
- description: Zone is the name
- of the locality zone (e.g.
- topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -14842,11 +14634,10 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load
+ balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
index 551b99fa78..6f76e7b103 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1272,50 +1272,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of
- the locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution to
- the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -1358,11 +1315,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -2281,50 +2236,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of
- the locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution to
- the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -2367,11 +2279,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -3497,53 +3407,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures
- explicit weights for each locality.
- properties:
- weights:
- description: Weights specifies a list
- of localities and their corresponding
- traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines
- locality information for which
- the weight applies.
- properties:
- zone:
- description: Zone is the name
- of the locality zone (e.g.
- topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -3586,11 +3450,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only
+ supported for LeastRequest, Random, and RoundRobin
+ load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -4688,50 +4551,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of
- the locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution to
- the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -4774,11 +4594,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index aa8971d9ac..78066e5cf2 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -676,49 +676,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit weights
- for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities and
- their corresponding traffic weights.
- items:
- description: LocalityWeights associates a locality with
- a traffic weight.
- properties:
- locality:
- description: Locality defines locality information
- for which the weight applies.
- properties:
- zone:
- description: Zone is the name of the locality
- zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative weight for traffic
- distribution to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality may
- be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality must be
- specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -761,10 +719,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
- - message: ConsistentHash load balancer only supports weightedLocality
- in requestDistribution; preferLocalZone is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone)) : true '
+ - message: Currently RequestDistribution is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ : true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index 6f6e343558..c36d1b1b10 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -771,50 +771,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates a
- locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of the
- locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative weight
- for traffic distribution to the specified
- locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -857,11 +814,10 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports weightedLocality
- in requestDistribution; preferLocalZone is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone)) :
- true '
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
communicating with the backend.
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
index f39a6f6534..f1d1cae238 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11307,61 +11307,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality
- configures explicit weights
- for each locality.
- properties:
- weights:
- description: Weights specifies
- a list of localities and
- their corresponding traffic
- weights.
- items:
- description: LocalityWeights
- associates a locality
- with a traffic weight.
- properties:
- locality:
- description: Locality
- defines locality information
- for which the weight
- applies.
- properties:
- zone:
- description: Zone
- is the name of
- the locality zone
- (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight
- is the relative weight
- for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone
- or weightedLocality may be specified.
- rule: '!(has(self.preferLocalZone)
- && has(self.weightedLocality))'
- - message: one of preferLocalZone
- or weightedLocality must be specified.
- rule: '!(!has(self.preferLocalZone)
- && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -11405,14 +11351,12 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer
- only supports weightedLocality in
- requestDistribution; preferLocalZone
- is not allowed.
+ - message: Currently RequestDistribution
+ is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
- : true '
+ ? !has(self.requestDistribution) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -12435,61 +12379,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality
- configures explicit weights
- for each locality.
- properties:
- weights:
- description: Weights specifies
- a list of localities and
- their corresponding traffic
- weights.
- items:
- description: LocalityWeights
- associates a locality
- with a traffic weight.
- properties:
- locality:
- description: Locality
- defines locality information
- for which the weight
- applies.
- properties:
- zone:
- description: Zone
- is the name of
- the locality zone
- (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight
- is the relative weight
- for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone
- or weightedLocality may be specified.
- rule: '!(has(self.preferLocalZone)
- && has(self.weightedLocality))'
- - message: one of preferLocalZone
- or weightedLocality must be specified.
- rule: '!(!has(self.preferLocalZone)
- && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -12533,14 +12423,12 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer
- only supports weightedLocality in
- requestDistribution; preferLocalZone
- is not allowed.
+ - message: Currently RequestDistribution
+ is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
- : true '
+ ? !has(self.requestDistribution) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -13630,56 +13518,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures
- explicit weights for each locality.
- properties:
- weights:
- description: Weights specifies a
- list of localities and their corresponding
- traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines
- locality information for
- which the weight applies.
- properties:
- zone:
- description: Zone is the
- name of the locality
- zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the
- relative weight for traffic
- distribution to the specified
- locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or
- weightedLocality may be specified.
- rule: '!(has(self.preferLocalZone) &&
- has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) &&
- !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -13722,11 +13561,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only
- supports weightedLocality in requestDistribution;
- preferLocalZone is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is
+ only supported for LeastRequest, Random,
+ and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
@@ -14752,53 +14590,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list
- of localities and their corresponding
- traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight
- applies.
- properties:
- zone:
- description: Zone is the name
- of the locality zone (e.g.
- topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -14841,11 +14633,10 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load
+ balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
index 935a72ca95..7a0f98fe04 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1271,50 +1271,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of
- the locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution to
- the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -1357,11 +1314,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -2280,50 +2235,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of
- the locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution to
- the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -2366,11 +2278,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -3496,53 +3406,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures
- explicit weights for each locality.
- properties:
- weights:
- description: Weights specifies a list
- of localities and their corresponding
- traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines
- locality information for which
- the weight applies.
- properties:
- zone:
- description: Zone is the name
- of the locality zone (e.g.
- topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -3585,11 +3449,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only
+ supported for LeastRequest, Random, and RoundRobin
+ load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -4687,50 +4550,7 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of
- the locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution to
- the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -4773,11 +4593,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/site/content/en/latest/api/extension_types.md b/site/content/en/latest/api/extension_types.md
index f14d4bda5e..d866d3b094 100644
--- a/site/content/en/latest/api/extension_types.md
+++ b/site/content/en/latest/api/extension_types.md
@@ -3061,32 +3061,6 @@ _Appears in:_
| `rules` | _[RateLimitRule](#ratelimitrule) array_ | false | | Rules are a list of RateLimit selectors and limits. If a request matches
multiple rules, the strictest limit is applied. For example, if a request
matches two rules, one with 10rps and one with 20rps, the final limit will
be based on the rule with 10rps. |
-#### Locality
-
-
-
-Locality specifies the details of a particular locality. Currently only Zone is supported.
-
-_Appears in:_
-- [LocalityWeights](#localityweights)
-
-| Field | Type | Required | Default | Description |
-| --- | --- | --- | --- | --- |
-
-
-#### LocalityWeights
-
-
-
-LocalityWeights associates a locality with a traffic weight.
-
-_Appears in:_
-- [WeightedLocality](#weightedlocality)
-
-| Field | Type | Required | Default | Description |
-| --- | --- | --- | --- | --- |
-
-
#### LogLevel
_Underlying type:_ _string_
@@ -4168,7 +4142,6 @@ _Appears in:_
RequestDistribution defines the configuration related to the distribution of requests between localities.
-Exactly one of PreferLocalZone or WeightedLocality must be specified.
_Appears in:_
- [LoadBalancer](#loadbalancer)
@@ -4915,19 +4888,6 @@ _Appears in:_
| `hostKeys` | _string array_ | false | | HostKeys is a list of keys for environment variables from the host envoy process
that should be passed into the Wasm VM. This is useful for passing secrets to to Wasm extensions. |
-#### WeightedLocality
-
-
-
-WeightedLocality defines explicit traffic weights per locality.
-
-_Appears in:_
-- [RequestDistribution](#requestdistribution)
-
-| Field | Type | Required | Default | Description |
-| --- | --- | --- | --- | --- |
-
-
#### WithUnderscoresAction
_Underlying type:_ _string_
diff --git a/test/cel-validation/backendtrafficpolicy_test.go b/test/cel-validation/backendtrafficpolicy_test.go
index 0bb02fb884..1160321347 100644
--- a/test/cel-validation/backendtrafficpolicy_test.go
+++ b/test/cel-validation/backendtrafficpolicy_test.go
@@ -343,7 +343,7 @@ func TestBackendTrafficPolicyTarget(t *testing.T) {
},
},
{
- desc: "consistentHash lb with requestDistribution.preferLocalZone",
+ desc: "consistentHash lb with requestDistribution",
mutate: func(btp *egv1a1.BackendTrafficPolicy) {
btp.Spec = egv1a1.BackendTrafficPolicySpec{
PolicyTargetReferences: egv1a1.PolicyTargetReferences{
@@ -369,39 +369,9 @@ func TestBackendTrafficPolicyTarget(t *testing.T) {
}
},
wantErrors: []string{
- "spec.loadBalancer: Invalid value: \"object\": ConsistentHash load balancer only supports weightedLocality in requestDistribution; preferLocalZone is not allowed",
+ "spec.loadBalancer: Invalid value: \"object\": Currently RequestDistribution is only supported for LeastRequest, Random, and RoundRobin load balancers",
},
},
- {
- desc: "consistentHash lb with requestDistribution.weightedLocality",
- mutate: func(btp *egv1a1.BackendTrafficPolicy) {
- btp.Spec = egv1a1.BackendTrafficPolicySpec{
- PolicyTargetReferences: egv1a1.PolicyTargetReferences{
- TargetRef: &gwapiv1a2.LocalPolicyTargetReferenceWithSectionName{
- LocalPolicyTargetReference: gwapiv1a2.LocalPolicyTargetReference{
- Group: gwapiv1a2.Group("gateway.networking.k8s.io"),
- Kind: gwapiv1a2.Kind("Gateway"),
- Name: gwapiv1a2.ObjectName("eg"),
- },
- },
- },
- ClusterSettings: egv1a1.ClusterSettings{
- LoadBalancer: &egv1a1.LoadBalancer{
- Type: egv1a1.ConsistentHashLoadBalancerType,
- ConsistentHash: &egv1a1.ConsistentHash{
- Type: "SourceIP",
- },
- RequestDistribution: &egv1a1.RequestDistribution{
- WeightedLocality: &egv1a1.WeightedLocality{
- Weights: []egv1a1.LocalityWeights{},
- },
- },
- },
- },
- }
- },
- wantErrors: []string{},
- },
{
desc: "leastRequest with ConsistentHash nil",
mutate: func(btp *egv1a1.BackendTrafficPolicy) {
@@ -424,36 +394,6 @@ func TestBackendTrafficPolicyTarget(t *testing.T) {
},
wantErrors: []string{},
},
- {
- desc: "leastRequest with RequestDistribution.PreferLocalZone and RequestDistribution.WeightedLocality set",
- mutate: func(btp *egv1a1.BackendTrafficPolicy) {
- btp.Spec = egv1a1.BackendTrafficPolicySpec{
- PolicyTargetReferences: egv1a1.PolicyTargetReferences{
- TargetRef: &gwapiv1a2.LocalPolicyTargetReferenceWithSectionName{
- LocalPolicyTargetReference: gwapiv1a2.LocalPolicyTargetReference{
- Group: gwapiv1a2.Group("gateway.networking.k8s.io"),
- Kind: gwapiv1a2.Kind("Gateway"),
- Name: gwapiv1a2.ObjectName("eg"),
- },
- },
- },
- ClusterSettings: egv1a1.ClusterSettings{
- LoadBalancer: &egv1a1.LoadBalancer{
- Type: egv1a1.LeastRequestLoadBalancerType,
- RequestDistribution: &egv1a1.RequestDistribution{
- WeightedLocality: &egv1a1.WeightedLocality{
- Weights: []egv1a1.LocalityWeights{},
- },
- PreferLocalZone: &egv1a1.PreferLocalZone{},
- },
- },
- },
- }
- },
- wantErrors: []string{
- "spec.loadBalancer.requestDistribution: Invalid value: \"object\": only one of preferLocalZone or weightedLocality may be specified",
- },
- },
{
desc: "leastRequest with RequestDistribution.PreferLocalZone set",
mutate: func(btp *egv1a1.BackendTrafficPolicy) {
diff --git a/test/helm/gateway-crds-helm/all.out.yaml b/test/helm/gateway-crds-helm/all.out.yaml
index 001236f281..89dc9ae083 100644
--- a/test/helm/gateway-crds-helm/all.out.yaml
+++ b/test/helm/gateway-crds-helm/all.out.yaml
@@ -18305,41 +18305,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit weights
- for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities and
- their corresponding traffic weights.
- items:
- description: LocalityWeights associates a locality with
- a traffic weight.
- properties:
- locality:
- description: Locality defines locality information
- for which the weight applies.
- properties:
- zone:
- description: Zone is the name of the locality
- zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative weight for traffic
- distribution to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality may
@@ -21868,42 +21833,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates a
- locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of the
- locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative weight
- for traffic distribution to the specified
- locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
@@ -34874,51 +34803,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality
- configures explicit weights
- for each locality.
- properties:
- weights:
- description: Weights specifies
- a list of localities and
- their corresponding traffic
- weights.
- items:
- description: LocalityWeights
- associates a locality
- with a traffic weight.
- properties:
- locality:
- description: Locality
- defines locality information
- for which the weight
- applies.
- properties:
- zone:
- description: Zone
- is the name of
- the locality zone
- (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight
- is the relative weight
- for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone
@@ -36002,51 +35886,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality
- configures explicit weights
- for each locality.
- properties:
- weights:
- description: Weights specifies
- a list of localities and
- their corresponding traffic
- weights.
- items:
- description: LocalityWeights
- associates a locality
- with a traffic weight.
- properties:
- locality:
- description: Locality
- defines locality information
- for which the weight
- applies.
- properties:
- zone:
- description: Zone
- is the name of
- the locality zone
- (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight
- is the relative weight
- for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone
@@ -37197,46 +37036,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures
- explicit weights for each locality.
- properties:
- weights:
- description: Weights specifies a
- list of localities and their corresponding
- traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines
- locality information for
- which the weight applies.
- properties:
- zone:
- description: Zone is the
- name of the locality
- zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the
- relative weight for traffic
- distribution to the specified
- locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or
@@ -38319,45 +38118,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list
- of localities and their corresponding
- traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight
- applies.
- properties:
- zone:
- description: Zone is the name
- of the locality zone (e.g.
- topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
@@ -40250,42 +40010,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of
- the locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution to
- the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
@@ -41259,42 +40983,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of
- the locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution to
- the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
@@ -42475,45 +42163,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures
- explicit weights for each locality.
- properties:
- weights:
- description: Weights specifies a list
- of localities and their corresponding
- traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines
- locality information for which
- the weight applies.
- properties:
- zone:
- description: Zone is the name
- of the locality zone (e.g.
- topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
@@ -43666,42 +43315,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of
- the locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution to
- the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
diff --git a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
index b856f59695..202b2e48c7 100644
--- a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
+++ b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
@@ -993,41 +993,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit weights
- for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities and
- their corresponding traffic weights.
- items:
- description: LocalityWeights associates a locality with
- a traffic weight.
- properties:
- locality:
- description: Locality defines locality information
- for which the weight applies.
- properties:
- zone:
- description: Zone is the name of the locality
- zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative weight for traffic
- distribution to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality may
@@ -4556,42 +4521,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates a
- locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of the
- locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative weight
- for traffic distribution to the specified
- locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
@@ -17562,51 +17491,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality
- configures explicit weights
- for each locality.
- properties:
- weights:
- description: Weights specifies
- a list of localities and
- their corresponding traffic
- weights.
- items:
- description: LocalityWeights
- associates a locality
- with a traffic weight.
- properties:
- locality:
- description: Locality
- defines locality information
- for which the weight
- applies.
- properties:
- zone:
- description: Zone
- is the name of
- the locality zone
- (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight
- is the relative weight
- for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone
@@ -18690,51 +18574,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality
- configures explicit weights
- for each locality.
- properties:
- weights:
- description: Weights specifies
- a list of localities and
- their corresponding traffic
- weights.
- items:
- description: LocalityWeights
- associates a locality
- with a traffic weight.
- properties:
- locality:
- description: Locality
- defines locality information
- for which the weight
- applies.
- properties:
- zone:
- description: Zone
- is the name of
- the locality zone
- (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight
- is the relative weight
- for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone
@@ -19885,46 +19724,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures
- explicit weights for each locality.
- properties:
- weights:
- description: Weights specifies a
- list of localities and their corresponding
- traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines
- locality information for
- which the weight applies.
- properties:
- zone:
- description: Zone is the
- name of the locality
- zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the
- relative weight for traffic
- distribution to the specified
- locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or
@@ -21007,45 +20806,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list
- of localities and their corresponding
- traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight
- applies.
- properties:
- zone:
- description: Zone is the name
- of the locality zone (e.g.
- topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
@@ -22938,42 +22698,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of
- the locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution to
- the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
@@ -23947,42 +23671,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of
- the locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution to
- the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
@@ -25163,45 +24851,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures
- explicit weights for each locality.
- properties:
- weights:
- description: Weights specifies a list
- of localities and their corresponding
- traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines
- locality information for which
- the weight applies.
- properties:
- zone:
- description: Zone is the name
- of the locality zone (e.g.
- topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution
- to the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
@@ -26354,42 +26003,6 @@ spec:
format: int64
type: integer
type: object
- weightedLocality:
- description: WeightedLocality configures explicit
- weights for each locality.
- properties:
- weights:
- description: Weights specifies a list of localities
- and their corresponding traffic weights.
- items:
- description: LocalityWeights associates
- a locality with a traffic weight.
- properties:
- locality:
- description: Locality defines locality
- information for which the weight applies.
- properties:
- zone:
- description: Zone is the name of
- the locality zone (e.g. topology.kubernetes.io/zone).
- type: string
- required:
- - zone
- type: object
- weight:
- description: Weight is the relative
- weight for traffic distribution to
- the specified locality.
- format: int32
- type: integer
- required:
- - locality
- - weight
- type: object
- type: array
- required:
- - weights
- type: object
type: object
x-kubernetes-validations:
- message: only one of preferLocalZone or weightedLocality
From 657f9b01c6ad3a292dba6d2061467e8d8fa1705d Mon Sep 17 00:00:00 2001
From: jukie <10012479+Jukie@users.noreply.github.com>
Date: Tue, 27 May 2025 22:25:28 -0600
Subject: [PATCH 07/11] regen
Signed-off-by: jukie <10012479+Jukie@users.noreply.github.com>
---
test/helm/gateway-crds-helm/all.out.yaml | 168 ++++--------------
.../envoy-gateway-crds.out.yaml | 168 ++++--------------
2 files changed, 78 insertions(+), 258 deletions(-)
diff --git a/test/helm/gateway-crds-helm/all.out.yaml b/test/helm/gateway-crds-helm/all.out.yaml
index 0441cae7ee..285dc9e850 100644
--- a/test/helm/gateway-crds-helm/all.out.yaml
+++ b/test/helm/gateway-crds-helm/all.out.yaml
@@ -18306,13 +18306,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality may
- be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality must be
- specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -18355,10 +18348,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
- - message: ConsistentHash load balancer only supports weightedLocality
- in requestDistribution; preferLocalZone is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone)) : true '
+ - message: Currently RequestDistribution is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ : true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
@@ -21834,13 +21827,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -21883,11 +21869,10 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports weightedLocality
- in requestDistribution; preferLocalZone is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone)) :
- true '
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
communicating with the backend.
@@ -34804,15 +34789,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone
- or weightedLocality may be specified.
- rule: '!(has(self.preferLocalZone)
- && has(self.weightedLocality))'
- - message: one of preferLocalZone
- or weightedLocality must be specified.
- rule: '!(!has(self.preferLocalZone)
- && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -34856,14 +34832,12 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer
- only supports weightedLocality in
- requestDistribution; preferLocalZone
- is not allowed.
+ - message: Currently RequestDistribution
+ is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
- : true '
+ ? !has(self.requestDistribution) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -35887,15 +35861,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone
- or weightedLocality may be specified.
- rule: '!(has(self.preferLocalZone)
- && has(self.weightedLocality))'
- - message: one of preferLocalZone
- or weightedLocality must be specified.
- rule: '!(!has(self.preferLocalZone)
- && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -35939,14 +35904,12 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer
- only supports weightedLocality in
- requestDistribution; preferLocalZone
- is not allowed.
+ - message: Currently RequestDistribution
+ is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
- : true '
+ ? !has(self.requestDistribution) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -37037,15 +37000,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or
- weightedLocality may be specified.
- rule: '!(has(self.preferLocalZone) &&
- has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) &&
- !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -37088,11 +37042,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only
- supports weightedLocality in requestDistribution;
- preferLocalZone is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is
+ only supported for LeastRequest, Random,
+ and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
@@ -38119,13 +38072,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -38168,11 +38114,10 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load
+ balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -40011,13 +39956,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -40060,11 +39998,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -40984,13 +40920,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -41033,11 +40962,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -42164,13 +42091,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -42213,11 +42133,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only
+ supported for LeastRequest, Random, and RoundRobin
+ load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -43318,13 +43237,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -43367,11 +43279,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
index 70eb57c6b2..416b737cbc 100644
--- a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
+++ b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
@@ -994,13 +994,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality may
- be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality must be
- specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -1043,10 +1036,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
- - message: ConsistentHash load balancer only supports weightedLocality
- in requestDistribution; preferLocalZone is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone)) : true '
+ - message: Currently RequestDistribution is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ : true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
@@ -4522,13 +4515,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -4571,11 +4557,10 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports weightedLocality
- in requestDistribution; preferLocalZone is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone)) :
- true '
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ : true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
communicating with the backend.
@@ -17492,15 +17477,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone
- or weightedLocality may be specified.
- rule: '!(has(self.preferLocalZone)
- && has(self.weightedLocality))'
- - message: one of preferLocalZone
- or weightedLocality must be specified.
- rule: '!(!has(self.preferLocalZone)
- && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -17544,14 +17520,12 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer
- only supports weightedLocality in
- requestDistribution; preferLocalZone
- is not allowed.
+ - message: Currently RequestDistribution
+ is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
- : true '
+ ? !has(self.requestDistribution) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -18575,15 +18549,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone
- or weightedLocality may be specified.
- rule: '!(has(self.preferLocalZone)
- && has(self.weightedLocality))'
- - message: one of preferLocalZone
- or weightedLocality must be specified.
- rule: '!(!has(self.preferLocalZone)
- && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -18627,14 +18592,12 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer
- only supports weightedLocality in
- requestDistribution; preferLocalZone
- is not allowed.
+ - message: Currently RequestDistribution
+ is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
- : true '
+ ? !has(self.requestDistribution) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -19725,15 +19688,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or
- weightedLocality may be specified.
- rule: '!(has(self.preferLocalZone) &&
- has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) &&
- !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -19776,11 +19730,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only
- supports weightedLocality in requestDistribution;
- preferLocalZone is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is
+ only supported for LeastRequest, Random,
+ and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
@@ -20807,13 +20760,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -20856,11 +20802,10 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load
+ balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -22699,13 +22644,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -22748,11 +22686,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -23672,13 +23608,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -23721,11 +23650,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -24852,13 +24779,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -24901,11 +24821,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only
+ supported for LeastRequest, Random, and RoundRobin
+ load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -26006,13 +25925,6 @@ spec:
type: integer
type: object
type: object
- x-kubernetes-validations:
- - message: only one of preferLocalZone or weightedLocality
- may be specified.
- rule: '!(has(self.preferLocalZone) && has(self.weightedLocality))'
- - message: one of preferLocalZone or weightedLocality
- must be specified.
- rule: '!(!has(self.preferLocalZone) && !has(self.weightedLocality))'
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -26055,11 +25967,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: ConsistentHash load balancer only supports
- weightedLocality in requestDistribution; preferLocalZone
- is not allowed.
- rule: 'self.type == ''ConsistentHash'' ? (!has(self.requestDistribution)
- || !has(self.requestDistribution.preferLocalZone))
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
From 45ea6d2723e18977c415e0beec2834a7d114a84c Mon Sep 17 00:00:00 2001
From: jukie <10012479+Jukie@users.noreply.github.com>
Date: Sun, 22 Jun 2025 18:31:24 -0600
Subject: [PATCH 08/11] Remove requestDistribution field
Signed-off-by: jukie <10012479+Jukie@users.noreply.github.com>
---
api/v1alpha1/loadbalancer_types.go | 43 +-
api/v1alpha1/zz_generated.deepcopy.go | 93 +--
....envoyproxy.io_backendtrafficpolicies.yaml | 62 +-
....envoyproxy.io_envoyextensionpolicies.yaml | 63 +-
.../gateway.envoyproxy.io_envoyproxies.yaml | 279 +++-----
...ateway.envoyproxy.io_securitypolicies.yaml | 263 +++----
....envoyproxy.io_backendtrafficpolicies.yaml | 62 +-
....envoyproxy.io_envoyextensionpolicies.yaml | 63 +-
.../gateway.envoyproxy.io_envoyproxies.yaml | 279 +++-----
...ateway.envoyproxy.io_securitypolicies.yaml | 263 +++----
site/content/en/latest/api/extension_types.md | 45 +-
.../backendtrafficpolicy_test.go | 16 +-
test/helm/gateway-crds-helm/all.out.yaml | 667 +++++++-----------
.../envoy-gateway-crds.out.yaml | 667 +++++++-----------
14 files changed, 1158 insertions(+), 1707 deletions(-)
diff --git a/api/v1alpha1/loadbalancer_types.go b/api/v1alpha1/loadbalancer_types.go
index e263ab03a8..8da41e11cc 100644
--- a/api/v1alpha1/loadbalancer_types.go
+++ b/api/v1alpha1/loadbalancer_types.go
@@ -12,7 +12,7 @@ import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
//
// +kubebuilder:validation:XValidation:rule="self.type == 'ConsistentHash' ? has(self.consistentHash) : !has(self.consistentHash)",message="If LoadBalancer type is consistentHash, consistentHash field needs to be set."
// +kubebuilder:validation:XValidation:rule="self.type in ['Random', 'ConsistentHash'] ? !has(self.slowStart) : true ",message="Currently SlowStart is only supported for RoundRobin and LeastRequest load balancers."
-// +kubebuilder:validation:XValidation:rule="self.type == 'ConsistentHash' ? !has(self.requestDistribution) : true ",message="Currently RequestDistribution is only supported for LeastRequest, Random, and RoundRobin load balancers."
+// +kubebuilder:validation:XValidation:rule="self.type == 'ConsistentHash' ? !has(self.zoneAware) : true ",message="Currently ZoneAware is only supported for LeastRequest, Random, and RoundRobin load balancers."
type LoadBalancer struct {
// Type decides the type of Load Balancer policy.
// Valid LoadBalancerType values are
@@ -36,11 +36,11 @@ type LoadBalancer struct {
// +optional
SlowStart *SlowStart `json:"slowStart,omitempty"`
- // RequestDistribution defines the configuration related to the distribution of requests between localities.
+ // ZoneAware configures zone-aware routing to prefer sending traffic to the local locality zone.
//
// +optional
// +notImplementedHide
- RequestDistribution *RequestDistribution `json:"requestDistribution,omitempty"`
+ ZoneAware *ZoneAware `json:"zoneAware,omitempty"`
}
// LoadBalancerType specifies the types of LoadBalancer.
@@ -143,45 +143,30 @@ type SlowStart struct {
// TODO: Add support for non-linear traffic increases based on user usage.
}
-// RequestDistribution defines the configuration related to the distribution of requests between localities.
-type RequestDistribution struct {
- // PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
- //
- // +optional
- // +notImplementedHide
- PreferLocalZone *PreferLocalZone `json:"preferLocalZone,omitempty"`
-}
-
-// PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
-type PreferLocalZone struct {
+// ZoneAware configures zone-aware routing to prefer sending traffic to the local locality zone.
+type ZoneAware struct {
// ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
// which maintains equal distribution among upstreams while sending as much traffic as possible locally.
//
// +optional
// +notImplementedHide
- ForceLocalZone *ForceLocalZone `json:"forceLocalZone,omitempty"`
+ ForceLocal *ForceLocal `json:"forceLocal,omitempty"`
- // MinClusterSize is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ // MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ // Envoy defaults to 6 if not specified.
//
// +optional
// +notImplementedHide
- MinClusterSize *uint64 `json:"minClusterSize,omitempty"`
+ MinEndpointsCount *uint64 `json:"minEndpointsCount,omitempty"`
}
-// ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+// ForceLocal defines override configuration for forcing all traffic to stay local vs Envoy default behavior
// which maintains equal distribution among upstreams while sending as much traffic as possible locally.
-type ForceLocalZone struct {
- // Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- // available.
- //
- // +optional
- // +notImplementedHide
- Enabled *bool `json:"enabled"`
-
- // MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- // override. Defaults to 1 if not specified.
+type ForceLocal struct {
+ // MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ // override. Envoy defaults to 1 if not specified.
//
// +optional
// +notImplementedHide
- MinZoneSize *uint32 `json:"minZoneSize,omitempty"`
+ MinEndpointsInZoneCount *uint32 `json:"minEndpointsInZoneCount,omitempty"`
}
diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go
index 6c162ba3dd..fbeef4c107 100644
--- a/api/v1alpha1/zz_generated.deepcopy.go
+++ b/api/v1alpha1/zz_generated.deepcopy.go
@@ -2878,26 +2878,21 @@ func (in *FilterPosition) DeepCopy() *FilterPosition {
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ForceLocalZone) DeepCopyInto(out *ForceLocalZone) {
+func (in *ForceLocal) DeepCopyInto(out *ForceLocal) {
*out = *in
- if in.Enabled != nil {
- in, out := &in.Enabled, &out.Enabled
- *out = new(bool)
- **out = **in
- }
- if in.MinZoneSize != nil {
- in, out := &in.MinZoneSize, &out.MinZoneSize
+ if in.MinEndpointsInZoneCount != nil {
+ in, out := &in.MinEndpointsInZoneCount, &out.MinEndpointsInZoneCount
*out = new(uint32)
**out = **in
}
}
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ForceLocalZone.
-func (in *ForceLocalZone) DeepCopy() *ForceLocalZone {
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ForceLocal.
+func (in *ForceLocal) DeepCopy() *ForceLocal {
if in == nil {
return nil
}
- out := new(ForceLocalZone)
+ out := new(ForceLocal)
in.DeepCopyInto(out)
return out
}
@@ -4405,9 +4400,9 @@ func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer) {
*out = new(SlowStart)
(*in).DeepCopyInto(*out)
}
- if in.RequestDistribution != nil {
- in, out := &in.RequestDistribution, &out.RequestDistribution
- *out = new(RequestDistribution)
+ if in.ZoneAware != nil {
+ in, out := &in.ZoneAware, &out.ZoneAware
+ *out = new(ZoneAware)
(*in).DeepCopyInto(*out)
}
}
@@ -4892,31 +4887,6 @@ func (in *PolicyTargetReferences) DeepCopy() *PolicyTargetReferences {
return out
}
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PreferLocalZone) DeepCopyInto(out *PreferLocalZone) {
- *out = *in
- if in.ForceLocalZone != nil {
- in, out := &in.ForceLocalZone, &out.ForceLocalZone
- *out = new(ForceLocalZone)
- (*in).DeepCopyInto(*out)
- }
- if in.MinClusterSize != nil {
- in, out := &in.MinClusterSize, &out.MinClusterSize
- *out = new(uint64)
- **out = **in
- }
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreferLocalZone.
-func (in *PreferLocalZone) DeepCopy() *PreferLocalZone {
- if in == nil {
- return nil
- }
- out := new(PreferLocalZone)
- in.DeepCopyInto(out)
- return out
-}
-
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Principal) DeepCopyInto(out *Principal) {
*out = *in
@@ -5765,26 +5735,6 @@ func (in *RequestBuffer) DeepCopy() *RequestBuffer {
return out
}
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *RequestDistribution) DeepCopyInto(out *RequestDistribution) {
- *out = *in
- if in.PreferLocalZone != nil {
- in, out := &in.PreferLocalZone, &out.PreferLocalZone
- *out = new(PreferLocalZone)
- (*in).DeepCopyInto(*out)
- }
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestDistribution.
-func (in *RequestDistribution) DeepCopy() *RequestDistribution {
- if in == nil {
- return nil
- }
- out := new(RequestDistribution)
- in.DeepCopyInto(out)
- return out
-}
-
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RequestHeaderCustomTag) DeepCopyInto(out *RequestHeaderCustomTag) {
*out = *in
@@ -6699,3 +6649,28 @@ func (in *ZipkinTracingProvider) DeepCopy() *ZipkinTracingProvider {
in.DeepCopyInto(out)
return out
}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ZoneAware) DeepCopyInto(out *ZoneAware) {
+ *out = *in
+ if in.ForceLocal != nil {
+ in, out := &in.ForceLocal, &out.ForceLocal
+ *out = new(ForceLocal)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.MinEndpointsCount != nil {
+ in, out := &in.MinEndpointsCount, &out.MinEndpointsCount
+ *out = new(uint64)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ZoneAware.
+func (in *ZoneAware) DeepCopy() *ZoneAware {
+ if in == nil {
+ return nil
+ }
+ out := new(ZoneAware)
+ in.DeepCopyInto(out)
+ return out
+}
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index f42c62c46b..0e92aa7dd6 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -661,39 +661,6 @@ spec:
- message: If consistent hash type is cookie, the cookie field
must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie) : !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration related
- to the distribution of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware routing
- to prefer sending traffic to the local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum number of total
- upstream hosts across all zones required to enable zone-aware
- routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -724,6 +691,29 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing to prefer
+ sending traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -736,10 +726,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
- - message: Currently RequestDistribution is only supported for LeastRequest,
+ - message: Currently ZoneAware is only supported for LeastRequest,
Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
- : true '
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware) :
+ true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index 093e0c610c..8db03df9b9 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -739,40 +739,6 @@ spec:
field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum number
- of total upstream hosts across all zones required
- to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -803,6 +769,29 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -815,9 +804,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
index 5b533481f4..ef81f759ac 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11305,45 +11305,6 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines
- the configuration related to the
- distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer
- sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize
- is the minimum number of
- total upstream hosts across
- all zones required to enable
- zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -11374,6 +11335,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -11387,12 +11372,11 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution
- is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
+ - message: Currently ZoneAware is only
+ supported for LeastRequest, Random,
+ and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.requestDistribution) :
- true '
+ ? !has(self.zoneAware) : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -12384,45 +12368,6 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines
- the configuration related to the
- distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer
- sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize
- is the minimum number of
- total upstream hosts across
- all zones required to enable
- zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -12453,6 +12398,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -12466,12 +12435,11 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution
- is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
+ - message: Currently ZoneAware is only
+ supported for LeastRequest, Random,
+ and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.requestDistribution) :
- true '
+ ? !has(self.zoneAware) : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -13548,42 +13516,6 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines
- the configuration related to the distribution
- of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer sending
- traffic to the local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the
- minimum number of total upstream
- hosts across all zones required
- to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -13614,6 +13546,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware
+ routing to prefer sending traffic to the
+ local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -13626,10 +13582,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is
- only supported for LeastRequest, Random,
- and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported
+ for LeastRequest, Random, and RoundRobin
+ load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
@@ -14627,42 +14583,6 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the
- local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across
- all zones required to enable zone-aware
- routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -14693,6 +14613,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -14705,10 +14649,9 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load
- balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for
+ LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
index 7bf0ad6f74..57b1ece944 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1238,41 +1238,6 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across all
- zones required to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -1303,6 +1268,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -1315,9 +1304,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -2209,41 +2198,6 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across all
- zones required to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -2274,6 +2228,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -2286,9 +2264,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -3386,42 +3364,6 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the
- configuration related to the distribution
- of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer sending traffic
- to the local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across
- all zones required to enable zone-aware
- routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -3452,6 +3394,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -3464,10 +3430,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only
- supported for LeastRequest, Random, and RoundRobin
- load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported
+ for LeastRequest, Random, and RoundRobin load
+ balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -4553,41 +4519,6 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across all
- zones required to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -4618,6 +4549,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -4630,9 +4585,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index c053ecffa3..25c349f1f2 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -660,39 +660,6 @@ spec:
- message: If consistent hash type is cookie, the cookie field
must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie) : !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration related
- to the distribution of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware routing
- to prefer sending traffic to the local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum number of total
- upstream hosts across all zones required to enable zone-aware
- routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -723,6 +690,29 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing to prefer
+ sending traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -735,10 +725,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
- - message: Currently RequestDistribution is only supported for LeastRequest,
+ - message: Currently ZoneAware is only supported for LeastRequest,
Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
- : true '
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware) :
+ true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index 79bba211d4..d2216e6f8c 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -738,40 +738,6 @@ spec:
field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum number
- of total upstream hosts across all zones required
- to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -802,6 +768,29 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -814,9 +803,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
index 438691cf18..27f44d19ff 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11304,45 +11304,6 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines
- the configuration related to the
- distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer
- sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize
- is the minimum number of
- total upstream hosts across
- all zones required to enable
- zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -11373,6 +11334,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -11386,12 +11371,11 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution
- is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
+ - message: Currently ZoneAware is only
+ supported for LeastRequest, Random,
+ and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.requestDistribution) :
- true '
+ ? !has(self.zoneAware) : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -12383,45 +12367,6 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines
- the configuration related to the
- distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer
- sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize
- is the minimum number of
- total upstream hosts across
- all zones required to enable
- zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -12452,6 +12397,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -12465,12 +12434,11 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution
- is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
+ - message: Currently ZoneAware is only
+ supported for LeastRequest, Random,
+ and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.requestDistribution) :
- true '
+ ? !has(self.zoneAware) : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -13547,42 +13515,6 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines
- the configuration related to the distribution
- of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer sending
- traffic to the local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the
- minimum number of total upstream
- hosts across all zones required
- to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -13613,6 +13545,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware
+ routing to prefer sending traffic to the
+ local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -13625,10 +13581,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is
- only supported for LeastRequest, Random,
- and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported
+ for LeastRequest, Random, and RoundRobin
+ load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
@@ -14626,42 +14582,6 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the
- local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across
- all zones required to enable zone-aware
- routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -14692,6 +14612,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -14704,10 +14648,9 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load
- balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for
+ LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
index 6c296a0c71..6e9d2a9147 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1237,41 +1237,6 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across all
- zones required to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -1302,6 +1267,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -1314,9 +1303,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -2208,41 +2197,6 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across all
- zones required to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -2273,6 +2227,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -2285,9 +2263,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -3385,42 +3363,6 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the
- configuration related to the distribution
- of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer sending traffic
- to the local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across
- all zones required to enable zone-aware
- routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -3451,6 +3393,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -3463,10 +3429,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only
- supported for LeastRequest, Random, and RoundRobin
- load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported
+ for LeastRequest, Random, and RoundRobin load
+ balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -4552,41 +4518,6 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across all
- zones required to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -4617,6 +4548,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -4629,9 +4584,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/site/content/en/latest/api/extension_types.md b/site/content/en/latest/api/extension_types.md
index 272560a200..8df0fabbb8 100644
--- a/site/content/en/latest/api/extension_types.md
+++ b/site/content/en/latest/api/extension_types.md
@@ -1968,15 +1968,15 @@ _Appears in:_
| `after` | _[EnvoyFilter](#envoyfilter)_ | true | | After defines the filter that should come after the filter.
Only one of Before or After must be set. |
-#### ForceLocalZone
+#### ForceLocal
-ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ForceLocal defines override configuration for forcing all traffic to stay local vs Envoy default behavior
which maintains equal distribution among upstreams while sending as much traffic as possible locally.
_Appears in:_
-- [PreferLocalZone](#preferlocalzone)
+- [ZoneAware](#zoneaware)
| Field | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
@@ -3446,19 +3446,6 @@ _Appears in:_
| `targetSelectors` | _[TargetSelector](#targetselector) array_ | true | | TargetSelectors allow targeting resources for this policy based on labels |
-#### PreferLocalZone
-
-
-
-PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
-
-_Appears in:_
-- [RequestDistribution](#requestdistribution)
-
-| Field | Type | Required | Default | Description |
-| --- | --- | --- | --- | --- |
-
-
#### Principal
@@ -4193,19 +4180,6 @@ _Appears in:_
| --- | --- | --- | --- | --- |
-#### RequestDistribution
-
-
-
-RequestDistribution defines the configuration related to the distribution of requests between localities.
-
-_Appears in:_
-- [LoadBalancer](#loadbalancer)
-
-| Field | Type | Required | Default | Description |
-| --- | --- | --- | --- | --- |
-
-
#### RequestHeaderCustomTag
@@ -5081,3 +5055,16 @@ _Appears in:_
| `disableSharedSpanContext` | _boolean_ | false | | DisableSharedSpanContext determines whether the default Envoy behaviour of
client and server spans sharing the same span context should be disabled. |
+#### ZoneAware
+
+
+
+ZoneAware configures zone-aware routing to prefer sending traffic to the local locality zone.
+
+_Appears in:_
+- [LoadBalancer](#loadbalancer)
+
+| Field | Type | Required | Default | Description |
+| --- | --- | --- | --- | --- |
+
+
diff --git a/test/cel-validation/backendtrafficpolicy_test.go b/test/cel-validation/backendtrafficpolicy_test.go
index 7d71981f67..5770b378d9 100644
--- a/test/cel-validation/backendtrafficpolicy_test.go
+++ b/test/cel-validation/backendtrafficpolicy_test.go
@@ -343,7 +343,7 @@ func TestBackendTrafficPolicyTarget(t *testing.T) {
},
},
{
- desc: "consistentHash lb with requestDistribution",
+ desc: "consistentHash lb with zoneAware",
mutate: func(btp *egv1a1.BackendTrafficPolicy) {
btp.Spec = egv1a1.BackendTrafficPolicySpec{
PolicyTargetReferences: egv1a1.PolicyTargetReferences{
@@ -361,15 +361,13 @@ func TestBackendTrafficPolicyTarget(t *testing.T) {
ConsistentHash: &egv1a1.ConsistentHash{
Type: "SourceIP",
},
- RequestDistribution: &egv1a1.RequestDistribution{
- PreferLocalZone: &egv1a1.PreferLocalZone{},
- },
+ ZoneAware: &egv1a1.ZoneAware{},
},
},
}
},
wantErrors: []string{
- "spec.loadBalancer: Invalid value: \"object\": Currently RequestDistribution is only supported for LeastRequest, Random, and RoundRobin load balancers",
+ "spec.loadBalancer: Invalid value: \"object\": Currently ZoneAware is only supported for LeastRequest, Random, and RoundRobin load balancers",
},
},
{
@@ -395,7 +393,7 @@ func TestBackendTrafficPolicyTarget(t *testing.T) {
wantErrors: []string{},
},
{
- desc: "leastRequest with RequestDistribution.PreferLocalZone set",
+ desc: "leastRequest with ZoneAware set",
mutate: func(btp *egv1a1.BackendTrafficPolicy) {
btp.Spec = egv1a1.BackendTrafficPolicySpec{
PolicyTargetReferences: egv1a1.PolicyTargetReferences{
@@ -409,10 +407,8 @@ func TestBackendTrafficPolicyTarget(t *testing.T) {
},
ClusterSettings: egv1a1.ClusterSettings{
LoadBalancer: &egv1a1.LoadBalancer{
- Type: egv1a1.LeastRequestLoadBalancerType,
- RequestDistribution: &egv1a1.RequestDistribution{
- PreferLocalZone: &egv1a1.PreferLocalZone{},
- },
+ Type: egv1a1.LeastRequestLoadBalancerType,
+ ZoneAware: &egv1a1.ZoneAware{},
},
},
}
diff --git a/test/helm/gateway-crds-helm/all.out.yaml b/test/helm/gateway-crds-helm/all.out.yaml
index 6756fa914f..a1b8392df7 100644
--- a/test/helm/gateway-crds-helm/all.out.yaml
+++ b/test/helm/gateway-crds-helm/all.out.yaml
@@ -18300,39 +18300,6 @@ spec:
- message: If consistent hash type is cookie, the cookie field
must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie) : !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration related
- to the distribution of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware routing
- to prefer sending traffic to the local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum number of total
- upstream hosts across all zones required to enable zone-aware
- routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -18363,6 +18330,29 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing to prefer
+ sending traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -18375,10 +18365,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
- - message: Currently RequestDistribution is only supported for LeastRequest,
+ - message: Currently ZoneAware is only supported for LeastRequest,
Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
- : true '
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware) :
+ true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
@@ -21956,40 +21946,6 @@ spec:
field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum number
- of total upstream hosts across all zones required
- to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -22020,6 +21976,29 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -22032,9 +22011,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
@@ -34961,45 +34940,6 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines
- the configuration related to the
- distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer
- sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize
- is the minimum number of
- total upstream hosts across
- all zones required to enable
- zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -35030,6 +34970,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -35043,12 +35007,11 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution
- is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
+ - message: Currently ZoneAware is only
+ supported for LeastRequest, Random,
+ and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.requestDistribution) :
- true '
+ ? !has(self.zoneAware) : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -36040,45 +36003,6 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines
- the configuration related to the
- distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer
- sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize
- is the minimum number of
- total upstream hosts across
- all zones required to enable
- zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -36109,6 +36033,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -36122,12 +36070,11 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution
- is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
+ - message: Currently ZoneAware is only
+ supported for LeastRequest, Random,
+ and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.requestDistribution) :
- true '
+ ? !has(self.zoneAware) : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -37204,42 +37151,6 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines
- the configuration related to the distribution
- of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer sending
- traffic to the local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the
- minimum number of total upstream
- hosts across all zones required
- to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -37270,6 +37181,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware
+ routing to prefer sending traffic to the
+ local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -37282,10 +37217,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is
- only supported for LeastRequest, Random,
- and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported
+ for LeastRequest, Random, and RoundRobin
+ load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
@@ -38283,42 +38218,6 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the
- local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across
- all zones required to enable zone-aware
- routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -38349,6 +38248,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -38361,10 +38284,9 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load
- balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for
+ LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -40175,41 +40097,6 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across all
- zones required to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -40240,6 +40127,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -40252,9 +40163,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -41146,41 +41057,6 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across all
- zones required to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -41211,6 +41087,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -41223,9 +41123,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -42323,42 +42223,6 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the
- configuration related to the distribution
- of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer sending traffic
- to the local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across
- all zones required to enable zone-aware
- routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -42389,6 +42253,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -42401,10 +42289,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only
- supported for LeastRequest, Random, and RoundRobin
- load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported
+ for LeastRequest, Random, and RoundRobin load
+ balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -43490,41 +43378,6 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across all
- zones required to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -43555,6 +43408,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -43567,9 +43444,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
index 289c374951..47b8a7ce47 100644
--- a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
+++ b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
@@ -988,39 +988,6 @@ spec:
- message: If consistent hash type is cookie, the cookie field
must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie) : !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration related
- to the distribution of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware routing
- to prefer sending traffic to the local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum number of total
- upstream hosts across all zones required to enable zone-aware
- routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -1051,6 +1018,29 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing to prefer
+ sending traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -1063,10 +1053,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
- - message: Currently RequestDistribution is only supported for LeastRequest,
+ - message: Currently ZoneAware is only supported for LeastRequest,
Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
- : true '
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware) :
+ true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
@@ -4644,40 +4634,6 @@ spec:
field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum number
- of total upstream hosts across all zones required
- to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -4708,6 +4664,29 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -4720,9 +4699,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
@@ -17649,45 +17628,6 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines
- the configuration related to the
- distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer
- sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize
- is the minimum number of
- total upstream hosts across
- all zones required to enable
- zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -17718,6 +17658,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -17731,12 +17695,11 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution
- is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
+ - message: Currently ZoneAware is only
+ supported for LeastRequest, Random,
+ and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.requestDistribution) :
- true '
+ ? !has(self.zoneAware) : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -18728,45 +18691,6 @@ spec:
be set.
rule: 'self.type == ''Cookie'' ?
has(self.cookie) : !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines
- the configuration related to the
- distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer
- sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize
- is the minimum number of
- total upstream hosts across
- all zones required to enable
- zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -18797,6 +18721,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -18810,12 +18758,11 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution
- is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
+ - message: Currently ZoneAware is only
+ supported for LeastRequest, Random,
+ and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.requestDistribution) :
- true '
+ ? !has(self.zoneAware) : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -19892,42 +19839,6 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines
- the configuration related to the distribution
- of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer sending
- traffic to the local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the
- minimum number of total upstream
- hosts across all zones required
- to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -19958,6 +19869,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware
+ routing to prefer sending traffic to the
+ local locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -19970,10 +19905,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is
- only supported for LeastRequest, Random,
- and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported
+ for LeastRequest, Random, and RoundRobin
+ load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
@@ -20971,42 +20906,6 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the
- local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across
- all zones required to enable zone-aware
- routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -21037,6 +20936,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -21049,10 +20972,9 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load
- balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for
+ LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -22863,41 +22785,6 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across all
- zones required to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -22928,6 +22815,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -22940,9 +22851,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -23834,41 +23745,6 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across all
- zones required to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -23899,6 +23775,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -23911,9 +23811,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -25011,42 +24911,6 @@ spec:
the cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the
- configuration related to the distribution
- of requests between localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures
- zone-aware routing to prefer sending traffic
- to the local locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across
- all zones required to enable zone-aware
- routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -25077,6 +24941,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -25089,10 +24977,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only
- supported for LeastRequest, Random, and RoundRobin
- load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported
+ for LeastRequest, Random, and RoundRobin load
+ balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -26178,41 +26066,6 @@ spec:
cookie field must be set.
rule: 'self.type == ''Cookie'' ? has(self.cookie)
: !has(self.cookie)'
- requestDistribution:
- description: RequestDistribution defines the configuration
- related to the distribution of requests between
- localities.
- properties:
- preferLocalZone:
- description: PreferLocalZone configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
- properties:
- forceLocalZone:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
- properties:
- enabled:
- description: |-
- Enabled causes Envoy to route all requests to the local zone if there are at least "minZoneSize" healthy hosts
- available.
- type: boolean
- minZoneSize:
- description: |-
- MinZoneSize is the minimum number of upstream hosts in the local zone required to honor the forceLocalZone
- override. Defaults to 1 if not specified.
- format: int32
- type: integer
- type: object
- minClusterSize:
- description: MinClusterSize is the minimum
- number of total upstream hosts across all
- zones required to enable zone-aware routing.
- format: int64
- type: integer
- type: object
- type: object
slowStart:
description: |-
SlowStart defines the configuration related to the slow start load balancer policy.
@@ -26243,6 +26096,30 @@ spec:
- Random
- RoundRobin
type: string
+ zoneAware:
+ description: ZoneAware configures zone-aware routing
+ to prefer sending traffic to the local locality
+ zone.
+ properties:
+ forceLocal:
+ description: |-
+ ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
+ override. Envoy defaults to 1 if not specified.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: |-
+ MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
+ Envoy defaults to 6 if not specified.
+ format: int64
+ type: integer
+ type: object
required:
- type
type: object
@@ -26255,9 +26132,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
From ed66bf7014248c9a0f5a47c63ea683d05822abf3 Mon Sep 17 00:00:00 2001
From: jukie <10012479+Jukie@users.noreply.github.com>
Date: Thu, 26 Jun 2025 12:19:06 -0600
Subject: [PATCH 09/11] updates
Signed-off-by: jukie <10012479+Jukie@users.noreply.github.com>
---
api/v1alpha1/loadbalancer_types.go | 30 ++-
api/v1alpha1/zz_generated.deepcopy.go | 44 ++--
....envoyproxy.io_backendtrafficpolicies.yaml | 43 ++--
....envoyproxy.io_envoyextensionpolicies.yaml | 44 ++--
.../gateway.envoyproxy.io_envoyproxies.yaml | 201 ++++++++++--------
...ateway.envoyproxy.io_securitypolicies.yaml | 190 ++++++++++-------
....envoyproxy.io_backendtrafficpolicies.yaml | 43 ++--
....envoyproxy.io_envoyextensionpolicies.yaml | 44 ++--
.../gateway.envoyproxy.io_envoyproxies.yaml | 201 ++++++++++--------
...ateway.envoyproxy.io_securitypolicies.yaml | 190 ++++++++++-------
site/content/en/latest/api/extension_types.md | 21 +-
11 files changed, 620 insertions(+), 431 deletions(-)
diff --git a/api/v1alpha1/loadbalancer_types.go b/api/v1alpha1/loadbalancer_types.go
index 8da41e11cc..5761f23c82 100644
--- a/api/v1alpha1/loadbalancer_types.go
+++ b/api/v1alpha1/loadbalancer_types.go
@@ -36,7 +36,7 @@ type LoadBalancer struct {
// +optional
SlowStart *SlowStart `json:"slowStart,omitempty"`
- // ZoneAware configures zone-aware routing to prefer sending traffic to the local locality zone.
+ // ZoneAware defines the configuration related to the distribution of requests between locality zones.
//
// +optional
// +notImplementedHide
@@ -143,28 +143,36 @@ type SlowStart struct {
// TODO: Add support for non-linear traffic increases based on user usage.
}
-// ZoneAware configures zone-aware routing to prefer sending traffic to the local locality zone.
+// ZoneAware defines the configuration related to the distribution of requests between localities.
type ZoneAware struct {
- // ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- // which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ // PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
//
// +optional
// +notImplementedHide
- ForceLocal *ForceLocal `json:"forceLocal,omitempty"`
+ PreferLocal *PreferLocalZone `json:"preferLocal,omitempty"`
+}
+
+// PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
+type PreferLocalZone struct {
+ // ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ // which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ //
+ // +optional
+ // +notImplementedHide
+ Force *ForceLocalZone `json:"force,omitempty"`
- // MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- // Envoy defaults to 6 if not specified.
+ // MinEndpointsCount is the minimum number of total upstream endpoints across all zones required to enable zone-aware routing.
//
// +optional
// +notImplementedHide
MinEndpointsCount *uint64 `json:"minEndpointsCount,omitempty"`
}
-// ForceLocal defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+// ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
// which maintains equal distribution among upstreams while sending as much traffic as possible locally.
-type ForceLocal struct {
- // MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- // override. Envoy defaults to 1 if not specified.
+type ForceLocalZone struct {
+ // MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ // override. This is useful for protecting zones with fewer endpoints.
//
// +optional
// +notImplementedHide
diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go
index 18cf6f1686..05e725161a 100644
--- a/api/v1alpha1/zz_generated.deepcopy.go
+++ b/api/v1alpha1/zz_generated.deepcopy.go
@@ -2883,7 +2883,7 @@ func (in *FilterPosition) DeepCopy() *FilterPosition {
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ForceLocal) DeepCopyInto(out *ForceLocal) {
+func (in *ForceLocalZone) DeepCopyInto(out *ForceLocalZone) {
*out = *in
if in.MinEndpointsInZoneCount != nil {
in, out := &in.MinEndpointsInZoneCount, &out.MinEndpointsInZoneCount
@@ -2892,12 +2892,12 @@ func (in *ForceLocal) DeepCopyInto(out *ForceLocal) {
}
}
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ForceLocal.
-func (in *ForceLocal) DeepCopy() *ForceLocal {
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ForceLocalZone.
+func (in *ForceLocalZone) DeepCopy() *ForceLocalZone {
if in == nil {
return nil
}
- out := new(ForceLocal)
+ out := new(ForceLocalZone)
in.DeepCopyInto(out)
return out
}
@@ -4912,6 +4912,31 @@ func (in *PolicyTargetReferences) DeepCopy() *PolicyTargetReferences {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PreferLocalZone) DeepCopyInto(out *PreferLocalZone) {
+ *out = *in
+ if in.Force != nil {
+ in, out := &in.Force, &out.Force
+ *out = new(ForceLocalZone)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.MinEndpointsCount != nil {
+ in, out := &in.MinEndpointsCount, &out.MinEndpointsCount
+ *out = new(uint64)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreferLocalZone.
+func (in *PreferLocalZone) DeepCopy() *PreferLocalZone {
+ if in == nil {
+ return nil
+ }
+ out := new(PreferLocalZone)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Principal) DeepCopyInto(out *Principal) {
*out = *in
@@ -6678,16 +6703,11 @@ func (in *ZipkinTracingProvider) DeepCopy() *ZipkinTracingProvider {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ZoneAware) DeepCopyInto(out *ZoneAware) {
*out = *in
- if in.ForceLocal != nil {
- in, out := &in.ForceLocal, &out.ForceLocal
- *out = new(ForceLocal)
+ if in.PreferLocal != nil {
+ in, out := &in.PreferLocal, &out.PreferLocal
+ *out = new(PreferLocalZone)
(*in).DeepCopyInto(*out)
}
- if in.MinEndpointsCount != nil {
- in, out := &in.MinEndpointsCount, &out.MinEndpointsCount
- *out = new(uint64)
- **out = **in
- }
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ZoneAware.
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index 0e92aa7dd6..0f1bf4ed5e 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -692,27 +692,32 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing to prefer
- sending traffic to the local locality zone.
+ description: ZoneAware defines the configuration related to the
+ distribution of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware routing
+ to prefer sending traffic to the local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is the minimum number of
+ total upstream endpoints across all zones required to
+ enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -726,10 +731,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
- - message: Currently ZoneAware is only supported for LeastRequest,
+ - message: Currently RequestDistribution is only supported for LeastRequest,
Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware) :
- true '
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ : true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index 8db03df9b9..236b4080e0 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -770,27 +770,33 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is the minimum
+ number of total upstream endpoints across
+ all zones required to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -804,9 +810,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
- - message: Currently ZoneAware is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
index 36e8af9a5e..18d7be941e 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11362,28 +11362,37 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures
- zone-aware routing to prefer sending
- traffic to the local locality zone.
+ description: ZoneAware defines the
+ configuration related to the distribution
+ of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount
+ is the minimum number of
+ total upstream endpoints
+ across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -11398,11 +11407,12 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only
- supported for LeastRequest, Random,
- and RoundRobin load balancers.
+ - message: Currently RequestDistribution
+ is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.zoneAware) : true '
+ ? !has(self.requestDistribution) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -12425,28 +12435,37 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures
- zone-aware routing to prefer sending
- traffic to the local locality zone.
+ description: ZoneAware defines the
+ configuration related to the distribution
+ of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount
+ is the minimum number of
+ total upstream endpoints
+ across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -12461,11 +12480,12 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only
- supported for LeastRequest, Random,
- and RoundRobin load balancers.
+ - message: Currently RequestDistribution
+ is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.zoneAware) : true '
+ ? !has(self.requestDistribution) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -13573,28 +13593,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware
- routing to prefer sending traffic to the
- local locality zone.
+ description: ZoneAware defines the configuration
+ related to the distribution of requests
+ between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is
+ the minimum number of total upstream
+ endpoints across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -13608,10 +13635,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only supported
- for LeastRequest, Random, and RoundRobin
- load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
+ - message: Currently RequestDistribution is
+ only supported for LeastRequest, Random,
+ and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
@@ -14640,28 +14667,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration
+ related to the distribution of requests between
+ locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the
+ local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is the
+ minimum number of total upstream endpoints
+ across all zones required to enable
+ zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -14675,9 +14709,10 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only supported for
- LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load
+ balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
index 57b1ece944..e68ec7cabb 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1269,28 +1269,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality
+ zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is the minimum
+ number of total upstream endpoints across
+ all zones required to enable zone-aware
+ routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -1304,9 +1311,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -2229,28 +2236,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality
+ zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is the minimum
+ number of total upstream endpoints across
+ all zones required to enable zone-aware
+ routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -2264,9 +2278,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -3395,28 +3409,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
+ description: ZoneAware defines the configuration
+ related to the distribution of requests between
+ locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending traffic
+ to the local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is the
+ minimum number of total upstream endpoints
+ across all zones required to enable
+ zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -3430,10 +3451,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only supported
- for LeastRequest, Random, and RoundRobin load
- balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
+ - message: Currently RequestDistribution is only
+ supported for LeastRequest, Random, and RoundRobin
+ load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -4550,28 +4571,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality
+ zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is the minimum
+ number of total upstream endpoints across
+ all zones required to enable zone-aware
+ routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -4585,9 +4613,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index 25c349f1f2..1e8e9b27fb 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -691,27 +691,32 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing to prefer
- sending traffic to the local locality zone.
+ description: ZoneAware defines the configuration related to the
+ distribution of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware routing
+ to prefer sending traffic to the local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is the minimum number of
+ total upstream endpoints across all zones required to
+ enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -725,10 +730,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
- - message: Currently ZoneAware is only supported for LeastRequest,
+ - message: Currently RequestDistribution is only supported for LeastRequest,
Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware) :
- true '
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ : true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index d2216e6f8c..6336aead8e 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -769,27 +769,33 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is the minimum
+ number of total upstream endpoints across
+ all zones required to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -803,9 +809,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
- - message: Currently ZoneAware is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
index 78958d6a6d..dd23047dc2 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11361,28 +11361,37 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures
- zone-aware routing to prefer sending
- traffic to the local locality zone.
+ description: ZoneAware defines the
+ configuration related to the distribution
+ of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount
+ is the minimum number of
+ total upstream endpoints
+ across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -11397,11 +11406,12 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only
- supported for LeastRequest, Random,
- and RoundRobin load balancers.
+ - message: Currently RequestDistribution
+ is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.zoneAware) : true '
+ ? !has(self.requestDistribution) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -12424,28 +12434,37 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures
- zone-aware routing to prefer sending
- traffic to the local locality zone.
+ description: ZoneAware defines the
+ configuration related to the distribution
+ of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount
+ is the minimum number of
+ total upstream endpoints
+ across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -12460,11 +12479,12 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only
- supported for LeastRequest, Random,
- and RoundRobin load balancers.
+ - message: Currently RequestDistribution
+ is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.zoneAware) : true '
+ ? !has(self.requestDistribution) :
+ true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -13572,28 +13592,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware
- routing to prefer sending traffic to the
- local locality zone.
+ description: ZoneAware defines the configuration
+ related to the distribution of requests
+ between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is
+ the minimum number of total upstream
+ endpoints across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -13607,10 +13634,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only supported
- for LeastRequest, Random, and RoundRobin
- load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
+ - message: Currently RequestDistribution is
+ only supported for LeastRequest, Random,
+ and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
@@ -14639,28 +14666,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration
+ related to the distribution of requests between
+ locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the
+ local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is the
+ minimum number of total upstream endpoints
+ across all zones required to enable
+ zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -14674,9 +14708,10 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only supported for
- LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load
+ balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
index 6e9d2a9147..54d6b64e02 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1268,28 +1268,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality
+ zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is the minimum
+ number of total upstream endpoints across
+ all zones required to enable zone-aware
+ routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -1303,9 +1310,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -2228,28 +2235,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality
+ zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is the minimum
+ number of total upstream endpoints across
+ all zones required to enable zone-aware
+ routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -2263,9 +2277,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -3394,28 +3408,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
+ description: ZoneAware defines the configuration
+ related to the distribution of requests between
+ locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending traffic
+ to the local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is the
+ minimum number of total upstream endpoints
+ across all zones required to enable
+ zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -3429,10 +3450,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only supported
- for LeastRequest, Random, and RoundRobin load
- balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
+ - message: Currently RequestDistribution is only
+ supported for LeastRequest, Random, and RoundRobin
+ load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -4549,28 +4570,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality
+ zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneCount:
+ description: |-
+ MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsCount is the minimum
+ number of total upstream endpoints across
+ all zones required to enable zone-aware
+ routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -4584,9 +4612,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently ZoneAware is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
+ - message: Currently RequestDistribution is only supported
+ for LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/site/content/en/latest/api/extension_types.md b/site/content/en/latest/api/extension_types.md
index 98c6f13492..97e307c5ea 100644
--- a/site/content/en/latest/api/extension_types.md
+++ b/site/content/en/latest/api/extension_types.md
@@ -1969,15 +1969,15 @@ _Appears in:_
| `after` | _[EnvoyFilter](#envoyfilter)_ | true | | After defines the filter that should come after the filter.
Only one of Before or After must be set. |
-#### ForceLocal
+#### ForceLocalZone
-ForceLocal defines override configuration for forcing all traffic to stay local vs Envoy default behavior
+ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
which maintains equal distribution among upstreams while sending as much traffic as possible locally.
_Appears in:_
-- [ZoneAware](#zoneaware)
+- [PreferLocalZone](#preferlocalzone)
| Field | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
@@ -3461,6 +3461,19 @@ _Appears in:_
| `targetSelectors` | _[TargetSelector](#targetselector) array_ | true | | TargetSelectors allow targeting resources for this policy based on labels |
+#### PreferLocalZone
+
+
+
+PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
+
+_Appears in:_
+- [ZoneAware](#zoneaware)
+
+| Field | Type | Required | Default | Description |
+| --- | --- | --- | --- | --- |
+
+
#### Principal
@@ -5074,7 +5087,7 @@ _Appears in:_
-ZoneAware configures zone-aware routing to prefer sending traffic to the local locality zone.
+ZoneAware defines the configuration related to the distribution of requests between localities.
_Appears in:_
- [LoadBalancer](#loadbalancer)
From 6490978be611136c882024caef72b136dd44cbd5 Mon Sep 17 00:00:00 2001
From: jukie <10012479+Jukie@users.noreply.github.com>
Date: Thu, 26 Jun 2025 13:02:16 -0600
Subject: [PATCH 10/11] pr-feedback
Signed-off-by: jukie <10012479+Jukie@users.noreply.github.com>
---
api/v1alpha1/loadbalancer_types.go | 8 +-
api/v1alpha1/zz_generated.deepcopy.go | 8 +-
....envoyproxy.io_backendtrafficpolicies.yaml | 16 +-
....envoyproxy.io_envoyextensionpolicies.yaml | 12 +-
.../gateway.envoyproxy.io_envoyproxies.yaml | 70 ++-
...ateway.envoyproxy.io_securitypolicies.yaml | 68 +--
....envoyproxy.io_backendtrafficpolicies.yaml | 16 +-
....envoyproxy.io_envoyextensionpolicies.yaml | 12 +-
.../gateway.envoyproxy.io_envoyproxies.yaml | 70 ++-
...ateway.envoyproxy.io_securitypolicies.yaml | 68 +--
test/helm/gateway-crds-helm/all.out.yaml | 408 ++++++++++--------
.../envoy-gateway-crds.out.yaml | 408 ++++++++++--------
12 files changed, 652 insertions(+), 512 deletions(-)
diff --git a/api/v1alpha1/loadbalancer_types.go b/api/v1alpha1/loadbalancer_types.go
index 5761f23c82..b7f753ea6d 100644
--- a/api/v1alpha1/loadbalancer_types.go
+++ b/api/v1alpha1/loadbalancer_types.go
@@ -161,20 +161,20 @@ type PreferLocalZone struct {
// +notImplementedHide
Force *ForceLocalZone `json:"force,omitempty"`
- // MinEndpointsCount is the minimum number of total upstream endpoints across all zones required to enable zone-aware routing.
+ // MinEndpointsThreshold is the minimum number of total upstream endpoints across all zones required to enable zone-aware routing.
//
// +optional
// +notImplementedHide
- MinEndpointsCount *uint64 `json:"minEndpointsCount,omitempty"`
+ MinEndpointsThreshold *uint64 `json:"minEndpointsCount,omitempty"`
}
// ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
// which maintains equal distribution among upstreams while sending as much traffic as possible locally.
type ForceLocalZone struct {
- // MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ // MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
// override. This is useful for protecting zones with fewer endpoints.
//
// +optional
// +notImplementedHide
- MinEndpointsInZoneCount *uint32 `json:"minEndpointsInZoneCount,omitempty"`
+ MinEndpointsInZoneThreshold *uint32 `json:"minEndpointsInZoneThreshold,omitempty"`
}
diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go
index 05e725161a..46e3fdb29f 100644
--- a/api/v1alpha1/zz_generated.deepcopy.go
+++ b/api/v1alpha1/zz_generated.deepcopy.go
@@ -2885,8 +2885,8 @@ func (in *FilterPosition) DeepCopy() *FilterPosition {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ForceLocalZone) DeepCopyInto(out *ForceLocalZone) {
*out = *in
- if in.MinEndpointsInZoneCount != nil {
- in, out := &in.MinEndpointsInZoneCount, &out.MinEndpointsInZoneCount
+ if in.MinEndpointsInZoneThreshold != nil {
+ in, out := &in.MinEndpointsInZoneThreshold, &out.MinEndpointsInZoneThreshold
*out = new(uint32)
**out = **in
}
@@ -4920,8 +4920,8 @@ func (in *PreferLocalZone) DeepCopyInto(out *PreferLocalZone) {
*out = new(ForceLocalZone)
(*in).DeepCopyInto(*out)
}
- if in.MinEndpointsCount != nil {
- in, out := &in.MinEndpointsCount, &out.MinEndpointsCount
+ if in.MinEndpointsThreshold != nil {
+ in, out := &in.MinEndpointsThreshold, &out.MinEndpointsThreshold
*out = new(uint64)
**out = **in
}
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index 0f1bf4ed5e..b89bf8f66e 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -704,17 +704,17 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is the minimum number of
- total upstream endpoints across all zones required to
- enable zone-aware routing.
+ description: MinEndpointsThreshold is the minimum number
+ of total upstream endpoints across all zones required
+ to enable zone-aware routing.
format: int64
type: integer
type: object
@@ -731,10 +731,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
- - message: Currently RequestDistribution is only supported for LeastRequest,
+ - message: Currently ZoneAware is only supported for LeastRequest,
Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
- : true '
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware) :
+ true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index 236b4080e0..00cba2f500 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -783,15 +783,15 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is the minimum
+ description: MinEndpointsThreshold is the minimum
number of total upstream endpoints across
all zones required to enable zone-aware routing.
format: int64
@@ -810,9 +810,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
index 18d7be941e..1ff380d3fa 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11377,15 +11377,15 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount
+ description: MinEndpointsThreshold
is the minimum number of
total upstream endpoints
across all zones required
@@ -11407,12 +11407,11 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution
- is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
+ - message: Currently ZoneAware is only
+ supported for LeastRequest, Random,
+ and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.requestDistribution) :
- true '
+ ? !has(self.zoneAware) : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -12450,15 +12449,15 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount
+ description: MinEndpointsThreshold
is the minimum number of
total upstream endpoints
across all zones required
@@ -12480,12 +12479,11 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution
- is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
+ - message: Currently ZoneAware is only
+ supported for LeastRequest, Random,
+ and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.requestDistribution) :
- true '
+ ? !has(self.zoneAware) : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -13607,18 +13605,19 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is
- the minimum number of total upstream
- endpoints across all zones required
- to enable zone-aware routing.
+ description: MinEndpointsThreshold
+ is the minimum number of total
+ upstream endpoints across all
+ zones required to enable zone-aware
+ routing.
format: int64
type: integer
type: object
@@ -13635,10 +13634,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is
- only supported for LeastRequest, Random,
- and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported
+ for LeastRequest, Random, and RoundRobin
+ load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
@@ -14681,18 +14680,18 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is the
- minimum number of total upstream endpoints
- across all zones required to enable
- zone-aware routing.
+ description: MinEndpointsThreshold is
+ the minimum number of total upstream
+ endpoints across all zones required
+ to enable zone-aware routing.
format: int64
type: integer
type: object
@@ -14709,10 +14708,9 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load
- balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for
+ LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
index e68ec7cabb..4d2aeeac04 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1283,17 +1283,17 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is the minimum
- number of total upstream endpoints across
- all zones required to enable zone-aware
+ description: MinEndpointsThreshold is the
+ minimum number of total upstream endpoints
+ across all zones required to enable zone-aware
routing.
format: int64
type: integer
@@ -1311,9 +1311,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -2250,17 +2250,17 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is the minimum
- number of total upstream endpoints across
- all zones required to enable zone-aware
+ description: MinEndpointsThreshold is the
+ minimum number of total upstream endpoints
+ across all zones required to enable zone-aware
routing.
format: int64
type: integer
@@ -2278,9 +2278,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -3423,18 +3423,18 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is the
- minimum number of total upstream endpoints
- across all zones required to enable
- zone-aware routing.
+ description: MinEndpointsThreshold is
+ the minimum number of total upstream
+ endpoints across all zones required
+ to enable zone-aware routing.
format: int64
type: integer
type: object
@@ -3451,10 +3451,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only
- supported for LeastRequest, Random, and RoundRobin
- load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported
+ for LeastRequest, Random, and RoundRobin load
+ balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -4585,17 +4585,17 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is the minimum
- number of total upstream endpoints across
- all zones required to enable zone-aware
+ description: MinEndpointsThreshold is the
+ minimum number of total upstream endpoints
+ across all zones required to enable zone-aware
routing.
format: int64
type: integer
@@ -4613,9 +4613,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index 1e8e9b27fb..8e94d9b74c 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -703,17 +703,17 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is the minimum number of
- total upstream endpoints across all zones required to
- enable zone-aware routing.
+ description: MinEndpointsThreshold is the minimum number
+ of total upstream endpoints across all zones required
+ to enable zone-aware routing.
format: int64
type: integer
type: object
@@ -730,10 +730,10 @@ spec:
LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ? !has(self.slowStart)
: true '
- - message: Currently RequestDistribution is only supported for LeastRequest,
+ - message: Currently ZoneAware is only supported for LeastRequest,
Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
- : true '
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware) :
+ true '
mergeType:
description: |-
MergeType determines how this configuration is merged with existing BackendTrafficPolicy
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index 6336aead8e..b9de0c4620 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -782,15 +782,15 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is the minimum
+ description: MinEndpointsThreshold is the minimum
number of total upstream endpoints across
all zones required to enable zone-aware routing.
format: int64
@@ -809,9 +809,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash''] ?
!has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol when
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
index dd23047dc2..96cac85ab5 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11376,15 +11376,15 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount
+ description: MinEndpointsThreshold
is the minimum number of
total upstream endpoints
across all zones required
@@ -11406,12 +11406,11 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution
- is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
+ - message: Currently ZoneAware is only
+ supported for LeastRequest, Random,
+ and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.requestDistribution) :
- true '
+ ? !has(self.zoneAware) : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -12449,15 +12448,15 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount
+ description: MinEndpointsThreshold
is the minimum number of
total upstream endpoints
across all zones required
@@ -12479,12 +12478,11 @@ spec:
load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution
- is only supported for LeastRequest,
- Random, and RoundRobin load balancers.
+ - message: Currently ZoneAware is only
+ supported for LeastRequest, Random,
+ and RoundRobin load balancers.
rule: 'self.type == ''ConsistentHash''
- ? !has(self.requestDistribution) :
- true '
+ ? !has(self.zoneAware) : true '
proxyProtocol:
description: ProxyProtocol enables the
Proxy Protocol when communicating with
@@ -13606,18 +13604,19 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is
- the minimum number of total upstream
- endpoints across all zones required
- to enable zone-aware routing.
+ description: MinEndpointsThreshold
+ is the minimum number of total
+ upstream endpoints across all
+ zones required to enable zone-aware
+ routing.
format: int64
type: integer
type: object
@@ -13634,10 +13633,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is
- only supported for LeastRequest, Random,
- and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported
+ for LeastRequest, Random, and RoundRobin
+ load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy
@@ -14680,18 +14679,18 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is the
- minimum number of total upstream endpoints
- across all zones required to enable
- zone-aware routing.
+ description: MinEndpointsThreshold is
+ the minimum number of total upstream
+ endpoints across all zones required
+ to enable zone-aware routing.
format: int64
type: integer
type: object
@@ -14708,10 +14707,9 @@ spec:
RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load
- balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for
+ LeastRequest, Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
index 54d6b64e02..bb02f90fc4 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1282,17 +1282,17 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is the minimum
- number of total upstream endpoints across
- all zones required to enable zone-aware
+ description: MinEndpointsThreshold is the
+ minimum number of total upstream endpoints
+ across all zones required to enable zone-aware
routing.
format: int64
type: integer
@@ -1310,9 +1310,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -2249,17 +2249,17 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is the minimum
- number of total upstream endpoints across
- all zones required to enable zone-aware
+ description: MinEndpointsThreshold is the
+ minimum number of total upstream endpoints
+ across all zones required to enable zone-aware
routing.
format: int64
type: integer
@@ -2277,9 +2277,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -3422,18 +3422,18 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is the
- minimum number of total upstream endpoints
- across all zones required to enable
- zone-aware routing.
+ description: MinEndpointsThreshold is
+ the minimum number of total upstream
+ endpoints across all zones required
+ to enable zone-aware routing.
format: int64
type: integer
type: object
@@ -3450,10 +3450,10 @@ spec:
for RoundRobin and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only
- supported for LeastRequest, Random, and RoundRobin
- load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported
+ for LeastRequest, Random, and RoundRobin load
+ balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
@@ -4584,17 +4584,17 @@ spec:
ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
- minEndpointsInZoneCount:
+ minEndpointsInZoneThreshold:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
override. This is useful for protecting zones with fewer endpoints.
format: int32
type: integer
type: object
minEndpointsCount:
- description: MinEndpointsCount is the minimum
- number of total upstream endpoints across
- all zones required to enable zone-aware
+ description: MinEndpointsThreshold is the
+ minimum number of total upstream endpoints
+ across all zones required to enable zone-aware
routing.
format: int64
type: integer
@@ -4612,9 +4612,9 @@ spec:
and LeastRequest load balancers.
rule: 'self.type in [''Random'', ''ConsistentHash'']
? !has(self.slowStart) : true '
- - message: Currently RequestDistribution is only supported
- for LeastRequest, Random, and RoundRobin load balancers.
- rule: 'self.type == ''ConsistentHash'' ? !has(self.requestDistribution)
+ - message: Currently ZoneAware is only supported for LeastRequest,
+ Random, and RoundRobin load balancers.
+ rule: 'self.type == ''ConsistentHash'' ? !has(self.zoneAware)
: true '
proxyProtocol:
description: ProxyProtocol enables the Proxy Protocol
diff --git a/test/helm/gateway-crds-helm/all.out.yaml b/test/helm/gateway-crds-helm/all.out.yaml
index b3a9cb969c..927f07193e 100644
--- a/test/helm/gateway-crds-helm/all.out.yaml
+++ b/test/helm/gateway-crds-helm/all.out.yaml
@@ -18331,27 +18331,32 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing to prefer
- sending traffic to the local locality zone.
+ description: ZoneAware defines the configuration related to the
+ distribution of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware routing
+ to prefer sending traffic to the local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold is the minimum number
+ of total upstream endpoints across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -21977,27 +21982,33 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold is the minimum
+ number of total upstream endpoints across
+ all zones required to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -34997,28 +35008,37 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures
- zone-aware routing to prefer sending
- traffic to the local locality zone.
+ description: ZoneAware defines the
+ configuration related to the distribution
+ of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold
+ is the minimum number of
+ total upstream endpoints
+ across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -36060,28 +36080,37 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures
- zone-aware routing to prefer sending
- traffic to the local locality zone.
+ description: ZoneAware defines the
+ configuration related to the distribution
+ of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold
+ is the minimum number of
+ total upstream endpoints
+ across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -37208,28 +37237,36 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware
- routing to prefer sending traffic to the
- local locality zone.
+ description: ZoneAware defines the configuration
+ related to the distribution of requests
+ between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold
+ is the minimum number of total
+ upstream endpoints across all
+ zones required to enable zone-aware
+ routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -38275,28 +38312,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration
+ related to the distribution of requests between
+ locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the
+ local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold is
+ the minimum number of total upstream
+ endpoints across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -40154,28 +40198,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality
+ zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold is the
+ minimum number of total upstream endpoints
+ across all zones required to enable zone-aware
+ routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -41114,28 +41165,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality
+ zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold is the
+ minimum number of total upstream endpoints
+ across all zones required to enable zone-aware
+ routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -42280,28 +42338,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
+ description: ZoneAware defines the configuration
+ related to the distribution of requests between
+ locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending traffic
+ to the local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold is
+ the minimum number of total upstream
+ endpoints across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -43435,28 +43500,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality
+ zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold is the
+ minimum number of total upstream endpoints
+ across all zones required to enable zone-aware
+ routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
diff --git a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
index c3f186b95a..e687a35f0d 100644
--- a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
+++ b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
@@ -1019,27 +1019,32 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing to prefer
- sending traffic to the local locality zone.
+ description: ZoneAware defines the configuration related to the
+ distribution of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware routing
+ to prefer sending traffic to the local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold is the minimum number
+ of total upstream endpoints across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -4665,27 +4670,33 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold is the minimum
+ number of total upstream endpoints across
+ all zones required to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -17685,28 +17696,37 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures
- zone-aware routing to prefer sending
- traffic to the local locality zone.
+ description: ZoneAware defines the
+ configuration related to the distribution
+ of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold
+ is the minimum number of
+ total upstream endpoints
+ across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -18748,28 +18768,37 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures
- zone-aware routing to prefer sending
- traffic to the local locality zone.
+ description: ZoneAware defines the
+ configuration related to the distribution
+ of requests between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer
+ sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold
+ is the minimum number of
+ total upstream endpoints
+ across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -19896,28 +19925,36 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware
- routing to prefer sending traffic to the
- local locality zone.
+ description: ZoneAware defines the configuration
+ related to the distribution of requests
+ between locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending
+ traffic to the local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold
+ is the minimum number of total
+ upstream endpoints across all
+ zones required to enable zone-aware
+ routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -20963,28 +21000,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration
+ related to the distribution of requests between
+ locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the
+ local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold is
+ the minimum number of total upstream
+ endpoints across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -22842,28 +22886,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality
+ zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold is the
+ minimum number of total upstream endpoints
+ across all zones required to enable zone-aware
+ routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -23802,28 +23853,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality
+ zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold is the
+ minimum number of total upstream endpoints
+ across all zones required to enable zone-aware
+ routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -24968,28 +25026,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware
- routing to prefer sending traffic to the local
- locality zone.
+ description: ZoneAware defines the configuration
+ related to the distribution of requests between
+ locality zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures
+ zone-aware routing to prefer sending traffic
+ to the local locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold is
+ the minimum number of total upstream
+ endpoints across all zones required
+ to enable zone-aware routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
@@ -26123,28 +26188,35 @@ spec:
- RoundRobin
type: string
zoneAware:
- description: ZoneAware configures zone-aware routing
- to prefer sending traffic to the local locality
- zone.
+ description: ZoneAware defines the configuration related
+ to the distribution of requests between locality
+ zones.
properties:
- forceLocal:
- description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
- which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ preferLocal:
+ description: PreferLocalZone configures zone-aware
+ routing to prefer sending traffic to the local
+ locality zone.
properties:
- minEndpointsInZoneCount:
+ force:
description: |-
- MinEndpointsInZoneCount is the minimum number of upstream hosts in the local zone required to honor the forceLocal
- override. Envoy defaults to 1 if not specified.
- format: int32
+ ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ properties:
+ minEndpointsInZoneThreshold:
+ description: |-
+ MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ override. This is useful for protecting zones with fewer endpoints.
+ format: int32
+ type: integer
+ type: object
+ minEndpointsCount:
+ description: MinEndpointsThreshold is the
+ minimum number of total upstream endpoints
+ across all zones required to enable zone-aware
+ routing.
+ format: int64
type: integer
type: object
- minEndpointsCount:
- description: |-
- MinEndpointsCount is the minimum number of total upstream hosts across all zones required to enable zone-aware routing.
- Envoy defaults to 6 if not specified.
- format: int64
- type: integer
type: object
required:
- type
From 54b57f1166d782dd2430a446a70cbb3473a5a9c3 Mon Sep 17 00:00:00 2001
From: jukie <10012479+Jukie@users.noreply.github.com>
Date: Thu, 26 Jun 2025 13:34:52 -0600
Subject: [PATCH 11/11] Adjust descriptions
Signed-off-by: jukie <10012479+Jukie@users.noreply.github.com>
---
api/v1alpha1/loadbalancer_types.go | 8 ++++----
....envoyproxy.io_backendtrafficpolicies.yaml | 2 +-
....envoyproxy.io_envoyextensionpolicies.yaml | 2 +-
.../gateway.envoyproxy.io_envoyproxies.yaml | 8 ++++----
...ateway.envoyproxy.io_securitypolicies.yaml | 8 ++++----
....envoyproxy.io_backendtrafficpolicies.yaml | 2 +-
....envoyproxy.io_envoyextensionpolicies.yaml | 2 +-
.../gateway.envoyproxy.io_envoyproxies.yaml | 8 ++++----
...ateway.envoyproxy.io_securitypolicies.yaml | 8 ++++----
site/content/en/latest/api/extension_types.md | 6 +++---
test/helm/gateway-crds-helm/all.out.yaml | 20 +++++++++----------
.../envoy-gateway-crds.out.yaml | 20 +++++++++----------
12 files changed, 47 insertions(+), 47 deletions(-)
diff --git a/api/v1alpha1/loadbalancer_types.go b/api/v1alpha1/loadbalancer_types.go
index b7f753ea6d..a148832e5e 100644
--- a/api/v1alpha1/loadbalancer_types.go
+++ b/api/v1alpha1/loadbalancer_types.go
@@ -143,7 +143,7 @@ type SlowStart struct {
// TODO: Add support for non-linear traffic increases based on user usage.
}
-// ZoneAware defines the configuration related to the distribution of requests between localities.
+// ZoneAware defines the configuration related to the distribution of requests between locality zones.
type ZoneAware struct {
// PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
//
@@ -154,7 +154,7 @@ type ZoneAware struct {
// PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
type PreferLocalZone struct {
- // ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ // ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
// which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
//
// +optional
@@ -168,8 +168,8 @@ type PreferLocalZone struct {
MinEndpointsThreshold *uint64 `json:"minEndpointsCount,omitempty"`
}
-// ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
-// which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+// ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
+// which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
type ForceLocalZone struct {
// MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
// override. This is useful for protecting zones with fewer endpoints.
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index b89bf8f66e..3c652ac044 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -701,7 +701,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index 00cba2f500..c91a2fd0ca 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -780,7 +780,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
index 1ff380d3fa..41b8e303ed 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11374,7 +11374,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -12446,7 +12446,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -13602,7 +13602,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -14677,7 +14677,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
index 4d2aeeac04..681ac85e0e 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1280,7 +1280,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -2247,7 +2247,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -3420,7 +3420,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -4582,7 +4582,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index 8e94d9b74c..73e551f531 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -700,7 +700,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index b9de0c4620..511913c576 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -779,7 +779,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
index 96cac85ab5..7790869abd 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11373,7 +11373,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -12445,7 +12445,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -13601,7 +13601,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -14676,7 +14676,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
index bb02f90fc4..58fe239465 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -1279,7 +1279,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -2246,7 +2246,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -3419,7 +3419,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -4581,7 +4581,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
diff --git a/site/content/en/latest/api/extension_types.md b/site/content/en/latest/api/extension_types.md
index 97e307c5ea..e5aa9a8b09 100644
--- a/site/content/en/latest/api/extension_types.md
+++ b/site/content/en/latest/api/extension_types.md
@@ -1973,8 +1973,8 @@ _Appears in:_
-ForceLocalZone defines override configuration for forcing all traffic to stay local vs Envoy default behavior
-which maintains equal distribution among upstreams while sending as much traffic as possible locally.
+ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
+which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
_Appears in:_
- [PreferLocalZone](#preferlocalzone)
@@ -5087,7 +5087,7 @@ _Appears in:_
-ZoneAware defines the configuration related to the distribution of requests between localities.
+ZoneAware defines the configuration related to the distribution of requests between locality zones.
_Appears in:_
- [LoadBalancer](#loadbalancer)
diff --git a/test/helm/gateway-crds-helm/all.out.yaml b/test/helm/gateway-crds-helm/all.out.yaml
index 927f07193e..4fbcd8f1b3 100644
--- a/test/helm/gateway-crds-helm/all.out.yaml
+++ b/test/helm/gateway-crds-helm/all.out.yaml
@@ -18340,7 +18340,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -21992,7 +21992,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -35020,7 +35020,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -36092,7 +36092,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -37248,7 +37248,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -38323,7 +38323,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -40209,7 +40209,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -41176,7 +41176,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -42349,7 +42349,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -43511,7 +43511,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
diff --git a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
index e687a35f0d..56549ef0fa 100644
--- a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
+++ b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
@@ -1028,7 +1028,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -4680,7 +4680,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -17708,7 +17708,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -18780,7 +18780,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -19936,7 +19936,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -21011,7 +21011,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -22897,7 +22897,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -23864,7 +23864,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -25037,7 +25037,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold:
@@ -26199,7 +26199,7 @@ spec:
properties:
force:
description: |-
- ForceLocalZone defines override configuration for forcing all traffic to stay local instead of the default behavior
+ ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
properties:
minEndpointsInZoneThreshold: