Disable globally the default retry policy

As I can read here the default policy for every communication happening inside the mesh is actually retrying twice in case of, for example, 503.

I want to disable this but I cannot figure out a why to do it globally for all the mesh as Virtual Services do not allow wildcards for hosts. I don’t know if this is doable via istio manifiest or with any other CRD.

The only way I figured out is adding a Virtual Service for each K8s Service we have where I can do:

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: no-retries-for-one-service
spec:
  hosts:
  - one-service.default.svc.cluster.local
  http:
  - retries:
      attempts: 0
    route:
      - destination:
          host: one-service.default.svc.cluster.local

But this will introduce a lot of VirtualServices that we currently don’t have as we don’t use any other traffic management benefits like weighting, routing to subsets, etc.

Is this doable with only one VirtualService (or other resource) globally?

unfortunately it does not have a global setting to disable.

1 Like

This is most likely possible doing on istiod setting meshConfig policy

  meshConfig:
    defaultHttpRetryPolicy:
      attempts: 0
1 Like