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: