Merge pull request #1907 from kei-gnu/istio-split-external-local-origin-errors

feat: add support istio's splitExternalLocalOriginErrors and consecutiveLocalOriginFailures
This commit is contained in:
Sanskar Jaiswal
2026-05-01 19:03:16 +05:30
committed by GitHub
5 changed files with 50 additions and 0 deletions
+10
View File
@@ -859,6 +859,12 @@ spec:
ejected from the connection pool.
format: int32
type: integer
consecutiveLocalOriginFailures:
description: Number of consecutive locally originated
failures before ejection. Takes effect only when
splitExternalLocalOriginErrors is set to true.
format: int32
type: integer
interval:
description: Time interval between ejection sweep analysis.
type: string
@@ -868,6 +874,10 @@ spec:
minHealthPercent:
format: int32
type: integer
splitExternalLocalOriginErrors:
description: Determines whether to distinguish local
origin failures from external errors.
type: boolean
tls:
description: Istio TLS related settings for connections to the upstream service
type: object
+10
View File
@@ -859,6 +859,12 @@ spec:
ejected from the connection pool.
format: int32
type: integer
consecutiveLocalOriginFailures:
description: Number of consecutive locally originated
failures before ejection. Takes effect only when
splitExternalLocalOriginErrors is set to true.
format: int32
type: integer
interval:
description: Time interval between ejection sweep analysis.
type: string
@@ -868,6 +874,10 @@ spec:
minHealthPercent:
format: int32
type: integer
splitExternalLocalOriginErrors:
description: Determines whether to distinguish local
origin failures from external errors.
type: boolean
tls:
description: Istio TLS related settings for connections to the upstream service
type: object
+10
View File
@@ -859,6 +859,12 @@ spec:
ejected from the connection pool.
format: int32
type: integer
consecutiveLocalOriginFailures:
description: Number of consecutive locally originated
failures before ejection. Takes effect only when
splitExternalLocalOriginErrors is set to true.
format: int32
type: integer
interval:
description: Time interval between ejection sweep analysis.
type: string
@@ -868,6 +874,10 @@ spec:
minHealthPercent:
format: int32
type: integer
splitExternalLocalOriginErrors:
description: Determines whether to distinguish local
origin failures from external errors.
type: boolean
tls:
description: Istio TLS related settings for connections to the upstream service
type: object
@@ -620,6 +620,21 @@ type OutlierDetection struct {
// no effect.
Consecutive5xxErrors *uint32 `json:"consecutive5xxErrors,omitempty"`
// Determines whether to distinguish local origin failures from external errors. If set to true
// `consecutiveLocalOriginFailures` is taken into account for outlier detection calculations.
// This should be used when you want to derive the outlier detection status based on the errors
// seen locally such as failure to connect, timeout while connecting etc. rather than the status code
// returned by upstream service. This is especially useful when the upstream service explicitly returns
// a 5xx for some requests and you want to ignore those responses from upstream service while determining
// the outlier detection status of a host.
// Defaults to false.
SplitExternalLocalOriginErrors bool `json:"splitExternalLocalOriginErrors,omitempty"`
// The number of consecutive locally originated failures before ejection
// occurs. Defaults to 5. Parameter takes effect only when `splitExternalLocalOriginErrors`
// is set to true.
ConsecutiveLocalOriginFailures *uint32 `json:"consecutiveLocalOriginFailures,omitempty"`
// Time interval between ejection sweep analysis. format:
// 1h/1m/1s/1ms. MUST BE >=1ms. Default is 10s.
Interval string `json:"interval,omitempty"`
@@ -728,6 +728,11 @@ func (in *OutlierDetection) DeepCopyInto(out *OutlierDetection) {
*out = new(uint32)
**out = **in
}
if in.ConsecutiveLocalOriginFailures != nil {
in, out := &in.ConsecutiveLocalOriginFailures, &out.ConsecutiveLocalOriginFailures
*out = new(uint32)
**out = **in
}
return
}