I’ have a gateway (my-egressgateway
) connecting to an external service. I want this gateway to do circuit breaking based on failure rate, supported by envoy but not directly exposed by istio.
I have this filter:
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: outlier-on-percentage
namespace: istio-system
spec:
configPatches:
- applyTo: CLUSTER
match:
context: ANY
cluster:
name: "outbound|443||externalservice.com"
patch:
operation: ADD
value:
outlier_detection:
max_ejection_percent: 100
base_ejection_time: 2m
interval: 30s
split_external_local_origin_errors: false
enforcing_failure_percentage: 100
enforcing_failure_percentage_local_origin: 100
failure_percentage_request_volume: 50
failure_percentage_minimum_hosts: 1
failure_percentage_threshold: 3
consecutive_5xx: 1
consecutive_local_origin_failure: 1
consecutive_gateway_failure: 1
enforcing_consecutive_gateway_failure: 100
workloadSelector:
labels:
app: my-egressgateway
But when applying it and restarting the egress pods, they never get healthy because of this error:
successful, 1 rejected; lds updates: 1 successful, 0 rejected
2023-11-23T15:54:25.187564Z warning envoy config external/envoy/source/common/config/grpc_subscription_impl.cc:128 gRPC config for type.googleapis.com/envoy.config.cluster.v3.Cluster rejected: Proto constraint validation failed (ClusterValidationError.Name: value length must be at least 1 characters): outlier_detection {
but name is not empty.
Any clue?