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

Add docs about configuring faults and retry/timeout on the same VirtualService #10781

Conversation

denniseffing
Copy link
Contributor

@denniseffing denniseffing commented Jan 13, 2022

This PR adds documentation about a common issue when testing resilience mechanisms like retries and timeouts using the Istio fault injection: The resilience mechanisms don't work when faults and retrys/timeouts are configured on the same VirtualService. See istio/istio#13705 for more details.

I'm currently ironing out the details for signing the CLA as a codecentric employee, I expect that to be done sometime next week but I wanted to open this PR to collect some feedback.

  • Configuration Infrastructure
  • Docs
  • Installation
  • Networking
  • Performance and Scalability
  • Policies and Telemetry
  • Security
  • Test and Release
  • User Experience
  • Developer Infrastructure

@denniseffing denniseffing requested a review from a team as a code owner January 13, 2022 13:46
@istio-policy-bot
Copy link

😊 Welcome! This is either your first contribution to the Istio documentation repo, or
it's been awhile since you've been here. A few things you should know:

  • You can learn about how we write and maintain documentation, about our style guidelines,
    and about all the available web site features by visiting Contributing to the Docs.

  • In the next few minutes, an automatic preview of your change will be
    built as a full copy of the istio.io website. You can find this preview by clicking on
    the Details link next to the deploy/netlify entry in the Status section of this
    page.

  • We care about quality, so we've put in place a number of checks to ensure our documentation
    is top notch. We do spell checking, we sanitize the markdown, we ensure all hyperlinks point
    to valid location, and more. If your PR doesn't pass one of these checks, you'll see a red X in the
    status section of the page. Click on the Details link to get a list of the problems with your PR.
    Fix those problems and push an update to your PR. This will automatically rerun the tests and
    hopefully this time everything will be perfect.

  • Once your changes are accepted and merged into the repository, they will initially show up
    on https://preliminary.istio.io. The changes will be published to https://istio.io
    the next time we do a major release (which typically happens every 3 months or so).

Thanks for contributing!

Courtesy of your friendly welcome wagon.

@istio-testing istio-testing added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. needs-ok-to-test labels Jan 13, 2022
@istio-testing
Copy link
Contributor

Hi @denniseffing. Thanks for your PR.

I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@zirain
Copy link
Member

zirain commented Jan 13, 2022

@denniseffing please sign CLA, thx!

Copy link
Member

@Arhell Arhell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/ok-to-test

@istio-testing istio-testing added ok-to-test Set this label allow normal testing to take place for a PR not submitted by an Istio org member. and removed needs-ok-to-test labels Jan 13, 2022
@denniseffing denniseffing force-pushed the fault-injection-and-resilience-on-same-virtualservice branch from 001d303 to 30cab98 Compare January 13, 2022 14:30
@denniseffing
Copy link
Contributor Author

/retest


This works because this way the retry policy is configured for the client proxy while the fault
injection is configured for the upstream proxy.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure, but it might be worth mentioning the alternative of moving the retry policy to the virtual service of a client service, if that makes sense? For example, in bookinfo, it would probably be reasonable to put the retry in the reviews service, for fault injection in the ratings service.

Copy link
Contributor Author

@denniseffing denniseffing Jan 14, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is true. I didn't mention this specifically because configuring retries and faults on different virtual services is quite the obvious workaround but not always applicable. I'll see if I can come up with a sentence or two that mentions this as well.

Copy link
Collaborator

@frankbu frankbu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall LGTM. Just a couple of minor suggestions.

@istio-testing istio-testing added the needs-rebase Indicates a PR needs to be rebased before being merged label Jan 13, 2022
@denniseffing denniseffing force-pushed the fault-injection-and-resilience-on-same-virtualservice branch from 30cab98 to cd09a72 Compare January 14, 2022 16:20
@istio-testing istio-testing removed the needs-rebase Indicates a PR needs to be rebased before being merged label Jan 14, 2022
@ericvn
Copy link
Contributor

ericvn commented Feb 17, 2022

@denniseffing Still waiting on you satisfying the CLA bot.

@denniseffing
Copy link
Contributor Author

Yes, sorry! I made the "mistake" of asking internally which one we would like to sign. 😅 I honestly didn't expect that much delay, my apologies. I will sign them soon!

@istio-testing istio-testing added the needs-rebase Indicates a PR needs to be rebased before being merged label Feb 24, 2022
VirtualService

Signed-off-by: Dennis Effing <dennis.effing@codecentric.de>
@denniseffing denniseffing force-pushed the fault-injection-and-resilience-on-same-virtualservice branch from 0ba481e to f72e183 Compare March 22, 2022 16:32
@denniseffing
Copy link
Contributor Author

@ericvn I signed the CLA and rebased the changes.

@istio-testing istio-testing removed the needs-rebase Indicates a PR needs to be rebased before being merged label Mar 22, 2022
@istio-testing istio-testing merged commit 7a2d85b into istio:master Apr 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/docs ok-to-test Set this label allow normal testing to take place for a PR not submitted by an Istio org member. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants