Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fault injection not implementable #388

Closed
kyessenov opened this issue Feb 27, 2018 · 11 comments
Closed

Fault injection not implementable #388

kyessenov opened this issue Feb 27, 2018 · 11 comments
Assignees

Comments

@kyessenov
Copy link
Contributor

Current spec allows faults to be applied per HTTPRoute.

Unfortunately, Envoy only allows one fault filter per upstream cluster. That means if you have two HTTP route rules for the same cluster, they'll be affecting each other.

Suggestion is to either:

  1. modify route rule spec to align with envoy
  2. modify envoy to allow faults per individual routes
@costinm
Copy link
Contributor

costinm commented Feb 27, 2018

I don't know about 'not implementable' - we could generate an extra cluster for the route that has a fault filter.

However the implementation may be too expensive or complicated - so maybe we should change the API to keep fault at cluster level.

@kyessenov
Copy link
Contributor Author

kyessenov commented Feb 27, 2018 via email

@costinm
Copy link
Contributor

costinm commented Feb 27, 2018 via email

@louiscryan
Copy link
Contributor

I would be fine with moving HTTPFaultInjection into DestinationRule.TrafficPolicy

@kyessenov
Copy link
Contributor Author

@rshriram if you have time, what do you think? Should we fix envoy's fault injection or fix istio's API?

@mandarjog
Copy link
Contributor

the current fault injection filter should accept per route configuration.
We are moving all our filters to support that anyway. Mixerclient filter / envoy rbac filter etc...

@kyessenov
Copy link
Contributor Author

After talking to @rshriram , we'll park implementing v1alpha2 fault until it's corrected in envoy to apply config per route, not per upstream cluster. Upstream cluster granularity is too coarse for faults, and it does not match CDS-semantics in Envoy.

@rshriram
Copy link
Member

Thinking more about this, fault filter cna filter based on HTTP headers and upstream clusters. So, why is this an issue? If two routes refer to same upstream cluster, then logically they should have some difference (header or prefix match). And these conditions can be added to the fault filter.
Keep in mind that filters in envoy can be stacked. You can have N fault filters, with different match conditions.. Only those that match will be triggered.

@rshriram
Copy link
Member

refer to #405

@kyessenov
Copy link
Contributor Author

I think they are still not implementable. Please reference the envoy fix here when you close it.

@kyessenov kyessenov reopened this Mar 23, 2018
@rshriram
Copy link
Member

envoyproxy/envoy#3084

incfly pushed a commit to incfly/api that referenced this issue Jun 13, 2018
* Remove api_manager code.

* remove transcoding_repoistories
nacx pushed a commit to nacx/api that referenced this issue Apr 15, 2020
nacx pushed a commit to nacx/api that referenced this issue Feb 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants